;;;; Programmer: Kevin M. Rosenberg
;;;; Date Started: Aug 2002
;;;;
-;;;; $Id: stdsite.lisp,v 1.3 2003/06/23 20:08:06 kevin Exp $
+;;;; $Id$
;;;;
-;;;; This file, part of LML2, is Copyright (c) 2002 by Kevin M. Rosenberg
+;;;; This file, part of LML2, is Copyright (c) 2000-2003 by Kevin Rosenberg.
+;;;; Rights of modification and redistribution are in the LICENSE file.
;;;;
-;;;; LML2 users are granted the rights to distribute and use this software
-;;;; as governed by the terms of the GNU General Public License v2
-;;;; (http://www.gnu.org/licenses/gpl.html)
;;;; *************************************************************************
+
;;; 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)
+ (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