0

私はpythonマークダウン2.1.1を使用しています。リストをマークダウンしようとすると、前に改行があるのはなぜですか

リストに?例えば、

text = u" - this is a paragraph\r\n\r\n - this is a line\r\n"
markdown.markdown(text)
# produces: u'<ul>\n<li>\n<p>this is a paragraph</p>\n</li>\n<li>\n<p>this is a line</p>\n</li>\n</ul>'

Markdown Syntaxによると、期待される出力は次のようになります。

u'<ul>\n<li><p>this is a paragraph</p></li>\n<li>\n<p>this is a line</p>\n</li>\n</ul>'

要素\nの前後はありませんよね?<p>を使用してブロックのスタイルを設定しているため、これによりページが非常に見苦しくなります。white-space: pre-line出力は次のようになります

- 
   this is a paragraph

-  this is a line
4

1 に答える 1

1

Markdown は構文に完全には従いません。通常はより適切に動作するmarkdown2を使用します。

>>> import markdown2
>>> print markdown2.markdown(u" - this is a paragraph\r\n\r\n - this is a line\r\n")
<ul>
<li><p>this is a paragraph</p></li>
<li><p>this is a line</p></li>
</ul>

# using fenced-code-blocks
>>> print markdown2.markdown('\n\n```python\nprint('Hello')\n```', extras=['fenced-code-blocks'])
<div class="codehilite"><pre><code><span class="k">print</span><span class="p">(</span><span class="s">&quot;Hello&quot;</span><span class="p">)</span>
</code></pre></div>

fenced-code-blocks の正規表現マッチングを有効にする'\n'には、最初の前に2 つ記述する必要があることに注意してください。```

于 2012-04-18T02:45:00.427 に答える