提笔忘字

Rouge 插件支持 Jekyll 代码高亮

Jekyll 内置支持使用 Rouge 或 Pygments 对代码片段进行语法高亮显示,Rouge 是 Jekyll 3 及更高版本中的默认语法高亮显示,且支持 Github Pages。

安装 Rouge

安装 Rouge 和普通的 Jekyll 插件安装一样:

$ gem install rouge

然后在 _config.yml 文件声明使用:

highlighter: rouge

如果你使用 kramdown,那么添加以下内容:

markdown: kramdown
kramdown:
input: GFM
syntax_highlighter: rouge

使用 Rouge 代码语法高亮

Rouge 可以支持 100 多种语言的语法突出显示,参考官方说明。要使用语法突出显示来呈现代码块,示例如下:

{% raw %}
{% highlight ruby linenos %}
def foo
  puts 'foo'
end
{% endhighlight %}
{% endraw %}

包含 linenos 参数将强制突出显示的代码包含行号。

Rouge 样式

Rouge 提供了一些语法突出显示样式主题,参考官方说明:Rouge 主题文档 / Rouge 主题

Rouge 内置有 rougify,这是一个将样式主题转换为 CSS 文件的命令行工具,参考上面链接的文档使用。

特殊代码处理

{% assign openTag = ‘{%’ %}

Markdown 解析代码块时,如遇到 Liquid 的源码,由于转义字符 { 及 },会使用得 Liquid 的部分不被渲染,可以用标签 {{ openTag }} raw %}{{ openTag }} endraw %} 包裹转义字符进行处理。

参考资料

#Jekyll