【问题标题】:Why is Markdown rendering <h1> with id's?为什么 Markdown 用 id 渲染 <h1>?
【发布时间】:2014-10-16 19:01:41
【问题描述】:

我正在使用 Gulp + Gulpsmith + Metalsmith 创建我的网站。

metalsmith_markdown 将我的 HTML 呈现如下:

# This is an H1&lt;h1 id="this-is-an-h1"&gt;This is an H1&lt;/h1&gt;。为什么要渲染那个 'id' 标签?

为什么会这样?

这是我的 Gulpfile.js 中处理降价渲染的部分

.use(markdown({
    gfm: true,
    tables: true,
    breaks: false,
    pedantic: false,
    sanitize: true,
    smartLists: true,
    smartypants: true
}))

【问题讨论】:

  • 这样可以引用元素,有问题吗?
  • 我绝对不想要那个 ID。我已经处理了 SCSS 中的所有印刷元素,所以我不必专门针对它。还可以想象一下,如果 Markdown 将每个标签的内容呈现为它们的 ID……我的 HTML 看起来会很糟糕。 ://
  • 哈哈哈,我很确定这不是每个标签的内容,而是主要标题(这也意味着您可以在 markdown 中使用 &lt;a href='#this-is-an-h1'&gt;link&lt;/a&gt;[link](#this-is-an-h1) 之类的内容链接到它们)。
  • 老兄! :D 这已经引起了一些严重的强迫症引起的恐慌发作......那么这是正常的行为吗?没有办法“标记”它?
  • 这当然是许多降价处理器的共同特征。 (例如 pandoc 对所有标题做同样的事情。)

标签: javascript html markdown gulp metalsmith


【解决方案1】:

这是 metalsmith-markdown 的行为,它使用 marked 作为 Markdown 解析器,因为 PR#181

您可以覆盖 marked 的某些功能,如其自述文件和 #420 中所述,但由于所有功能均由 metalsmith 插件处理,因此您无法真正做到.

我建议在标记中创建一个 PR 以添加一个自定义选项以完全停用 this 附近的行为

【讨论】:

  • 我通过在 metalsmith_markdown/node_modules/marked/lib 文件夹中调整 makred.js 中的几行、注释掉一些行并调整渲染标签的格式来强制实现一个真正的“穴居人”解决方案一点点 -> i.imgur.com/FVXDdNo.png 它现在的行为符合我的要求,但我真的认为应该有一个选项来删除那些无关的标记。
  • 是的,您也可以这样做,但是如果您想更新此依赖项或重新安装您的项目,这可能会很复杂,您必须重新进行更改
  • 你说得对……我真的觉得这样做很不安。我可能会尝试看看 Gulp 的一些降价渲染器是否可以解决问题。
猜你喜欢
  • 1970-01-01
  • 2018-11-03
  • 2021-05-09
  • 1970-01-01
  • 1970-01-01
  • 2016-10-11
  • 2014-07-09
  • 1970-01-01
  • 2021-04-07
相关资源
最近更新 更多