3

我正在尝试使用 genshi 输出评论的内容,但我不知道如何将换行符转换为 HTML 段落。

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

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

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

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

4

3 回答 3

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>'

按要求。

于 2009-08-11T01:35:32.950 回答
2

Genshi 中可能有一个内置函数,但如果没有,这将为您完成:

output = ''.join([("<p>%s</p>" % l) for l in input.split('\n')])
于 2009-08-10T23:24:38.683 回答
1

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

查看nl2br 和 format_paragraphs的转换器模块。

于 2009-09-07T01:03:11.733 回答