X-Git-Url: http://git.kpe.io/?p=lml2.git;a=blobdiff_plain;f=base.lisp;h=208e1a7a9b78655815bed49f7cfd6ac03d2e4af1;hp=ee6598eb231bbd57e3a36311f90e788b939f27d7;hb=c995e5549929046c8133e920fa022bce324042e4;hpb=be1b61b9a1a19ea618b9cd854d6539957c4efd57 diff --git a/base.lisp b/base.lisp index ee6598e..208e1a7 100644 --- a/base.lisp +++ b/base.lisp @@ -7,7 +7,7 @@ ;;;; Programmer: Kevin M. Rosenberg ;;;; Date Started: Aug 2002 ;;;; -;;;; $Id: base.lisp,v 1.7 2003/07/12 17:54:05 kevin Exp $ +;;;; $Id$ ;;;; ;;;; This file, part of LML2, is Copyright (c) 2000-2003 by Kevin Rosenberg. ;;;; Rights of modification and redistribution are in the LICENSE file. @@ -20,8 +20,8 @@ (defun lml-format (str &rest args) (when (streamp *html-stream*) (if args - (apply #'format *html-stream* str args) - (write-string str *html-stream*)))) + (apply #'format *html-stream* str args) + (write-string str *html-stream*)))) (defun lml-princ (s) (princ s *html-stream*)) @@ -38,36 +38,55 @@ (defun lml-print-date (date) (lml-write-string (date-string date))) -(defun dtd-prologue (&optional (format :xhtml11)) +(defun xml-header-stream (stream &key (version "1.0") (standalone :unspecified) + (encoding :unspecified)) + (format stream "" + version + (if (eq standalone :unspecified) + "" + (format nil " standalone=\"~A\"" standalone)) + (if (eq encoding :unspecified) + "" + (format nil " encoding=\"~A\"" encoding)))) + +(defun dtd-prologue (&optional (format :xhtml11) &key entities) (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+)) + (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+))) + (when entities + (lml-write-char #\space) + (lml-write-char #\[) + (lml-write-char #\Newline) + (lml-write-string entities) + (lml-write-char #\Newline) + (lml-write-char #\])) + (lml-write-char #\>)) (:html (lml-write-string +html4-dtd-string+))) (lml-write-char #\newline)) (defmacro html-file-page ((out-file &key (format :xhtml11)) - &body body) + &body body) `(with-open-file (*html-stream* - (lml-file-name ,out-file :output) - :direction :output - :if-exists :supersede) + (lml-file-name ',out-file :output) + :direction :output + :if-exists :supersede) (dtd-prologue ,format) (html ((:html :xmlns "http://www.w3.org/1999/xhtml") ,@body)))) - + (defmacro alink (url desc) `(html