我正在解析dita xml,我必须生成Confluence Storage Format。
我面临着与Anchor macro的困难,而dita格式有外部参照,其行为方式与html本地链接<xref href="#id">title</xref>....<any id="id"...
相同,汇合缝有自己独特的合成器。
有人有关于如何构建正确的锚并正确链接它的任何好例子吗?
anchor
宏实际上创建了一个HTML <span>
元素,其中包含一个包含页面标题和锚点的ID。
<span id="CONFLUENCEPAGENAME-ANCHORNAME" class="confluence-anchor-link"></span>
因此,如果您的汇合页面代表一个主题,那么应该很容易实现(因为CONFLUENCEPAGENAME
等于您的主题标题或密钥或ID或您使用的任何内容)。只需创建一个空的汇合页面,添加一个anchor
宏,保存它并检查渲染的HTML。
我终于弄明白了。
我们插入一个锚链接应该发送给用户,而不是在元素上的id,我将它插入标题的正上方。 <ac:structured-macro ac:name="anchor"><ac:parameter ac:name="">The_Id</ac:parameter></ac:structured-macro>
并且锚链接就是这样构建的。 <ac:link ac:anchor="The_Id"><ac:plain-text-link-body><[CDATA[text describing the link]]></ac:plain-text></ac:link>
在Confluence 5.7上测试
Saloparenator的答案中有一个小错误。锚链接是:
<ac:link ac:anchor="The_Id">
<ac:plain-text-link-body>
<[CDATA[text describing the link]]>
</ac:plain-text-link-body>
</ac:link>
如果您要链接的页面具有TableOfContents - 并且您希望从不同的page2链接到此page1中的某个部分...
查看第1页,然后单击TableOfContents中的链接,该链接将转到同一页面1上的部分。
现在从您的浏览器地址栏中复制此URL(它将类似于http://confluence/page1#anchor),然后转到您要放置链接的page2。
编辑page2,并粘贴指向page1的链接。