There has been a lot of good discussion closely related to, but not related to my need. I need to very often generate flat list of related tiddlers in a hierarchy, but not using tags where “parents” are identified but rather using list where “children” are identified. Due to this difference, I’m using kin filters but keep hearing about how there are faster ways which I’m trying to take advantage of. Based on a comment that @EricShulman recently posted, I thought maybe that would be what I was looking for, but alas it’s actually slower than kin in my testing.
If anyone has something faster, please let me know!
This is an example of what my outline looks like using the list methodology. Due to the arbitrary nature of these sprawling outlines, I’m inclined to keep using lists instead of tags.
Producing this as a flat list using kin
takes about 20ms
<$list filter="[[2023-07-29]kin:list:from[]!title[2023-07-29]]">
<<currentTiddler>><br>
</$list>
But doing what I think is the fastest native equivalent - a recursive list takes about 25ms
\define outline-list()
<$list filter="[list<currentTiddler>]">
<<currentTiddler>>
<<outline-list>>
</$list>
\end
<$tiddler tiddler="2023-07-29">
<$wikify name="ordered-list" text=<<outline-list>>>
<$list filter="[<ordered-list>enlist-input[]]">
<<currentTiddler>><br>
</$list>
</$wikify>
</$tiddler>
I keep hearing about the taggingtree
being so much faster and I’m trying to get a piece of that! Note that I do need a flat list for navigational purposes (pressing up or down while editing has to go in a “linear” order through the hierarchy).
For testing purposes, here are tiddlers to go along with the macros.
tiddlers.json (1.6 KB)