r5195: *** empty log message ***
authorKevin M. Rosenberg <kevin@rosenberg.net>
Tue, 24 Jun 2003 20:20:12 +0000 (20:20 +0000)
committerKevin M. Rosenberg <kevin@rosenberg.net>
Tue, 24 Jun 2003 20:20:12 +0000 (20:20 +0000)
doc/readme.html
htmlgen.lisp

index 32061262529f5a028b3b9ea332b28253899a9a3b..839f2706e6d4b6e4a9e8fa3271cba27d904681b4 100644 (file)
@@ -1,9 +1,9 @@
 <?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 &lt;kevin@rosenberg.net&gt;" /><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
index 46abc6d1ba5fc6451f34ac613ab9e925f6a0d576..62a99e9733de03c80236c3b8c6d2d3f010f2b5e4 100644 (file)
@@ -1,6 +1,6 @@
 ;; -*- 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")))))