我相对于Clojure和HTML/Compojure是新手。我正在尝试使用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)))
该函数仅将HTML写入文件。(这里的
args
参数不相关,只是为了确保示例在我的程序中编译和运行。)《Clojure编程》指出调用html
函数会产生格式化的HTML--多行缩进。但我得到的只有预期的文档类型,后面跟着所有HTML在一行上。HTML Tidy没有发现输出文件内容的任何问题。如果我在REPL中使用println
,它也会作为单行输出。是否还需要其他东西以获得格式化输出?