Rouge
Rouge 是一个用 Ruby 编写的可扩展的代码高亮器,支持多种语言。
安装 Rouge
要将 Rouge 与 Asciidoctor 一起使用,您需要 rouge gem。您可以使用以下方法之一来安装 Rouge。
- 使用
gem安装(所有系统) -
$ gem install rouge
- 使用
apt-get安装(Debian 系系统) -
$ sudo apt-get install ruby-rouge
- 使用
dnf安装(Fedora 系系统) -
$ sudo dnf install rubygem-rouge
- 使用
pacman安装(Arch Linux 系系统) -
$ sudo pacman -S ruby-rouge
将 Rouge 分配给 source-highlighter
安装好 gem 后,在文档头中将 rouge 值分配给 source-highlighter 属性以激活它。
:source-highlighter: rouge
Rouge 属性
您可以使用其他 Rouge 属性进一步自定义源代码块的输出。
- rouge-css
-
控制用于将 CSS 应用于 token 的方法。可以是
class或style。默认值:class。 - rouge-linenums-mode(当前未实现,请参见 #3641)
-
控制行号的布局方式。可以是
table或inline。如果预格式化块启用了行换行(例如,prewrap),并且您想在源代码块上使用行号,则必须将此属性的值设置为inline,以便数字能正确地与其目标行对齐。默认值:table。 - rouge-style
-
控制用于高亮的颜色主题。您可以在 Rouge 代码仓库 中找到主题列表。
通常,您会通过 CLI 或 API(例如,-a source-highlighter=rouge -a rouge-style=colorful)设置这些属性,这样就不必在每个文档中定义它们。但是,您也可以在每个文档中定义它们,如下例所示。
示例 1. 激活 Rouge 语法高亮器并应用不同的样式
:source-highlighter: rouge
:rouge-style: monokai
[,ruby]
----
puts "Hello, Rouge!"
----
您可以使用块上的 linenums 选项启用行号。
示例 2. 使用 Rouge 行号自定义源代码块
:source-highlighter: rouge
[%linenums,ruby]
----
ORDERED_LIST_KEYWORDS = {
'loweralpha' => 'a',
'lowerroman' => 'i',
'upperalpha' => 'A',
'upperroman' => 'I'
#'lowergreek' => 'a'
#'arabic' => '1'
#'decimal' => '1'
}
----
还可以通过在文档上设置 source-linenums-option 属性来为所有源代码块启用行号。