Jestem względnie nowy w Clojure i kompletnej wersji HTML/Compositure virgin. Próbuję użyć Compojure do tworzenia statycznych stron HTML przy użyciu funkcji podobny do tego:Formatowanie w formacie Compojure HTML
(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)))
Funkcja prostu zapisuje do pliku HTML. (The args
argument jest nieistotny tu tylko tam, aby zapewnić przykład kompiluje i działa w moim programie.).
„Programming Clojure” wskazano, że wywołanie funkcji html
przyniosłoby sformatowany HTML - wiele linii z wcięciem. Dostaję tylko typ dokumentu zgodnie z oczekiwaniami, a następnie cały kod HTML w jednej linii. HTML Tidy nie znajduje żadnych problemów z zawartością pliku wyjściowego. Wydaje się jako pojedyncza linia, jeśli I println
to również na REPL.
Czy jest coś jeszcze, co wymaga sformatowanego wyjścia?
Dzięki za inną odpowiedź Brian. Nie znałem Firebuga, ale po graniu z nim przez kilka minut wydaje mi się, że szukam umiejętności debugowania. Ja także natknąłem się na inne ciekawe podejście na http://www.erik-rasmussen.com/blog/2009/09/08/xml-renderer-in-clojure/. Jeszcze go nie wypróbowałem, ale wygląda to o wiele łatwiej (szybciej) niż rozwijanie funkcji drukarki. Mogę też po prostu pobrać wcześniejszą wersję programu Compojure, która dokonała formatowania. – clartaq