Je suis relativement nouveau à Clojure et une vierge complète HTML/Compojure. Je suis en train d'utiliser Compojure pour créer des pages statiques de HTML en utilisant une fonction similaire à celle-ci:Format HTML Compojure
(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)))
La fonction écrit simplement HTML dans un fichier. (L'argument args
est hors de propos ici juste là pour assurer l'exemple compile et fonctionne dans mon programme..)
« Programmation Clojure » a indiqué que l'appel à la fonction html
produirait au format HTML - plusieurs lignes avec indentation. Tout ce que je reçois est le type de doc comme prévu suivi de tout le HTML sur une seule ligne. HTML Tidy ne trouve pas de problèmes avec le contenu du fichier de sortie. Il sort comme une seule ligne si je l'ai au REPL aussi.
Existe-t-il autre chose nécessaire pour obtenir une sortie formatée?
Merci pour une autre réponse Brian. Je n'étais pas familier avec Firebug, mais après avoir joué avec pendant quelques minutes, cela m'a donné la capacité de déboguer que je cherchais. J'ai également rencontré une autre approche intéressante sur http://www.erik-rasmussen.com/blog/2009/09/08/xml-renderer-in-clojure/. Je n'ai pas encore essayé, mais cela semble beaucoup plus facile (plus rapide) que de développer ma fonction d'imprimante. Ou je pourrais juste saisir une version antérieure de Compojure qui a fait le formatage. – clartaq