1

目前我正在尝试创建一个宏。该宏将在一个$list小部件中使用,该小部件将循环通过一组提琴手(根据某些过滤标准选择,这些标准在此处不相关)。

在上述$list小部件中,对于每个 tiddler,宏将遍历所有具有特定前缀(即“link_”)的 tiddler 字段。这些字段包含作为其值的 Internet 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

对比

计算机编程(超链接到同一页面,但带有自定义超链接文本)

但是用上面的方法做上面的事情似乎是不可能的,$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 表达式中的值。

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

提前致谢。

4

1 回答 1

2

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

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

您应该使用 <$link 小部件为属性值创建链接和过滤器

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

或者

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

编辑:添加标题到过滤器

于 2021-01-18T15:50:03.227 回答