![](/img/trans.png)
[英]Underscore issues: Jekyll + redcarpet == Github flavored markdown?
[英]Github flavored Markdown and pygments highlighting in Jekyll
我已經在 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/fenced 代碼塊,而沒有這個 mumbojumbo 的其余部分......
您明確要求使用 Github 風格的 Markdown,所以我認為您不是在尋找使用非 Markdown 液體格式創建代碼塊的答案:
{% highlight python %}
def yourfunction():
print "Hello World!"
{% endhighlight %}
但寧願能夠用圍欄代碼塊寫一些東西:
```python
def yourfunction():
print "Hello World!"
```
等等。為此,您將需要使用redcarpet markdown 解析器。
Github 風格的降價使用名為“Redcarpet” 1的降價解析器。 具有諷刺意味的是,盡管 Github 風格的降價使用redcarpet2 ,但默認情況下 Jekyll 不支持此降價解析器。 相反,您可以通過安裝該 ruby gem 將其添加為插件
gem install redcarpet
然后添加redcarpet2 Jekyll 插件。 (在 Jekyll 中安裝插件相當於將該存儲庫中給出的.rb
ruby 腳本放入您的_plugins
目錄中。也可以位於_plugins
的子目錄中)。
然后,如文檔中所述,編輯您的_config.yml
以使用 redcarpet2:
markdown: redcarpet2
redcarpet:
extensions: ["no_intra_emphasis", "fenced_code_blocks", "autolink", "strikethrough", "superscript"]
它添加了 github-flavored-markdown aka redcarpet2 提供的通用擴展(嗯,差不多。這不會執行 github 特定的降價操作,例如通過數字識別問題或通過哈希提交,因此它們在技術上並不相同)。
擁有插件意味着,目前,如果您在那里托管您的網站,您必須在本地構建您的網站並將_site
復制到 github,因為_site
在_site
引擎的 Github 版本上不可用(請參閱此未解決的問題在 Jekyll 上)
注意:順便說一下,您不需要在_config.yml
指定的所有降價編輯器。 對於使用 redcarpet2 的基本示例,您可能希望查看此配置以及與之相關的 jekyll 目錄。
Jekyll 最好的部分是,正如這里所說,
...它需要一個模板目錄(代表網站的原始形式),通過 Textile 或 Markdown 和 Liquid 轉換器運行它,並吐出一個完整的靜態網站...
這意味着,默認情況下您會突出顯示 Markdown 和 pygments。
您可以為此設置放棄或使用默認的 _config.yaml。 使用現有的配置,您可能希望將 pygments 設置為 true: pygments: true
。
這就是你的目的
Markdown :只需將您的文件命名為 *.markdown,例如2012-12-01-my-post.markdown
並將其放置在根目錄中的任何位置。 通常,您會將其放在 _posts 中。
當 jekyll 解析這個文件時,它會通過 markdown 過濾器。 作為額外的獎勵,您可以保存為 *.textile 並使用textile 進行解析。 而且,當然,您可以將其保留為 .html,這樣就不會進行降價解析。
pygments :只需使用您的代碼執行此操作:
{% highlight python %} def yourfunction(): print "Hello World!" {% endhighlight %}
您還可以通過執行以下操作獲得行號:
{% highlight python linenos %} {% endhighlight %}
編輯:此外,您需要使用命令生成語法樣式表
pygmentize -S default -f html > style.css
正如這里和@joshuahornby10 所提到的。 顯然,在您的 html 中包含 style.css。 然后,您的代碼將使用 pygments 進行語法高亮顯示。
哦,您無需更改 _config.yaml 中的任何設置即可使其正常工作。 只需使用jekyll --server --auto
運行您的網站,看看它是否看起來不錯。 旁注,在編輯 _config 文件時,您需要停止自動運行並重新運行 jekyll 以進行任何更改。
在配置文件中更改
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/
關於降價,我已經讀過,為了讓 pygments 工作,你需要降價成為你已經在配置文件中設置的 maruku。
希望這會有所幫助,我發現 Jekyll 是一個出色的博客平台,但文檔不足。
自從cboettig發布了他的回答后,GitHub 已經停止支持redcarpet
。 如果您想要 GitHub Flavored Markdown,您現在可以在_config.yml
直接將其指定為markdown: GFM
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.