在 TiddlyWiki (5) 中,我的宏在 tiddlers 中工作,除非出现在侧边栏中

In TiddlyWiki (5) my macro works in tiddlers, except when appearing as sidebar

我的全局宏显示了带有特定标签的所有 tiddler 的列表。该标签取自调用宏的 tiddler 的列表字段。该宏在常规 tiddler 中使用时工作正常,但如果我通过 $:/tags/SideBar 将 tiddler 设置为侧边栏,侧边栏显示选项卡,但内部没有任何内容。

当我如下明确标识标签时调用宏时,我的原始版本有效:<<activityList book>>,但我真正想要的是将标签(书)放在一个字段中并拉取它:<$macrocall $name=activityList category={{!!list}} />.

我制作了另一个版本,效果如下: 它使用与上面相同的宏调用,但现在列表字段中有 [book],如 <<revisedActivityList [book]>>

这是第一个宏(第3行和第4行无关,只是输出):

\define activityList(category:""  tag:"tag[") 
<$list filter="[$tag$$category$]]">
&raquo; <$link to=<<currentTiddler>>><$view field=title/></$link><br>
{{||$:/core/ui/ViewTemplate/tags}}
</$list>

呼叫者:

<$macrocall $name=activityList category={{!!list}} />

在此版本中,括号由列表宏过滤器参数提供。请注意不寻常的第二个参数(它允许我从按标签搜索切换到按另一个过滤函数搜索,例如 has 或 is)。这不是真正必要的,但我发现它有效。

我修改了这个以修复括号并将括号放在列表 FIELD 中,认为这是问题所在。

\define revisedActivityList(category:"" tag:"tag") 
<$list filter="[$tag$$category$]">
&raquo; <$link to=<<currentTiddler>>><$view field=title/></$link><br>
{{||$:/core/ui/ViewTemplate/tags}}
</$list>

原来是"tiddlers in the sidebar do not have the current tiddler set"。这就是问题的根源。