将字符串打印为HTML

时间:2010-05-07 07:03:21

标签: python html newline genshi

我想知道是否有任何方法可以将简单的unicode字符串转换为Genshi中的HTML,例如,它将换行符呈现为<br/>

我希望这能够在textarea中呈现一些文本。

提前致谢!

4 个答案:

答案 0 :(得分:1)

如果Genshi就像KID一样工作(它应该),那么你所要做的就是

${XML("&lt;p&gt;Hi!&lt;/p&gt;")}

我们有一个很小的功能,可以从wiki格式转换为HTML

def wikiFormat(text):
    patternBold = re.compile("(''')(.+?)(''')")
    patternItalic = re.compile("('')(.+?)('')")
    patternBoldItalic = re.compile("(''''')(.+?)(''''')")
    translatedText = (text or "").replace("\n", "<br/>")
    translatedText = patternBoldItalic.sub(r'<b><i>\2</i></b>', textoTraducido or '')
    translatedText = patternBold.sub(r'<b>\2</b>', translatedText or '')
    translatedText = patternItalic.sub(r'<i>\2</i>', translatedText or '')
    return translatedText

你应该根据自己的需要调整它。

${XML(wikiFormat(text))}

答案 1 :(得分:0)

也许使用<pre>代码。

答案 2 :(得分:0)

  1. 将纯文本转换为HTML,方法是将“<”和“&”字符(可能还有一些,但这两个是绝对最小值)转换为HTML实体

  2. 使用文字“<br />”替换每个换行符,可能仍会与换行符结合使用。

  3. 按此顺序。

    总而言之,这不应该只是几行Python代码。 (我不做Python,但任何Python程序员都应该能够轻松地做到这一点。)

    修改我找到code on the web作为第一步。对于第2步,请参阅this page底部的string.replace

答案 3 :(得分:0)

如果有人感兴趣,我就是这样解决的。这是将数据发送到genshi模板之前的python代码。

from trac.wiki.formatter import format_to_html
from trac.mimeview.api import Context
...
    context = Context.from_request(req, 'resource')
    data['comment'] = format_to_html(self.env, context, comment, True)
    return template, data, None