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



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

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

我不仅希望将这些url(每个tidler)显示为列表,还希望它们充当指向所述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作为<a>标签的href值。

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

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

那么我如何实现我前面提到的目标呢?是否有一种方法可以使用小部件本身的输出作为另一个wikitext表达式的值,或者有其他方法来实现我的目标?

提前感谢。

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

<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>

编辑:添加标题过滤器

相关内容

  • 没有找到相关文章

最新更新