diff --git a/app/demo/etc/config.lisp b/app/demo/etc/config.lisp index 8fe5174..68d9fe8 100644 --- a/app/demo/etc/config.lisp +++ b/app/demo/etc/config.lisp @@ -16,3 +16,4 @@ (() server:fileserver :doc-root ,(util:absolute-dir (config:from-env :docroot "/var/www/html"))))) ;,(config:directory "/var/www/html" :env :docroot) +(config:add-action '(:test :data) #'core:echo) diff --git a/web/dom.lisp b/web/dom.lisp index b0c762e..f1cada7 100644 --- a/web/dom.lisp +++ b/web/dom.lisp @@ -4,7 +4,7 @@ (:use :common-lisp) (:local-nicknames (:util :scopes/util) (:alx :alexandria)) - (:export #:elem #:element #:render + (:export #:elem #:element #:void-element #:render #:dlist)) (in-package :scopes/web/dom) @@ -38,6 +38,14 @@ (put c)) (end tag)))) +(defclass void-element (element) ()) + +(defun void-element (tag attrs) + (make-instance 'void-element :tag tag :attrs attrs)) + +(defmethod put ((el void-element)) + (start (tag el) (attrs el))) + ;;;; elements with specific functionality (defun dlist (attrs plist)