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%22%3E;</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))