7
|
1 (defun html-file (base)
|
|
2 (format nil "~(~A~).html" base))
|
|
3
|
|
4 (defmacro page (name title &rest body)
|
|
5 (let ((ti (gensym)))
|
|
6 `(with-open-file (*standard-output*
|
|
7 (html-file ,name)
|
|
8 :direction :output
|
|
9 :if-exists :supersede)
|
|
10 (let ((,ti ,title))
|
|
11 (as title ,ti)
|
|
12 (with center
|
|
13 (as h2 (string-upcase ,ti)))
|
|
14 (brs 3)
|
|
15 ,@body))))
|
|
16
|
|
17 ;;; Utilities for generating links
|
|
18
|
|
19 (defmacro with-link (dest &rest body)
|
|
20 `(progn
|
|
21 (format t "<a href=\"~A\">" (html-file ,dest))
|
|
22 ,@body
|
|
23 (princ "</a>")))
|