使用 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 语法?