Github flavor 的 Markdown 和 Jekyll 中突出显示的 pygments

标签 github markdown jekyll pygments

我已在 VPS 上部署了 Jekyll 博客。我现在想向其中添加 Github 风格的 Markdown,使用 Pygments 突出显示,但我不知道必须编辑哪些文件以及如何编辑。

到目前为止,我配置的唯一文件是 _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 突出显示?

最佳答案

编辑:现在更容易

从 Jekyll >= 0.12.1 开始,Jekyll 原生支持 redcarpet2,因此您只需将配置设置为 markdown: redcarpet 即可使用 GFM/隔离代码块,而无需使用剩下的这些胡言乱语......

原始答案

您明确要求使用 Github 风格的 markdown,因此我认为您并不是在寻找使用非 markdown 液体格式创建代码块的答案:

{% highlight python %}
def yourfunction():
     print "Hello World!"
{% endhighlight %}

但宁愿能够使用 protected 代码块编写一些东西:

```python
def yourfunction():
     print "Hello World!"
```

等等。为此,您需要使用 redcarpet Markdown 解析器。

Github 风格的 markdown 使用名为“Redcarpet”的 markdown 解析器 1 。讽刺的是,尽管 Github 风格的 Markdown 使用 redcarpet2 ,Jekyll 默认不支持这个 markdown 解析器。相反,您可以通过安装 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 特定的 markdown 事情,比如按数字识别问题,或按哈希提交,所以它们在技术上并不相同)。

拥有该插件意味着,目前您必须在本地构建您的网站,如果您在 github 上托管您的网站,则必须将 _site 复制到 github,因为 Redcarpet2 在 Github 上不可用Jekyll 引擎的版本(请参阅 Jekyll 上的 open issue)

注意:顺便说一句,您不需要在 _config.yml 中指定的所有 Markdown 编辑器。对于使用 redcarpet2 的基本示例,您可能想查看此 config以及与之相关的 jekyll 目录。

关于Github flavor 的 Markdown 和 Jekyll 中突出显示的 pygments,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13464590/

相关文章:

javascript - 使用 React 以类似于 Markdown 的方式向用户评论添加功能

javascript - 将 jekyll 标签放入 "onclick"中断处

css - 使用 slate 主题覆盖 github 页面上的 CSS?

upload - 如何将项目上传到 GitHub

ruby-on-rails - GitHub API : Cannot reliably add files to repository

jquery - 使用 jQuery.ajax() 保存匿名 github 要点

git - 是否可以在 GitHub 存储库上定义自己的语法?

latex - 如何在 Markdown 中制作 PDF 演示文稿

html - 是否可以遍历 Jekyll 中的子文件夹?

ruby - Jekyll 有多语言支持吗?