在 Jekyll 中实现 Code Prettify 时遇到问题——想使用 `` 而不是 <pre></pre>

Having trouble implementing Code Prettify in Jekyll—want to use `` instead of <pre></pre>

我一直在尝试实现 Code Prettify in my Jekyll blog。我遵循了一些指南并能够实施它,但这并不理想。这就是我所做的:

1- 我去了 _includes 并在 head.html 中添加了必要的文件:

旭日主题:

<script src="https://cdn.rawgit.com/google/code-prettify/master/loader/run_prettify.js?autoload=true&amp;skin=sunburst&amp;lang=css" defer="defer"></script>

主题的CSS文件(在GitHub我的css文件夹中):

<link rel="stylesheet" href="/css/prettify.css" rel= 'stylesheet' type='text/css'>

2- 比如我用标签<pre class= "prettyprint"></pre>来测试一下。正如您在此 post 中看到的(代码块位于页面底部),它确实有效。如果您注意到,您会发现缺少 <iostream> 因为我使用了 <pre></pre> 因此它看到 <> 字符,将它们视为 HTML 并且不显示 <iostream>.这是它的样子:

我可以使用 HTML 个实体来修复它,但这并不理想。我已经搜索了 2 个小时,但找不到解决此问题的可靠来源。


所以我的问题是:

是否可以使用 `` 而不是 <pre></pre>Code Prettify 在 markdown 中工作?如果没有,是否有另一种方法可以在 Jekyll 中实现它?或者让它更容易使用?如果这些 none 是可能的,是否有更好的替代 Jekyll 支持 Code Prettify

如果您需要查看其他文件,请查看我的 repository

使用 Jekyll,您可以使用两种高亮方法:

反引号式围栏代码

_config.yml中设置:

kramdown:
  input: GFM

像这样突出显示您的代码:

``` c
include <iostream>
using namespace std;

int main () {
cout << "and then there were none" << endl;
return 0;
}
```

带有高亮液体标签

{% highlight c %}
include <iostream>
using namespace std;

int main () {
cout << "and then there were none" << endl;
return 0;
}
{% endhighlight %}

造型

样式来自 _scss/_syntax-highlighting.scss.

我目前使用的代码高亮插件是"jekyll-rouge",它很好地支持'''风格的markdown:

https://sacha.me/articles/jekyll-rouge/