python/genshi 换行转换为 html <p> 段落
我想用genshi来输出评论的内容,但我不知道怎么把换行符转换成HTML段落。
下面是一个测试案例,展示应该是什么样子的:
输入: 'foo\n\n\n\n\nbar\nbaz'
输出: <p>foo</p><p>bar</p><p>baz</p>
我到处找这个功能,但在genshi和Python的标准库里都没找到。我现在使用的是TG 1.0。
3 个回答
1
我知道你说TG1,我的解决方案是TG2,但可以向后兼容,或者直接依赖于webhelpers。不过在我看来,其他所有的实现都有问题。
你可以看看这个转换模块,里面有nl2br和format_paragraphs。
2
在Genshi里可能有一个内置的功能可以做到这一点,不过如果没有的话,这段代码可以帮你实现:
output = ''.join([("<p>%s</p>" % l) for l in input.split('\n')])
3
举个例子,
def tohtml(manylinesstr):
return ''.join("<p>%s</p>" % line
for line in manylinesstr.splitlines()
if line)
会产生:
print repr(tohtml('foo\n\n\n\n\nbar\nbaz'))
根据需要。
'<p>foo</p><p>bar</p><p>baz</p>'