X-Git-Url: http://git.kpe.io/?a=blobdiff_plain;f=base.lisp;h=5a51d4f31cb694ce04a98839510ef1248be17e6a;hb=341d4c02c1849f2272d0bb909a787f57349ed89b;hp=2939200cdbd79f5c16f6878744217e53397dfb6d;hpb=d5efacf3fe09226f7945730a433f5931c95b709c;p=lml.git diff --git a/base.lisp b/base.lisp index 2939200..5a51d4f 100644 --- a/base.lisp +++ b/base.lisp @@ -7,7 +7,7 @@ ;;;; 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 ;;;; @@ -16,8 +16,7 @@ ;;;; (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 () "") @@ -26,7 +25,7 @@ "") (defun xhtml-prologue-string () - "") + "") (defvar *print-spaces* nil) (defvar *indent* 0) @@ -38,9 +37,8 @@ (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*)) @@ -51,8 +49,11 @@ (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 @@ -73,9 +74,9 @@ (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) @@ -184,6 +185,10 @@ `(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)) @@ -228,9 +233,11 @@ (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*