;;;; Programmer: Kevin M. Rosenberg
;;;; Date Started: Aug 2002
;;;;
-;;;; $Id: base.lisp,v 1.2 2003/06/20 04:46:54 kevin Exp $
+;;;; $Id: base.lisp,v 1.3 2003/06/23 20:37:43 kevin Exp $
;;;;
;;;; This file, part of LML, is Copyright (c) 2002 by Kevin M. Rosenberg
;;;;
(defun lml-print-date (date)
(lml-write-string (date-string date)))
-(defmacro xhtml-prologue ()
- `(progn
- (lml-write-string (xml-prologue-string))
- (lml-write-char #\newline)
- (lml-write-string (xhtml-prologue-string))
+(defun html-prologue (&optional (format :xhtml11))
+ (case format
+ ((:xhtml :xhtml11 :xhtml10-strict :xhtml10-transitional :xhtml10-frameset)
+ (lml-write-string +xml-prologue-string+)
(lml-write-char #\newline)))
-
-(defmacro print-page (title &body body)
- `(html
- (:head
- (:title (:princ ,title)))
- (:body ,@body)))
-
-(defmacro page (out-file &body body)
+ (ecase format
+ ((:xhtml11 :xhtml)
+ (lml-write-string +xhtml11-dtd-string+))
+ (:xhtml10-strict
+ (lml-write-string +xhtml10-strict-dtd-string+))
+ (:xhtml10-transitional
+ (lml-write-string +xhtml10-transitional-dtd-string+))
+ (:xhtml10-frameset
+ (lml-write-string +xhtml10-frameset-dtd-string+))
+ (:html
+ (lml-write-string +html4-dtd-string+)))
+ (lml-write-char #\newline))
+
+
+(defmacro page ((out-file &key (format :xhtml11))
+ &body body)
`(with-open-file (*html-stream*
(lml-file-name ,out-file :output)
:direction :output
:if-exists :supersede)
- (xhtml-prologue)
+ (html-prologue ,format)
(html
((:html :xmlns "http://www.w3.org/1999/xhtml")
,@body))))
(defmacro alink-c (class url desc)
`(html
((:a :class ,class :href ,url) ,desc)))
-
-(export '(alink alink-c))
;;;; Programmer: Kevin M. Rosenberg
;;;; Date Started: Aug 2002
;;;;
-;;;; $Id: data.lisp,v 1.1 2003/06/20 04:12:29 kevin Exp $
+;;;; $Id: data.lisp,v 1.2 2003/06/23 20:37:43 kevin Exp $
;;;;
;;;; This file, part of LML2, is Copyright (c) 2002 by Kevin M. Rosenberg
;;;;
(defvar *print-spaces* nil)
(defvar *indent* 0)
-(defun html4-prologue-string ()
- "<!DOCTYPE HTML PUBLIC \"-//IETF//DTD HTML//EN\">")
-
-(defun xml-prologue-string ()
+(defvar +xml-prologue-string+
"<?xml version=\"1.0\" encoding=\"iso-8859-1\" standalone=\"yes\"?>")
-(defun xhtml-prologue-string ()
+(defvar +html4-dtd-string+
+ "<!DOCTYPE HTML PUBLIC \"-//IETF//DTD HTML//EN\">")
+
+(defvar +xhtml11-dtd-string+
"<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.1//EN\" \"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd\">")
+
+(defvar +xhtml10-strict-dtd-string+
+ "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\" \"http://www.w3.org/TR/xhtml10/DTD/xhtml10-strict.dtd\">")
+
+(defvar +xhtml10-transitional-dtd-string+
+ "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml10/DTD/xhtml10-transitional.dtd\">")
+
+(defvar +xhtml10-frameset-dtd-string+
+ "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Frameset//EN\" \"http://www.w3.org/TR/xhtml10/DTD/xhtml10-frameset.dtd\">")
;;;; Programmer: Kevin M. Rosenberg
;;;; Date Started: June 2003
;;;;
-;;;; $Id: package.lisp,v 1.1 2003/06/20 04:12:29 kevin Exp $
+;;;; $Id: package.lisp,v 1.2 2003/06/23 20:37:43 kevin Exp $
;;;;
;;;; This file, part of LML2, is Copyright (c) 2002 by Kevin M. Rosenberg
;;;;
;; base.lisp
#:*print-spaces*
#:reset-indent
- #:with
- #:print-page
#:page
#:lml-format
#:lml-print
#:lml-write-string
#:lml-print-date
#:*html-output*
-
+ #:alink
+ #:alink-c
+
;; htmlgen.lisp
#:html #:html-print #:html-print-subst #:html-print-list #:html-print-list-subst
#:html-stream #:*html-stream*
;;;; 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.4 2003/06/23 20:37:43 kevin Exp $
;;;;
;;;; This file, part of LML2, is Copyright (c) 2002 by Kevin M. Rosenberg
;;;;
(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)))))
+ (html-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