I think I don’t quite understand what you are trying to tell me.
A todo is a tag which means it is not living as a part of a rem. It means that Todo
is the type of that rem. This is combined with the template mechanic (Todo has the slot Status which can have either the value [[Unfinished]]
or [[Finished]]
). Furthermore Todo
is turned into a power up. A power up can define extra display style (hide slots like Highlight, Todo or add buttons like Edit Later) and special interactions (do something on keyboard shortcuts). But at the end of the day it is just a rem with a slot.
There is just one conceptual trick (or inconsistency if you want): Since the Status slot is hidden, searching for a status value will show you the parents of the [[Un/Finished]]
reference aka the #Todo
itself.
I think the Todo implementation is quite clean. At most a bit too simple since support for more states like ongoing and canceled would be nice.
Therefore I don’t think this limitation is the implementation of the todo, but the lack of more powerful search queries. But there is already a lot possible. Like showing all todos of the week (in daily documents)/a project/etc. Here an example of only 2 days (or projects/profiles/etc):
So from that perspective I think the original behavior of todos (display a checkbox, Ctrl + Enter, … as described above) does not matter too much in the Custom CSS context. Here an (un)checked code blocks is just interpreted based on the value of the Status slot to be disabled or not (which is the special extra logic of the ancestor Custom CSS power up rem). I find this actually a clever way to reuse the data of an otherwise well working feature of RemNote.
I merely propose interpreting the data in a different way in the context of the Custom CSS power up, not changing the behavior of todo itself.