0

我正在使用 python markdown 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 语法,预期的输出应该是

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>

注意,你需要'\n'在第一个之前写两个```来启用fenced-code-blocks 的正则表达式匹配

于 2012-04-18T02:45:00.427 回答