;; -*- mode: common-lisp; package: lml2 -*-
;;
-;; $Id: htmlgen.lisp,v 1.11 2003/06/29 16:21:09 kevin Exp $
+;; $Id: htmlgen.lisp,v 1.12 2003/07/13 04:56:12 kevin Exp $
;;
;; copyright (c) 1986-2000 Franz Inc, Berkeley, CA
;; copyright (c) 2003 Kevin Rosenberg
;; Main changes from Allegro version:
;; - Support XHTML end tags
;; - lowercase symbol names for attributes
-;; - Add custom tags such as :jscript, :insert-file, :nbsp
+;; - Add custom tags such as :jscript, :insert-file, :load-file, :nbsp
;; - removal of if* macro -- partially complete
;;
;; This code is free software; you can redistribute it and/or
;; must use <!-- --> syntax
(declare (ignore ent args argsp))
`(progn
- (write-string "<script language=\"JavasSript\" type=\"text/javascript\">" *html-stream*)
+ (write-string "<script language=\"JavaScript\" type=\"text/javascript\">" *html-stream*)
(write-char #\newline *html-stream*)
(write-string "//![CDATA[" *html-stream*)
(write-char #\newline *html-stream*)
(write-string " " stream)
(error ":nbsp in an illegal place: ~s" form)))))
-(def-special-html :insert-file
+
+(def-special-html :load-file
(named-function html-nbsp-function
(lambda (ent args argsp body)
(declare (ignore ent args argsp))
(unless body
- (error "must have a body with :insert-file"))
+ (error "must have a body with :load-file"))
`(progn ,@(mapcar #'(lambda (bod)
`(lml-load ,bod))
body))))
(assert (eql 2 (length form)))
(if (eq cmd :full)
(lml-load (cadr form))
- (error ":insert-file must be given an argument")))))
+ (error ":load-file must be given an argument")))))
+(def-special-html :insert-file
+ (named-function html-nbsp-function
+ (lambda (ent args argsp body)
+ (declare (ignore ent args argsp))
+ (unless body
+ (error "must have a body with :insert-file"))
+ `(progn ,@(mapcar #'(lambda (bod)
+ `(insert-file ,bod))
+ body))))
+
+ (named-function html-nbsp-print-function
+ (lambda (ent cmd args form subst unknown stream)
+ (declare (ignore ent unknown subst stream args))
+ (assert (eql 2 (length form)))
+ (if (eq cmd :full)
+ (insert-file (cadr form))
+ (error ":insert-file must be given an argument")))))
(def-special-html :write-string
(named-function html-write-string-function