;;;; pages.lisp -- html generation functions for dnd (defmacro with-page ((&key title) &body body) `(with-html-string (:doctype) (:html (:head (:title ,title)) (:body ,@body)))) (defun a-hero-is-born () (with-page (:title "A Hero Is Born!") (:header (:h1 "A Hero Is Materializing From the Void...")) (:form :method "POST" :action "/a-hero-is-born" (:label :for "NAME" "Thy Hero's Appelation") (:input :name "NAME") (:button :type "submit")))) (defun doorkeeper () (with-page (:title "Tavern Door") (:h1 "Wot's yer name 'ero?") (:form :method "POST" :action "/tavern-door" (:label :for "NAME" "Thy Hero's Appelation") (:input :name "NAME") (:button :type "submit")))) (defun tavern (hero) (with-page (:title "A Bustling Tavern") (:h1 "Aye! Welcome " (hero-name hero))))