r5182: *** empty log message ***
[lml2.git] / stdsite.lisp
index 49610e0eaa849a3504943ae72d729003e80104f7..1ee29dbd941c4c10cacc8ada0a26cc8124c28308 100644 (file)
@@ -7,7 +7,7 @@
 ;;;; Programmer:    Kevin M. Rosenberg
 ;;;; Date Started:  Aug 2002
 ;;;;
-;;;; $Id: stdsite.lisp,v 1.2 2003/06/20 04:46:54 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
 ;;;;
@@ -19,7 +19,7 @@
 ;;; 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_
@@ -30,7 +30,7 @@
   `(html
     (:head 
      (:title (:princ ,title))
-     (lml-load "head.lml_")
+     (lml-load "header.lml_")
      ,@body)))
 
 
@@ -45,8 +45,7 @@
        (html
         ((:div :class "lastmod")
          (lml-format  "Last modified: ~A" (date-string (file-write-date src-file)))))))
-    (when (probe-file "footer.lml_")
-      (lml-load "footer.lml_")))))
+    (lml-load "footer.lml_"))))
 
 
 (defmacro std-body (file &body 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