Common Lisp Package: COM.INFORMATIMAGO.COMMON-LISP.HTML-GENERATOR.HTML

This package exports macros and functions to generate HTML pages. See also: <http://www.cliki.net/HTML-from-sexpr> html-generators-in-lisp.txt EXAMPLES: With macros, issuing static html; the pcdata must be tagged with the PCDATA macro: (with-html-output () (doctype :loose (html - (head - (title - (pcdata "title"))) (body (:color "#123456" "background-color" "red") (p - (pcdata "para") (pcdata "var"))))) (values)) prints: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <title>title </title></head> <body color="#123456" background-color="red"> <p>para var </p></body></html> With functions the lists of attributes and body elements can be built dynamically. The strings are automatically converted to pcdata: (progn (write-html (doctype* :loose)) (write-html (html* '() (list (head* '() (list (title* '() (list (pcdata* "title"))))) (body* (list :color "#123456" "background-color" "red") (list (p* '() (list "para" (pcdata "variable")))))))) (values)) prints: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <title>title </title></head> <body color="#123456" background-color="red"> <p>para variable </p></body></html> License: AGPL3 Copyright Pascal J. Bourguignon 2003 - 2012 This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details. You should have received a copy of the GNU Affero General Public License along with this program. If not, see <http://www.gnu.org/licenses/>

README:

FUNCTION

Public

A* (&OPTIONAL ATTRIBUTES BODY)

DO: Generate a &lt;a&gt; HTML element: anchor. ATTRIBUTES: A P-list of attributes. Attribute names are keywords, attribute values are strings. BODY: Lisp forms, evaluated between the opening tag of the element and the closing tag of the element. RETURN: The generated HTML.

ABBR* (&OPTIONAL ATTRIBUTES BODY)

DO: Generate a &lt;abbr&gt; HTML element: abbreviated form (e.g., WWW, HTTP, etc.). ATTRIBUTES: A P-list of attributes. Attribute names are keywords, attribute values are strings. BODY: Lisp forms, evaluated between the opening tag of the element and the closing tag of the element. RETURN: The generated HTML.

ACRONYM* (&OPTIONAL ATTRIBUTES BODY)

DO: Generate a &lt;acronym&gt; HTML element. ATTRIBUTES: A P-list of attributes. Attribute names are keywords, attribute values are strings. BODY: Lisp forms, evaluated between the opening tag of the element and the closing tag of the element. RETURN: The generated HTML.

ADDRESS* (&OPTIONAL ATTRIBUTES BODY)

DO: Generate a &lt;address&gt; HTML element: information on author. ATTRIBUTES: A P-list of attributes. Attribute names are keywords, attribute values are strings. BODY: Lisp forms, evaluated between the opening tag of the element and the closing tag of the element. RETURN: The generated HTML.

APPLET* (&OPTIONAL ATTRIBUTES BODY)

DO: Generate a &lt;applet&gt; HTML element: Java applet. ATTRIBUTES: A P-list of attributes. Attribute names are keywords, attribute values are strings. BODY: Lisp forms, evaluated between the opening tag of the element and the closing tag of the element. RETURN: The generated HTML.

AREA* (&OPTIONAL ATTRIBUTES BODY)

DO: Generate a &lt;area&gt; HTML element: client-side image map area. ATTRIBUTES: A P-list of attributes. Attribute names are keywords, attribute values are strings. BODY: Lisp forms, evaluated between the opening tag of the element and the closing tag of the element. RETURN: The generated HTML.

B* (&OPTIONAL ATTRIBUTES BODY)

DO: Generate a &lt;b&gt; HTML element: bold text style. ATTRIBUTES: A P-list of attributes. Attribute names are keywords, attribute values are strings. BODY: Lisp forms, evaluated between the opening tag of the element and the closing tag of the element. RETURN: The generated HTML.

BASE* (&OPTIONAL ATTRIBUTES BODY)

DO: Generate a &lt;base&gt; HTML element: document base URI. ATTRIBUTES: A P-list of attributes. Attribute names are keywords, attribute values are strings. BODY: Lisp forms, evaluated between the opening tag of the element and the closing tag of the element. RETURN: The generated HTML.

BASEFONT* (&OPTIONAL ATTRIBUTES BODY)

DO: Generate a &lt;basefont&gt; HTML element: base font size. ATTRIBUTES: A P-list of attributes. Attribute names are keywords, attribute values are strings. BODY: Lisp forms, evaluated between the opening tag of the element and the closing tag of the element. RETURN: The generated HTML.

BDO* (&OPTIONAL ATTRIBUTES BODY)

DO: Generate a &lt;bdo&gt; HTML element: I18N BiDi over-ride. ATTRIBUTES: A P-list of attributes. Attribute names are keywords, attribute values are strings. BODY: Lisp forms, evaluated between the opening tag of the element and the closing tag of the element. RETURN: The generated HTML.

BIG* (&OPTIONAL ATTRIBUTES BODY)

DO: Generate a &lt;big&gt; HTML element: large text style. ATTRIBUTES: A P-list of attributes. Attribute names are keywords, attribute values are strings. BODY: Lisp forms, evaluated between the opening tag of the element and the closing tag of the element. RETURN: The generated HTML.

BLOCKQUOTE* (&OPTIONAL ATTRIBUTES BODY)

DO: Generate a &lt;blockquote&gt; HTML element: long quotation. ATTRIBUTES: A P-list of attributes. Attribute names are keywords, attribute values are strings. BODY: Lisp forms, evaluated between the opening tag of the element and the closing tag of the element. RETURN: The generated HTML.

BODY* (&OPTIONAL ATTRIBUTES BODY)

DO: Generate a &lt;body&gt; HTML element: document body. ATTRIBUTES: A P-list of attributes. Attribute names are keywords, attribute values are strings. BODY: Lisp forms, evaluated between the opening tag of the element and the closing tag of the element. RETURN: The generated HTML.

BR* (&OPTIONAL ATTRIBUTES BODY)

DO: Generate a &lt;br&gt; HTML element: forced line break. ATTRIBUTES: A P-list of attributes. Attribute names are keywords, attribute values are strings. BODY: Lisp forms, evaluated between the opening tag of the element and the closing tag of the element. RETURN: The generated HTML.

BUTTON* (&OPTIONAL ATTRIBUTES BODY)

DO: Generate a &lt;button&gt; HTML element: push button. ATTRIBUTES: A P-list of attributes. Attribute names are keywords, attribute values are strings. BODY: Lisp forms, evaluated between the opening tag of the element and the closing tag of the element. RETURN: The generated HTML.

CAPTION* (&OPTIONAL ATTRIBUTES BODY)

DO: Generate a &lt;caption&gt; HTML element: table caption. ATTRIBUTES: A P-list of attributes. Attribute names are keywords, attribute values are strings. BODY: Lisp forms, evaluated between the opening tag of the element and the closing tag of the element. RETURN: The generated HTML.

CDATA* (CONTROL &REST ARGUMENTS)

RETURN: An element storing the result of formating the CONTROL string with the ARGUMENTS as CDATA (ie. post-processed to quote special HTML characters (&,").

CENTER* (&OPTIONAL ATTRIBUTES BODY)

DO: Generate a &lt;center&gt; HTML element: shorthand for DIV align=center. ATTRIBUTES: A P-list of attributes. Attribute names are keywords, attribute values are strings. BODY: Lisp forms, evaluated between the opening tag of the element and the closing tag of the element. RETURN: The generated HTML.

CITE* (&OPTIONAL ATTRIBUTES BODY)

DO: Generate a &lt;cite&gt; HTML element: citation. ATTRIBUTES: A P-list of attributes. Attribute names are keywords, attribute values are strings. BODY: Lisp forms, evaluated between the opening tag of the element and the closing tag of the element. RETURN: The generated HTML.

CODE* (&OPTIONAL ATTRIBUTES BODY)

DO: Generate a &lt;code&gt; HTML element: computer code fragment. ATTRIBUTES: A P-list of attributes. Attribute names are keywords, attribute values are strings. BODY: Lisp forms, evaluated between the opening tag of the element and the closing tag of the element. RETURN: The generated HTML.

COL* (&OPTIONAL ATTRIBUTES BODY)

DO: Generate a &lt;col&gt; HTML element: table column. ATTRIBUTES: A P-list of attributes. Attribute names are keywords, attribute values are strings. BODY: Lisp forms, evaluated between the opening tag of the element and the closing tag of the element. RETURN: The generated HTML.

COLGROUP* (&OPTIONAL ATTRIBUTES BODY)

DO: Generate a &lt;colgroup&gt; HTML element: table column group. ATTRIBUTES: A P-list of attributes. Attribute names are keywords, attribute values are strings. BODY: Lisp forms, evaluated between the opening tag of the element and the closing tag of the element. RETURN: The generated HTML.

COLLECT-ELEMENT (ELEMENT)

DO: Collect the ELEMENT into the current *HTML-OUTPUT-ELEMENTS*. RETURN: ELEMENT.

COLLECT-ELEMENTS (ELEMENTS)

DO: Collect the ELEMENTS into the current *HTML-OUTPUT-ELEMENTS*. RETURN: ELEMENTS.

COMMENT (CONTROL &REST ARGUMENTS)

RETURN: An element storing the result of formating the CONTROL string with the ARGUMENTS as a HTML comment.

COMMENT* (CONTROL &REST ARGUMENTS)

RETURN: An element storing the result of formating the CONTROL string with the ARGUMENTS as a HTML comment.

DD* (&OPTIONAL ATTRIBUTES BODY)

DO: Generate a &lt;dd&gt; HTML element: defelementinition description. ATTRIBUTES: A P-list of attributes. Attribute names are keywords, attribute values are strings. BODY: Lisp forms, evaluated between the opening tag of the element and the closing tag of the element. RETURN: The generated HTML.

DEL* (&OPTIONAL ATTRIBUTES BODY)

DO: Generate a &lt;del&gt; HTML element: deleted text. ATTRIBUTES: A P-list of attributes. Attribute names are keywords, attribute values are strings. BODY: Lisp forms, evaluated between the opening tag of the element and the closing tag of the element. RETURN: The generated HTML.

DFN* (&OPTIONAL ATTRIBUTES BODY)

DO: Generate a &lt;dfn&gt; HTML element: instance defelementinition. ATTRIBUTES: A P-list of attributes. Attribute names are keywords, attribute values are strings. BODY: Lisp forms, evaluated between the opening tag of the element and the closing tag of the element. RETURN: The generated HTML.

DIR* (&OPTIONAL ATTRIBUTES BODY)

DO: Generate a &lt;dir&gt; HTML element: directory list. ATTRIBUTES: A P-list of attributes. Attribute names are keywords, attribute values are strings. BODY: Lisp forms, evaluated between the opening tag of the element and the closing tag of the element. RETURN: The generated HTML.

DIV* (&OPTIONAL ATTRIBUTES BODY)

DO: Generate a &lt;div&gt; HTML element: generic language/style container. ATTRIBUTES: A P-list of attributes. Attribute names are keywords, attribute values are strings. BODY: Lisp forms, evaluated between the opening tag of the element and the closing tag of the element. RETURN: The generated HTML.

DL* (&OPTIONAL ATTRIBUTES BODY)

DO: Generate a &lt;dl&gt; HTML element: defelementinition list. ATTRIBUTES: A P-list of attributes. Attribute names are keywords, attribute values are strings. BODY: Lisp forms, evaluated between the opening tag of the element and the closing tag of the element. RETURN: The generated HTML.

DOCTYPE* (KIND)

KIND: one of :STRICT, :TRANSITIONAL, :LOOSE or :FRAMESET. RETURN: The DOCTYPE tag.

DT* (&OPTIONAL ATTRIBUTES BODY)

DO: Generate a &lt;dt&gt; HTML element: defelementinition term. ATTRIBUTES: A P-list of attributes. Attribute names are keywords, attribute values are strings. BODY: Lisp forms, evaluated between the opening tag of the element and the closing tag of the element. RETURN: The generated HTML.

EM* (&OPTIONAL ATTRIBUTES BODY)

DO: Generate a &lt;em&gt; HTML element: emphasis. ATTRIBUTES: A P-list of attributes. Attribute names are keywords, attribute values are strings. BODY: Lisp forms, evaluated between the opening tag of the element and the closing tag of the element. RETURN: The generated HTML.

FIELDSET* (&OPTIONAL ATTRIBUTES BODY)

DO: Generate a &lt;fieldset&gt; HTML element: form control group. ATTRIBUTES: A P-list of attributes. Attribute names are keywords, attribute values are strings. BODY: Lisp forms, evaluated between the opening tag of the element and the closing tag of the element. RETURN: The generated HTML.

FONT* (&OPTIONAL ATTRIBUTES BODY)

DO: Generate a &lt;font&gt; HTML element: local change to font. ATTRIBUTES: A P-list of attributes. Attribute names are keywords, attribute values are strings. BODY: Lisp forms, evaluated between the opening tag of the element and the closing tag of the element. RETURN: The generated HTML.

FORM* (&OPTIONAL ATTRIBUTES BODY)

DO: Generate a &lt;form&gt; HTML element: interactive form. ATTRIBUTES: A P-list of attributes. Attribute names are keywords, attribute values are strings. BODY: Lisp forms, evaluated between the opening tag of the element and the closing tag of the element. RETURN: The generated HTML.

FRAME* (&OPTIONAL ATTRIBUTES BODY)

DO: Generate a &lt;frame&gt; HTML element: subwindow. ATTRIBUTES: A P-list of attributes. Attribute names are keywords, attribute values are strings. BODY: Lisp forms, evaluated between the opening tag of the element and the closing tag of the element. RETURN: The generated HTML.

FRAMESET* (&OPTIONAL ATTRIBUTES BODY)

DO: Generate a &lt;frameset&gt; HTML element: window subdivision. ATTRIBUTES: A P-list of attributes. Attribute names are keywords, attribute values are strings. BODY: Lisp forms, evaluated between the opening tag of the element and the closing tag of the element. RETURN: The generated HTML.

H1* (&OPTIONAL ATTRIBUTES BODY)

DO: Generate a &lt;h1&gt; HTML element: Heading. ATTRIBUTES: A P-list of attributes. Attribute names are keywords, attribute values are strings. BODY: Lisp forms, evaluated between the opening tag of the element and the closing tag of the element. RETURN: The generated HTML.

H2* (&OPTIONAL ATTRIBUTES BODY)

DO: Generate a &lt;h2&gt; HTML element: Heading. ATTRIBUTES: A P-list of attributes. Attribute names are keywords, attribute values are strings. BODY: Lisp forms, evaluated between the opening tag of the element and the closing tag of the element. RETURN: The generated HTML.

H3* (&OPTIONAL ATTRIBUTES BODY)

DO: Generate a &lt;h3&gt; HTML element: Heading. ATTRIBUTES: A P-list of attributes. Attribute names are keywords, attribute values are strings. BODY: Lisp forms, evaluated between the opening tag of the element and the closing tag of the element. RETURN: The generated HTML.

H4* (&OPTIONAL ATTRIBUTES BODY)

DO: Generate a &lt;h4&gt; HTML element: Heading. ATTRIBUTES: A P-list of attributes. Attribute names are keywords, attribute values are strings. BODY: Lisp forms, evaluated between the opening tag of the element and the closing tag of the element. RETURN: The generated HTML.

H5* (&OPTIONAL ATTRIBUTES BODY)

DO: Generate a &lt;h5&gt; HTML element: Heading. ATTRIBUTES: A P-list of attributes. Attribute names are keywords, attribute values are strings. BODY: Lisp forms, evaluated between the opening tag of the element and the closing tag of the element. RETURN: The generated HTML.

H6* (&OPTIONAL ATTRIBUTES BODY)

DO: Generate a &lt;h6&gt; HTML element: Heading. ATTRIBUTES: A P-list of attributes. Attribute names are keywords, attribute values are strings. BODY: Lisp forms, evaluated between the opening tag of the element and the closing tag of the element. RETURN: The generated HTML.

HEAD* (&OPTIONAL ATTRIBUTES BODY)

DO: Generate a &lt;head&gt; HTML element: document head. ATTRIBUTES: A P-list of attributes. Attribute names are keywords, attribute values are strings. BODY: Lisp forms, evaluated between the opening tag of the element and the closing tag of the element. RETURN: The generated HTML.

HR* (&OPTIONAL ATTRIBUTES BODY)

DO: Generate a &lt;hr&gt; HTML element: horizontal rule. ATTRIBUTES: A P-list of attributes. Attribute names are keywords, attribute values are strings. BODY: Lisp forms, evaluated between the opening tag of the element and the closing tag of the element. RETURN: The generated HTML.

HTML* (&OPTIONAL ATTRIBUTES BODY)

DO: Generate a &lt;html&gt; HTML element: document root element. ATTRIBUTES: A P-list of attributes. Attribute names are keywords, attribute values are strings. BODY: Lisp forms, evaluated between the opening tag of the element and the closing tag of the element. RETURN: The generated HTML.

HTML-STRING* (CONTROL &REST ARGUMENTS)

RETURN: An element storing the result of formating the CONTROL string with the ARGUMENTS containing HTML code. EXAMPLE: (HTML-STRING "<P>Some paragraph</P>") --> #<element>

I* (&OPTIONAL ATTRIBUTES BODY)

DO: Generate a &lt;i&gt; HTML element: italic text style. ATTRIBUTES: A P-list of attributes. Attribute names are keywords, attribute values are strings. BODY: Lisp forms, evaluated between the opening tag of the element and the closing tag of the element. RETURN: The generated HTML.

IFRAME* (&OPTIONAL ATTRIBUTES BODY)

DO: Generate a &lt;iframe&gt; HTML element: inline subwindow. ATTRIBUTES: A P-list of attributes. Attribute names are keywords, attribute values are strings. BODY: Lisp forms, evaluated between the opening tag of the element and the closing tag of the element. RETURN: The generated HTML.

IMG* (&OPTIONAL ATTRIBUTES BODY)

DO: Generate a &lt;img&gt; HTML element: embedded image. ATTRIBUTES: A P-list of attributes. Attribute names are keywords, attribute values are strings. BODY: Lisp forms, evaluated between the opening tag of the element and the closing tag of the element. RETURN: The generated HTML.

INPUT* (&OPTIONAL ATTRIBUTES BODY)

DO: Generate a &lt;input&gt; HTML element: form control. ATTRIBUTES: A P-list of attributes. Attribute names are keywords, attribute values are strings. BODY: Lisp forms, evaluated between the opening tag of the element and the closing tag of the element. RETURN: The generated HTML.

INS* (&OPTIONAL ATTRIBUTES BODY)

DO: Generate a &lt;ins&gt; HTML element: inserted text. ATTRIBUTES: A P-list of attributes. Attribute names are keywords, attribute values are strings. BODY: Lisp forms, evaluated between the opening tag of the element and the closing tag of the element. RETURN: The generated HTML.

ISINDEX* (&OPTIONAL ATTRIBUTES BODY)

DO: Generate a &lt;isindex&gt; HTML element: single line prompt. ATTRIBUTES: A P-list of attributes. Attribute names are keywords, attribute values are strings. BODY: Lisp forms, evaluated between the opening tag of the element and the closing tag of the element. RETURN: The generated HTML.

KBD* (&OPTIONAL ATTRIBUTES BODY)

DO: Generate a &lt;kbd&gt; HTML element: text to be entered by the user. ATTRIBUTES: A P-list of attributes. Attribute names are keywords, attribute values are strings. BODY: Lisp forms, evaluated between the opening tag of the element and the closing tag of the element. RETURN: The generated HTML.

LABEL* (&OPTIONAL ATTRIBUTES BODY)

DO: Generate a &lt;label&gt; HTML element: form field label text. ATTRIBUTES: A P-list of attributes. Attribute names are keywords, attribute values are strings. BODY: Lisp forms, evaluated between the opening tag of the element and the closing tag of the element. RETURN: The generated HTML.

LEGEND* (&OPTIONAL ATTRIBUTES BODY)

DO: Generate a &lt;legend&gt; HTML element: fieldset legend. ATTRIBUTES: A P-list of attributes. Attribute names are keywords, attribute values are strings. BODY: Lisp forms, evaluated between the opening tag of the element and the closing tag of the element. RETURN: The generated HTML.

LI* (&OPTIONAL ATTRIBUTES BODY)

DO: Generate a &lt;li&gt; HTML element: list item. ATTRIBUTES: A P-list of attributes. Attribute names are keywords, attribute values are strings. BODY: Lisp forms, evaluated between the opening tag of the element and the closing tag of the element. RETURN: The generated HTML.

MAP* (&OPTIONAL ATTRIBUTES BODY)

DO: Generate a &lt;map&gt; HTML element: client-side image map. ATTRIBUTES: A P-list of attributes. Attribute names are keywords, attribute values are strings. BODY: Lisp forms, evaluated between the opening tag of the element and the closing tag of the element. RETURN: The generated HTML.

META* (&OPTIONAL ATTRIBUTES BODY)

DO: Generate a &lt;meta&gt; HTML element: generic metainformation. ATTRIBUTES: A P-list of attributes. Attribute names are keywords, attribute values are strings. BODY: Lisp forms, evaluated between the opening tag of the element and the closing tag of the element. RETURN: The generated HTML.

NOFRAMES* (&OPTIONAL ATTRIBUTES BODY)

DO: Generate a &lt;noframes&gt; HTML element: alternate content container for non frame-based rendering. ATTRIBUTES: A P-list of attributes. Attribute names are keywords, attribute values are strings. BODY: Lisp forms, evaluated between the opening tag of the element and the closing tag of the element. RETURN: The generated HTML.

NORMALIZE-ATTRIBUTE-NAME (NAME)

NAME: A string or a symbol. RETURN: A string containing the normalized attribute name, ie: downcased.

NOSCRIPT* (&OPTIONAL ATTRIBUTES BODY)

DO: Generate a &lt;noscript&gt; HTML element: alternate content container for non script-based rendering. ATTRIBUTES: A P-list of attributes. Attribute names are keywords, attribute values are strings. BODY: Lisp forms, evaluated between the opening tag of the element and the closing tag of the element. RETURN: The generated HTML.

OBJECT* (&OPTIONAL ATTRIBUTES BODY)

DO: Generate a &lt;object&gt; HTML element: generic embedded object. ATTRIBUTES: A P-list of attributes. Attribute names are keywords, attribute values are strings. BODY: Lisp forms, evaluated between the opening tag of the element and the closing tag of the element. RETURN: The generated HTML.

OL* (&OPTIONAL ATTRIBUTES BODY)

DO: Generate a &lt;ol&gt; HTML element: ordered list. ATTRIBUTES: A P-list of attributes. Attribute names are keywords, attribute values are strings. BODY: Lisp forms, evaluated between the opening tag of the element and the closing tag of the element. RETURN: The generated HTML.

OPTGROUP* (&OPTIONAL ATTRIBUTES BODY)

DO: Generate a &lt;optgroup&gt; HTML element: option group. ATTRIBUTES: A P-list of attributes. Attribute names are keywords, attribute values are strings. BODY: Lisp forms, evaluated between the opening tag of the element and the closing tag of the element. RETURN: The generated HTML.

OPTION* (&OPTIONAL ATTRIBUTES BODY)

DO: Generate a &lt;option&gt; HTML element: selectable choice. ATTRIBUTES: A P-list of attributes. Attribute names are keywords, attribute values are strings. BODY: Lisp forms, evaluated between the opening tag of the element and the closing tag of the element. RETURN: The generated HTML.

P* (&OPTIONAL ATTRIBUTES BODY)

DO: Generate a &lt;p&gt; HTML element: paragraph. ATTRIBUTES: A P-list of attributes. Attribute names are keywords, attribute values are strings. BODY: Lisp forms, evaluated between the opening tag of the element and the closing tag of the element. RETURN: The generated HTML.

PARAM* (&OPTIONAL ATTRIBUTES BODY)

DO: Generate a &lt;param&gt; HTML element: named property value. ATTRIBUTES: A P-list of attributes. Attribute names are keywords, attribute values are strings. BODY: Lisp forms, evaluated between the opening tag of the element and the closing tag of the element. RETURN: The generated HTML.

PCDATA* (CONTROL &REST ARGUMENTS)

RETURN: An element storing the result of formating the CONTROL string with the ARGUMENTS as CDATA (ie. post-processed to quote special HTML characters (<,>,&,").

PRE* (&OPTIONAL ATTRIBUTES BODY)

DO: Generate a &lt;pre&gt; HTML element: preformatted text. ATTRIBUTES: A P-list of attributes. Attribute names are keywords, attribute values are strings. BODY: Lisp forms, evaluated between the opening tag of the element and the closing tag of the element. RETURN: The generated HTML.

Q* (&OPTIONAL ATTRIBUTES BODY)

DO: Generate a &lt;q&gt; HTML element: short inline quotation. ATTRIBUTES: A P-list of attributes. Attribute names are keywords, attribute values are strings. BODY: Lisp forms, evaluated between the opening tag of the element and the closing tag of the element. RETURN: The generated HTML.

S* (&OPTIONAL ATTRIBUTES BODY)

DO: Generate a &lt;s&gt; HTML element: strike-through text style. ATTRIBUTES: A P-list of attributes. Attribute names are keywords, attribute values are strings. BODY: Lisp forms, evaluated between the opening tag of the element and the closing tag of the element. RETURN: The generated HTML.

SAMP* (&OPTIONAL ATTRIBUTES BODY)

DO: Generate a &lt;samp&gt; HTML element: sample program output, scripts, etc.. ATTRIBUTES: A P-list of attributes. Attribute names are keywords, attribute values are strings. BODY: Lisp forms, evaluated between the opening tag of the element and the closing tag of the element. RETURN: The generated HTML.

SCRIPT* (&OPTIONAL ATTRIBUTES BODY)

DO: Generate a &lt;script&gt; HTML element: script statements. ATTRIBUTES: A P-list of attributes. Attribute names are keywords, attribute values are strings. BODY: Lisp forms, evaluated between the opening tag of the element and the closing tag of the element. RETURN: The generated HTML.

SELECT* (&OPTIONAL ATTRIBUTES BODY)

DO: Generate a &lt;select&gt; HTML element: option selector. ATTRIBUTES: A P-list of attributes. Attribute names are keywords, attribute values are strings. BODY: Lisp forms, evaluated between the opening tag of the element and the closing tag of the element. RETURN: The generated HTML.

SMALL* (&OPTIONAL ATTRIBUTES BODY)

DO: Generate a &lt;small&gt; HTML element: small text style. ATTRIBUTES: A P-list of attributes. Attribute names are keywords, attribute values are strings. BODY: Lisp forms, evaluated between the opening tag of the element and the closing tag of the element. RETURN: The generated HTML.

SPAN* (&OPTIONAL ATTRIBUTES BODY)

DO: Generate a &lt;span&gt; HTML element: generic language/style container. ATTRIBUTES: A P-list of attributes. Attribute names are keywords, attribute values are strings. BODY: Lisp forms, evaluated between the opening tag of the element and the closing tag of the element. RETURN: The generated HTML.

STRIKE* (&OPTIONAL ATTRIBUTES BODY)

DO: Generate a &lt;strike&gt; HTML element: strike-through text. ATTRIBUTES: A P-list of attributes. Attribute names are keywords, attribute values are strings. BODY: Lisp forms, evaluated between the opening tag of the element and the closing tag of the element. RETURN: The generated HTML.

STRONG* (&OPTIONAL ATTRIBUTES BODY)

DO: Generate a &lt;strong&gt; HTML element: strong emphasis. ATTRIBUTES: A P-list of attributes. Attribute names are keywords, attribute values are strings. BODY: Lisp forms, evaluated between the opening tag of the element and the closing tag of the element. RETURN: The generated HTML.

STYLE* (&OPTIONAL ATTRIBUTES BODY)

DO: Generate a &lt;style&gt; HTML element: style info. ATTRIBUTES: A P-list of attributes. Attribute names are keywords, attribute values are strings. BODY: Lisp forms, evaluated between the opening tag of the element and the closing tag of the element. RETURN: The generated HTML.

SUB* (&OPTIONAL ATTRIBUTES BODY)

DO: Generate a &lt;sub&gt; HTML element: subscript. ATTRIBUTES: A P-list of attributes. Attribute names are keywords, attribute values are strings. BODY: Lisp forms, evaluated between the opening tag of the element and the closing tag of the element. RETURN: The generated HTML.

SUP* (&OPTIONAL ATTRIBUTES BODY)

DO: Generate a &lt;sup&gt; HTML element: superscript. ATTRIBUTES: A P-list of attributes. Attribute names are keywords, attribute values are strings. BODY: Lisp forms, evaluated between the opening tag of the element and the closing tag of the element. RETURN: The generated HTML.

TABLE* (&OPTIONAL ATTRIBUTES BODY)

DO: Generate a &lt;table&gt; HTML element. ATTRIBUTES: A P-list of attributes. Attribute names are keywords, attribute values are strings. BODY: Lisp forms, evaluated between the opening tag of the element and the closing tag of the element. RETURN: The generated HTML.

TBODY* (&OPTIONAL ATTRIBUTES BODY)

DO: Generate a &lt;tbody&gt; HTML element: table body. ATTRIBUTES: A P-list of attributes. Attribute names are keywords, attribute values are strings. BODY: Lisp forms, evaluated between the opening tag of the element and the closing tag of the element. RETURN: The generated HTML.

TD* (&OPTIONAL ATTRIBUTES BODY)

DO: Generate a &lt;td&gt; HTML element: table data cell. ATTRIBUTES: A P-list of attributes. Attribute names are keywords, attribute values are strings. BODY: Lisp forms, evaluated between the opening tag of the element and the closing tag of the element. RETURN: The generated HTML.

TEXTAREA* (&OPTIONAL ATTRIBUTES BODY)

DO: Generate a &lt;textarea&gt; HTML element: multi-line text field. ATTRIBUTES: A P-list of attributes. Attribute names are keywords, attribute values are strings. BODY: Lisp forms, evaluated between the opening tag of the element and the closing tag of the element. RETURN: The generated HTML.

TFOOT* (&OPTIONAL ATTRIBUTES BODY)

DO: Generate a &lt;tfoot&gt; HTML element: table footer. ATTRIBUTES: A P-list of attributes. Attribute names are keywords, attribute values are strings. BODY: Lisp forms, evaluated between the opening tag of the element and the closing tag of the element. RETURN: The generated HTML.

TH* (&OPTIONAL ATTRIBUTES BODY)

DO: Generate a &lt;th&gt; HTML element: table header cell. ATTRIBUTES: A P-list of attributes. Attribute names are keywords, attribute values are strings. BODY: Lisp forms, evaluated between the opening tag of the element and the closing tag of the element. RETURN: The generated HTML.

THEAD* (&OPTIONAL ATTRIBUTES BODY)

DO: Generate a &lt;thead&gt; HTML element: table header. ATTRIBUTES: A P-list of attributes. Attribute names are keywords, attribute values are strings. BODY: Lisp forms, evaluated between the opening tag of the element and the closing tag of the element. RETURN: The generated HTML.

TITLE* (&OPTIONAL ATTRIBUTES BODY)

DO: Generate a &lt;title&gt; HTML element: document title. ATTRIBUTES: A P-list of attributes. Attribute names are keywords, attribute values are strings. BODY: Lisp forms, evaluated between the opening tag of the element and the closing tag of the element. RETURN: The generated HTML.

TR* (&OPTIONAL ATTRIBUTES BODY)

DO: Generate a &lt;tr&gt; HTML element: table row. ATTRIBUTES: A P-list of attributes. Attribute names are keywords, attribute values are strings. BODY: Lisp forms, evaluated between the opening tag of the element and the closing tag of the element. RETURN: The generated HTML.

TT* (&OPTIONAL ATTRIBUTES BODY)

DO: Generate a &lt;tt&gt; HTML element: teletype or monospaced text style. ATTRIBUTES: A P-list of attributes. Attribute names are keywords, attribute values are strings. BODY: Lisp forms, evaluated between the opening tag of the element and the closing tag of the element. RETURN: The generated HTML.

U* (&OPTIONAL ATTRIBUTES BODY)

DO: Generate a &lt;u&gt; HTML element: underlined text style. ATTRIBUTES: A P-list of attributes. Attribute names are keywords, attribute values are strings. BODY: Lisp forms, evaluated between the opening tag of the element and the closing tag of the element. RETURN: The generated HTML.

UL* (&OPTIONAL ATTRIBUTES BODY)

DO: Generate a &lt;ul&gt; HTML element: unordered list. ATTRIBUTES: A P-list of attributes. Attribute names are keywords, attribute values are strings. BODY: Lisp forms, evaluated between the opening tag of the element and the closing tag of the element. RETURN: The generated HTML.

VAR* (&OPTIONAL ATTRIBUTES BODY)

DO: Generate a &lt;var&gt; HTML element: instance of a variable or program argument. ATTRIBUTES: A P-list of attributes. Attribute names are keywords, attribute values are strings. BODY: Lisp forms, evaluated between the opening tag of the element and the closing tag of the element. RETURN: The generated HTML.

WRITE-ESCAPING (ESCAPES STRING STREAM)

DO: Write the STRING to the STREAM, escaping characters found in ESCAPES, or not found in the ranges of the *HTML-CHARACTER-SET* as &amp;#nn; escapes. ESCAPES: An a-list mapping characters to escape strings. STRING: A text string. STREAM: An output stream.

WRITE-HTML (ELEMENT &OPTIONAL (STREAM *HTML-OUTPUT-STREAM*))

DO: Write the HTML encoded in the ELEMENT to the output STREAM.

Undocumented

CDATA (CONTROL &REST ARGUMENTS)

HTML-STRING (CONTROL &REST ARGUMENTS)

PCDATA (CONTROL &REST ARGUMENTS)

Private

AT-DEFAULT (INSTANCE)

@arg[extid]{A @class{extid}} @return[sytemid]{puri:uri or nil} Returns the System ID part of this External ID.

AT-DOCUMENTATION (INSTANCE)

@arg[extid]{A @class{extid}} @return[sytemid]{puri:uri or nil} Returns the System ID part of this External ID.

AT-ELEMENTS (INSTANCE)

@arg[extid]{A @class{extid}} @return[sytemid]{puri:uri or nil} Returns the System ID part of this External ID.

AT-NAME (INSTANCE)

@arg[extid]{A @class{extid}} @return[sytemid]{puri:uri or nil} Returns the System ID part of this External ID.

AT-OPTIONS (INSTANCE)

@arg[extid]{A @class{extid}} @return[sytemid]{puri:uri or nil} Returns the System ID part of this External ID.

AT-TYPE (INSTANCE)

@arg[extid]{A @class{extid}} @return[sytemid]{puri:uri or nil} Returns the System ID part of this External ID.

EL-ATTRIBUTES (INSTANCE)

@arg[extid]{A @class{extid}} @return[sytemid]{puri:uri or nil} Returns the System ID part of this External ID.

EL-DOCUMENTATION (INSTANCE)

@arg[extid]{A @class{extid}} @return[sytemid]{puri:uri or nil} Returns the System ID part of this External ID.

EL-NAME (INSTANCE)

@arg[extid]{A @class{extid}} @return[sytemid]{puri:uri or nil} Returns the System ID part of this External ID.

EL-OPTIONS (INSTANCE)

@arg[extid]{A @class{extid}} @return[sytemid]{puri:uri or nil} Returns the System ID part of this External ID.

OBFUSCATE (ADDRESS)

DO: Generate an email address as an HTML string with the characters written as entities.

SPLIT-STRING (STRING &OPTIONAL (SEPARATORS ) (REMOVE-EMPTY NIL))

STRING: A sequence. SEPARATOR: A sequence. RETURN: A list of subsequence of STRING, split upon any element of SEPARATORS. Separators are compared to elements of the STRING with EQL. NOTE: It's actually a simple split-sequence now. EXAMPLES: (split-string '(1 2 0 3 4 5 0 6 7 8 0 9) '(0)) --> ((1 2) (3 4 5) (6 7 8) (9)) (split-string #(1 2 0 3 4 5 0 6 7 8 0 9) #(0)) --> (#(1 2) #(3 4 5) #(6 7 8) #(9)) (split-string "1 2 0 3 4 5 0 6 7 8" '(#space #0)) --> ("1" "2" "" "" "3" "4" "5" "" "" "6" "7" "8")

STRING-REPLACE (STRING PATTERN REPLACE &KEY (TEST #'CHAR=))

RETURN: A string build from STRING where all occurences of PATTERN are replaced by the REPLACE string. TEST: The function used to compare the elements of the PATTERN with the elements of the STRING.

Undocumented

SETFAT-DEFAULT (NEW-VALUE INSTANCE)

SETFAT-DOCUMENTATION (NEW-VALUE INSTANCE)

SETFAT-ELEMENTS (NEW-VALUE INSTANCE)

SETFAT-NAME (NEW-VALUE INSTANCE)

SETFAT-OPTIONS (NEW-VALUE INSTANCE)

SETFAT-TYPE (NEW-VALUE INSTANCE)

CHECK-FRAMESET (NAME)

CHECK-LOOSE (NAME)

COPY-DTD-ATTRIBUTE (INSTANCE)

COPY-DTD-ELEMENT (INSTANCE)

DTD-ATTRIBUTE-P (OBJECT)

DTD-ELEMENT-P (OBJECT)

SETFEL-ATTRIBUTES (NEW-VALUE INSTANCE)

SETFEL-DOCUMENTATION (NEW-VALUE INSTANCE)

SETFEL-NAME (NEW-VALUE INSTANCE)

SETFEL-OPTIONS (NEW-VALUE INSTANCE)

GENERATE-ELEMENT-MACRO-BODY (FNAME VATTR VBODY)

GENERATE-ELEMENTS (ELEMENTS)

MAKE-DTD-ATTRIBUTE (&KEY ((NAME DUM649) NIL) ((ELEMENTS DUM650) NIL) ((TYPE DUM651) NIL) ((DEFAULT DUM652) NIL) ((OPTIONS DUM653) NIL) ((DOCUMENTATION DUM654) NIL))

MAKE-DTD-ELEMENT (&KEY ((NAME DUM607) NIL) ((OPTIONS DUM608) NIL) ((DOCUMENTATION DUM609) NIL) ((ATTRIBUTES DUM610) NIL))

TOKEN-ID-P (TOKEN)

TOKEN-IDREFS-P (TOKEN)

TOKEN-NUMBER-P (TOKEN)

MACRO

Public

A (&OPTIONAL ATTRIBUTES &BODY BODY)

DO: Generate a &lt;a&gt; HTML element: anchor. ATTRIBUTES: A P-list of attributes. Attribute names are keywords, attribute values are strings. BODY: Lisp forms, evaluated between the opening tag of the element and the closing tag of the element. RETURN: The generated HTML.

ABBR (&OPTIONAL ATTRIBUTES &BODY BODY)

DO: Generate a &lt;abbr&gt; HTML element: abbreviated form (e.g., WWW, HTTP, etc.). ATTRIBUTES: A P-list of attributes. Attribute names are keywords, attribute values are strings. BODY: Lisp forms, evaluated between the opening tag of the element and the closing tag of the element. RETURN: The generated HTML.

ACRONYM (&OPTIONAL ATTRIBUTES &BODY BODY)

DO: Generate a &lt;acronym&gt; HTML element. ATTRIBUTES: A P-list of attributes. Attribute names are keywords, attribute values are strings. BODY: Lisp forms, evaluated between the opening tag of the element and the closing tag of the element. RETURN: The generated HTML.

ADDRESS (&OPTIONAL ATTRIBUTES &BODY BODY)

DO: Generate a &lt;address&gt; HTML element: information on author. ATTRIBUTES: A P-list of attributes. Attribute names are keywords, attribute values are strings. BODY: Lisp forms, evaluated between the opening tag of the element and the closing tag of the element. RETURN: The generated HTML.

APPLET (&OPTIONAL ATTRIBUTES &BODY BODY)

DO: Generate a &lt;applet&gt; HTML element: Java applet. ATTRIBUTES: A P-list of attributes. Attribute names are keywords, attribute values are strings. BODY: Lisp forms, evaluated between the opening tag of the element and the closing tag of the element. RETURN: The generated HTML.

AREA (&OPTIONAL ATTRIBUTES &BODY BODY)

DO: Generate a &lt;area&gt; HTML element: client-side image map area. ATTRIBUTES: A P-list of attributes. Attribute names are keywords, attribute values are strings. BODY: Lisp forms, evaluated between the opening tag of the element and the closing tag of the element. RETURN: The generated HTML.

B (&OPTIONAL ATTRIBUTES &BODY BODY)

DO: Generate a &lt;b&gt; HTML element: bold text style. ATTRIBUTES: A P-list of attributes. Attribute names are keywords, attribute values are strings. BODY: Lisp forms, evaluated between the opening tag of the element and the closing tag of the element. RETURN: The generated HTML.

BASE (&OPTIONAL ATTRIBUTES &BODY BODY)

DO: Generate a &lt;base&gt; HTML element: document base URI. ATTRIBUTES: A P-list of attributes. Attribute names are keywords, attribute values are strings. BODY: Lisp forms, evaluated between the opening tag of the element and the closing tag of the element. RETURN: The generated HTML.

BASEFONT (&OPTIONAL ATTRIBUTES &BODY BODY)

DO: Generate a &lt;basefont&gt; HTML element: base font size. ATTRIBUTES: A P-list of attributes. Attribute names are keywords, attribute values are strings. BODY: Lisp forms, evaluated between the opening tag of the element and the closing tag of the element. RETURN: The generated HTML.

BDO (&OPTIONAL ATTRIBUTES &BODY BODY)

DO: Generate a &lt;bdo&gt; HTML element: I18N BiDi over-ride. ATTRIBUTES: A P-list of attributes. Attribute names are keywords, attribute values are strings. BODY: Lisp forms, evaluated between the opening tag of the element and the closing tag of the element. RETURN: The generated HTML.

BIG (&OPTIONAL ATTRIBUTES &BODY BODY)

DO: Generate a &lt;big&gt; HTML element: large text style. ATTRIBUTES: A P-list of attributes. Attribute names are keywords, attribute values are strings. BODY: Lisp forms, evaluated between the opening tag of the element and the closing tag of the element. RETURN: The generated HTML.

BLOCKQUOTE (&OPTIONAL ATTRIBUTES &BODY BODY)

DO: Generate a &lt;blockquote&gt; HTML element: long quotation. ATTRIBUTES: A P-list of attributes. Attribute names are keywords, attribute values are strings. BODY: Lisp forms, evaluated between the opening tag of the element and the closing tag of the element. RETURN: The generated HTML.

BODY (&OPTIONAL ATTRIBUTES &BODY BODY)

DO: Generate a &lt;body&gt; HTML element: document body. ATTRIBUTES: A P-list of attributes. Attribute names are keywords, attribute values are strings. BODY: Lisp forms, evaluated between the opening tag of the element and the closing tag of the element. RETURN: The generated HTML.

BR (&OPTIONAL ATTRIBUTES &BODY BODY)

DO: Generate a &lt;br&gt; HTML element: forced line break. ATTRIBUTES: A P-list of attributes. Attribute names are keywords, attribute values are strings. BODY: Lisp forms, evaluated between the opening tag of the element and the closing tag of the element. RETURN: The generated HTML.

BUTTON (&OPTIONAL ATTRIBUTES &BODY BODY)

DO: Generate a &lt;button&gt; HTML element: push button. ATTRIBUTES: A P-list of attributes. Attribute names are keywords, attribute values are strings. BODY: Lisp forms, evaluated between the opening tag of the element and the closing tag of the element. RETURN: The generated HTML.

CAPTION (&OPTIONAL ATTRIBUTES &BODY BODY)

DO: Generate a &lt;caption&gt; HTML element: table caption. ATTRIBUTES: A P-list of attributes. Attribute names are keywords, attribute values are strings. BODY: Lisp forms, evaluated between the opening tag of the element and the closing tag of the element. RETURN: The generated HTML.

CENTER (&OPTIONAL ATTRIBUTES &BODY BODY)

DO: Generate a &lt;center&gt; HTML element: shorthand for DIV align=center. ATTRIBUTES: A P-list of attributes. Attribute names are keywords, attribute values are strings. BODY: Lisp forms, evaluated between the opening tag of the element and the closing tag of the element. RETURN: The generated HTML.

CITE (&OPTIONAL ATTRIBUTES &BODY BODY)

DO: Generate a &lt;cite&gt; HTML element: citation. ATTRIBUTES: A P-list of attributes. Attribute names are keywords, attribute values are strings. BODY: Lisp forms, evaluated between the opening tag of the element and the closing tag of the element. RETURN: The generated HTML.

CODE (&OPTIONAL ATTRIBUTES &BODY BODY)

DO: Generate a &lt;code&gt; HTML element: computer code fragment. ATTRIBUTES: A P-list of attributes. Attribute names are keywords, attribute values are strings. BODY: Lisp forms, evaluated between the opening tag of the element and the closing tag of the element. RETURN: The generated HTML.

COL (&OPTIONAL ATTRIBUTES &BODY BODY)

DO: Generate a &lt;col&gt; HTML element: table column. ATTRIBUTES: A P-list of attributes. Attribute names are keywords, attribute values are strings. BODY: Lisp forms, evaluated between the opening tag of the element and the closing tag of the element. RETURN: The generated HTML.

COLGROUP (&OPTIONAL ATTRIBUTES &BODY BODY)

DO: Generate a &lt;colgroup&gt; HTML element: table column group. ATTRIBUTES: A P-list of attributes. Attribute names are keywords, attribute values are strings. BODY: Lisp forms, evaluated between the opening tag of the element and the closing tag of the element. RETURN: The generated HTML.

DD (&OPTIONAL ATTRIBUTES &BODY BODY)

DO: Generate a &lt;dd&gt; HTML element: defelementinition description. ATTRIBUTES: A P-list of attributes. Attribute names are keywords, attribute values are strings. BODY: Lisp forms, evaluated between the opening tag of the element and the closing tag of the element. RETURN: The generated HTML.

DEL (&OPTIONAL ATTRIBUTES &BODY BODY)

DO: Generate a &lt;del&gt; HTML element: deleted text. ATTRIBUTES: A P-list of attributes. Attribute names are keywords, attribute values are strings. BODY: Lisp forms, evaluated between the opening tag of the element and the closing tag of the element. RETURN: The generated HTML.

DFN (&OPTIONAL ATTRIBUTES &BODY BODY)

DO: Generate a &lt;dfn&gt; HTML element: instance defelementinition. ATTRIBUTES: A P-list of attributes. Attribute names are keywords, attribute values are strings. BODY: Lisp forms, evaluated between the opening tag of the element and the closing tag of the element. RETURN: The generated HTML.

DIR (&OPTIONAL ATTRIBUTES &BODY BODY)

DO: Generate a &lt;dir&gt; HTML element: directory list. ATTRIBUTES: A P-list of attributes. Attribute names are keywords, attribute values are strings. BODY: Lisp forms, evaluated between the opening tag of the element and the closing tag of the element. RETURN: The generated HTML.

DIV (&OPTIONAL ATTRIBUTES &BODY BODY)

DO: Generate a &lt;div&gt; HTML element: generic language/style container. ATTRIBUTES: A P-list of attributes. Attribute names are keywords, attribute values are strings. BODY: Lisp forms, evaluated between the opening tag of the element and the closing tag of the element. RETURN: The generated HTML.

DL (&OPTIONAL ATTRIBUTES &BODY BODY)

DO: Generate a &lt;dl&gt; HTML element: defelementinition list. ATTRIBUTES: A P-list of attributes. Attribute names are keywords, attribute values are strings. BODY: Lisp forms, evaluated between the opening tag of the element and the closing tag of the element. RETURN: The generated HTML.

DOCTYPE (KIND &BODY BODY)

KIND: one of :STRICT, :TRANSITIONAL, :LOOSE or :FRAMESET. RETURN: The DOCTYPE tag.

DT (&OPTIONAL ATTRIBUTES &BODY BODY)

DO: Generate a &lt;dt&gt; HTML element: defelementinition term. ATTRIBUTES: A P-list of attributes. Attribute names are keywords, attribute values are strings. BODY: Lisp forms, evaluated between the opening tag of the element and the closing tag of the element. RETURN: The generated HTML.

EM (&OPTIONAL ATTRIBUTES &BODY BODY)

DO: Generate a &lt;em&gt; HTML element: emphasis. ATTRIBUTES: A P-list of attributes. Attribute names are keywords, attribute values are strings. BODY: Lisp forms, evaluated between the opening tag of the element and the closing tag of the element. RETURN: The generated HTML.

FIELDSET (&OPTIONAL ATTRIBUTES &BODY BODY)

DO: Generate a &lt;fieldset&gt; HTML element: form control group. ATTRIBUTES: A P-list of attributes. Attribute names are keywords, attribute values are strings. BODY: Lisp forms, evaluated between the opening tag of the element and the closing tag of the element. RETURN: The generated HTML.

FONT (&OPTIONAL ATTRIBUTES &BODY BODY)

DO: Generate a &lt;font&gt; HTML element: local change to font. ATTRIBUTES: A P-list of attributes. Attribute names are keywords, attribute values are strings. BODY: Lisp forms, evaluated between the opening tag of the element and the closing tag of the element. RETURN: The generated HTML.

FORM (&OPTIONAL ATTRIBUTES &BODY BODY)

DO: Generate a &lt;form&gt; HTML element: interactive form. ATTRIBUTES: A P-list of attributes. Attribute names are keywords, attribute values are strings. BODY: Lisp forms, evaluated between the opening tag of the element and the closing tag of the element. RETURN: The generated HTML.

FRAME (&OPTIONAL ATTRIBUTES &BODY BODY)

DO: Generate a &lt;frame&gt; HTML element: subwindow. ATTRIBUTES: A P-list of attributes. Attribute names are keywords, attribute values are strings. BODY: Lisp forms, evaluated between the opening tag of the element and the closing tag of the element. RETURN: The generated HTML.

FRAMESET (&OPTIONAL ATTRIBUTES &BODY BODY)

DO: Generate a &lt;frameset&gt; HTML element: window subdivision. ATTRIBUTES: A P-list of attributes. Attribute names are keywords, attribute values are strings. BODY: Lisp forms, evaluated between the opening tag of the element and the closing tag of the element. RETURN: The generated HTML.

H1 (&OPTIONAL ATTRIBUTES &BODY BODY)

DO: Generate a &lt;h1&gt; HTML element: Heading. ATTRIBUTES: A P-list of attributes. Attribute names are keywords, attribute values are strings. BODY: Lisp forms, evaluated between the opening tag of the element and the closing tag of the element. RETURN: The generated HTML.

H2 (&OPTIONAL ATTRIBUTES &BODY BODY)

DO: Generate a &lt;h2&gt; HTML element: Heading. ATTRIBUTES: A P-list of attributes. Attribute names are keywords, attribute values are strings. BODY: Lisp forms, evaluated between the opening tag of the element and the closing tag of the element. RETURN: The generated HTML.

H3 (&OPTIONAL ATTRIBUTES &BODY BODY)

DO: Generate a &lt;h3&gt; HTML element: Heading. ATTRIBUTES: A P-list of attributes. Attribute names are keywords, attribute values are strings. BODY: Lisp forms, evaluated between the opening tag of the element and the closing tag of the element. RETURN: The generated HTML.

H4 (&OPTIONAL ATTRIBUTES &BODY BODY)

DO: Generate a &lt;h4&gt; HTML element: Heading. ATTRIBUTES: A P-list of attributes. Attribute names are keywords, attribute values are strings. BODY: Lisp forms, evaluated between the opening tag of the element and the closing tag of the element. RETURN: The generated HTML.

H5 (&OPTIONAL ATTRIBUTES &BODY BODY)

DO: Generate a &lt;h5&gt; HTML element: Heading. ATTRIBUTES: A P-list of attributes. Attribute names are keywords, attribute values are strings. BODY: Lisp forms, evaluated between the opening tag of the element and the closing tag of the element. RETURN: The generated HTML.

H6 (&OPTIONAL ATTRIBUTES &BODY BODY)

DO: Generate a &lt;h6&gt; HTML element: Heading. ATTRIBUTES: A P-list of attributes. Attribute names are keywords, attribute values are strings. BODY: Lisp forms, evaluated between the opening tag of the element and the closing tag of the element. RETURN: The generated HTML.

HR (&OPTIONAL ATTRIBUTES &BODY BODY)

DO: Generate a &lt;hr&gt; HTML element: horizontal rule. ATTRIBUTES: A P-list of attributes. Attribute names are keywords, attribute values are strings. BODY: Lisp forms, evaluated between the opening tag of the element and the closing tag of the element. RETURN: The generated HTML.

HTML (&OPTIONAL ATTRIBUTES &BODY BODY)

DO: Generate a &lt;html&gt; HTML element: document root element. ATTRIBUTES: A P-list of attributes. Attribute names are keywords, attribute values are strings. BODY: Lisp forms, evaluated between the opening tag of the element and the closing tag of the element. RETURN: The generated HTML.

I (&OPTIONAL ATTRIBUTES &BODY BODY)

DO: Generate a &lt;i&gt; HTML element: italic text style. ATTRIBUTES: A P-list of attributes. Attribute names are keywords, attribute values are strings. BODY: Lisp forms, evaluated between the opening tag of the element and the closing tag of the element. RETURN: The generated HTML.

IFRAME (&OPTIONAL ATTRIBUTES &BODY BODY)

DO: Generate a &lt;iframe&gt; HTML element: inline subwindow. ATTRIBUTES: A P-list of attributes. Attribute names are keywords, attribute values are strings. BODY: Lisp forms, evaluated between the opening tag of the element and the closing tag of the element. RETURN: The generated HTML.

IMG (&OPTIONAL ATTRIBUTES &BODY BODY)

DO: Generate a &lt;img&gt; HTML element: embedded image. ATTRIBUTES: A P-list of attributes. Attribute names are keywords, attribute values are strings. BODY: Lisp forms, evaluated between the opening tag of the element and the closing tag of the element. RETURN: The generated HTML.

INPUT (&OPTIONAL ATTRIBUTES &BODY BODY)

DO: Generate a &lt;input&gt; HTML element: form control. ATTRIBUTES: A P-list of attributes. Attribute names are keywords, attribute values are strings. BODY: Lisp forms, evaluated between the opening tag of the element and the closing tag of the element. RETURN: The generated HTML.

INS (&OPTIONAL ATTRIBUTES &BODY BODY)

DO: Generate a &lt;ins&gt; HTML element: inserted text. ATTRIBUTES: A P-list of attributes. Attribute names are keywords, attribute values are strings. BODY: Lisp forms, evaluated between the opening tag of the element and the closing tag of the element. RETURN: The generated HTML.

ISINDEX (&OPTIONAL ATTRIBUTES &BODY BODY)

DO: Generate a &lt;isindex&gt; HTML element: single line prompt. ATTRIBUTES: A P-list of attributes. Attribute names are keywords, attribute values are strings. BODY: Lisp forms, evaluated between the opening tag of the element and the closing tag of the element. RETURN: The generated HTML.

KBD (&OPTIONAL ATTRIBUTES &BODY BODY)

DO: Generate a &lt;kbd&gt; HTML element: text to be entered by the user. ATTRIBUTES: A P-list of attributes. Attribute names are keywords, attribute values are strings. BODY: Lisp forms, evaluated between the opening tag of the element and the closing tag of the element. RETURN: The generated HTML.

LABEL (&OPTIONAL ATTRIBUTES &BODY BODY)

DO: Generate a &lt;label&gt; HTML element: form field label text. ATTRIBUTES: A P-list of attributes. Attribute names are keywords, attribute values are strings. BODY: Lisp forms, evaluated between the opening tag of the element and the closing tag of the element. RETURN: The generated HTML.

LEGEND (&OPTIONAL ATTRIBUTES &BODY BODY)

DO: Generate a &lt;legend&gt; HTML element: fieldset legend. ATTRIBUTES: A P-list of attributes. Attribute names are keywords, attribute values are strings. BODY: Lisp forms, evaluated between the opening tag of the element and the closing tag of the element. RETURN: The generated HTML.

LI (&OPTIONAL ATTRIBUTES &BODY BODY)

DO: Generate a &lt;li&gt; HTML element: list item. ATTRIBUTES: A P-list of attributes. Attribute names are keywords, attribute values are strings. BODY: Lisp forms, evaluated between the opening tag of the element and the closing tag of the element. RETURN: The generated HTML.

MAP (&OPTIONAL ATTRIBUTES &BODY BODY)

DO: Generate a &lt;map&gt; HTML element: client-side image map. ATTRIBUTES: A P-list of attributes. Attribute names are keywords, attribute values are strings. BODY: Lisp forms, evaluated between the opening tag of the element and the closing tag of the element. RETURN: The generated HTML.

META (&OPTIONAL ATTRIBUTES &BODY BODY)

DO: Generate a &lt;meta&gt; HTML element: generic metainformation. ATTRIBUTES: A P-list of attributes. Attribute names are keywords, attribute values are strings. BODY: Lisp forms, evaluated between the opening tag of the element and the closing tag of the element. RETURN: The generated HTML.

NOFRAMES (&OPTIONAL ATTRIBUTES &BODY BODY)

DO: Generate a &lt;noframes&gt; HTML element: alternate content container for non frame-based rendering. ATTRIBUTES: A P-list of attributes. Attribute names are keywords, attribute values are strings. BODY: Lisp forms, evaluated between the opening tag of the element and the closing tag of the element. RETURN: The generated HTML.

NOSCRIPT (&OPTIONAL ATTRIBUTES &BODY BODY)

DO: Generate a &lt;noscript&gt; HTML element: alternate content container for non script-based rendering. ATTRIBUTES: A P-list of attributes. Attribute names are keywords, attribute values are strings. BODY: Lisp forms, evaluated between the opening tag of the element and the closing tag of the element. RETURN: The generated HTML.

OBJECT (&OPTIONAL ATTRIBUTES &BODY BODY)

DO: Generate a &lt;object&gt; HTML element: generic embedded object. ATTRIBUTES: A P-list of attributes. Attribute names are keywords, attribute values are strings. BODY: Lisp forms, evaluated between the opening tag of the element and the closing tag of the element. RETURN: The generated HTML.

OL (&OPTIONAL ATTRIBUTES &BODY BODY)

DO: Generate a &lt;ol&gt; HTML element: ordered list. ATTRIBUTES: A P-list of attributes. Attribute names are keywords, attribute values are strings. BODY: Lisp forms, evaluated between the opening tag of the element and the closing tag of the element. RETURN: The generated HTML.

OPTGROUP (&OPTIONAL ATTRIBUTES &BODY BODY)

DO: Generate a &lt;optgroup&gt; HTML element: option group. ATTRIBUTES: A P-list of attributes. Attribute names are keywords, attribute values are strings. BODY: Lisp forms, evaluated between the opening tag of the element and the closing tag of the element. RETURN: The generated HTML.

OPTION (&OPTIONAL ATTRIBUTES &BODY BODY)

DO: Generate a &lt;option&gt; HTML element: selectable choice. ATTRIBUTES: A P-list of attributes. Attribute names are keywords, attribute values are strings. BODY: Lisp forms, evaluated between the opening tag of the element and the closing tag of the element. RETURN: The generated HTML.

P (&OPTIONAL ATTRIBUTES &BODY BODY)

DO: Generate a &lt;p&gt; HTML element: paragraph. ATTRIBUTES: A P-list of attributes. Attribute names are keywords, attribute values are strings. BODY: Lisp forms, evaluated between the opening tag of the element and the closing tag of the element. RETURN: The generated HTML.

PARAM (&OPTIONAL ATTRIBUTES &BODY BODY)

DO: Generate a &lt;param&gt; HTML element: named property value. ATTRIBUTES: A P-list of attributes. Attribute names are keywords, attribute values are strings. BODY: Lisp forms, evaluated between the opening tag of the element and the closing tag of the element. RETURN: The generated HTML.

PRE (&OPTIONAL ATTRIBUTES &BODY BODY)

DO: Generate a &lt;pre&gt; HTML element: preformatted text. ATTRIBUTES: A P-list of attributes. Attribute names are keywords, attribute values are strings. BODY: Lisp forms, evaluated between the opening tag of the element and the closing tag of the element. RETURN: The generated HTML.

Q (&OPTIONAL ATTRIBUTES &BODY BODY)

DO: Generate a &lt;q&gt; HTML element: short inline quotation. ATTRIBUTES: A P-list of attributes. Attribute names are keywords, attribute values are strings. BODY: Lisp forms, evaluated between the opening tag of the element and the closing tag of the element. RETURN: The generated HTML.

S (&OPTIONAL ATTRIBUTES &BODY BODY)

DO: Generate a &lt;s&gt; HTML element: strike-through text style. ATTRIBUTES: A P-list of attributes. Attribute names are keywords, attribute values are strings. BODY: Lisp forms, evaluated between the opening tag of the element and the closing tag of the element. RETURN: The generated HTML.

SAMP (&OPTIONAL ATTRIBUTES &BODY BODY)

DO: Generate a &lt;samp&gt; HTML element: sample program output, scripts, etc.. ATTRIBUTES: A P-list of attributes. Attribute names are keywords, attribute values are strings. BODY: Lisp forms, evaluated between the opening tag of the element and the closing tag of the element. RETURN: The generated HTML.

SCRIPT (&OPTIONAL ATTRIBUTES &BODY BODY)

DO: Generate a &lt;script&gt; HTML element: script statements. ATTRIBUTES: A P-list of attributes. Attribute names are keywords, attribute values are strings. BODY: Lisp forms, evaluated between the opening tag of the element and the closing tag of the element. RETURN: The generated HTML.

SELECT (&OPTIONAL ATTRIBUTES &BODY BODY)

DO: Generate a &lt;select&gt; HTML element: option selector. ATTRIBUTES: A P-list of attributes. Attribute names are keywords, attribute values are strings. BODY: Lisp forms, evaluated between the opening tag of the element and the closing tag of the element. RETURN: The generated HTML.

SMALL (&OPTIONAL ATTRIBUTES &BODY BODY)

DO: Generate a &lt;small&gt; HTML element: small text style. ATTRIBUTES: A P-list of attributes. Attribute names are keywords, attribute values are strings. BODY: Lisp forms, evaluated between the opening tag of the element and the closing tag of the element. RETURN: The generated HTML.

SPAN (&OPTIONAL ATTRIBUTES &BODY BODY)

DO: Generate a &lt;span&gt; HTML element: generic language/style container. ATTRIBUTES: A P-list of attributes. Attribute names are keywords, attribute values are strings. BODY: Lisp forms, evaluated between the opening tag of the element and the closing tag of the element. RETURN: The generated HTML.

STRIKE (&OPTIONAL ATTRIBUTES &BODY BODY)

DO: Generate a &lt;strike&gt; HTML element: strike-through text. ATTRIBUTES: A P-list of attributes. Attribute names are keywords, attribute values are strings. BODY: Lisp forms, evaluated between the opening tag of the element and the closing tag of the element. RETURN: The generated HTML.

STRONG (&OPTIONAL ATTRIBUTES &BODY BODY)

DO: Generate a &lt;strong&gt; HTML element: strong emphasis. ATTRIBUTES: A P-list of attributes. Attribute names are keywords, attribute values are strings. BODY: Lisp forms, evaluated between the opening tag of the element and the closing tag of the element. RETURN: The generated HTML.

STYLE (&OPTIONAL ATTRIBUTES &BODY BODY)

DO: Generate a &lt;style&gt; HTML element: style info. ATTRIBUTES: A P-list of attributes. Attribute names are keywords, attribute values are strings. BODY: Lisp forms, evaluated between the opening tag of the element and the closing tag of the element. RETURN: The generated HTML.

SUB (&OPTIONAL ATTRIBUTES &BODY BODY)

DO: Generate a &lt;sub&gt; HTML element: subscript. ATTRIBUTES: A P-list of attributes. Attribute names are keywords, attribute values are strings. BODY: Lisp forms, evaluated between the opening tag of the element and the closing tag of the element. RETURN: The generated HTML.

SUP (&OPTIONAL ATTRIBUTES &BODY BODY)

DO: Generate a &lt;sup&gt; HTML element: superscript. ATTRIBUTES: A P-list of attributes. Attribute names are keywords, attribute values are strings. BODY: Lisp forms, evaluated between the opening tag of the element and the closing tag of the element. RETURN: The generated HTML.

TABLE (&OPTIONAL ATTRIBUTES &BODY BODY)

DO: Generate a &lt;table&gt; HTML element. ATTRIBUTES: A P-list of attributes. Attribute names are keywords, attribute values are strings. BODY: Lisp forms, evaluated between the opening tag of the element and the closing tag of the element. RETURN: The generated HTML.

TBODY (&OPTIONAL ATTRIBUTES &BODY BODY)

DO: Generate a &lt;tbody&gt; HTML element: table body. ATTRIBUTES: A P-list of attributes. Attribute names are keywords, attribute values are strings. BODY: Lisp forms, evaluated between the opening tag of the element and the closing tag of the element. RETURN: The generated HTML.

TD (&OPTIONAL ATTRIBUTES &BODY BODY)

DO: Generate a &lt;td&gt; HTML element: table data cell. ATTRIBUTES: A P-list of attributes. Attribute names are keywords, attribute values are strings. BODY: Lisp forms, evaluated between the opening tag of the element and the closing tag of the element. RETURN: The generated HTML.

TEXTAREA (&OPTIONAL ATTRIBUTES &BODY BODY)

DO: Generate a &lt;textarea&gt; HTML element: multi-line text field. ATTRIBUTES: A P-list of attributes. Attribute names are keywords, attribute values are strings. BODY: Lisp forms, evaluated between the opening tag of the element and the closing tag of the element. RETURN: The generated HTML.

TFOOT (&OPTIONAL ATTRIBUTES &BODY BODY)

DO: Generate a &lt;tfoot&gt; HTML element: table footer. ATTRIBUTES: A P-list of attributes. Attribute names are keywords, attribute values are strings. BODY: Lisp forms, evaluated between the opening tag of the element and the closing tag of the element. RETURN: The generated HTML.

TH (&OPTIONAL ATTRIBUTES &BODY BODY)

DO: Generate a &lt;th&gt; HTML element: table header cell. ATTRIBUTES: A P-list of attributes. Attribute names are keywords, attribute values are strings. BODY: Lisp forms, evaluated between the opening tag of the element and the closing tag of the element. RETURN: The generated HTML.

THEAD (&OPTIONAL ATTRIBUTES &BODY BODY)

DO: Generate a &lt;thead&gt; HTML element: table header. ATTRIBUTES: A P-list of attributes. Attribute names are keywords, attribute values are strings. BODY: Lisp forms, evaluated between the opening tag of the element and the closing tag of the element. RETURN: The generated HTML.

TITLE (&OPTIONAL ATTRIBUTES &BODY BODY)

DO: Generate a &lt;title&gt; HTML element: document title. ATTRIBUTES: A P-list of attributes. Attribute names are keywords, attribute values are strings. BODY: Lisp forms, evaluated between the opening tag of the element and the closing tag of the element. RETURN: The generated HTML.

TR (&OPTIONAL ATTRIBUTES &BODY BODY)

DO: Generate a &lt;tr&gt; HTML element: table row. ATTRIBUTES: A P-list of attributes. Attribute names are keywords, attribute values are strings. BODY: Lisp forms, evaluated between the opening tag of the element and the closing tag of the element. RETURN: The generated HTML.

TT (&OPTIONAL ATTRIBUTES &BODY BODY)

DO: Generate a &lt;tt&gt; HTML element: teletype or monospaced text style. ATTRIBUTES: A P-list of attributes. Attribute names are keywords, attribute values are strings. BODY: Lisp forms, evaluated between the opening tag of the element and the closing tag of the element. RETURN: The generated HTML.

U (&OPTIONAL ATTRIBUTES &BODY BODY)

DO: Generate a &lt;u&gt; HTML element: underlined text style. ATTRIBUTES: A P-list of attributes. Attribute names are keywords, attribute values are strings. BODY: Lisp forms, evaluated between the opening tag of the element and the closing tag of the element. RETURN: The generated HTML.

UL (&OPTIONAL ATTRIBUTES &BODY BODY)

DO: Generate a &lt;ul&gt; HTML element: unordered list. ATTRIBUTES: A P-list of attributes. Attribute names are keywords, attribute values are strings. BODY: Lisp forms, evaluated between the opening tag of the element and the closing tag of the element. RETURN: The generated HTML.

VAR (&OPTIONAL ATTRIBUTES &BODY BODY)

DO: Generate a &lt;var&gt; HTML element: instance of a variable or program argument. ATTRIBUTES: A P-list of attributes. Attribute names are keywords, attribute values are strings. BODY: Lisp forms, evaluated between the opening tag of the element and the closing tag of the element. RETURN: The generated HTML.

WITH-HTML-OUTPUT ((&OPTIONAL (STREAM *HTML-OUTPUT-STREAM*) &KEY (KIND HTML KINDP) (ENCODING US-ASCII ENCODINGP)) &BODY BODY)

DO: Execute body (collecting *HTML-TAGS*), and finally writes to the STREAM the HTML collected. KIND: indicates which kind of is used: :HTML, :XHTML or :XML. (tags may be generated differently in HTML 4.01 than in XHTML 1.0 or XML). ENCODING: indicates which character encoding is used to write the document. CDATA and PCDATA may be escaped differently depending on the encoding. (The default is ASCII because it's the intersection between the lisp standard character set and the default HTML character set (ISO-8859-1).

Private

DEFATTRIBUTE (ATTR-NAME ELEMENTS TYPE DEFAULT OPTIONS DOCUMENTATION)

DO: Defines an HTML attribute.

DEFELEMENT (NAME OPTIONS &OPTIONAL (DOCUMENTATION A HTML element.))

DO: Defines an HTML element macro. NAME: A symbol that will be used to define a macro. OPTIONS: A list of keywords: :START-OPTIONAL :END-FORBIDDEN :EMPTY :DEPRECATED :LOOSE-DTD or :FRAMESET-DTD. :END-FORBIDDEN -> the close tag is not generated. :DEPRECATED -> warning when the macro is used. :EMPTY -> the macro won't take a BODY. :START-OPTIONAL -> ignored. :LOOSE-DTD -> error when *DOCTYPE* isn't :LOOSE. :FRAMESET-DTD -> error when *DOCTYPE* isn't :FRAMESET. NOTE: All HTML 4.01 elements have EMPTY <=> END-FORBIDDEN. DOCUMENTATION: A string used as documentation string for the macro NAME.

Undocumented

GENERATE

GENERIC-FUNCTION

Public

WRITE-ELEMENT (ELEMENT STREAM)

DO: Write the ELEMENT to the STREAM.

SLOT-ACCESSOR

Public

CDATA-DATA (ELEMENT)

The The CDATA text.

ELEMENT-BODY (ELEMENT)

The RETURN: The body of the ELEMENT.

ELEMENT-TAG (ELEMENT)

The RETURN: The tag of the ELEMENT.

HTML-STRING-TEXT (ELEMENT)

The RETURN: The string text of the element.

PCDATA-DATA (ELEMENT)

The The PCDATA text.

Private

ELEMENT-ATTRIBUTES (ELEMENT)

The RETURN: The attributes of the ELEMENT.

VARIABLE

Public

*DOCTYPE*

The DOCTYPE of HTML document being generated. May be a token: :STRICT, :TRANSITIONAL, :LOOSE or :FRAMESET.

*HTML-CHARACTER-SET*

The encoding used to write the HTML code. By default it's ASCII, even if ISO-8859-1 is the default for HTML, since ASCII is the intersection with the Common Lisp standard character set and HTML default character set.

*HTML-OUTPUT-STREAM*

The stream used by WITH-HTML-OUTPUT and WRITE-HTML by default.

*HTML-VERSION*

The HTML version of the document being generated.

*HTML-XHTML-MODE-P*

Set to true when the elements must be written in XHTML 1.0 variant.

Private

*ATTRIBUTES*

Maps attribute names to attributes.

*DIGITS*

Only ASCII digits.

*ELEMENTS*

Maps element names to elements.

*HTML-OUTPUT-ELEMENTS*

The HTML macros collect issued elements into this queue.

*LETTERS*

Only ASCII letters.

Undocumented

*NEWLINE-ELEMENTS*

CLASS

Public

CDATA (CONTROL &REST ARGUMENTS)

Represents CDATA text.

ELEMENT

Represents an HTML element.

ELEMENT-WITH-BODY

Represents an HTML tagged element, with a body.

ELEMENT-WITH-TAG

Represents an HTML tagged element.

ELEMENT-WITHOUT-END

Represents an HTML tagged element, without a closing tag.

HTML-STRING (CONTROL &REST ARGUMENTS)

Represents HTML text.

PCDATA (CONTROL &REST ARGUMENTS)

Represents PCDATA text.

Private

Undocumented

DTD-ATTRIBUTE

DTD-ELEMENT