Soy relativamente nuevo en Clojure y una virgen completa de HTML/Compojure. Estoy tratando de utilizar Compojure para crear páginas estáticas de HTML utilizando una función similar a esto:Compojure Formato 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)))
La función simplemente escribe en un archivo HTML. (El argumento args
es irrelevante aquí sólo existe para asegurar el ejemplo compila y se ejecuta en mi programa..)
"Programación Clojure" indicó que la llamada a la función html
produciría formato HTML - varias líneas con sangría. Todo lo que obtengo es el tipo de documento como se esperaba, seguido de todo el HTML en una sola línea. HTML Tidy no encuentra ningún problema con el contenido del archivo de salida. Viene como una sola línea si I println
en el REPL también.
¿Se necesita algo más para obtener una salida formateada?
Gracias por Brian otra respuesta. No estaba familiarizado con Firebug, pero después de jugar con él durante unos minutos, parece darme la capacidad de depuración que estaba buscando. También encontré otro enfoque interesante en http://www.erik-rasmussen.com/blog/2009/09/08/xml-renderer-in-clojure/. Todavía no lo he probado, pero parece mucho más fácil (más rápido) que desarrollar mi función de impresora. O podría tomar una versión anterior de Compojure que hizo el formateo. – clartaq