我可以看到独立于技术的Tridion 内容交付语言 (TCDL) 链接具有以下参数,这些参数在 SDL Live Content 上有很好的描述。
- 类型
- 起源
- 目的地
- 模板URI
- 链接属性
- 文本失败
- 添加锚
- 变体 ID
我们如何为 linkAttributes 添加多个属性值对?具体来说,我们使用什么来转义双引号以及单独的对(例如,如果我们需要 class="someclass"和onclick="someevent")。
我可以看到独立于技术的Tridion 内容交付语言 (TCDL) 链接具有以下参数,这些参数在 SDL Live Content 上有很好的描述。
我们如何为 linkAttributes 添加多个属性值对?具体来说,我们使用什么来转义双引号以及单独的对(例如,如果我们需要 class="someclass"和onclick="someevent")。
单独的对只是用空格分隔,就像一系列正常的属性一样。尝试 XML 编码linkAttributes
然而的值。所以,"
成为"e;
,等等...
如果您正在使用一些 Javascript,您也可能需要注意 Javascript 引号,如\"
.
编辑:在我弄清楚你真正的问题之后,答案要简单得多:
您应该将值包含linkAttributes
在单引号中。内部空间linkAttributes
通常处理得很好;但如果没有,请使用%20
.
如果您需要更多的东西或想要标准未处理的东西tcdl:ComponentLink
,请记住,您始终可以创建自己的 TCDL 标签并使用TagHandler
或TagRenderer
(在文档中查找示例或搜索 Jaime 的文章TagRenderer
)来做正是你想要的。
我最初的回答是针对一个你没有问的问题:TCDL 标签的格式是什么(一般来说)。但是这个解释可能对某些人仍然有用,所以仍然在下面。
我建议查看默认构建块(例如默认完成操作中的链接解析器 TBB)输出的格式,并将其用作指导方针。
这是我可以从已发布页面的传输包中快速获得的内容:
<tcdl:Link type="Page" origin="tcm:5-199-64" destination="tcm:5-206-64"
templateURI="tcm:0-0-0" linkAttributes="" textOnFail="true"
addAnchor="" variantId="">Home</tcdl:Link>
<tcdl:ComponentPresentation type="Embedded" componentURI="tcm:5-69"
templateURI="tcm:5-133-32">
<span>
...
我从经验中了解到的一件事:您的整个 TCDL 标记必须在一行中(我将上面的行包装起来只是为了便于阅读)。或者至少如果它用于调用 REL TagRenderer 就是这种情况。显然,tcdl:ComponentPresentation
上面的标签将跨越多行,因此“单行规则”并不适用于任何地方。
这可能是最好的建议:考虑到在 Tridion 发布、部署和交付管道中的多个点处理 TCDL 标签这一事实,我会坚持使用默认 TBB 输出的格式。从我的示例来看,这似乎是:将所有内容放在一行上并将值括在(双)引号中。