我正在尝试将微数据添加到生成的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
没有等号)?
答案 0 :(得分:5)
使用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并使用最小化的格式。
顺便说一句,您不需要在属性列表中包含冒号(请参阅上面的示例)。最近,它被选择为与其他实现兼容。