2

私はpydoctorを twisted.web.template に移植しようとしていますが、かなり基本的な問題にぶつかりました. 私に何ができる?

4

1 に答える 1

2

ある程度意図的に、解析せずに HTML をページに挿入する方法はありません。twisted.web.templatenevow よりも、正しい出力を生成することに少しこだわっています。

これにはいくつかの方法があります。

  1. 最終的に、HTML は何らかの出力ストリームに送られます。Deferredオブジェクトのペアを返すレンダラーを挿入し.write、最初のストリームが起動した後、2 番目のストリームの前に下層のストリームに対して a を実行するだけです。ちょっとグロスですが、それはあなたの意図を効果的に表現しています:)。
  2. などを使用して、epydoc の出力を HTML に再解析するだけでXMLStringtwisted.web.template正しく書き出すことができます。これはCPUを少し「浪費」しますが、私の意見では、(A)twtを提供するストレステストと(B)それt.w.tが正しいと仮定して、それがあなたにそれを与えるという保証のために価値があります有効な HTML を出力しています。

ただし、この回答を書いているときに、twisted.web.template の現在のパブリック API を使用した任意の HTML では、ポイント 2 は一般的に不可能であることに気付きました。理想的には、html5libこのようなものを解析してから、解析された入力をドキュメント ツリーにダンプするために使用できます。

プライベート API をいじることを気にしないのであれば、おそらくhtml5lib の SAX サポートを、テンプレートをロードするために使用する内部 SAX パーサーに接続することができます。

もちろん、実際の解決策は、既に提出したチケットを修正することです。そのため、Twisted 自体の外部でプライベート API を使用する必要はありません...

于 2013-05-20T23:05:49.917 に答える