25 lines
944 B
Common Lisp
25 lines
944 B
Common Lisp
;;;; cl-scopes/frontend/cs-hx - frontend (http response) definitions
|
|
;;;; for embedding HTML fragments in pages generated by the `cyberscopes` Hugo theme
|
|
;;;; with dynamic elements handled by `HTMX`.
|
|
|
|
(defpackage :scopes/frontend/cs-hx
|
|
(:use :common-lisp)
|
|
(:local-nicknames (:dom :scopes/web/dom)
|
|
(:message :scopes/core/message)
|
|
(:response :scopes/web/response)
|
|
(:shape :scopes/shape)
|
|
(:util :scopes/util))
|
|
(:import-from :scopes/web/dom #:div #:label)
|
|
(:export #:render-content #:response))
|
|
|
|
(in-package :scopes/frontend/cs-hx)
|
|
|
|
(defclass response (response:html-response) ())
|
|
|
|
(defmethod response:render-content ((resp response) msg)
|
|
;(dom:render (dom:dlist nil (shape:data msg))))
|
|
(dom:render
|
|
(div nil (util:loop-plist (shape:data msg) k v collect (view-field k v)))))
|
|
|
|
(defun view-field (label value)
|
|
(div nil (label nil label) ": " value))
|