0

私はpython-markdownの拡張機能を書いています。これは、私のいくつかのカスタムタグ内のテキストをスタイル付きのdivに入れることになっています。

一致した式を div タグにカプセル化する単純なインライン パターン クラスを作成しました。私の正規表現は次のとおりです。これは、コンパイル時に markdown.inlinepatterns.Pattern クラスによって---r'(\{mytag_start\})(.+)(\{mytag_end\})'内部に配置されるため、コンパイル メソッドは として呼び出されます。"^(.*?)(.*?)$"re.compile("^(.*?)%s(.*?)$" %r'(\{mytag_start\})(.+)(\{mytag_end\})')

一見、これでうまくいくように見えますが、すべての改行を<br>タグとしてハードコーディングする必要があることに気付きました。

そう

{mytag_start}This code<br>
will work{mytag_end}

ただし、次のコードはマークダウン全体を壊します

{mytag_start}This code

will not{mytag_end}

代わりに、上記のブロック全体を未処理のプレーンテキストで取得します。

re.MULTILINE と re.DOTALL を に供給しようとしましたre.compileが、役に立ちませんでした。何か案は?

編集: これは、前述の問題を示すサンプル拡張ファイルです。次に、を使用して拡張機能を django テンプレートにロードし{{ content:"mdx_MyExtension"}}ます。

4

1 に答える 1