<?xml version="1.0" encoding="iso-8859-1" standalone="yes"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml"><head><title>LML README</title><meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /><meta name="Copyright" content="Kevin Rosenberg 2002 <kevin@rosenberg.net>" /><meta name="description" content="Lisp Markup Language Documentation" /><meta name="author" content="Kevin Rosenberg" /><meta name="keywords" content="Common Lisp, HTML, Markup Langauge" /></head><body><h1>LML Documentation</h1><h2>Overview</h2><p><a href="http://lml.b9.com">LML</a> is a Common Lisp package for generating HTML and XHTML documents.LML is authored by <a href="mailto:kevin@rosenberg.net">Kevin Rosenberg</a>. The home page for LML is <a href="http://lml.b9.com/">http://lml.b9.com/</a>.</p><h2>Installation</h2><p>The easiest way to install LML is to use the <a href="http://www.debian.org/">Debian</a> GNU/Linux operating system. You can then use the command <tt>apt-get install cl-lml</tt> to automatically download and install the LML package.</p><p>On a non-Debian system, you need to have <a href="http://cclan.sourceforge.net/">ASDF</a> installed to load the system definition file. You will need to change the source
- pathname in the system file to match the location where you have installed LML.</p><h2>Usage</h2><p>Currently, there is no documentation on the functions provided by LML. However, the source code is instructive and there are example files included in the LML package.</p><h2>Examples</h2><table border=1 cellpadding=3><tbody><tr><td colspan=2 style="color:#000;background-color:#ccc;font-weight:bold;">Iteration</td></tr><tr><td><pre>(html
+<html xmlns><head><title>LML README</title><meta http-equiv content /><meta name content /><meta name content /><meta name content /><meta name content /></head><body><h1>LML Documentation</h1><h2>Overview</h2><p><a href>LML</a> is a Common Lisp package for generating HTML and XHTML documents.LML is authored by <a href>Kevin Rosenberg</a>. The home page for LML is <a href>http://lml.b9.com/</a>.</p><h2>Installation</h2><p>The easiest way to install LML is to use the <a href>Debian</a> GNU/Linux operating system. You can then use the command <tt>apt-get install cl-lml</tt> to automatically download and install the LML package.</p><p>On a non-Debian system, you need to have <a href>ASDF</a> installed to load the system definition file. You will need to change the source
+ pathname in the system file to match the location where you have installed LML.</p><h2>Usage</h2><p>Currently, there is no documentation on the functions provided by LML. However, the source code is instructive and there are example files included in the LML package.</p><h2>Examples</h2><table border cellpadding><tbody><tr><td colspan style>Iteration</td></tr><tr><td><pre>(html
(:i "The square of the first five integers are: )"
(:b
(loop as x from 1 to 5
doing
- (lml-format " ~D" (* x x))))</pre></td><td><i>The square of the first five integers are: </i><b> 1 4 9 16 25</b></td></tr></tbody></table><hr /><p>View this page's <a href="http://lml.b9.com/">LML</a> <a href="readme.lml">source</a>.</p></body></html>
\ No newline at end of file
+ (lml-format " ~D" (* x x))))</pre></td><td><i>The square of the first five integers are: </i><b> 1 4 9 16 25</b></td></tr></tbody></table><hr /><p>View this page's <a href>LML</a> <a href>source</a>.</p></body></html>
\ No newline at end of file
;; -*- mode: common-lisp; package: lml2 -*-
;;
-;; $Id: htmlgen.lisp,v 1.8 2003/06/24 17:57:17 kevin Exp $
+;; $Id: htmlgen.lisp,v 1.9 2003/06/24 20:20:12 kevin Exp $
;;
;; copyright (c) 1986-2000 Franz Inc, Berkeley, CA
;; copyright (c) 2003 Kevin Rosenberg
(declare (ignore ent args argsp))
(unless body
(error "must have a body with :insert-file"))
- `(lml-load-path (car ',body))))
+ `(progn ,@(mapcar #'(lambda (bod)
+ `(lml-load-path ,bod))
+ body))))
(named-function html-nbsp-print-function
(lambda (ent cmd args form subst unknown stream)
(declare (ignore ent unknown subst stream args))
- (if* (eq cmd :full)
- then (lml-load-path (cadr form))
- else (error ":insert-file must be given an argument")))))
+ (assert (eql 2 (length form)))
+ (if (eq cmd :full)
+ (lml-load-path (cadr form))
+ (error ":insert-file must be given an argument")))))
+
+
+(def-special-html :write-string
+ (named-function html-write-string-function
+ (lambda (ent args argsp body)
+ (declare (ignore ent args argsp))
+ `(progn ,@(mapcar #'(lambda (bod)
+ `(write-string ,bod *html-stream*))
+ body))))
+
+ (named-function html-write-string-print-function
+ (lambda (ent cmd args form subst unknown stream)
+ (declare (ignore args ent unknown subst))
+ (assert (eql 2 (length form)))
+ (if (eq cmd :full)
+ (write-string (cadr form) stream)
+ (error ":write-string must be given an argument")))))
+
+(def-special-html :write-char
+ (named-function html-write-char-function
+ (lambda (ent args argsp body)
+ (declare (ignore ent args argsp))
+ `(progn ,@(mapcar #'(lambda (bod)
+ `(write-char ,bod *html-stream*))
+ body))))
+
+ (named-function html-write-char-print-function
+ (lambda (ent cmd args form subst unknown stream)
+ (declare (ignore args ent unknown subst))
+ (assert (eql 2 (length form)))
+ (if (eq cmd :full)
+ (write-char (cadr form) stream)
+ (error ":write-char must be given an argument")))))