[bknr-cvs] edi changed trunk/thirdparty/cl-who/

BKNR Commits bknr at bknr.net
Tue Oct 12 21:43:51 UTC 2010


Revision: 4618
Author: edi
URL: http://bknr.net/trac/changeset/4618

HTML5 support

U   trunk/thirdparty/cl-who/CHANGELOG
U   trunk/thirdparty/cl-who/doc/index.html
U   trunk/thirdparty/cl-who/specials.lisp
U   trunk/thirdparty/cl-who/who.lisp

Modified: trunk/thirdparty/cl-who/CHANGELOG
===================================================================
--- trunk/thirdparty/cl-who/CHANGELOG	2010-10-12 21:40:53 UTC (rev 4617)
+++ trunk/thirdparty/cl-who/CHANGELOG	2010-10-12 21:43:51 UTC (rev 4618)
@@ -1,11 +1,12 @@
 Version 1.0.0
-2009-0x-xx
+2010-0x-xx
 Refactored internals and made STR etc. local macros
 Added test suite
 	todo: repla s-h-texp with walk in docs
 Removed deprecated ESCAPE-STRING-ISO-8859 function
 Removed SHOW-HTML-EXPANSION
-Bugfixes (thanks to Slawek Zak)	
+Bugfixes (thanks to Slawek Zak)
+Added support for HTML5 (Chaitanya Gupta)
 
 Version 0.11.1
 2008-03-28

Modified: trunk/thirdparty/cl-who/doc/index.html
===================================================================
--- trunk/thirdparty/cl-who/doc/index.html	2010-10-12 21:40:53 UTC (rev 4617)
+++ trunk/thirdparty/cl-who/doc/index.html	2010-10-12 21:43:51 UTC (rev 4618)
@@ -61,7 +61,7 @@
 code inserted by the user of the macro. CL-WHO will make sure that
 there aren't two adjacent <code>WRITE-STRING</code> forms with
 constant strings. CL-WHO's output is
-either XHTML (default) or 'plain' (SGML) HTML — depending on
+either XHTML (default), 'plain' (SGML) HTML or HTML5 (using HTML syntax) — depending on
 what you've set <a href="#html-mode"><code>HTML-MODE</code></a> to.
 <p>
 CL-WHO is intended to be portable and should work with all
@@ -541,7 +541,7 @@
 <blockquote><br>
 Set this to <code>NIL</code> to if you want to use CL-WHO as a strict XML
 generator.  Otherwise, CL-WHO will only write empty tags listed in
-<a href="#*html-empty-tags*"><code>*HTML-EMPTY-TAGS*</code></a> as <code><tag/></code> (XHTML mode) or <code><tag></code> (SGML mode). For
+<a href="#*html-empty-tags*"><code>*HTML-EMPTY-TAGS*</code></a> as <code><tag/></code> (XHTML mode) or <code><tag></code> (SGML mode or HTML mode). For
 all other tags, it will always generate <code><tag></tag></code>. The initial value of this variable is <code>T</code>.
 </blockquote>
 
@@ -553,9 +553,9 @@
 <a href="#*html-empty-tag-aware-p*"><code>*HTML-EMPTY-TAG-AWARE-P*</code></a>.
 The initial value is the list
 <pre>
-(:area :atop :audioscope :base :basefont :br :choose :col :frame
- :hr :img :input :isindex :keygen :left :limittext :link :meta
- :nextid :of :over :param :range :right :spacer :spot :tab :wbr)
+(: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)
 </pre>
 </blockquote>
 
@@ -585,11 +585,14 @@
 <br><a class=none name="html-mode"><b>html-mode</b></a> <i>=> mode</i>
 <br><tt>(setf (</tt><b>html-mode</b>) <i>mode</i><tt>)</tt>
 <blockquote><br>
-The function <code>HTML-MODE</code> returns the current mode for generating HTML. The default is <code>:XML</code> for XHTML. You can change this by setting it with <code>(SETF (HTML-MODE) :SGML)</code> to pre-XML HTML mode.
+The function <code>HTML-MODE</code> returns the current mode for generating HTML. The default is <code>:XML</code> for XHTML. You can change this by setting it with <code>(SETF (HTML-MODE) :SGML)</code> to pre-XML HTML mode or <code>(SETF (HTML-MODE) :HTML5)</code> to HTML5 mode (using HTML syntax).
 <p>
 Setting it to SGML HTML sets the <a href="#*prologue*"><code>*prologue*</code></a> to the doctype string for HTML 4.01 transitional:
 <pre><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"></pre>
 Code generation in SGML HTML is slightly different from XHTML - there's no need to end empty elements with <code>/></code> and empty attributes are allowed.
+<p>
+Setting it to HTML5 sets the <a href="#*prologue*"><code>*prologue*</code></a> to the following doctype string:
+<pre><!DOCTYPE html></pre>
 </blockquote>
 
 <p><br>[Function]

Modified: trunk/thirdparty/cl-who/specials.lisp
===================================================================
--- trunk/thirdparty/cl-who/specials.lisp	2010-10-12 21:40:53 UTC (rev 4617)
+++ trunk/thirdparty/cl-who/specials.lisp	2010-10-12 21:43:51 UTC (rev 4618)
@@ -51,7 +51,7 @@
 indentation dynamically.")
 
 (defvar *html-mode* :xml
-  ":SGML for \(SGML-)HTML, :XML \(default) for XHTML.")
+  ":SGML for \(SGML-)HTML, :XML \(default) for XHTML, :HTML5 for HTML5.")
 
 (defvar *downcase-tokens-p* t
   "If NIL, a keyword symbol representing a tag or attribute name will
@@ -73,6 +73,8 @@
     :br
     :choose
     :col
+    :command
+    :embed
     :frame
     :hr
     :img
@@ -89,9 +91,11 @@
     :param
     :range   
     :right
+    :source
     :spacer
     :spot
     :tab
+    :track
     :wbr)
   "The list of HTML tags that should be output as empty tags.
 See *HTML-EMPTY-TAG-AWARE-P*.")
@@ -100,7 +104,7 @@
   "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).  For all other tags, it will always generate
+mode and HTML5 mode).  For all other tags, it will always generate
 <tag></tag>.")
 
 (defconstant +newline+ (make-string 1 :initial-element #\Newline)

Modified: trunk/thirdparty/cl-who/who.lisp
===================================================================
--- trunk/thirdparty/cl-who/who.lisp	2010-10-12 21:40:53 UTC (rev 4617)
+++ trunk/thirdparty/cl-who/who.lisp	2010-10-12 21:43:51 UTC (rev 4618)
@@ -30,13 +30,13 @@
 (in-package :cl-who)
 
 (defun html-mode ()
-  "Returns the current HTML mode. :SGML for \(SGML-)HTML and
-:XML for XHTML."
+  "Returns the current HTML mode. :SGML for \(SGML-)HTML, :XML for
+XHTML and :HTML5 for HTML5 (HTML syntax)."
   *html-mode*)
 
 (defun (setf html-mode) (mode)
   "Sets the output mode to XHTML or \(SGML-)HTML.  MODE can be
-:SGML for HTML or :XML for XHTML."
+:SGML for HTML, :XML for XHTML or :HTML5 for HTML5 (HTML syntax)."
   (ecase mode
     ((:sgml)
      (setf *html-mode* :sgml
@@ -45,7 +45,11 @@
     ((:xml)
      (setf *html-mode* :xml
            *empty-tag-end* " />"
-           *prologue* "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\">"))))
+           *prologue* "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\">"))
+    ((:html5)
+     (setf *html-mode* :html5
+           *empty-tag-end* ">"
+           *prologue* "<!DOCTYPE html>"))))
 
 (defun process-tag (sexp body-fn)
   (declare (optimize speed space))





More information about the Bknr-cvs mailing list