Hi, I was working and at one point I realized that the tabs in the sidebar were in the wrong order.
After some testing to understand where this problem came from I realized that if I have two tiddlers with the same two tags and I change the order of the list field of one of the two tags via drag and drop (doing so manually prevent this issue, but is really inconvenient) all list-before and all ilst-after are deleted.
This is a known thing, as explained in the documentation (for example here) But the fact remains that this fact in many cases causes issues.
Is there a way to make sure this doesn’t happen? I wouldn’t want to remove the function that clears the list-after/list-before
fields because I understand why it exists, and in fact it is useful. But maybe something that does the same thing as list-after/list-before
without having their name and therefore not being deleted if you use a drag and drop.
If you want to try this, drag and drop this in a TiddlyWiki tiddlers(7).json (611 Bytes)
You can see if you manually edit the list field of the tag Bookmark, nothing happens, but if you use a drag and drop, the one in the tag-pill or even the list-tagged-draggable macro, the list-after/list-before fields are deleted.
If there is no workaround (and it seems to me that there isn't, but I'm not very expert, so maybe there is) I would propose this:
What if, when we define list-after/list-before, we could specify which tags they apply to. (To limit the scope of the list-after/list-before
)
For example:
list-after: Tag:"$:/tags/SideBar"-Tiddler
Or maybe we define the tag directly in the field name, I don’t know which could be better.
I don’t know how or how hard could it be to implement, just putting the idea out there.
At this point, if a tag is specified in list-after/list-before
it will not be deleted in drag and drop, unless I’m doing a drag and drop operation that modifies the list field of that tag. (e.g. if i have a list-after limited to $:/tags/SideBar
, a drag and drop operation inside a <<list-tagged-draggable tag:"$:/tags/SideBar">>
or a tag-pill <<tag $:/tags/SideBar>>
…)