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)
-
控制行号的布局方式。可以是
table
或inline
。如果启用了对预格式化块(即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`属性,也可以为所有源代码块启用行号显示。