TiddlyWiki:通过多个标签过滤 table 内容

TiddlyWiki: Filter table of contents by multiple tags

我有一个 tiddlywiki,里面有多个角色扮演游戏笔记。每个 tiddly 都标有其各自的游戏名称和类别(例如 "city" 或 "NPC")。

现在我想创建一个 table 的内容,仅列出例如一款游戏的 NPC。我想用 toc.

我目前的代码是这样的:

<div class="tc-table-of-contents">
<<toc 'NPC'>>
</div>

然而,这给了我所有的 NPC。如何添加另一个标签作为过滤条件?

大概来不及帮助你了,但对于遇到这个问题的任何其他人来说,toc 宏的 sort 参数可以包含一个或多个任意过滤步骤,因此你可以做:

<div class="tc-table-of-contents">
<<toc 'NPC' sort:"tag[SecondTag]">>
</div>

有关 toc 及其兄弟选项的完整说明,请参阅 Table-of-Contents Macros


如果您希望过滤器匹配多个条件并组合在一起,您可以说,例如 tag[one]tag[two]。但是,OR 条件并非真正设计用于此处,因为您需要多个 filter runs 在过滤器中执行 OR 条件,而 sort 命令只需要过滤步骤。

从 5.1.23 开始,这里有一个似乎适用于 OR 条件的技巧:

<div class="tc-table-of-contents">
<<toc 'TableOfContents' sort:"tag[one]][all[shadows+tiddlers]tag<__tag__>!has[draft.of]tag[two]">>
</div>

但是,这实际上是对 toc 宏进行注入攻击,所以如果我是你,我不会相信它会继续工作。如果你需要这么复杂的东西,你最好自己用一个或三个 $list 小部件来组装,而不是尝试使用 toc 宏。