Python Markdown nl2br扩展

时间:2012-08-30 14:59:29

标签: python markdown nl2br

我是初学程序员,我一直在尝试在我的网络应用程序中使用python markdown库。一切正常,除了nl2br扩展。

当我尝试使用md.convert(文本)将文本文件转换为html时,它看不到将换行符转换为<br>

例如,在我转换之前,文本是:

Puerto Rico

===========

------------------------------

### Game Rules





hello world!
转换后,我得到:

 <h1>Puerto Rico</h1>
<hr />
<h3>Game Rules</h3>
<p>hello world!</p>

我的理解是空格用'\ n'表示,应该转换为<br>,但我没有得到那个结果。这是我的代码:

import markdown
md = markdown.Markdown(safe_mode='escape',extensions=['nl2br']) 
html = md.convert(text)

如果您有任何想法或能指出我正确的方向,请告诉我。谢谢。

2 个答案:

答案 0 :(得分:1)

尝试在一行的末尾添加两个或多个空格以插入<br/>标记

示例:

hello  
world

结果

<p>hello <br>
world</p>

请注意,在hello之后有两个空格。这仅在行末尾的两个空格之前有一些文本时才有效。但这与你的nl2br扩展无关,这是降价标准。

我的建议是,如果您没有明确地进行此转换,请不要这样做。使用段落别名<p> - 标签是分隔文本区域的更简洁方法。

如果您只想在<h3>标题后留出更多空格,请为其定义一些css:

h3 { margin-bottom: 4em; }

图片,如果你在所有500个wiki页面中标题之后与<br> - 标记间隔,之后你决定它是20px太多的空间。然后,您必须手动编辑所有页面,并在每个页面上删除两个<br> - 标记。否则,您只需在css文件中编辑一行。

答案 1 :(得分:0)

找到了这个问题,希望自己进行澄清。因此,尽管迟到了7年,但仍添加了更新。


Python Markdown项目上的参考线程:https://github.com/Python-Markdown/markdown/issues/707

事实证明,这确实是预期的行为,因此nl2br扩展名仅转换单个 内出现的换行符,不是

This is
a block

This is a different
block

转换为

<p>This is<br/>block</p>\n<p>This is a different<br/>block</p>

但是,当您与众不同时,请分别使用

Puerto Rico

===========

------------------------------

### Game Rules





hello world!

所有周围的换行符都会折叠,并且不会插入<br/>标签。

<h1>Puerto Rico</h1>
<hr />
<h3>Game Rules</h3>
<p>hello world!</p>