I need your advice guys because I’ve hit a blocking point atm.
Background info: I don’t use Logseq TODOs because I need some specific workflows and I am using status::
properties instead and specific #status1, #status2, etc (in my language) for the values. I also wanted to have a visual cue in the block title so I am using icons for blank and checked checkboxes like so:
🔳 Task:
status:: #defacut
I am adding the above block template via a custom command (“<task”) and it would leave the cursor right after the colon in the title so I can start typing right away. When I finish the task I usually double click the unicode icon and use another custom command (“<.”) to replace it with the “checked” one (“
”). I find this quite intuitive and fast and I got it into a reflex so that I do it without thinking much. But I never change the property status::
to “#finalizat” and I would so much need an automatic way that would replace the status when the checkmark is “found” in the block title…
I know this isn’t some general thing people do but it serves me well and I can query for the “
” instead of the property but it would be much nicer if I can also update the property and do the query-ing by property value rather than after a symbol. Any ideas how to achieve this?
BTW: i tried from powershell but it doesn’t read unicode characters well …
Sounds like in first place you need a macro to render a checkbox with all the custom functionality.
I imagine there should be a “Listener”-type macro that would “sync” the Status
property based on another “customizale” “clue” in the Block Title.
I would imagine having a map/dictionary of corresponding pairs defined in the config.edn, for example:
status: {{ "🔳", "#defacut"} {"☑️", "#finalizat"} {etc}}
I believe this would work for a TODO block as well so that a property Status::
would mirror the status of the TODO string (“TODO”). So when the user starts a block, hits Ctrl+Enter to create a TODO item and goes on with writing the task, the listener would look for a property in the block that is named status::
and would replace it’s value with the corresponding value in the dictionary definition or would add the property .
status { {"TODO","#todo"} {"DOING","#doing"} {"DONE","#done"} }
This workflow of mine is both about “custom todo workflows” as well as about “creating block properties as you type”, both of which I and some others have written on different posts in this forum. Just that now it’s much more obvious to me that I need some sort of a solution to it.
I have a solution which involves post-processing the markdown files and replacing, with REGEX, the status property with the `#finalizat" text whenever the block title has as the first character in the Title the symbol:
☑️
I just find it not ideal to have to do it from VSCodium or even from a script that I run from time to time or even as a scheduled job.