| (defun html-file (base) | |
| (format nil "~(~A~).html" base)) | |
| (defmacro page (name title &rest body) | |
| (let ((ti (gensym))) | |
| `(with-open-file (*standard-output* | |
| (html-file ,name) | |
| :direction :output | |
| :if-exists :supersede) | |
| (let ((,ti ,title)) | |
| (as title ,ti) | |
| (with center | |
| (as h2 (string-upcase ,ti))) | |
| (brs 3) | |
| ,@body)))) | |
| ;;; Utilities for generating links | |
| (defmacro with-link (dest &rest body) | |
| `(progn | |
| (format t "<a href=\"~A\">" (html-file ,dest)) | |
| ,@body | |
| (princ "</a>"))) |