;;;; Programmer: Kevin M. Rosenberg
;;;; Date Started: Aug 2002
;;;;
-;;;; $Id: base.lisp,v 1.1 2003/06/20 04:12:29 kevin Exp $
+;;;; $Id: base.lisp,v 1.5 2003/06/24 17:48:41 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 dtd-prologue (&optional (format :xhtml11))
+ (case format
+ ((:xhtml :xhtml11 :xhtml10-strict :xhtml10-transitional :xhtml10-frameset :xml)
+ (lml-write-string +xml-prologue-string+)
(lml-write-char #\newline)))
+ (case 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 print-page (title &body body)
- `(html
- (:head
- (:title (:princ ,title)))
- (:body ,@body)))
-(defmacro page (out-file &body body)
+(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)
+ (dtd-prologue ,format)
(html
((:html :xmlns "http://www.w3.org/1999/xhtml")
,@body))))
+
+(defmacro alink (url desc)
+ `(html
+ ((:a :href ,url) ,desc)))
+
+(defmacro alink-c (class url desc)
+ `(html
+ ((:a :class ,class :href ,url) ,desc)))