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

问题描述 投票:0回答:1

我的全局宏显示了具有特定标记的所有tiddlers的列表。标签取自调用宏的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>
list macros sidebar tiddlywiki tiddlywiki5
1个回答
1
投票

事实证明,"tiddlers in the sidebar do not have the current tiddler set"。这就是问题的根源。

© www.soinside.com 2019 - 2024. All rights reserved.