Sono relativamente nuovo a Clojure e a una vergine HTML/Compojure completa. Sto cercando di utilizzare Compojure per creare pagine statiche di HTML utilizzando una funzione simile a questo:Formattazione 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)))
La funzione solo scrive HTML in un file. (L'argomento args
è irrilevante in questa sede solo lì per assicurare l'esempio compilato ed eseguito nel mio programma..)
"Programmazione Clojure" ha indicato che la chiamata alla funzione html
produrrebbe in formato HTML - linee multiple con rientro. Tutto quello che ottengo è il tipo di documento previsto, seguito da tutto il codice HTML su una singola riga. HTML Tidy non rileva alcun problema con il contenuto del file di output. Viene visualizzato come una riga singola se I println
anche al REPL.
C'è qualcos'altro necessario per ottenere l'output formattato?
Grazie per un'altra risposta Brian. Non avevo familiarità con Firebug, ma dopo aver giocato per qualche minuto, sembra darmi l'abilità di debug che stavo cercando. Ho anche trovato un altro approccio interessante su http://www.erik-rasmussen.com/blog/2009/09/08/xml-renderer-in-clojure/. Non ho ancora provato, ma sembra molto più facile (più veloce) di sviluppare la mia funzione di stampante. O potrei semplicemente prendere una versione precedente di Compojure che ha fatto la formattazione. – clartaq