我是初学程序员,我一直在尝试在我的网络应用程序中使用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)
如果您有任何想法或能指出我正确的方向,请告诉我。谢谢。
答案 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>