To figure out WHY your initial usage didn’t work, we need to look at HOW the Shiraz plugin uses the sv-exclude-tags
variable.
One tiddler is listed: $:/plugins/kookma/shiraz/templates/body/tags
In that code, we can see the reference to tv-exclude-tags
here:
<$list filter="[<currentRecord>tags[]sort[title]] :except[subfilter<sv-exclude-tags>]">
Note that the variable is used as the parameter value for a subfilter
operator. As such, the variable MUST contain valid filter syntax, and {{!!title}}
(with doubled curly braces) is only for use within wikitext. For filter syntax, you would need to use single curly braces, and enclose that within square brackets, like this: [{!!title}]
.
However, that likely also won’t work, because it depends upon the value of the currentTiddler
variable, which might be different from the tiddler from which you invoked the <<table-dynamic>>
macro in the first place because the Shiraz macro undoubtedly uses many $list
widgets, any one of which could have changed the value of currentTiddler
.
The reason @vilc’s answer works, is that using <$let sv-exclude-tags=<<currentTiddler>>>
(or alternatively, <$let sv-exclude-tags={{!!title}}>
before invoking <<table-dynamic>>
ensures that the variable is set to the literal text value of the current tiddler’s title at that point in time, and is thus not subject to any further evaluation later on, when it is used deep within the Shiraz code.
However, also note that this assumes that the title of the invoking tiddler does not contain any spaces. Otherwise, each word in the title would wind up being treated as separate values when the subfilter<sv-exclude-tags>
is used in the Shiraz code. To avoid this possibility, you could write:
<$let sv-exclude-tags={{{ [{!!title}format:titlelist[]] }}}>
which ensures that a multi-word tiddler title will be automatically enclosed within doubled square brackets, so that it will be handled later on as a single value, rather than a list of multiple word values.
-e