2013-05-19 66 views

回答

2

有些故意没有办法在不解析的情况下将HTML插入页面; twisted.web.template对于产生正确的输出比nevow更有一点坚持。

有几种解决方法。

  1. 最终,您的HTML将转到某种输出流。您可以简单地插入一个呈现器,该呈现器返回一对Deferred对象,并在第一个对象流之后但在第二个对象流之前插入.write。这种毛病,但它有效地表达你的意图:)。
  2. 您可以简单地使用XMLString或类似的方法将epydoc的输出重新解析为HTML,以便twisted.web.template可以正确写出它。这将“浪费”一点CPU,但在我看来,它将是值得的(A)压力测试它会给予和(B)的保证 - 假设t.w.t是正确的 - 它会给你你发出有效的HTML。

当我写这个答案,但是,我意识到,2点通常是不可能与twisted.web.template当前公共API任意的HTML。理想情况下,您可以使用html5lib解析这些内容,然后将解析的输入转储到文档树中。

如果您不介意使用私有API,可以将html5lib's SAX support连接到我们用来加载模板的internal SAX parser

当然,真正的解决办法是fix the ticket you already filed,所以你不必使用私有API扭曲本身以外...

+0

感谢确认我的怀疑,有这个今天所做的任何设施。我会首先给选项2一个去。 – mwhudson