    ((closure-open) (indent-closure-open))
    ((closure-any-com) nil)
    (t (indent-sgml-in-closure))))
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;;;; Compilation
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+
+(defun closure-template-compile ()
+  "Compile CL-Closure-Template file"
+  (interactive)
+  (save-buffer)
+  (when (slime-connected-p)
+    (message "Compiling Closure Templates...")
+    (let ((result (slime-eval `(cl:handler-case (cl:progn
+                                                 (closure-template:compile-template :common-lisp-backend
+                                                                                    (cl:parse-namestring ,(buffer-file-name)))
+                                                 (cl:cons t t))
+                                                (t (e)
+                                                   (cl:cons nil (cl:format nil "~A" e)))))))
+      (if (car result)
+          (message "Template compilation was done")
+        (message "Template compilation error: %s" (cdr result))))))
 
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;;;###autoload

  `((,(rx "$"
          (group (1+ (or word "."))))
     (1 font-lock-variable-name-face))))
          

(defvar *closure-template-substition-keywords*
  `((,(rx (or "{sp}"

          (group (or "/if" "else" "/switch" "default"))
          "}")
     (1 closure-template-tag-face))))

(defun closure-template-html-font-lock-keywords-3 ()
  (append *closure-template-comment-keywords*
          *closure-template-namespace-keywords*
