1 (in-package #:oh-ducks) 2 3 ;; avoid conflicting with 'sgml:pt 4 (eval-when (:compile-toplevel :load-toplevel :execute) 5 (import 'closure-html:pt)) 6 (eval-when (:compile-toplevel :load-toplevel :execute) 7 (export 'pt) 8 (export 'lhtml)) 9 10 (defclass html-template (css-selector-template) ()) 11 12 (add-handler 'pt 'chtml:make-pt-builder) 13 (add-handler 'lhtml 'chtml:make-lhtml-builder) 14 15 (unless *default-parser* 16 (setf *default-parser* (rcurry #'chtml:parse (get-handler-for-model 'pt)))) 17 18 (defmethod make-template ((kind (eql 'html)) (spec cons)) 19 (destructuring-bind (&key parser model) 20 (append (when (%spec-includes-opts spec) (second spec)) 21 (list :model 'pt)) 22 (make-instance 'html-template 23 :parser (or parser (rcurry #'chtml:parse (get-handler-for-model model))) 24 :spec spec)))