(require 'clojure.string)
(def escapes
{\< "<", \> ">", \& "&"})
(defn escape
[content]
(clojure.string/escape content escapes))
(defn tr
[cells]
(format "
%s
"
(apply str (map #(str "" (escape %) " | ") cells))))
;; turn a seq of seq of cells into a string.
(defn to-html
[tbl]
(format "%s"
(apply str (map tr tbl))))
;; Read from a string to a seq of seq of cells.
(defn from-csv
[text]
(map #(clojure.string/split % #",")
(clojure.string/split-lines text)))
(defn -main
[]
(let [lines (line-seq (java.io.BufferedReader. *in*))
tbl (map #(clojure.string/split % #",") lines)]
(println (to-html tbl)))