;;;; 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))))