python / genshi换行到html <p>段落</p>

时间:2009-08-10 23:16:37

标签: python turbogears genshi

我正在尝试使用genshi输出评论的内容,但我无法弄清楚如何将换行符转换为HTML段落。

这是一个应该是什么样子的测试案例:

输入:'foo\n\n\n\n\nbar\nbaz'

输出:<p>foo</p><p>bar</p><p>baz</p>

我到处寻找这个功能。我在genshi或python的std lib中找不到它。我正在使用TG 1.0。

3 个答案:

答案 0 :(得分: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>'

根据需要。

答案 1 :(得分:2)

Genshi中可能有内置功能,但如果没有,这将为您完成:

output = ''.join([("<p>%s</p>" % l) for l in input.split('\n')])

答案 2 :(得分:1)

我知道你说TG1我的解决方案是TG2,但可以向后移植或仅仅依赖于webhelpers但是IMO所有其他实现都存在缺陷。

查看converters module nl2br和format_paragraphs。