Ich bin relativ neu zu Clojure und eine komplette HTML/Compojure Jungfrau. Ich versuche Compojure zu verwenden statische Seiten von HTML erstellen eine ähnliche Funktion wie diese verwenden:Compojure HTML Formatierung
(defn fake-write-html
[dir args]
(let [file (str dir *file-separator* *index-file*)
my-html (html
(doctype :html4)
[:html
[:head
[:title "Docs and Dirs:"]]
[:body
[:div
[:h2 "A nice title"]]
[:div
[:ul
[:li "One"]
[:li "Two"]]]]])]
(clojure.contrib.duck-streams/spit file my-html)))
Die Funktion schreibt nur HTML in eine Datei. (Das args
Argument ist hier irrelevant Gerade dort das Beispiel, um sicherzustellen, kompiliert und ausgeführt in meinem Programm..)
„Programming Clojure“ zeigte an, dass der Anruf an die html
Funktion würde formatiert HTML erzeugen - mehrere Zeilen mit Vertiefung. Alles, was ich bekomme, ist der Dokumenttyp wie erwartet, gefolgt von dem gesamten HTML in einer einzigen Zeile. HTML Tidy findet keine Probleme mit dem Inhalt der Ausgabedatei. Es kommt als eine einzige Zeile heraus, wenn ich es an der REPL auch println
bin.
Gibt es noch etwas anderes, um eine formatierte Ausgabe zu erhalten?
Danke für eine andere Antwort Brian project.clj. Ich war mit Firebug nicht vertraut, aber nachdem ich ein paar Minuten mit ihm gespielt habe, scheint es mir die Debugging-Fähigkeit zu geben, nach der ich gesucht habe. Ich stieß auch auf einen anderen interessanten Ansatz unter http://www.erik-rasmussen.com/blog/2009/09/08/xml-renderer-in-clojure/. Hab es noch nicht probiert, aber es sieht viel einfacher (schneller) aus als meine Druckerfunktion zu entwickeln. Oder ich könnte einfach eine frühere Version von Compojure greifen, die die Formatierung durchgeführt hat. – clartaq