Ruby 在标题中生成ID

Ruby 在标题中生成ID,ruby,markdown,jekyll,redcarpet,Ruby,Markdown,Jekyll,Redcarpet,我的网站使用Jekyll和红毯标记解析器。我想让我的标题自动生成ID: # My heading 变成: <h1 id="my-heading">My heading</h1> 我的标题 但我还没找到办法 我想继续使用Red地毯作为我的标记解析器,但它不是必需的。如果有另一个支持所有相同的特性,那么我会很乐意地考虑它。我特别喜欢红地毯以pygments格式生成代码块 如果有帮助的话,它确实对克拉姆敦有用 $ kramdown <<< '# My h

我的网站使用Jekyll和红毯标记解析器。我想让我的标题自动生成ID:

# My heading
变成:

<h1 id="my-heading">My heading</h1>
我的标题
但我还没找到办法


我想继续使用Red地毯作为我的标记解析器,但它不是必需的。如果有另一个支持所有相同的特性,那么我会很乐意地考虑它。我特别喜欢红地毯以pygments格式生成代码块

如果有帮助的话,它确实对克拉姆敦有用

$ kramdown <<< '# My heading'
<h1 id="my-heading">My heading</h1>
$kramdown我首选的解决方案是:

使用_toc_data
提到配置选项
。这将为看起来像
id=“toc_0”
等的标题生成id

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

markdown: redcarpet
redcarpet:
    extensions: [with_toc_data]

这并不理想-我更喜欢像
id=“my heading”
这样的语义id-但它足够好,而且非常简单-这意味着我不需要设置和学习另一个标记解析器(或解决如何扩展红地毯)。

我看了kramdown。这是一个潜在的解决方案,但我更喜欢红地毯生成代码块的方式。也许我只是不知道如何。我用红地毯将我的代码封装在
``css\…\```并将pygments
s放在所有相关的代码位周围以突出显示。如果我做等效的
~~css\…\~~~
包围了我的代码,但没有pygments标记。是的,我不在乎这个。我不是一个真正喜欢Ruby的人,我更喜欢语言无关的解决方案。我只是想用最少的努力来完成这项工作。我不完全确定你会怎么做,但也许吧。祝你好运