链接到asciidoc中同一页面的部分

时间:2019-10-22 21:48:57

标签: asciidoc asciidoctor

我正在写一些将转换为HTML的文本,作为一个很长的一页。

无法弄清楚如何使用#some-id链接到HTML中的部分,因此用户单击时将在网页上向上或向下

<h2 id="some-id">Section A</h2>
<p>Lot's of lines</p>
<a href="#some-id">Go to section</a>

2 个答案:

答案 0 :(得分:1)

您指的是所谓的“内部交叉引用”。

内部交叉引用的标记是:

<<id,caption>>

其中id是页面上具有标识符(通常是标题)的元素,而caption是应显示在链接中的可选文本。

您可以链接到具有自动生成的ID的标题,但是ID的形成可能会根据属性idprefix和(对于Asciidoctor)idseparator而有所不同。默认设置是使标题文本小写,在下划线之前加上前缀,并在下划线替换空格和其他标点符号。标题“让我们来玩游戏!”的ID。应该是_lets_make_a_game

通常最好指定自己的ID,即使您编辑标题文本也可以保持稳定。您可以这样做:

[[id,label]]

其中id是您要指定的标识符,而label是可用于交叉引用的可选默认标签(如果交叉引用本身未指定{{ 1}})。

如果交叉引用指向的元素是标题,则可以省略标题和标签,链接将使用标题的文本作为自己的文本。

有关Asciidoc,请参见:http://asciidoc.org/userguide.html#_internal_cross_references

有关Asciidoctor,请参见:https://asciidoctor.org/docs/user-manual/#internal-cross-references

答案 1 :(得分:1)

另一种选择是使用link:宏。这是我的Asciidoctor文档之一的示例:

link:#_explore_the_public_directory[17.4. Explore the `public` directory]

关于此的信息在https://asciidoctor.org/docs/user-manual/#url中。以下是相关部分的摘录:

  

如果URL并非以一种常见方案开头,或者该URL没有单词边界包围,则必须使用链接宏。