diff options
Diffstat (limited to 'specials.tl')
-rw-r--r-- | specials.tl | 117 |
1 files changed, 117 insertions, 0 deletions
diff --git a/specials.tl b/specials.tl new file mode 100644 index 0000000..e743e1b --- /dev/null +++ b/specials.tl @@ -0,0 +1,117 @@ +;; Copyright (c) 2003-2009, Dr. Edmund Weitz. All rights reserved. +;; +;; Redistribution and use in source and binary forms, with or without +;; modification, are permitted provided that the following conditions +;; are met: +;; +;; * Redistributions of source code must retain the above copyright +;; notice, this list of conditions and the following disclaimer. +;; +;; * Redistributions in binary form must reproduce the above +;; copyright notice, this list of conditions and the following +;; disclaimer in the documentation and/or other materials +;; provided with the distribution. +;; +;; THIS SOFTWARE IS PROVIDED BY THE AUTHOR 'AS IS' AND ANY EXPRESSED +;; OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +;; WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +;; ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY +;; DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +;; DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE +;; GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +;; INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, +;; WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +;; NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +;; SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +(in-package "tl-who-priv") + +;; Kind of simulate Common Lisp defconstant. +(defmacro defconstant (name value) + ^(unless (boundp ',name) + (defsymacro ,name (macro-time ,value)))) + + +;; This is the first line that'll be printed if the :prologue keyword +;; argument is true. +(defvar *prologue* + "<!DOCTYPE html PUBLIC\ \ + \"-//W3C//DTD XHTML 1.0 Strict//EN\"\ \ + \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\">") + +;; Whether to insert line breaks and indent. Also controls amount of +;; indentation dynamically. +(defvar *indent* nil) + +;; :sgml for (SGML-)HTML, :xml (default) for xhtml, :html5 for html5.") +(defvar *html-mode* :xml) + +;; Set this to t to enable attribute minimization (also called +;; 'boolean attributes', or 'empty attribute syntax' according to the w3 +;; html standard). In XHTML attribute minimization is forbidden, and all +;; attributes must have a value. Thus in XHTML boolean attributes must be +;; defined as <input disabled='disabled' />. In HTML5 boolean attributes +;; can be defined as <input disabled>. +(defvar *empty-attribute-syntax* nil) + + +;; If true, tag and attribute names will be converted to upper case only +;; if they contain no upper case letters. This is useful when one needs to +;; output case sensitive XML. +(defvar *upcase-tokens-p* nil) + +;; Quote character for attributes. +(defvar *attribute-quote-char* #\') + +;; End of an empty tag. Default is XML style. +(defvar *empty-tag-end* " />") + +;; The list of HTML tags that should disable indentation inside them. +;; The initial value is a list containing only :pre and :textarea. +(defvar *html-no-indent-tags* '(:pre :textarea)) + +;; The list of HTML tags that should be output as empty tags. +;; See *html-empty-tag-aware-p*. +(defvar *html-empty-tags* + '(:area + :atop + :audioscope + :base + :basefont + :br + :choose + :col + :command + :embed + :frame + :hr + :img + :input + :isindex + :keygen + :left + :limittext + :link + :meta + :nextid + :of + :over + :param + :range + :right + :source + :spacer + :spot + :tab + :track + :wbr)) + +;; Set this to NIL to if you want to use CL-WHO as a strict XML +;; generator. Otherwise, CL-WHO will only write empty tags listed +;; in *HTML-EMPTY-TAGS* as <tag/> (XHTML mode) or <tag> (SGML +;; mode and HTML5 mode). For all other tags, it will always generate +;; <tag></tag> +(defvar *html-empty-tag-aware-p* t) + +;; Used for indentation. +(defconstant +newline+ "\n") |