Compojure Templating Seiten

8

Ich habe eine Menge statischer HTML-Dateien, die dieselbe Kopf- und Fußzeile teilen. ich möchte diese Kopf- und Fußzeile über alle Seiten hinweg teilen. Für jetzt ich benutze das folgende routed, aber es ist ein bisschen hässlich, und ich muss auf alle speziellen Fälle aufpassen. Gibt es einen einfachen Weg zu Dothis wie die PHP-Include-Funktion?

%Vor%     
Hamza Yerlikaya 27.08.2009, 12:11
quelle

1 Antwort

8

Nach dem, was ich über Compojure gelesen habe, glaube ich nicht, dass es eine inhärente Unterstützung für das Konzept von "auto prepend" und "auto append" für den Antworttextkörper wie PHP hat.

Andere Web-Frameworks, mit denen ich Erfahrung habe, delegieren diese Verantwortung an ihre Templating-Engine, während PHP die Zeilen ein wenig verwischt. Sie tun dies, indem Sie hier explizit ein "gemeinsames" Snippet "einbeziehen" oder ein Makro rendern können, oder sogar durch rudimentäre Formen der Vererbung (diese Vorlage erweitert diese Vorlage).

Grundsätzlich können Sie, unabhängig davon, ob Ihr HTML-Code statisch oder dynamisch ist, eine Template-Engine für eine bessere Wartbarkeit modularisieren.

Das heißt, Compojure scheint keine vollwertige HTML-Template-Engine zu haben. Es hat eine nette kleine HTML / XML Domain-spezifische Sprache (DSL), aber ich denke, was Sie suchen, ist eher eine erstklassige Template-Engine, die zusammen mit Compojure verwendet werden kann.

Enlive scheint die Clojure-inspirierte Templating-Engine zu sein, die die meisten Treffer erzielt, aber ich bin mir sicher Da sind andere. Angesichts der JVM-Integration von Clojure können Sie sich wahrscheinlich auch für eine der Java-inspirierten Template-Engines entscheiden.

Je nachdem, welche Sie auswählen, müssen Sie möglicherweise einige Zeilen Klebecode schreiben, damit Ihre Vorlagen in die HTTP-Antworten von Compojure geladen, gerendert und gestreamt werden. Sie schreiben dies jedoch einmal und verwenden es überall wieder / p>     

Joe Holloway 08.09.2009, 23:07
quelle

Tags und Links