不要与source highlighting)混淆,你可以高亮(即,强调)源代码块中的特定行,以此来吸引注意力。

使用标准

如果满足特定条件,可以对源代码块应用行高亮显示。

source-highlighter`

用于在源代码块上使用`highlight`属性的标准

coderay

一个附加属性标记 * 代码块上启用了`linenums`选项。 * highlight`属性定义在区块上。

行高亮只会强调行号本身。

rouge

* highlight` 属性被定义在块上。 * 支持行高亮显示的CSS由docinfo提供。 (即使设置了`rouge-css=style`,也需要这个CSS)。

pygments

* 在块上定义了`highlight`属性。

highlight.js

不适用。

使用highlight.js时,不提供行高亮功能。

高亮属性

如果定义了高亮属性并且至少一个行号落在这个范围内,那么行高亮将在源代码块中被激活。

Important
请记住,一些语法高亮库需要额外的选项(例如,CodeRay和Rouge),而有些则根本不支持行高亮(例如,highlight.js)。

"`highlight` 属性接受一个由逗号或分号分隔的行范围列表。这些数字对应于源代码块的行号。如果没有指定 start 属性,源代码块的行号将从 1 开始。"

以下是一些例子:

  • 1

  • 二,四,六

  • 三点五

  • 2,7..9

一段范围由两个数字组成,数字之间用双点(例如,2..5)隔开。该范围是包括性的。

代码光线

当source-highlighter=coderay时,高亮选中的行
= 文档标题
:source-highlighter: coderay

[%linenums,ruby,highlight=2..5]
----
ORDERED_LIST_KEYWORDS = {
  'loweralpha' => 'a',
  'lowerroman' => 'i',
  'upperalpha' => 'A',
  'upperroman' => 'I',
}
----

当使用CodeRay作为源代码高亮器时,`linenums`选项是使用行高亮的必要条件。这是因为行高亮只应用于行号,行号会使用粗体文字来强调。CodeRay不会对代码本身的行进行着色。

红色

当source-highlighter=rouge时,高亮显示选定的行
= 文档标题
:source-highlighter: rouge :docinfo: shared

[,ruby,highlight=2..5]
----
ORDERED_LIST_KEYWORDS = {
  'loweralpha' => 'a',
  'lowerroman' => 'i',
  'upperalpha' => 'A',
  'upperroman' => 'I',
}
----

当使用Rouge作为源代码高亮器时,你必须提供CSS来支持行高亮显示。你可以通过将所需的行高亮显示CSS存储在docinfo文件中,然后通过设置`docinfo`文档属性将其包含在输出文档中。

支持使用Rouge进行行高亮显示的文档信息文件(docinfo.html)
<style>
pre.rouge .hll {
  background-color: #ffc;
  display: block;
}
pre.rouge .hll * {
  background-color: initial;
}
</style>

请注意,即使当`rouge-css=style`时,也需要这个补充的CSS。Rouge集成并没有将行高亮的CSS嵌入到每一行标签的style属性中。相反,它会在标签上设置`hll`类(例如,<span class="hll">)。

Pygments

当source-highlighter=pygments时,突出显示选定的行。
= 文档标题
:source-highlighter: pygments

[,ruby,highlight=2..5]
----
ORDERED_LIST_KEYWORDS = {
  'loweralpha' => 'a',
  'lowerroman' => 'i',
  'upperalpha' => 'A',
  'upperroman' => 'I',
}
----