似乎Jekyll中的语法突出显示仅限于使用液体标签和pygments:
{% highlight bash %}
cd ~
{% endhighlight %}
但是我从wordpress导入了我现有的博客,它是用markdown编写的(使用markdown代码块),我不想通过每个帖子修复代码块。此外,我想以纯缩写格式保留我的帖子,以防我再次需要切换博客平台。
我将我的Jekyll解析器切换到redcarpet
,希望我能使用这种降价语法:
```bash
cd ~
```
但它似乎不起作用。它只是将它包装在一个普通的code
块中。有什么想法吗?
答案 0 :(得分:20)
围栏块 were introduced 与Redcarpet 2. Jekyll now supports Redcarpet 2。
另外,我正在使用Redcarpet Rouge 直到 Kramdown support 是可用的。
另外有些人更喜欢 Nanoc 到杰基尔。
答案 1 :(得分:15)
Markdown允许HTML,所以如果你不介意添加一些JS,你可以这样做:
## A section
Here is some Ruby code.
<pre>
<code class="ruby">
puts "hello"
</code>
</pre>
然后,您可以使用Highlight.js(文档here)根据该类添加突出显示。
这不是一个理想的解决方案,但它应该适用于任何Markdown解析器。
答案 2 :(得分:8)
答案 3 :(得分:4)
第1步。安装Redcarpet。
gem install redcarpet
第2步。更新_config.yaml
中的构建设置。
# Build settings
#markdown: kramdown
markdown: redcarpet
答案 4 :(得分:1)
在最新的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
答案 5 :(得分:1)
Redcarpet默认集成到Jekyll中,代码突出显示将按预期运行。
对于较旧的Jekyll博客:
安装redcarpet gem:
gem install redcarpet
更新_config.yaml
markdown: redcarpet
有关参考和进一步信息,请参阅:
答案 6 :(得分:0)
我已经描述了两种替代解决方案,可以将正确格式化的代码段添加到您的Jekyll驱动网站。 http://demisx.github.io/jekyll/2014/01/13/improve-code-highlighting-in-jekyll.html。它们不依赖于第三方插件,并且与免费的GitHub Pages托管兼容。
答案 7 :(得分:0)
所以我也遇到了这个问题,在敲了很多地方之后我终于意识到在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/了解详情。
答案 8 :(得分:0)
You can also use the triple-tilde syntax:
~~~ruby
class Base
def two
1 + 1
end
end
~~~
which is supported by Kramdown (Jekyll).