2011-12-27 205 views
40

好像語法化身突出僅限於使用液體標籤和Pygments來做,像這樣:語法高亮降價代碼塊傑基爾(不使用液體標籤)

{% highlight bash %} 
cd ~ 
{% endhighlight %} 

但我已經導入我現有的博客從wordpress,它是用markdown(使用markdown代碼塊)編寫的,我不想通過每個帖子去修復代碼塊。另外,我希望我的帖子保持純正的markdown格式,以防我需要再次轉換博客平臺。

我打開我的化身解析器redcarpet,希望我可以用這個降價語法:

```bash 
cd ~ 
``` 

但它似乎並沒有工作。它只是將其包裝在正常的code區塊中。有任何想法嗎?

+4

我剛剛注意到這個開放票:https://github.com/mojombo/jekyll/issues/427 – markquezada 2011-12-27 19:50:48

+0

官方文檔:http://jekyllrb.com/docs/posts/#highlighting-code-snippets – 2015-11-15 17:15:35

回答

8

我結束了切換到kramdown來解析降價,這與coderay來語法突出顯示。這有利於成爲heroku上的純ruby解決方案。

+2

這樣做與github的gh頁面一起工作? – cboettig 2012-05-01 03:36:41

+5

謝謝。看起來kramdown不識別''r,即使它能識別帶有波浪線的圍欄,~~~。 – cboettig 2012-05-01 16:32:38

+0

@mirthlab對於數學和代碼似乎工作得很好,謝謝 – 2012-07-04 07:24:20

20

圍欄塊 were introduced 與隆重的接待2.化身 now supports 隆重的接待2.

順便我使用隆重的接待與 Rouge 直到 Kramdown support 是可用的。

另外有些人更喜歡 Nanoc 到Jekyll。

+1

我最近一直在使用Nanoc並喜歡它。 – 2012-12-20 13:56:44

15

替代的解決方案

降價允許HTML,所以如果你不介意平添幾分JS,你可以這樣做:

## A section 

Here is some Ruby code. 

<pre> 
    <code class="ruby"> 
    puts "hello" 
    </code> 
</pre> 

那麼你可以使用Highlight.js(文檔here)加突出顯示基於該類。

這不是一個理想的解決方案,但它應該適用於任何Markdown解析器。

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 
3

步驟1.安裝Redcarpet

gem install redcarpet 

第2步:更新您的_config.yaml這樣生成設置。

# Build settings 
#markdown: kramdown 
markdown: redcarpet 
1

Redcarpet默認集成到Jekyll中,代碼高亮顯示功能將按預期運行。

對於年齡較大的化身博客:

  1. 安裝隆重的接待寶石:

    gem install redcarpet

  2. 更新_config.yaml

    markdown: redcarpet 
    

和借鑑e和進一步信息,請參閱:

Closed Github Issue

Updated Jekyll Codebase

0

所以我就遇到了這個問題,以及和敲我的頭周圍有很多的終於在傑基爾官方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/

+2

鏈接到博客文章已損壞 – sieste 2016-09-08 09:50:07