如何使用 tiddlywiki 小部件本身的输出作为另一个 wikitext 表达式的值?

问题描述

目前我正在尝试创建一个宏。该宏将在 $list 小部件中使用,该小部件将在一组 tiddlers 中循环使用(根据特定的过滤条件进行选择,这些条件本身与此处无关)。

在上面的 $list 小部件中,对于每个 tiddler,宏将遍历具有特定前缀(即“link_”)的 tiddler 的所有字段。这些字段包含作为其值的互联网 URL。

我不仅希望将这些 URL(对于每个 tiddler)显示一个列表,而且我希望它们充当这些 URL 的超链接

现在到目前为止,下面的宏已经起作用了:

\define myMacro(prefix:"")
<$list filter="[fields[]prefix[$prefix$]sort[title]]" variable="fieldName">

<$transclude field=<<fieldName>>/>

</$list>
\end

上面所做的只是简单地打印该字段的值(URL),同时确保它也充当该特定 URL 的超链接

但是

我希望进一步改进这一点。我希望这些链接的文本不是链接本身,而是自定义文本。

例如:

https://en.wikipedia.org/wiki/Computer_programming

对比

Computer Programming(超链接到同一页面,但带有自定义链接文本)

但是使用上面的 $transclude 方法似乎不可能完成上述操作,除非有一种方法可以将小部件本身的输出用作值。

我已经直接检查过类似的东西:

[[Custom link name|<$transclude field=<<fieldName>>/>]]

<a href=<$transclude field=<<fieldName>>/> >Custom link name</a>

不起作用。

我也尝试过其他方法,但它们不起作用。它们如何不起作用?

假设在那个特定的 tiddler 中有一个名为 list_1 的变量,它的值为 https://en.wikipedia.org/wiki/Computer_programming。我希望使用 https://en.wikipedia.org/wiki/Computer_programming 作为 href 标签<a> 值。

但是使用我尝试过的所有方法,我最多只能通过 list_1 访问值 <<fieldName>> 本身。

只有 $transclude 方法本身允许我使用 list_1 本身的值(即 https://en.wikipedia.org/wiki/Computer_programming),但它不允许您 AFAIK 将其用作另一个维基文本表达式中的值。

那么我如何实现上述目标?有没有办法将小部件本身的输出用作另一个 wikitext 表达式的值,或者有没有其他方法可以实现我的目标?

提前致谢。

解决方法

不确定我是否理解您的目标,但这绝对是错误的:

<a href=<$transclude field=<<fieldName>>/> >Custom link name</a>

您应该使用

<$link to={{{[[title]get<fieldName>]}}}>Custom link name</$link>

<$link to={{{[<variableWithTitle>get<fieldName>]}}}>Custom link name</$link>

编辑:添加标题以过滤