Redcarpet没有使用Jekyll生成围栏代码块

时间:2013-09-19 09:59:52

标签: macos syntax-highlighting markdown jekyll redcarpet

首先,我对Jekyll很新(并在StackOverflow上发布),但到目前为止我已经管理好了。我曾经让Jekyll在受防护的块代码中输出突出显示的代码片段。最后,我稍后回来处理事情并注意到格式化回到了这一点,没有行号和<a>标签:

<code class="ruby language-ruby" data-lang="ruby">
    <span class="k">def</span> 
    <span class="nf">print_hi</span><span class="p">(</span><span class="nb">name</span><span class="p">)</span>
    <span class="nb">puts</span>
    <span class="s2">"Hi, </span><span class="si">#{</span><span class="nb">name</span><span class="si">}</span><span class="s2">"</span>
    <span class="k">end</span>
    <span class="n">print_hi</span>
    <span class="p">(</span><span class="s1">'Tom'</span><span class="p">)</span>
    <span class="c1">#=&gt; prints 'Hi, Tom' to STDOUT.</span>
</code>

以上代码源自:

```ruby
def print_hi(name)
    puts "Hi, #{name}"
end
print_hi('Tom')
#=> prints 'Hi, Tom' to STDOUT.
```

我的_config.yml:

name: Your New Jekyll Site
markdown: redcarpet
pygments: true
permalinks: pretty.

我注意到的一个关键点是,当我在终端中运行rvm use system时,它会使用ruby 1.8.7为jekyll提供服务,让我知道在终端中(我认为这是一个问题。或者当我使用时)红宝石2.0.0-p247,它只是服务但不告诉我它是哪个版本。

把头发拉出来!

1 个答案:

答案 0 :(得分:2)

晚上几个小时,我也遇到了同样的问题(至少它看起来与你提到的相似)。

无论如何,对我而言是因为较新版本的Python 设置而不是(与this source相同)由'Pygments'脚本支持,负责处理这些块。

最新版本(目前为止) 3.3 。在玩完和试验之后,重新安装 2.7.5 版本的Python后来解决了这个问题。

我是一名Windows用户(我想,在目前的情况下,对于Linux用户来说这并不是很大的区别)并且在本地使用了jekyll服务器。


另外......不确定你正在使用哪种方法(我还试图在免费的Heroku托管dyno上安装Jekyll,因为它提到了here ),所以也遇到了同样的问题那里的问题(意思是,相同的结果),但经过一些探索发现那些人默认使用 Python 2.7.4 ,我不得不指定以下内容显式在_config.yml Jekyll配置文件中:

markdown: redcarpet
pygments: true

让Pygments工作。

(甚至认为他们说Jekyll的最新版本(截至1.1)默认使用redcarpet ......无论如何,这可能与所有ruby / python / jekyll设置之间的某些深层关系有关 - 我只是让他去吧。