1

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

我希望这能够呈现在文本区域中输入的一些文本。

提前致谢!

4

4 回答 4

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))}
于 2010-05-07T17:37:46.733 回答
0
  1. 将纯文本转换为 HTML,通过将 " <" 和 " &" 字符(可能还有更多,但这两个是绝对最小值)作为 HTML 实体转义

  2. 用文本“”替换每个换行符<br />,可能仍与换行符组合。

以该顺序。

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

编辑在网上找到了第一步的代码。对于第 2 步,请参阅本页string.replace底部。

于 2010-05-07T07:31:50.827 回答
0

也许使用<pre>标签。

于 2010-05-07T07:18:24.587 回答
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
于 2010-05-07T07:49:33.733 回答