2012-05-20 68 views
2

我在Python中使用正則表達式來從CoffeeScript文件中提取使用Markdown格式化的註釋。 CS使用###作爲多行註釋的開始和結束標記。這與標記格式衝突,因爲#用於表示頭類。是否有可能使Markdown將%或^或其他字符解釋爲頭類標記?是否可以用降價替代令牌?

+0

難道這不就是在您的降價庫中搜索'#'字符並用您選擇的字符替換相應的字符嗎? –

+0

你是否建議我爲此任務修改Python Markdown源代碼? – JeremyFromEarth

+0

你能想到另一種方法嗎?你似乎需要自己特別的減價特色,爲什麼不去嘗試呢? –

回答

1

利用markdown.extensions.Extension類可以覆蓋Python Markdown的許多元素。經過一點挖掘和試驗後,我通過編寫擴展通用BlockParser的自定義頭分析器得到了這個工作。

本質上,它看起來像這樣

class CustomHeaderParser(BlockParser) 
    def run(params) 
     # implementation 

class CustomExtension(Extension) 
    def extendMarkdown(self, md, md_globals) 
     md.parser.blockprocessor.add('custom_header_parser', CustomHeaderParser(md.parser), '<hashheader') 
     md.registerExtension(self) 


markdown_parser = markdown.Markdown(extensions=[ CaretHeaderExtension() ]) 
markdown_parser.convert(markdown_text) 

大約有一半的方式,通過研究這個我還發現了另外一個,不太理想,解決。 Markdown有兩種類型的標題樣式可以理解Setext和atx。 Setext在文本下面的行上使用====和-----以提供兩個標題級別h1和h2。

+0

setext和atx代表什麼? –

相關問題