     (not value)   nil
     :otherwise    [(as-str key) (escape-html value)]))
 
-(defn- make-attrs
+(defn make-attrs
   "Turn a map into a string of HTML attributes, sorted by attribute name."
   [attrs]
   (apply str

      (if attr
        (str " " attr "=\"" value "\"")))))

(defn- make-tag
  "Wrap some content in an HTML tag."
  [tag attrs content]
  (str* "<" tag (map-to-attrs attrs) ">"
          content
        "</" tag ">"))

(defn- make-closed-tag
  "Make a closed XML tag with no content."
  [tag attrs]
  (str* "<" tag (map-to-attrs attrs) " />"))


(ns hiccup
  "Efficiently generate HTML from a Clojure data structure."
  (:use clojure.contrib.def)
  (:use clojure.contrib.java-utils))

(defn escape-html
