2017-05-23 51 views
3

我正在嘗試將微數據添加到我生成的HTML中,並找到attr_list擴展名。它幾乎可以滿足我需要的一切。如何使用markdown.extensions.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而不帶等號)?

回答

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>' 

由於降價最早研製回來時,XHTML是新的辣味,規則和參考實現都期待XHTML格式化輸出。由於Python-Markdown是一種老派的Markdown解析器,因此默認使用XHTML作爲默認輸出格式(因爲XHTML規範僅僅引用HTML4 spec,請參閱詳細信息)。

非默認的html輸出格式最近更新爲輸出HTML5並使用最小化的格式。

順便說一句,你不需要在屬性列表中包含冒號(參見上面的示例)。最近,與其他實現兼容是可選的。

相關問題