X-Git-Url: http://git.kpe.io/?p=lml2.git;a=blobdiff_plain;f=stdsite.lisp;h=1ee29dbd941c4c10cacc8ada0a26cc8124c28308;hp=bf7773ba5253e320ab919ac5561e756f711aa87a;hb=f00d24b179f303135b6b5ab2bb1fdd24c9a781f4;hpb=a5621a5bf235313916f437a55d9998418ee26f5a diff --git a/stdsite.lisp b/stdsite.lisp index bf7773b..1ee29db 100644 --- a/stdsite.lisp +++ b/stdsite.lisp @@ -7,7 +7,7 @@ ;;;; Programmer: Kevin M. Rosenberg ;;;; Date Started: Aug 2002 ;;;; -;;;; $Id: stdsite.lisp,v 1.1 2003/06/20 04:12:29 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,38 +45,38 @@ (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) - `(body - (lml-load "banner.lml_") - (html + `(html + (:body + (lml-load "banner.lml_") ((:table :class "stdbodytable" :border "0" :cellpadding "3") (:tbody ((:tr :valign "top") - ((td :class "stdcontentcell") + ((:td :class "stdcontentcell") (lml-load "contents.lml_")) ((:td :valign "top") ,@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