aboutsummaryrefslogtreecommitdiffstats
path: root/specials.tl
diff options
context:
space:
mode:
Diffstat (limited to 'specials.tl')
-rw-r--r--specials.tl117
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")