Jekyll语法高亮降价代码块(不使用液体标签)
Jekyll中的语法突出显示仅限于使用液体标签和类似下面的代码:
{% highlight bash %} cd ~ {% endhighlight %}
但是我已经从wordpress导入了我现有的博客,并且使用降价代码块进行了降价(markdown),我不想通过每个post来修复代码块。 另外,我想保留我的post在纯markdown格式的情况下,我需要再次转换博客平台。
我把我的Jekyllparsing器切换redcarpet
,希望我可以使用这个markdown语法:
```bash cd ~ ```
但似乎没有工作。 它只是包装在一个正常的code
块。 有任何想法吗?
用Redcarpet 2 引入了围栏.Jekyll 现在支持 Redcarpet 2。
除此之外,我正在使用Redgepet和Rouge,直到Kramdown支持可用。
另外有些人更喜欢Nanoc去Jekyll。
替代解决scheme
Markdown允许HTML,所以如果你不介意添加一些JS,你可以这样做:
## A section Here is some Ruby code. <pre> <code class="ruby"> puts "hello" </code> </pre>
然后,您可以使用Highlight.js (文档在这里 )添加基于该类的突出显示。
这不是一个理想的解决scheme,但它应该适用于任何Markdownparsing器。
我结束了切换到kramdownparsingmarkdown与语法高亮coderay 。 这有一个纯粹的ruby解决scheme,在heroku上工作的好处。
第1步。安装Redcarpet 。
gem install redcarpet
第2步。像这样更新_config.yaml
的构build设置。
# Build settings #markdown: kramdown markdown: redcarpet
在最新的jekyll支持代码块,但如果你使用旧版本,你需要破解。
下面怎么样? 尝试添加下面的文件作为你的_plugin/triple-backtick.rb
module Jekyll class MarkdownConverter alias :old_convert :convert def convert(content) content.gsub!(/(?:^|\n)```(\w*)\n(.*\n)```\n/m) do |text| cls = $1.empty? ? "prettyprint" : "prettyprint lang-#{$1}" "<pre class=\"#{cls}\"><code>#{$2}</code></pre>" end old_convert(content) end end end
Redcarpet默认集成到Jekyll中,代码突出显示将按照预期运行。
对于较老的Jekyll博客:
-
安装地毯gem:
gem install redcarpet
-
更新_config.yaml
markdown: redcarpet
有关参考和更多信息,请参阅:
封闭的Github问题
更新了Jekyll Codebase
我已经介绍了两种替代解决scheme,将正确格式化的代码片段添加到您的Jekyll驱动的站点。 http://demisx.github.io/jekyll/2014/01/13/improve-code-highlighting-in-jekyll.html 。 他们不依赖第三方插件,并与免费的GitHub Pages托pipe兼容。
所以我也遇到了这个问题,并且在用Jekyll官方redcarpet2支持最终实现了很多地方之后,我的脑袋变得非常简单。 写在你的_config.yml
# Conversion markdown: redcarpet highlighter: pygments redcarpet: extensions: ["no_intra_emphasis", "fenced_code_blocks", "autolink", "strikethrough", "superscript"]
确保你有pygments的CSS文件,它包括在内。 这一步是重要的。
有关详细信息,请阅读我的博文http://blog.championswimmer.in/2015/10/jekyllsyntax-highlighting-in-github-favoured-markdown-codeblocks/ 。