目前我正在尝试创建一个宏。宏将在$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>
编辑:添加标题过滤器