【问题标题】:Generate IDs in headings在标题中生成 ID
【发布时间】:2013-06-29 10:29:08
【问题描述】:

我的网站使用 Jekyll 和 Redcarpet 降价解析器。我想这样做,这样我的标题就会自动生成带有 id 的:

# My heading

变成:

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

但我还没有找到方法。

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

【问题讨论】:

标签: ruby markdown jekyll redcarpet


【解决方案1】:

我首选的解决方案是@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 - 但它足够好而且超级简单 - 这意味着我不需要设置和学习另一个 markdown 解析器(或弄清楚如何扩展红地毯)。

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

    • 我看了看克拉姆当。这是一个潜在的解决方案,但我更喜欢 redcarpet 生成代码块的方式。
    • 也许我只是不知道怎么做。使用 redcarpet,我将我的代码附在 ``` css \ ... \ ``` 中,并将 pygments &lt;span&gt;s 放在所有相关的代码位周围以突出显示。如果我为 kramdown 执行等效的 ~~~ css \ ... \ ~~~,它只会用 &lt;pre&gt;&lt;code&gt;...&lt;/code&gt;&lt;/pre&gt; 包围我的代码,但没有 pygments 标记。
    • 是的,我不在乎。我不是真正的 Ruby 人,我更喜欢与语言无关的解决方案。我只想用尽可能少的努力来完成这项工作。
    猜你喜欢
    • 2012-10-24
    • 2017-01-08
    • 2014-10-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-24
    • 2015-06-02
    相关资源
    最近更新 更多