我正在整理一些TiddlyWiki模板,而且我遇到了一些很好的东西,但我不确定它是否真的可能。
我有一些小提琴,我使用tabs
宏包含在另一个小提琴中。每个tiddler都有两个与之关联的标签之一。我想根据与哪个标记相关联,在标签视图中的caption
附加一段文字。
我不喜欢是否通过在保存时添加某种回调来编辑caption
来完成此操作,这可以某种方式动态计算所需的caption
,更改tabs
宏的调用以重新计算渲染上的caption
,或以某种方式使模板计算caption
字段。
我还没有找到任何有希望通过文档的内容,但也许我还没有弄清楚与我的问题有什么关系。我发现这种情况发生了很多。
就像,我确定我可以根据标签是否存在来编写条件,但我无法根据任何类型的计算看到将文本插入caption
字段的任何方法
作为参考,这是我当前的宏调用:
<<tabs [list[]] state:$:/state/tabPeriod template:PeriodTemplate>>
<<tabs [list[$(currentTab)$]] state:$:/state/tabEvent class:"tc-vertical" template:"EventTemplate">>
<<tabs [list[$(currentTab)$]] state:$:/state/tabScene template:"SceneTemplate">>
所有这些行都来自不同的模板,只需提取一个tiddlers列表,然后使用提供的模板将模板转换为制表符。 目前,标签带有tiddler caption
标题(如果已定义),并回退到title
。我想改变标题,理想情况是不要在tiddlers中插入过多的样板。
答案 0 :(得分:2)
我想出了我需要做的不同:我根据tabs宏定义了一个自定义宏,添加了逻辑,现在它工作正常。我基本上只是将字幕逻辑的当前内容更改为:
<$set name="tv-wikilinks" value="no">
<$transclude tiddler=<<currentTab>> field="caption">
<$macrocall $name="currentTab" $type="text/plain" $output="text/plain"/>
</$transclude>
<$list filter='[<currentTab>tag[light]]'>
○
</$list>
<$list filter='[<currentTab>tag[dark]]'>
●
</$list>
</$set>
我不确定我是否正确使用了列表小部件,但它确实有效。