   (with-out-stream out
     (render-files in-paths)))
 
+;@commandline
+;
 ; ## Commandline
 ;
 ; Use this program from the commandline like so.
 
-;@commandline entry point
 (def usage "Usage: java -jar story.jar [options] <input-files>")
 
 (defn -main [& args]
   (let [[amap tail banner]
         (cli/cli args
+
+; For the brush, theme, and stylesheet options the program first tries to read
+; from the filesystem and if that fails because the file is not found the
+; an attempt is made to read from the program's resources. The resources
+; contain the standard SyntaxHighlighter brushes and themes under their normal
+; file names including an additional `shBrushClojure.js` and
+; `shThemeClojure.css`.
+;
+; Multiple brushes can be used by repeating the `-b` or `--brush` options.
+; Additional brushes may be added by the program as a result of file includes
+; and file suffixes.
+
                  ["-c" "--comment" "Comment syntax" :default ";"]
-                 ["-b" "--brush" "SyntaxHighlighter brush file"]
+                 ["-b" "--brush" "SyntaxHighlighter brush file" :multi true]
                  ["-t" "--theme" "SyntaxHighlighter theme file"]
                  ["-l" "--language" "SyntaxHighlighter language"]
                  ["-s" "--stylesheet" "A stylesheet file to include"]

  "Classify a line as :code or :comment. Return a pair of the classification
  and line string, sans leading comment tokens in the case of a comment."
  [line]
  (if-let [s (re-find @include line)]
    [:include (.substring line (count s))]
    (if-let [s (re-find @anchor line)]
      [:anchor (.substring line (count s))]
      (if-let [s (re-find @comment line)]
        [:comment (.substring line (count s))]
        [:code line]))))


      (do (println usage banner)
        (System/exit 1))
      (binding [*single-comment* (:comment amap)
                *theme* (:theme amap)
                *language* (or (:language amap) *language*)
                *stylesheet* (:stylesheet amap)]
        (swap! brushes #(or (set (:brush amap)) %))

; When no output file is given, the program renders to standard-out.

