在标题中生成ID

时间:2013-06-29 10:29:09

标签: ruby markdown jekyll redcarpet

我的网站使用Jekyll和Redcarpet markdown解析器。我想这样做,所以我的标题是用ID自动生成的:

# My heading

变为:

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

但我找不到办法。

我想坚持使用redcarpet作为我的降价解析器,但它并不重要。如果有另一个支持所有相同功能,那么我很乐意考虑它。我特别喜欢redcarpet以pygments格式生成代码块。

2 个答案:

答案 0 :(得分:2)

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

redcarpet README提到配置选项with_toc_data。这会生成类似id="toc_0"等标题的ID。

您可以通过将其添加到_config.yml Jekyll配置中来启用它:

markdown: redcarpet
redcarpet:
    extensions: [with_toc_data]

这不理想 - 我更喜欢id="my-heading"这样的语义ID - 但它足够好而且非常简单 - 这意味着我不需要设置和学习另一个降价解析器(或者如何解决扩展redcarpet)。

答案 1 :(得分:1)

如果有帮助,它确实适用于Kramdown

$ kramdown <<< '# My heading'
<h1 id="my-heading">My heading</h1>