2013-06-29 30 views
2

我的網站使用Jekyll和Redcarpet降價解析器。我想使它所以我的標題是自動生成的ID:在標題中生成ID

# My heading 

變爲:

<h1 id="my-heading">My heading</h1> 

但我還沒有找到一種方法。

我想堅持使用redcarpet作爲我的降價解析器,但這不是必需的。如果還有一個支持所有相同的功能,那麼我很樂意考慮它。我特別喜歡那個redcarpet以pygments格式生成代碼塊。

+0

我不完全確定你會怎麼做,但可能[創建一個自定義渲染器就是這樣](https://github.com/vmg/redcarpet#and-you-can-even-cook-你自己)。祝你好運! – agarie

回答

2

我的首選解決方案是@maul-esel's Github Issues answer

redcarpet README提到的配置選項with_toc_data。這將生成的ID爲標題,看起來像id="toc_0"

您可以通過添加這個到您的_config.yml傑奇配置啓用:

markdown: redcarpet 
redcarpet: 
    extensions: [with_toc_data] 

這不是理想的 - 我寧願更多的語義ID,如id="my-heading" - 但它足夠好,而且非常容易 - 這意味着我不需要設置和學習另一個markdown解析器(或者解決如何擴展redcarpet)。

1

如果有幫助,但它與Kramdown

工作
$ kramdown <<< '# My heading' 
<h1 id="my-heading">My heading</h1> 
+0

我看着kramdown。這是一個潛在的解決方案,但我更喜歡redcarpet生成代碼塊的方式。 –

+0

也許我只是不知道如何。用redcarpet,我把我的代碼放在''''''''css \ ... \ \'''''''中,並且在代碼的所有相關位置附近放置了代碼段以突出顯示。如果我爲kramdown執行相同的'~~~ css \ ... \ ~~~',它只是圍繞着我的代碼'

...
',但沒有pygments標記。 –

+0

是的,我不在乎這一點。我不是一個真正的Ruby人,我更喜歡語言不可知的解決方案。我只想盡可能以最小的努力來完成這項工作。 –