呼叫号码(又称标注)提供了一种在代码块中为行添加注释的方法。

呼叫语法

在逐字代码块中使用的每个标注数字必须出现两次。第一次使用,位于逐字代码块内,标记正在注释的行(即目标行)。第二次使用,位于逐字代码块下方,定义注释文本。单行可以使用多个标注数字。

Important
标注号码(在目标处)必须放置在线条的末端。

这是一个使用标注的代码直录块的基本示例:

呼叫语法
Unresolved directive in callouts.adoc - include::example$callout.adoc[tag=basic]

呼叫语法的结果在下面呈现。

Unresolved directive in callouts.adoc - include::example$callout.adoc[tag=basic]

由于标注号可能会干扰它们所注释代码的语法,一个AsciiDoc处理器提供了多个功能来在源代码和转换后的文档中隐藏这些标注号。以下部分将详细介绍这些功能。

可复制粘贴的显眼提示

如果您在verbatim(例如源代码)块中给示例代码添加了标注号,当读者选择生成的HTML中的那段源代码时,我们不希望这些标注号被一并复制。如果读者将这段示例代码粘贴到代码编辑器中尝试运行,那些定义标注号的额外字符很可能会导致编译或运行时错误。为了缓解这个问题,AsciiDoc处理器使用CSS规则来防止选中标注。这样,标注号就不会被复制。

从另一方面讲,你也不希望标注批注或CSS破坏了你的原始源代码。你可以将你的批注巧妙地藏在行注释后面。当启用基于字体的图标时(例如,icons=font),AsciiDoc处理器将识别行注释字符前的批注数字——可选择性地偏移一个空格——并在转换文档时将其移除。当没有启用基于字体的图标时,行注释字符不会被移除,以便批注数字仍然被行注释隐藏。

这里是支持的行注释:

阻止呼叫框的复制和粘贴
Unresolved directive in callouts.adoc - include::example$callout.adoc[tag=b-nonselect]

'''阻止呼叫框的复制和粘贴的结果如下所示。'''

Unresolved directive in callouts.adoc - include::example$callout.adoc[tag=b-nonselect]

自定义行注释前缀

AsciiDoc处理器识别最普遍的行注释前缀,以方便用户。如果您嵌入的源语言不支持这些行注释前缀之一,您可以使用块上的`line-comment`属性来自定义前缀。

让我们假设我们想要在Erlang代码中的行注释后面加上一个标注。在这种情况下,我们会将`行注释`字符设置为`%`,如下例所示:

自定义行注释前缀
Unresolved directive in callouts.adoc - include::example$callout.adoc[tag=line-comment]

The result of 自定义行注释前缀 is rendered below.

Unresolved directive in callouts.adoc - include::example$callout.adoc[tag=line-comment]

即使在属性中没有指定,但仍然允许在行注释前缀紧接着的位置有一个空格。

禁用行注释处理

如果你嵌入的源语言不支持尾随行注释,或者行注释前缀被误解释,你可以使用`line-comment`属性来禁用这个特性。

假设我们想在AsciiDoc中开放块的块定界符末尾添加一个标注。在这种情况下,处理器会认为双连字符是行注释,而实际上它是块定界符。我们可以通过将`line-comment`字符设置为空值来禁用行注释处理,如下例所示:

没有行注释前缀
Unresolved directive in callouts.adoc - include::example$callout.adoc[tag=disable-line-comment]

没有行注释前缀的结果如下所示。

Unresolved directive in callouts.adoc - include::example$callout.adoc[tag=disable-line-comment]

由于该语言不支持尾随行注释,因此无法在原始源代码中隐藏标注编号。

XML标注

XML没有行注释,因此我们的“将标注隐藏在行注释后面”的技巧在这里行不通。要在XML中使用标注,必须将标注的尖括号放在XML注释和标注编号的周围。

这是它在列表中的显示方式:

XML 叫出语法
Unresolved directive in callouts.adoc - include::example$callout.adoc[tag=source-xml]

XML 叫出语法的结果如下所示。

Unresolved directive in callouts.adoc - include::example$callout.adoc[tag=source-xml]

注意,注释已被无法选择的带圈数字替换(如果不使用字体图标,则会以不同的方式渲染并且可以选择)。现在,您和读者都可以复制和粘贴包含标注的XML源代码而不必担心错误。

标注图标

字体图标设置还允许使用CSS绘制的标注图标。

Unresolved directive in callouts.adoc - include::example$callout.adoc[tag=co-icon]
  1. 在HTML5后端激活基于字体的图标。

  2. 使用基于字体的图标的警告块。