Soren, Its late here but I have done something similar in the past without a performance hit, and will try and create a solution tomorrow, However I think the answer best answer may be through the use of a filter run as in 5.3.23+ however I am sure I succeeded in something similar a few versions ago.
No need for reduce and accumulators I think. Regards Tones On Tuesday, 20 July 2021 at 13:09:18 UTC+10 Soren Bjornstad wrote: > Hi all, > > I want to determine what tabs of the Reference Explorer in my Zettelkasten > to show on a template, such that if there aren't any results on that tab, > the tab doesn't appear at all. The results of the tab are produced based on > a filter (of course), so I figured I would also determine whether the tab > appears by running a filter. The filter is stored in a field in the tab > tiddler. > > That is, I have a series of tiddlers with a certain tag (say *Tab*), and > each of these tiddlers contains a filter in some field (say *condition*). > For each Tiddler tagged Tab, if and only if the filter Tiddler!!condition, > run with the current tiddler as input, has more than zero results, I want > to display the tab. > > I came up with the following: > > <$set name="tabList" value={{{ [tag[Tab]] > :reduce[<storyTiddler>subfilter{!!condition}then<currentTiddler>addprefix[ > ]addprefix<accumulator>] }}}> > <$macrocall $name="tabs" tabsList=<<tabList>>/> > </$set> > > This produces the correct result (well, as long as there are no spaces in > the titles of the tiddlers tagged *Tab*; I'm OK assuming that since there > indeed aren't any). The problem is that it is horrendously slow to run all > these filters. On my dev machine it is tolerable, but this is a machine > specced for serious processing power. On my MacBook Air it now takes 1–2 > seconds to open a new tiddler, even without anything currently open! > > Probably I am just asking TW to do too much on the fly here, but before I > start rethinking the project too hard, can anyone think of obvious > optimizations I might be missing here? The filters involved are moderately > complex (the basic pattern for each is to gather together links[], > backlinks[], and tagging[] for the story tiddler, then filter some things > out of that using + and !*operator*[]'s). > -- You received this message because you are subscribed to the Google Groups "TiddlyWiki" group. To unsubscribe from this group and stop receiving emails from it, send an email to tiddlywiki+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/tiddlywiki/a17374a3-ecb3-47a2-aaed-05a617f5ff9fn%40googlegroups.com.