diff options
Diffstat (limited to 'pages.lisp')
-rw-r--r-- | pages.lisp | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/pages.lisp b/pages.lisp new file mode 100644 index 0000000..7bbf48b --- /dev/null +++ b/pages.lisp @@ -0,0 +1,30 @@ +;;;; 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)))) |