2

私はPythonで正規表現を使用して、MarkdownでフォーマットされたコメントをCoffeeScriptファイルから引き出しています。CS は、### を複数行コメントの開始および終了マーカーとして使用します。# はヘッダー クラスを示すために使用されるため、これはマークダウン形式と競合します。Markdown に % または ^ またはその他の文字をヘッダー クラス トークンとして解釈させることは可能ですか?

4

1 に答える 1

1

クラスを利用することで、PythonMarkdownの多くの要素をオーバーライドすることができますmarkdown.extensions.Extension。少し掘り下げて実験した後、汎用の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 )

これを調査する途中で、私は別の、あまり望ましくない回避策も見つけました。マークダウンがSetextとatxを理解するヘッダースタイルには2つのタイプがあります。Setextは、テキストの下の行で====と-----を使用して、2つのヘッダーレベルh1とh2を提供します。

于 2012-05-21T01:59:36.493 に答える