markdown - "data-"前缀被添加到自定义属性,如何防止这种情况?

标签 markdown pandoc

我已将 Pandoc 升级到 v2,但我的一些回归测试现在失败了。

这是我向元素添加自定义属性的地方,如下所示:

# Test {role="heading" aria-level="7"}

在早期版本的 Pandoc 中,这导致
<h1 role="heading" aria-level="7">Test</h1>

在 Pandoc 2 中,它是
<h1 data-role="heading" data-aria-level="7">Test</h1>

我怎样才能把它改回来?两个rolearia-属性是 100% 有效的 HTML,所以没有 data-需要前缀。

最佳答案

从 Markdown 到 HTML5 与 HTML4 的转换似乎与 Pandoc 有所不同。

使用他们的测试编辑器,HTML4 转换工作得非常好。

Pandoc HTML4 Conversion Example

但是,当我们切换到 HTML5 时,属性的数据部分会被注入(inject)。

Pandoc HTML5 Conversion Example

这让我认为这要么是有意完成的,因为 HTML4 和 HTML5 之间的差异,要么它可能是一个 Pandoc 错误,你可能应该在他们的 github 问题跟踪器中向他们提出问题:https://github.com/jgm/pandoc/issues

从 Pandoc docs - html 默认为 html5,如下所示:

  • html or html5 ([HTML], i.e. [HTML5]/XHTML [polyglot markup])
  • html4 ([XHTML] 1.0 Transitional)


更新:

看起来这是因为 HTML5 规范——“role”和“aria”属性本身不再在属性列表中。引用:https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes

所以这个不是 Pandoc 的错误 - 这是预期的行为。我的建议,使用 html4 转换是你的答案。

感谢@Caramiriel 在评论中提供更多引用 Pandoc code .

关于markdown - "data-"前缀被添加到自定义属性,如何防止这种情况?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48429998/

相关文章:

latex - 试图了解 Pandoc 如何从 Markdown 转换为 Latex

ruby - 如何将现有的 redmine wiki 从 textile 转换为 markdown?

makefile - 在 Mac 上使用 pandoc 将文件夹中的所有文件转换为 md

删除/隐藏针织 Markdown->pandoc 图下方的图形标题

html - 如何将 Pandoc markdown 导出到 Worpress.com 兼容的 PHP Markdown Extra?

html - 将另一个文件中的 html 嵌入到 markdown 文档中

github - Jupyter 笔记本 : image from github

html - 如何更改 Jekyll's kramdown 中脚注的格式?

引用 Rmarkdown (v2) 中的 block

在 Rmarkdown Beamer 幻灯片中调整 .tex 表的大小