Rouge 是一款用Ruby编写的可扩展代码高亮工具,它支持大量的语言。

安装Rouge

要在Asciidoctor中使用Rouge,你需要https://rubygems.org/gems/rouge[rouge gem^]。你可以使用以下方法之一来安装Rouge。

使用`gem`进行安装(适用于所有系统)
$ gem install rouge
使用 apt-get 安装(基于Debian的系统)
$ sudo apt-get install ruby-rouge
使用`dnf`安装(基于Fedora的系统)
$ sudo dnf install rubygem-rouge
在基于Arch Linux的系统中使用`pacman`进行安装
$ sudo pacman -S ruby-rouge

将rouge指定为源代码高亮器

一旦你安装了gem,就将`rouge`值分配给文档头部的`source-highlighter`属性,以激活它。

:source-highlighter: rouge

红色属性

您可以使用更多Rouge属性来进一步自定义源代码块的输出。

红色层叠样式表

控制哪种方法用于将CSS应用于令牌。可以是`class`或`style`。默认为`class`。

rouge-linenums-mode(目前尚未实现,详情见 #3641

控制行号的布局方式。可以是 tableinline。如果启用了对预格式化块(即 prewrap)的行包装,并且您希望在源代码块上使用行号编号,那么您必须将此属性的值设置为 inline,以便编号能够正确地与其目标行对齐。默认值:table

红色风格

控制用于高亮显示的颜色主题。您可以在https://github.com/rouge-ruby/rouge/tree/HEAD/lib/rouge/themes[Rouge代码仓库^]中找到主题列表。

通常,您会使用CLI或API来设置这些属性(例如,-a source-highlighter=rouge -a rouge-style=colorful),这样就不需要在每个文档中分别定义它们。然而,您也可以像下面的例子那样在每个文档中单独定义它们。

激活Rouge语法高亮显示器并应用不同的样式
:source-highlighter: rouge
:rouge-style: monokai

[,ruby]
----
puts "Hello, Rouge!"
----

您可以使用区块上的linenums选项来启用行号显示。

定制带有 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`属性,也可以为所有源代码块启用行号显示。