How would you approach items that should be [single | multi]-selection lists?

I have a few templates that populate several possible answers as TODOs (I want to eventually do a sort of habit-tracking graphs on each such answer). I might check as DONE one or two of them but the others remain as TODO and they appear in NEXT section. Because there is no way to add multi-selection lists in Logseq and I don’t want to remove the TODO Tag from each non-applicable answer for that particular question, I incline to modify the NEXT Query to ignore certain TODOs. I wouldn’t know how to do that anyway but I wanted to ask the community how would you approach this?

Just to give an random example, say I have the following that is created by a template:

- Movie to Watch:
  - TODO Drama
  - TODO Comedy
  - TODO Horror
  - TODO Animation

Every Friday I Would pull this template (I wish I could have a Friday Daily Journal template that can be a slightly modified version of the Daily Journal Template) and choose one movie genre I’d like to see on Friday evening. I would select a Comedy one time and all others will remain “open” TODOs that will appear in queries and If it was a drop-down selection list, only one of those would remain in the journal.

I would solve this with a custom TODO workflow but we haven’t got those neither (something like “TOSELECT” → “DONE”).

Another way would be to use:

- Movie to Watch:
  - [ ] Drama
  - [X] Comedy
  - [ ] Horror
  - [ ] Animation

, but I am not aware of any Habit-Tracker plugin or other way to plot some graphs using the [ ] and [X]. I can perhaps do some advanced queries to get some sense of tracking the mood I was on the Fridays of the past year, but that’s not like habit tracking. Also the remaining lines in the daily journal just clutter it without serving any purpose.

Manipulating the other boxes would be a bit of a hassle imo.
Else you could opt to put those in the CANCELED state.

For habit tracking I would define the habit as 1 checkbox and then maybe add an extra line for specifics.
Maybe use tags for those.

TODO Watch movie
DONE Watch movie #comedy
(Or on a nested bullet)

Property autofill might work.
Typing :: then selecting property and then selecting value or enter new one.

Otherwise with advanced queries we can filter out if we get the parent block instead of the child and say no child should be DONE.
I could write that if you need, but would need the specifics of what that query would look like.

I thought of it but it would interfere with looking for proper Cancelled Tasks, so having Custom Workflows would make that an option with a CHECKBOX (custom status) > DONE (status) workflow and would be the easiest option.

I am experimenting with an alternate method that is a bit of a hack but it fits well into my “atomic”-everything workflow and that is placing a CheckBox on the first line of a Bullet. Albeit currently not possible in Logseq, using an un-rendered Markdown Link as the first line, it would pull the CheckBox on the first line. Like so:

* [ ] Drama

This would render as:

Not the best as style goes but close enough and I have a checkbox per bullet without having a TODO.

Now the Habit Tracking can go by having the plugin or query look for the “[X]” instead of “DONE” and make use of the actual Text in the bullet (ex: “Animation”) or, I’ll go by my atomic notes/bullets mantra and also have some “Title/ALT text” in the Markdown Link, by any text that is placed in there.

I haven’t used Habit Tracking plugins yet in Logseq but read that they use a combination of keyword (“DONE”) and hashtag (“#habit” or #habit-tracking, etc), so I am trying to prepare my data to be able to be used with habit tracking in some way that will be presented in a Markdown-based diagraming tool (Mermaid I hear is one such tool).

In this case, my previous Markdown would look like:

[](.checkbox " #habit-tracking ")
* [ ] Comedy

NOTE: the above expects the habit-tracking plugin to look for the actual text “#habit-tracking” in the markdown file so that it being inside a MarkDown Link “Title” is not affecting the search.

Now about queries I don’t really like to have them in a journal page because they are dynamic and I don’t know of a way to “snapshot” the output of the query into a Markdown Table that is static and remains there, in the daily journal, for future reference and analysis. If I was able to save the output of a query to a static Markdown Table I would be quite happy for starter but a Mermaid Graph would be so much better.

Interesting trick :slight_smile:
And yeah saving query output isn’t going to work. But it depends completely on the query clause and specifics of whether or not it produces different output.
If it queries for a block that changes, then yes the query output changes.
Also query output is only viewable in Logseq. In the file is just the actual query text.
So then queries are not the answer.

I Logseq everything, so for me it is very natural to also query everything :smiley:
The files for Logseq I only use with Logseq. Though I like the option of being able to manipulate them outside of it.

I’ve ben there, I [put your open source app of choice here] everything for many years, now, after 25 years of Linux and open source, I want my data as free of any app as possible. I love Logseq for what it stands for but I also see how quickly people went from Roam, Notion, Obsidian and now Logseq … all in less than a decade, maybe even less. So I place grat emphasis of having my Logseq journals and pages as standard Markdown as possible and, if Logseq creators really mean it, then they must support standard markdown to the bone, as well as -maybe- other text-based, better choices, like AsciiDOc, reST, etc.

For now, I have to develop “tricks” to do my journaling, PKM-ing, etc with what Logseq offers and avoid features-trap as much as possible.

Regarind queries, I wonder why queries can’t have markdown output that is static…

1 Like

I guess I come to this from a completely different angle :sweat_smile:
I came from Goodnotes to Logseq and found home. I don’t change apps all that often. Especially not when I find a home.
I’ve struggled with data lock in. I used a tracking app… Oh man! I could export to PDF, but then my timestamps weren’t exported. It had ~half a year of daily tracked health metrics. I have copied those… One at a time… To Logseq.
It was this and the realization that Goodnotes is well and good, but handwriting is limited in terms of what you can do with it.
So Logseq being local first and plain text became really important to me.

At the same time, I will not refrain from getting everything out of Logseq that it offers.
So yeah maybe my files are not “clean” markdown. But that’s not important for me. What matters is, that should I ever need it I can easily copy it out of the files.
The data is there in plain text. And the queries are nice, but not vital to my data storage, just my data usage.
Sure it might be difficult to extract all the data for use in another tool. I just don’t see myself using another tool unless it is very strictly necessary. Which, considering Logseq is open source, I also don’t really see happening.

Better yet, the app will keep working for me as is right now. I have some nice to haves for it, but on the surface it does everything I need it to do.
This is why I can (for me) safely fully invest in the tool.

Though I can see that someone with different needs or wants may not feel that way.
Mine are pretty simple honestly. Because my notes are pretty simple as well.

Queries on a database are in a sense dynamic in their very nature. That said, it would be really nice if it had an export option.

That’s why I keep (for now at least) all my data in journal files and every bell and whistle Logseq or any other Plugins out there that I find useful can be used on Pages if they are dynamic or don’t output static data to the journals.

1 Like

Here’s a way to burn query metric values;


That looks amazing if you are a developer :no_mouth:. Is Metrics not possible outside Full House Templates? I have no javascript skills and understanding fullhouse templates seems quite dependent on having at least some basic js knowledge.

From as much as I could understand from it, I believe it might be possible, with Full House Templates, to call template blocks for specific dates as Daily Journal Pages? I am wishing Logseq would allow a daily journal template based on several conditions, like weekdays-based, holyday-based, start-of-month/end-of-month, birthdays-based, even vacation-based if I have setup a vacation interval ahead, in Logseq.

The Logseq Metrics Plugin looks quite useful as well, especially by using properties within the page. I might have missed this info but it seems that block-properties are not usable (" The other way is to simply store your own data as Journal properties and visualize the data using a Properties Chart. Simply add weight:: 20 to the first bullet of any Journal page, and this plugin can find and plot those values.").

Because I don’t like Block and Page properties as they are not playing well with Markdown, unless they can be wrapped in some Markdown syntax and Logseq still recognizes them, I will have to research Habit Tracking by means of Tags or Code-Blocks, like Mermaid does, but so far I am still in the very early research into this habit-tracking/graphs thing.

Yeah I don’t have experience with js either,
And understand this is not straight forward,
But it can be handy if your scenario is similar and resuse the code and plugin example.

1 Like

Regarding my original topic, the more I think of it, the more sense it makes to have each such drop-down list by means of [[ Logseq page Link]]. It’s the closest I get to a drop-down list, albeit single-selection.

I tested with a random Journalling Prompts from the web and I can create a Page named [[Journalling Prompts]] which includes, one on each line, these prompts enclosed in square brackets. To narrow down the listed Pages in the “drop-down”, I could add a denominator such as:


exclude-from-graph-view:: true

- [[ prompt: Is the work that I'm doing aligned with the vision I have for my career?]]
- [[ prompt: How can I lead with more empathy?]]
- [[ prompt: What is something I have been putting off that needs my attention?]]
- [[ prompt: What do I need help with to reach the next level in my career?]]
- [[ prompt: Is there something draining my energy, and how can I shift away from that?]]
- [[ prompt: What is a goal that is important to me, and how do I plan to achieve it?]]
- [[ prompt: What unhealthy thoughts have been consuming me lately, and how can I move my mindset away from them?]]
- [[ prompt: What are the limiting beliefs I think about myself that aren't true?]]
- [[ prompt: What is standing in the way of me meeting my goals?]]
- [[ prompt: What do I feel is lacking in my life right now?]]
- [[ prompt: Do I feel that I am on the path to getting burned out, and how can I reroute to prevent that?]]
- [[ prompt: Have I become too comfortable, and, if so, how can I start to challenge myself more?]]
- [[ prompt: What do I do when I'm upset over a work issue? Is it helping my situation or making things worse?]]
- [[ prompt: Do I have a quality support system in place? If not, how can I achieve that?]]
- [[ prompt: What are three things I can do today to help me be more successful?]]
- [[ prompt: Are there ways I can stop wasting my time?]]
- [[ prompt: How can I develop my mindset to set myself up for growth?]]
- [[ prompt: Do I let how other people's opinions of me prevent me from living my most authentic life?]]
- [[ prompt: When was the last time I faced a difficult situation at work, and how can I navigate it more efficiently the next time it happens?]]

Then, it’s as simple as searching for a Page:

I have used exclude-from-graph-view:: true to prevent these type of pages from appearing in the graph but I would also like to have an option to prevent Logseq from creating the files in the first place or adding a "." dot in front of them to have them hidden. Is there such a possibility?

Also, is there a way to let Logseq know I want a Logical AND between the words I am typing in between the square brackets? I like that it tries to filter down but it seems to do an OR between the terms I input:

I think putting quotation marks “” around a query makes it AND instead of OR. Like

“test1 test2”

instead of

test1 test2

The only downside, is that if this is strict search, which I think it is, then if the original note you’re searching for has two spaces or zero spaces or punctuation or anything else in between, then it won’t show up. I also found the OR type search doesn’t seem to show results that are spread across consecutive blocks.