From 38e4f57a38547532d06019a60969937d251a554b Mon Sep 17 00:00:00 2001 From: "Kevin M. Rosenberg" Date: Tue, 24 Jun 2003 20:20:12 +0000 Subject: [PATCH] r5195: *** empty log message *** --- doc/readme.html | 6 +++--- htmlgen.lisp | 46 +++++++++++++++++++++++++++++++++++++++++----- 2 files changed, 44 insertions(+), 8 deletions(-) diff --git a/doc/readme.html b/doc/readme.html index 3206126..839f270 100644 --- a/doc/readme.html +++ b/doc/readme.html @@ -1,9 +1,9 @@ -LML README

LML Documentation

Overview

LML is a Common Lisp package for generating HTML and XHTML documents.LML is authored by Kevin Rosenberg. The home page for LML is http://lml.b9.com/.

Installation

The easiest way to install LML is to use the Debian GNU/Linux operating system. You can then use the command apt-get install cl-lml to automatically download and install the LML package.

On a non-Debian system, you need to have ASDF 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.

Usage

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.

Examples

Iteration
(html
+LML README

LML Documentation

Overview

LML is a Common Lisp package for generating HTML and XHTML documents.LML is authored by Kevin Rosenberg. The home page for LML is http://lml.b9.com/.

Installation

The easiest way to install LML is to use the Debian GNU/Linux operating system. You can then use the command apt-get install cl-lml to automatically download and install the LML package.

On a non-Debian system, you need to have ASDF 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.

Usage

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.

Examples

Iteration
(html
    (:i "The square of the first five integers are: )"
    (:b
    (loop as x from 1 to 5 
      doing
-     (lml-format " ~D" (* x x))))
The square of the first five integers are: 1 4 9 16 25

View this page's LML source.

\ No newline at end of file + (lml-format " ~D" (* x x))))
The square of the first five integers are: 1 4 9 16 25

View this page's LML source.

\ No newline at end of file diff --git a/htmlgen.lisp b/htmlgen.lisp index 46abc6d..62a99e9 100644 --- a/htmlgen.lisp +++ b/htmlgen.lisp @@ -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 @@ -762,11 +762,47 @@ (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"))))) -- 2.34.1