asset-html-include
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43
diff --git a/assets.lisp b/assets.lisp
index 6d7ddd2..f62f6d6 100644
--- a/assets.lisp
+++ b/assets.lisp
@@ -130,6 +130,8 @@
(ignore-errors (format stream "~S" (asset-path asset)))
(ignore-errors (format stream " ~S" (asset-source-path asset)))))
+(defgeneric asset-html-include (type name))
+
;; Asset class -> extensions
#+nil
@@ -176,6 +178,9 @@
(defmethod asset-class-extensions ((class (eql 'css-asset)))
(extensions #:css #:less))
+(defmethod asset-html-include ((type (eql :css)) name)
+ (format nil "<link rel=\"stylesheet\" href=\"/assets/~A.css\" type=\"text/css\" />" name))
+
;; JS
(defclass js-asset (preprocessed-asset) ())
@@ -185,3 +190,6 @@
(defmethod asset-class-extensions ((class (eql 'js-asset)))
(extensions #:js))
+
+(defmethod asset-html-include ((type (eql :js)) name)
+ (format nil "<script src=\"/assets/~A.js\" type=\"text/javascript\"></script>" name))
diff --git a/package.lisp b/package.lisp
index 1910668..ff2d936 100644
--- a/package.lisp
+++ b/package.lisp
@@ -33,6 +33,8 @@
#:assets-dirs
#:find-asset #:find-assets-from-spec #:find-assets-from-specs
#:locate-precompiled-assets
+ ;; Rendering
+ #:asset-html-include
;; Precompile
#:debug-msg
#:msg