似乎Jekyll中的语法高亮显示仅限于使用液体标记和pypyts,如:
{% highlight bash %}
cd ~
{% endhighlight %}
但是我已经从wordpress导入了我现有的博客,它是在markdown(使用markdown代码块)中编写的,我不想要通过每篇文章和修复代码块。此外,我想保持我的文章在纯降价格式,以防我需要再次切换博客平台。
我把我的Jekyll解析器切换到redcarpet
,希望我可以使用这个降价语法:
```bash
cd ~
```
但它似乎不起作用。它只是把它包装在一个普通的code
块中。什么好主意吗?
围栏介绍了红地毯2。化身现在支持Redcarpet 2 .
作为题外话,我使用红地毯与胭脂直到Kramdown支持可用。
此外,有些人更喜欢Nanoc哲基尔。
备选方案
Markdown允许HTML,所以如果你不介意添加一点JS,你可以这样做:
## A section
Here is some Ruby code.
<pre>
<code class="ruby">
puts "hello"
</code>
</pre>
然后你可以使用Highlight.js(文档在这里)来基于这个类添加高亮。
这不是一个理想的解决方案,但它应该适用于任何Markdown解析器
我最终切换到kramdown来解析markdown,这是coderay附带的语法高亮显示。这是一个纯ruby解决方案,可以在heroku上工作。
步骤1。安装红地毯。
gem install redcarpet
步骤2。像这样更新_config.yaml
中的构建设置
# 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博客:
-
Install redcarpet gem:
gem install redcarpet
更新_config.yaml markdown: redcarpet
参考和进一步的信息见:
关闭Github Issue
更新的Jekyll代码库
所以我也遇到了这个问题,在我的头撞了很多地方后,终于意识到在Jekyll的官方redcarpet2支持下,这很简单。将此写入_config.yml
# Conversion
markdown: redcarpet
highlighter: pygments
redcarpet:
extensions: ["no_intra_emphasis", "fenced_code_blocks", "autolink", "strikethrough", "superscript"]
确保您有pyents css文件,并且包含它。这一步很重要。
您可以阅读我的博客文章http://blog.championswimmer.in/2015/10/jekyllsyntax-highlighting-in-github-favoured-markdown-codeblocks/了解详情
您也可以使用三斜线语法:
~~~ruby
class Base
def two
1 + 1
end
end
~~~