;;;; Programmer: Kevin M. Rosenberg
;;;; Date Started: Aug 2002
;;;;
-;;;; $Id: base.lisp,v 1.14 2003/04/19 03:50:12 kevin Exp $
+;;;; $Id: base.lisp,v 1.23 2003/06/20 08:35:22 kevin Exp $
;;;;
;;;; This file, part of LML, is Copyright (c) 2002 by Kevin M. Rosenberg
;;;;
;;;; (http://www.gnu.org/licenses/gpl.html)
;;;; *************************************************************************
-(declaim (optimize (debug 3) (speed 3) (safety 3) (compilation-speed 0)))
-(in-package :lml)
+(in-package #:lml)
(defun html4-prologue-string ()
"<!DOCTYPE HTML PUBLIC \"-//IETF//DTD HTML//EN\">")
"<?xml version=\"1.0\" encoding=\"iso-8859-1\" standalone=\"yes\"?>")
(defun xhtml-prologue-string ()
- "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.1//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\">")
+ "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.1//EN\" \"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd\">")
(defvar *print-spaces* nil)
(defvar *indent* 0)
(when *print-spaces* (indent-spaces *indent* *html-output*))
(if args
(apply #'format *html-output* str args)
- (princ str *html-output*))
- (when *print-spaces* (format *html-output* "~%"))
- (values)))
+ (write-string str *html-output*))
+ (when *print-spaces* (write-char #\newline *html-output*))))
(defun lml-princ (s)
(princ s *html-output*))
(defun lml-write-char (char)
(write-char char *html-output*))
+(defun lml-write-string (str)
+ (write-string str *html-output*))
+
(defun lml-print-date (date)
- (lml-princ (date-string date)))
+ (lml-write-string (date-string date)))
(defmacro lml-exec-body (&body forms)
`(progn
(defmacro with-attr-string (tag attr-string &body body)
(let ((attr (gensym)))
`(let ((,attr ,attr-string))
- (lml-format "<~(~A~) ~A>" ',tag
+ (lml-format "<~(~A~)~A>" ',tag
(if (and (stringp ,attr) (plusp (length ,attr)))
- (format nil "~A" ,attr)
+ (format nil " ~A" ,attr)
""))
(incf *indent*)
(lml-exec-body ,@body)
`(let ((,bound-keyargs ,(macroexpand `(bind-all-keyargs ,keyargs))))
,(macroexpand `(with-no-endtag-keyargs ,tag ,bound-keyargs)))))
+(defmacro jscript (&body body)
+ `(with script :language "JavaScript" :type "text/javascript"
+ ,@body))
+
(defmacro xhtml-prologue ()
`(progn
(lml-format "~A~%" (xml-prologue-string))
(eval-when (:compile-toplevel :load-toplevel :execute)
(defparameter *macro-list*
- '(a div span h1 h2 h3 h4 h5 h6 i b p li ul ol table tbody td th tr body head
- html title pre tt u dl dt dd kbd code form textarea))
- (export '(alink alink br hr img input meta link meta-key))
+ '(a div span h1 h2 h3 h4 h5 h6 i b p li ul ol table tbody td th tr body
+ head html title pre tt u dl dt dd kbd code form textarea blockquote
+ var strong small samp big cite address dfn em q area del ins
+ object param caption col colgroup script noscript))
+ (export '(jscript alink alink-c br hr img input meta link meta-key))
(export *macro-list*))
(loop for i in *macro-list*