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

时间:2018-01-24 19:14:21

标签: 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-前缀。

1 个答案:

答案 0 :(得分:1)

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

使用他们的测试编辑器,HTML4转换可以很好地工作。

Pandoc HTML4 Conversion Example

但是,当我们切换到HTML5时,属性的data-部分将被注入。

Pandoc HTML5 Conversion Example

这使我认为这是有意为之,因为HTML4和HTML5之间存在差异,或者它可能是Pandoc错误,您应该在其github问题跟踪器中向他们提出问题:https://github.com/jgm/pandoc/issues

在Pandoc文档中-html默认为html5,如下所示:

  
      
  • htmlhtml5([HTML],即[HTML5] / XHTML [polyglot标记])
  •   
  • html4([XHTML] 1.0过渡版)
  •   

更新

由于HTML5规范,这看起来像是IS-“ role”和“ aria”属性本身不再位于属性列表中。参考:https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes

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

感谢评论中的@Caramiriel,以便在Pandoc code中获得更多参考。