python – 如何使用markdown.extensions.attr_list获取空标记?

我正在尝试将微数据添加到生成的HTML中,并找到了attr_list扩展名.它几乎可以满足我的所有需求.

这是我正在使用的示例代码:

>>> text = """This is a paragraph.
... {: itemscope itemtype="http://schema.org/Movie"}
... """
>>> markdown.markdown(text, extensions=['markdown.extensions.attr_list'])
u'<p itemscope="itemscope" itemtype="http://schema.org/Movie">This is a paragraph.</p>'

我遇到的一个问题是itemscope =“itemscope”.根据schema.org提供的examples,它应该是:

<p itemscope itemtype="http://schema.org/Movie">This is a paragraph.</p>

我得到的最接近的是

text = """This is a paragraph.
... {: itemscope="" itemtype="http://schema.org/Movie"}
... """

其中生成输出为

u'<p itemscope="" itemtype="http://schema.org/Movie">This is a paragraph.</p>'

有没有办法将此作为裸标签(只是没有等号的itemscope)使用此扩展名?

解决方法:

使用html output_format(你可能想要的),而不是默认的xhtml格式:

t = """This is a paragraph.
... { itemscope itemtype="http://schema.org/Movie"}
... """
>>> markdown.markdown(t, extensions=['attr_list'], output_format="html")
u'<p itemscope itemtype="http://schema.org/Movie">This is a paragraph.</p>'

由于Markdown是在XHTML成为新热点时首次开发的,因此规则和参考实现都期望XHTML格式化输出.由于Python-Markdown是一个老式的Markdown解析器,它也默认使用XHTML作为默认输出格式(因为XHTML规范只是引用HTML4 spec,详情请参阅).

非默认的html输出格式最近已更新为输出HTML5并使用最小化的表单.

顺便说一句,您不需要在属性列表中包含冒号(请参阅上面的示例).最近,它被选择为与其他实现兼容.

相关文章

markdown语法1、vscode预览md文件打开侧边预览按完Control+K...
这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快...
这加粗样式里写自定义目录标题使用Markdown编辑器新的改变功...
Markdown基本语法标题字体分割线下划线列表列表无序列表使用...
MarkDown学习标题几级标题就加几个井号,最多支持到6级字体H...
markdown基本语法目录:文章目录markdown基本语法1.斜体和粗...