我在VPS上部署了我的Jekyll博客。我现在想使用Pygments突出显示添加Github风格的Markdown,但我不知道我需要编辑哪些文件以及如何编辑。
到目前为止,我配置的唯一文件是_config.yml
,如下所示:
1 safe: false
2 auto: false
3 server: false
4 server_port: 4000
5 baseurl: /
6 url: http://localhost:4000
7
8 source: .
9 destination: ./_site
10 plugins: ./_plugins
11
12 future: true
13 lsi: false
14 pygments: false
15 markdown: maruku
16 permalink: date
17
18 maruku:
19 use_tex: false
20 use_divs: false
21 png_engine: blahtex
22 png_dir: images/latex
23 png_url: /images/latex
24
25 rdiscount:
26 extensions: []
27
28 kramdown:
29 auto_ids: true,
30 footnote_nr: 1
31 entity_output: as_char
32 toc_levels: 1..6
33 use_coderay: false
34
35 coderay:
36 coderay_wrap: div
37 coderay_line_numbers: inline
38 coderay_line_numbers_start: 1
39 coderay_tab_width: 4
40 coderay_bold_every: 10
41 coderay_css: style
如何正确配置Jekyll以使用Github风格的Markdown和Pygments突出显示?
答案 0 :(得分:47)
截至Jekyll> = 0.12.1 jekyll本身支持redcarpet2,因此您只需将配置设置为markdown: redcarpet
即可使用GFM / fenced代码块,而无需使用其余的mumbojumbo ...
你明确要求Github风格的降价,所以我认为你不是在寻找使用非降价液体格式创建代码块的答案:
{% highlight python %}
def yourfunction():
print "Hello World!"
{% endhighlight %}
但宁愿能用围栏代码块写一些东西:
```python
def yourfunction():
print "Hello World!"
```
等。为此,您需要使用 redcarpet 降价解析器。
Github-flavored markdown使用名为“Redcarpet”1的降价解析器。具有讽刺意味的是,虽然Github风格的markdown使用redcarpet2,但默认情况下Jekyll不支持这种降价解析器。相反,您可以通过安装ruby gem
将其添加为插件gem install redcarpet
然后添加redcarpet2 Jekyll plugin。 (在Jekyll中安装插件相当于将该存储库中给出的.rb
ruby脚本放入_plugins
目录中。也可以位于_plugins
的子目录中。
然后,正如那里的文档所述,编辑您的_config.yml
以使用redcarpet2:
markdown: redcarpet2
redcarpet:
extensions: ["no_intra_emphasis", "fenced_code_blocks", "autolink", "strikethrough", "superscript"]
它添加了github-flavored-markdown又名redcarpet2提供的公共扩展(好吧,差不多。这不会做github特定的降价事情,比如通过数字识别问题,或者通过哈希提交,所以它们在技术上并不相同)。
拥有插件意味着,目前,您必须在本地构建您的网站并将_site
复制到github如果您在那里托管您的网站,因为redcarpet2在Github版本上不可用jekyll引擎(见Jekyll上的这个open issue)
注意:顺便说一句,您不需要在_config.yml
中指定的所有降价编辑器。对于使用redcarpet2的基本示例,您可能希望看到此config以及与之相关的关联jekyll目录。
答案 1 :(得分:11)
杰基尔最好的部分是here,
...它需要一个模板目录(代表一个网站的原始形式),通过Textile或Markdown和Liquid转换器运行它,并吐出一个完整的静态网站...
这意味着,默认情况下会显示Markdown和pygments突出显示。
您可以放弃或使用默认的_config.yaml进行此设置。使用现有配置,您可能希望将pygments设置为true:pygments: true
。
这是你为
做的 <强>降价强>:
只需将文件命名为* .markdown,例如2012-12-01-my-post.markdown
,并将其放在根目录中的任何位置。通常,您可以将其放在_posts中。
当jekyll解析此文件时,它会通过降价过滤器传递它。 作为额外的奖励,您可以保存为* .textile并使用textile进行解析。而且,当然,你可以保留它.html所以不会对降价进行解析。
pygments :只需使用您的代码执行此操作:
{% highlight python %}
def yourfunction():
print "Hello World!"
{% endhighlight %}
你也可以通过以下方式获得亚麻布:
{% highlight python linenos %}
{% endhighlight %}
编辑:还有,您需要使用命令生成语法样式表
pygmentize -S default -f html > style.css
如前所述here和@ joshuahornby10。显然,在你的html中包含style.css。然后,您的代码将以pygments语法突出显示。
哦,您无需更改_config.yaml中的任何设置即可使用。
只需使用jekyll --server --auto
运行您的网站,看看它是否看起来不错。
注意,在编辑_config文件时,您需要停止自动运行并重新运行jekyll以进行任何更改。
答案 2 :(得分:4)
在配置文件中更改
pygments: false
到
pygments: true
这意味着当您在markdown文件(大资源http://daringfireball.net/projects/markdown/)中编写代码段时,它们将使用pygments样式。确保你已经安装,这是我犯的错误。一旦安装完毕,你将需要创建一个css文件来进行样式设置(听起来很明显,但我犯了这个错误)
pygmentize -S default -f html > stylesheets/pygments.css
您可以将默认设置更改为此处找到的任何主题:
http://pygments.org/demo/35195/
关于markdown,我已经读过为了让pygments工作,你需要将markdown标记为已经在配置文件中设置的maruku。
希望这有帮助,我发现Jekyll是一个睿智的博客平台,但很少有记录。
答案 3 :(得分:0)
自cboettig发布答案以来,GitHub已停止支持redcarpet
。如果您想使用GitHub Flavored Markdown,现在可以在markdown: GFM
中直接将其指定为_config.yml
。