我在 Python 中使用正则表达式从 CoffeeScript 文件中提取使用 Markdown 格式化的注释。 CS 使用### 作为多行注释的开始和结束标记。这与 markdown 格式冲突,因为 # 用于表示标题类。是否可以让 Markdown 将 % 或 ^ 或其他一些字符解释为 header 类标记?
请您参考如下方法:
利用 markdown.extensions.Extension 类可以覆盖 Python Markdown 的许多元素。经过一些挖掘和试验后,我通过编写一个扩展了通用 BlockParser 的自定义 header 解析器来实现这一点。
基本上它看起来像这样
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理解的header样式有setext和atx两种。 Setext 在文本下方的行中使用 ==== 和 ----- 来提供两个标题级别 h1 和 h2。
