;;;; Programmer: Kevin M. Rosenberg
;;;; Date Started: Aug 2002
;;;;
-;;;; $Id: stdsite.lisp,v 1.3 2003/06/23 20:08:06 kevin Exp $
+;;;; $Id: stdsite.lisp,v 1.6 2003/06/23 23:58:29 kevin Exp $
;;;;
;;;; This file, part of LML2, is Copyright (c) 2002 by Kevin M. Rosenberg
;;;;
;;; A "standard site" is a format for a certain style of web page.
;;; It is based on the LML2 package.
;;; A stdsite page expects to include the following files:
-;;; head.lml_
+;;; header.lml_
;;; banner.lml_
;;; content.lml_
;;; footer.lml_
`(html
(:head
(:title (:princ ,title))
- (lml-load "head.lml_")
+ (lml-load "header.lml_")
,@body)))
(std-footer ,file))))))))
-(defmacro print-std-page (file title &body body)
+(defmacro print-std-page (file title format &body body)
`(progn
- (xhtml-prologue)
- (html
- ((:html :xmlns "http://www.w3.org/1999/xhtml")
- (std-head ,title)
- (std-body ,file ,@body)))))
+ (dtd-prologue ,format)
+ (html
+ ((:html :xmlns "http://www.w3.org/1999/xhtml")
+ (std-head ,title)
+ (std-body ,file ,@body)))))
-(defmacro std-page (out-file title &body body)
+(defmacro std-page ((out-file title &key (format :xhtml11))
+ &body body)
`(let ((*indent* 0))
(with-open-file (*html-stream* (lml-file-name ,out-file :output)
:direction :output
:if-exists :supersede)
- (print-std-page (lml-file-name ,out-file :source) ,title ,@body))))
+ (print-std-page (lml-file-name ,out-file :source) ,title ,format ,@body))))
(defmacro titled-pre-section (title &body body)
`(progn