From 1ec80a559f526cdedd641accc23947b4bf19278e Mon Sep 17 00:00:00 2001 From: Helmut Merz Date: Thu, 18 Jul 2024 09:24:05 +0200 Subject: [PATCH] work in progress: demo app; web/dom: + void-element --- app/demo/etc/config.lisp | 1 + web/dom.lisp | 10 +++++++++- 2 files changed, 10 insertions(+), 1 deletion(-) 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)