2012-04-10 10 views
2

Dies ist, was in der Regel eine Datei mit pystache ich tun zu machen:eine große Datei mit pystache Rendering

txt = open(filename, 'r').read() 
print pystache.render(txt, context).encode('utf-8') 

(„Kontext“ ist mein Mapping)

Aber jetzt habe ich sehr große Vorlagen machen . Gibt es einen vorgeschlagenen Weg, dies zu tun, ohne die gesamte Vorlage in den Speicher zu lesen? Hat Pystache dafür interne Unterstützung?

+0

Dies ist nicht Parsing, sondern Template-Rendering. Meinst du, dass du eine wirklich große Vorlage hast? – Marcin

+0

Ja, das ist was ich meine. – dangonfast

+0

Gehen Sie voran und bearbeiten Sie Ihre Frage entsprechend. – Marcin

Antwort

1

Zum Zeitpunkt des Schreibens dieses Artikels ermöglicht, gibt es eine issue offen auf der GitHub Seite darüber. Sobald ich Zeit habe, dem zu folgen, werde ich es tun.

0

Pystache hat keine integrierte Unterstützung für Vorlagenstreaming, aber es ist Open Source. Wenn diese Funktion eine Priorität für Ihren Anwendungsfall ist, würde ich empfehlen, das source zu verwenden und es selbst zu implementieren. Ehrlich gesagt, ich denke, es wäre ziemlich einfach, die Quelle zu modifizieren, um optional einen Vorlagengenerator zu verwenden, der Textzeilen zurückgeben würde, anstatt den vollständigen Vorlagentext aufzunehmen.

* Die einfachste Lösung wäre wahrscheinlich, Ihre große Vorlage in mehrere Untervorlagen zu zerlegen und über Teiltabellen zu referenzieren. *

Sie in Vorlage Rendering über Stücke interessiert sein, die mustache.js mustache.js

+0

Ich bin nicht sicher, dass dies so einfach zu implementieren ist, wie Sie vorschlagen. Soweit ich weiß, verhindert nichts, dass sich das begrenzte Muster über mehrere Zeilen erstreckt. Ich verstehe, dass dies ein Eckfall wäre, aber es muss abgedeckt werden. – dangonfast