使用 Pygments 在 Jekyll 中突出显示围栏代码块

Posted

技术标签:

【中文标题】使用 Pygments 在 Jekyll 中突出显示围栏代码块【英文标题】:Highlighting fenced code blocks in Jekyll using Pygments 【发布时间】:2016-06-30 09:18:17 【问题描述】:

如何使用 Pygments 突出显示 Jekyll 中的围栏代码块?

```c
for(int i = 0; i < n; i++)
   ...

```

不起作用。我必须这样写:

% highlight c %
for(int i = 0; i < n; i++)
   ...

% endhighlight %

我不喜欢使用 Liquid 标签,我正在使用 Kramdown。 我还没准备好从 Kramdown 切换到 Redcarpet。 Rouge 可以很好地处理受保护的代码块,但我想使用 Pygments,因为它支持更多的编程语言。This problem 与我的相似,只是它太旧了。

【问题讨论】:

【参考方案1】:

Jekyll 不理解开箱即用的防护代码块。这可以通过 Github Flavored Markdown(又名 GFM)参数 (see documentation) 轻松解决。

_config.yml,设置:

kramdown:
  input: GFM

但是:Jekyll 3.x 的默认荧光笔现在是rouge,它为a lot of languages 进行代码高亮并且不需要安装python。

【讨论】:

但并不是 Pygments 知道的所有语言。无论如何,很多人都会安装 Python。 Pygments 支持的语言比 rouge 多。即使我将 kramdown 设置为接受 GFM,围栏代码块也没有正确呈现。

以上是关于使用 Pygments 在 Jekyll 中突出显示围栏代码块的主要内容,如果未能解决你的问题,请参考以下文章

在 Jekyll/Liquid 和 pygments 的 html 问题中突出显示

在 Jekyll 中突出显示 Pygments 语法,无需启动 <div>

Jekyll 博客中突出显示的 pygments 的奇怪背景色调

Jekyll - 如何更改突出显示字体系列的 pygments 语法?

在 Jekyll 中使用 Pygments 代码高亮显示文件名

为啥 pygments 突出显示有背景颜色?