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 [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/tiddlywiki/a17374a3-ecb3-47a2-aaed-05a617f5ff9fn%40googlegroups.com.