diff options
author | smihica <smihica@gmail.com> | 2013-05-15 00:41:05 +0900 |
---|---|---|
committer | smihica <smihica@gmail.com> | 2013-05-15 00:41:05 +0900 |
commit | a93996e0bf718d79d50b0becdf0469b1715d998b (patch) | |
tree | afe0601cbd37ef8ed9ab483748b6a0f8ba2bfe0d /zencoding-mode.el | |
parent | 976449a2d5e28b731e848aa22dab38a05a39ecc1 (diff) | |
download | emmet-mode-a93996e0bf718d79d50b0becdf0469b1715d998b.tar.lz emmet-mode-a93996e0bf718d79d50b0becdf0469b1715d998b.tar.xz emmet-mode-a93996e0bf718d79d50b0becdf0469b1715d998b.zip |
Supporting HTML-Snippents phase1: Cleaned config-file and Supported html default attributes.
Diffstat (limited to 'zencoding-mode.el')
-rw-r--r-- | zencoding-mode.el | 947 |
1 files changed, 713 insertions, 234 deletions
diff --git a/zencoding-mode.el b/zencoding-mode.el index 98c4a02..5fee90a 100644 --- a/zencoding-mode.el +++ b/zencoding-mode.el @@ -131,191 +131,132 @@ ;; Don't edit. (zencoding-defparameter zencoding-snippets (let ((tbl (make-hash-table :test 'equal))) -(puthash "xml" (let ((tbl (make-hash-table :test 'equal))) -(puthash "profile" "xml" tbl) -(puthash "extends" "html" tbl) -(puthash "filters" "html" tbl) -tbl) tbl) -(puthash "scss" (let ((tbl (make-hash-table :test 'equal))) -(puthash "extends" "css" tbl) -tbl) tbl) -(puthash "sass" (let ((tbl (make-hash-table :test 'equal))) -(puthash "extends" "css" tbl) -tbl) tbl) -(puthash "less" (let ((tbl (make-hash-table :test 'equal))) -(puthash "extends" "css" tbl) -tbl) tbl) -(puthash "variables" (let ((tbl (make-hash-table :test 'equal))) -(puthash "lang" "en" tbl) -(puthash "locale" "en-US" tbl) -(puthash "charset" "UTF-8" tbl) -(puthash "indentation" "\t" tbl) -(puthash "newline" "\n" tbl) -tbl) tbl) -(puthash "stylus" (let ((tbl (make-hash-table :test 'equal))) -(puthash "extends" "css" tbl) -tbl) tbl) (puthash "html" (let ((tbl (make-hash-table :test 'equal))) -(puthash "profile" "html" tbl) -(puthash "abbreviations" (let ((tbl (make-hash-table :test 'equal))) -(puthash "a:link" "<a href=\"http://|\">" tbl) -(puthash "doc4" "html>(head>meta[http-equiv=\"Content-Type\" content=\"text/html;charset=${charset}\"]+title{${1:Document}})" tbl) -(puthash "input:datetime-local" "inp[type=datetime-local]" tbl) -(puthash "input:reset" "input:button[type=reset]" tbl) -(puthash "meta:vp" "<meta name=\"viewport\" content=\"width=${1:device-width}, user-scalable=${2:no}, initial-scale=${3:1.0}, maximum-scale=${4:1.0}, minimum-scale=${5:1.0}\" />" tbl) +(puthash "snippets" (let ((tbl (make-hash-table :test 'equal))) +(puthash "c" "<!-- |${child} -->" tbl) +(puthash "!!!" "<!doctype html>" tbl) +(puthash "!!!xxs" "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.1//EN\" \"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd\">" tbl) +(puthash "cc:ie6" "<!--[if lte IE 6]>\n\t${child}|\n<![endif]-->" tbl) +(puthash "cc:ie" "<!--[if IE]>\n\t${child}|\n<![endif]-->" tbl) +(puthash "!!!xs" "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\">" tbl) +(puthash "!!!4t" "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">" tbl) +(puthash "cc:noie" "<!--[if !IE]><!-->\n\t${child}|\n<!--<![endif]-->" tbl) +(puthash "!!!4s" "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01//EN\" \"http://www.w3.org/TR/html4/strict.dtd\">" tbl) +(puthash "!!!xt" "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">" tbl) +tbl) tbl) +(puthash "aliases" (let ((tbl (make-hash-table :test 'equal))) +(puthash "a:link" "a href=http://" tbl) +(puthash "doc4" "html>(head>meta http-equiv=\"Content-Type\" content=\"text/html;charset=UTF-8\"+title{Document})" tbl) +(puthash "input:datetime-local" "input type=datetime-local" tbl) +(puthash "input:reset" "input type=reset" tbl) +(puthash "meta:vp" "meta name=viewport content=\"width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0\"" tbl) (puthash "colg" "colgroup" tbl) -(puthash "figc" "figcaption" tbl) -(puthash "btn:s" "button[type=submit]" tbl) -(puthash "btn:r" "button[type=reset]" tbl) -(puthash "style" "<style>" tbl) +(puthash "btn:s" "button type=submit" tbl) +(puthash "btn:r" "button type=reset" tbl) +(puthash "tr+" "tr>td" tbl) (puthash "adr" "address" tbl) -(puthash "img" "<img src=\"\" alt=\"\" />" tbl) -(puthash "bdo:l" "<bdo dir=\"ltr\">" tbl) -(puthash "param" "<param name=\"\" value=\"\" />" tbl) +(puthash "bdo:l" "bdo dir=ltr" tbl) (puthash "colgroup+" "colgroup>col" tbl) -(puthash "btn:b" "button[type=button]" tbl) -(puthash "form:post" "<form action=\"\" method=\"post\">" tbl) -(puthash "bdo:r" "<bdo dir=\"rtl\">" tbl) +(puthash "btn:b" "button type=button" tbl) +(puthash "form:post" "form action method=post" tbl) +(puthash "bdo:r" "bdo dir=rtl" tbl) (puthash "fig" "figure" tbl) -(puthash "input:radio" "inp[type=radio]" tbl) -(puthash "link:print" "<link rel=\"stylesheet\" href=\"${1:print}.css\" media=\"print\" />" tbl) +(puthash "input:radio" "input type=radio" tbl) +(puthash "link:print" "link rel=stylesheet href=print.css media=print" tbl) (puthash "opt" "option" tbl) (puthash "input:i" "input:image" tbl) -(puthash "input:h" "input:hidden" tbl) +(puthash "figc" "figcaption" tbl) (puthash "input:f" "input:file" tbl) (puthash "input:c" "input:checkbox" tbl) (puthash "input:b" "input:button" tbl) -(puthash "abbr" "<abbr title=\"\">" tbl) -(puthash "colg+" "colgroup>col" tbl) -(puthash "input:t" "inp" tbl) +(puthash "input:t" "input" tbl) (puthash "input:p" "input:password" tbl) (puthash "input:s" "input:submit" tbl) (puthash "input:r" "input:radio" tbl) (puthash "ifr" "iframe" tbl) (puthash "emb" "embed" tbl) (puthash "optg+" "optgroup>option" tbl) -(puthash "isindex" "<isindex/>" tbl) -(puthash "html:5" "!!!+doc[lang=${lang}]" tbl) -(puthash "link:atom" "<link rel=\"alternate\" type=\"application/atom+xml\" title=\"Atom\" href=\"${1:atom.xml}\" />" tbl) -(puthash "table+" "table>tr>td" tbl) (puthash "cmd" "command" tbl) +(puthash "html:5" "!!!+doc lang=en" tbl) +(puthash "link:atom" "link rel=alternate type=\"application/atom+xml\" title=Atom href=atom.xml" tbl) +(puthash "table+" "table>tr>td" tbl) (puthash "art" "article" tbl) -(puthash "frame" "<frame/>" tbl) -(puthash "area:r" "<area shape=\"rect\" coords=\"\" href=\"\" alt=\"\" />" tbl) -(puthash "area:p" "<area shape=\"poly\" coords=\"\" href=\"\" alt=\"\" />" tbl) -(puthash "input:date" "inp[type=date]" tbl) -(puthash "meta" "<meta/>" tbl) -(puthash "video" "<video src=\"\">" tbl) -(puthash "input:button" "<input type=\"button\" value=\"\" />" tbl) -(puthash "area:d" "<area shape=\"default\" href=\"\" alt=\"\" />" tbl) -(puthash "area:c" "<area shape=\"circle\" coords=\"\" href=\"\" alt=\"\" />" tbl) +(puthash "input:search" "input type=search" tbl) +(puthash "area:r" "area shape=rect coords href alt" tbl) +(puthash "area:p" "area shape=poly coords href alt" tbl) +(puthash "input:date" "input type=date" tbl) +(puthash "input:button" "input type=button" tbl) +(puthash "area:d" "area shape=default href alt" tbl) +(puthash "area:c" "area shape=circle coords href alt" tbl) (puthash "out" "output" tbl) (puthash "ftr" "footer" tbl) (puthash "dlg" "dialog" tbl) -(puthash "script:src" "<script src=\"\">" tbl) -(puthash "form:get" "<form action=\"\" method=\"get\">" tbl) -(puthash "meta:utf" "<meta http-equiv=\"Content-Type\" content=\"text/html;charset=UTF-8\" />" tbl) -(puthash "label" "<label for=\"\">" tbl) -(puthash "basefont" "<basefont/>" tbl) -(puthash "input:time" "inp[type=time]" tbl) -(puthash "link:favicon" "<link rel=\"shortcut icon\" type=\"image/x-icon\" href=\"${1:favicon.ico}\" />" tbl) -(puthash "menu:toolbar" "menu[type=toolbar]>" tbl) +(puthash "script:src" "script src" tbl) +(puthash "form:get" "form action method=get" tbl) +(puthash "meta:utf" "meta http-equiv=Content-Type content=\"text/html;charset=UTF-8\"" tbl) +(puthash "input:time" "input type=time" tbl) +(puthash "menu:toolbar" "menu type=toolbar" tbl) (puthash "prog" "progress" tbl) -(puthash "input:email" "inp[type=email]" tbl) -(puthash "str" "strong" tbl) +(puthash "input:email" "input type=email" tbl) +(puthash "input:submit" "input type=submit" tbl) (puthash "leg" "legend" tbl) -(puthash "acronym" "<acronym title=\"\">" tbl) (puthash "ol+" "ol>li" tbl) -(puthash "tr+" "tr>td" tbl) (puthash "optgroup+" "optgroup>option" tbl) -(puthash "base" "<base href=\"\" />" tbl) (puthash "bq" "blockquote" tbl) -(puthash "br" "<br/>" tbl) (puthash "src" "source" tbl) (puthash "obj" "object" tbl) (puthash "dl+" "dl>dt+dd" tbl) -(puthash "script" "<script>" tbl) (puthash "acr" "acronym" tbl) -(puthash "input:password" "inp[type=password]" tbl) -(puthash "col" "<col/>" tbl) -(puthash "html:4t" "!!!4t+doc4[lang=${lang}]" tbl) -(puthash "input:file" "inp[type=file]" tbl) -(puthash "html:4s" "!!!4s+doc4[lang=${lang}]" tbl) +(puthash "input:password" "input type=password" tbl) +(puthash "html:4t" "!!!4t+doc4 lang=en" tbl) +(puthash "input:file" "input type=file" tbl) +(puthash "html:4s" "!!!4s+doc4 lang=en" tbl) (puthash "tarea" "textarea" tbl) -(puthash "select" "<select name=\"\" id=\"\">" tbl) -(puthash "input:number" "inp[type=number]" tbl) -(puthash "input:range" "inp[type=range]" tbl) -(puthash "area" "<area shape=\"\" coords=\"\" href=\"\" alt=\"\" />" tbl) -(puthash "input:image" "<input type=\"image\" src=\"\" alt=\"\" />" tbl) +(puthash "link:favicon" "link icon rel=shortcut type=image/x-icon href=favicon.ico" tbl) +(puthash "input:number" "input type=number" tbl) +(puthash "input:range" "input type=range" tbl) +(puthash "input:image" "input type=image src alt" tbl) (puthash "ul+" "ul>li" tbl) -(puthash "input:search" "inp[type=search]" tbl) -(puthash "html:xxs" "!!!xxs+doc4[xmlns=http://www.w3.org/1999/xhtml xml:lang=${lang}]" tbl) -(puthash "input:month" "inp[type=month]" tbl) +(puthash "html:xxs" "!!!xxs+doc4 xmlns=http://www.w3.org/1999/xhtml xml:lang=en" tbl) +(puthash "input:month" "input type=month" tbl) (puthash "fset" "fieldset" tbl) -(puthash "meta:win" "<meta http-equiv=\"Content-Type\" content=\"text/html;charset=windows-1251\" />" tbl) -(puthash "option" "<option value=\"\">" tbl) -(puthash "form" "<form action=\"\">" tbl) -(puthash "hr" "<hr/>" tbl) +(puthash "meta:win" "meta http-equiv=Content-Type content=\"text/html;charset=windows-1251\"" tbl) +(puthash "menu:t" "menu:toolbar" tbl) (puthash "menu:c" "menu:context" tbl) -(puthash "link" "<link rel=\"stylesheet\" href=\"\" />" tbl) -(puthash "input" "<input type=\"${1:text}\" />" tbl) -(puthash "link:rss" "<link rel=\"alternate\" type=\"application/rss+xml\" title=\"RSS\" href=\"${1:rss.xml}\" />" tbl) +(puthash "link:rss" "link rel=alternate type=application/rss+xml title=RSS href=rss.xml" tbl) (puthash "select+" "select>option" tbl) (puthash "hdr" "header" tbl) (puthash "cap" "caption" tbl) (puthash "det" "details" tbl) -(puthash "keygen" "<keygen/>" tbl) -(puthash "link:touch" "<link rel=\"apple-touch-icon\" href=\"${1:favicon.png}\" />" tbl) -(puthash "iframe" "<iframe src=\"\" frameborder=\"0\">" tbl) -(puthash "link:css" "<link rel=\"stylesheet\" href=\"${1:style}.css\" />" tbl) -(puthash "input:week" "inp[type=week]" tbl) -(puthash "embed" "<embed src=\"\" type=\"\" />" tbl) +(puthash "link:touch" "link rel=apple-touch-icon href=favicon.png" tbl) +(puthash "str" "strong" tbl) +(puthash "link:css" "link rel=stylesheet href=style.css" tbl) +(puthash "input:week" "input type=week" tbl) (puthash "optg" "optgroup" tbl) -(puthash "input:datetime" "inp[type=datetime]" tbl) -(puthash "inp" "<input type=\"${1:text}\" name=\"\" id=\"\" />" tbl) -(puthash "datag" "datagrid" tbl) -(puthash "menu:t" "menu:toolbar" tbl) +(puthash "input:datetime" "input type=datetime" tbl) +(puthash "input:h" "input:hidden" tbl) (puthash "!" "html:5" tbl) -(puthash "html:xml" "<html xmlns=\"http://www.w3.org/1999/xhtml\">" tbl) +(puthash "html:xml" "html xmlns=http://www.w3.org/1999/xhtml" tbl) (puthash "btn" "button" tbl) -(puthash "input:url" "inp[type=url]" tbl) -(puthash "menu:context" "menu[type=context]>" tbl) -(puthash "fst" "fieldset" tbl) -(puthash "map" "<map name=\"\">" tbl) -(puthash "input:color" "inp[type=color]" tbl) -(puthash "meta:compat" "<meta http-equiv=\"X-UA-Compatible\" content=\"${1:IE=7}\" />" tbl) -(puthash "input:hidden" "input[type=hidden name]" tbl) -(puthash "object" "<object data=\"\" type=\"\">" tbl) -(puthash "a:mail" "<a href=\"mailto:|\">" tbl) -(puthash "html:xs" "!!!xs+doc4[xmlns=http://www.w3.org/1999/xhtml xml:lang=${lang}]" tbl) -(puthash "html:xt" "!!!xt+doc4[xmlns=http://www.w3.org/1999/xhtml xml:lang=${lang}]" tbl) -(puthash "a" "<a href=\"\">" tbl) +(puthash "input:url" "input type=url" tbl) +(puthash "menu:context" "menu type=context" tbl) +(puthash "colg+" "colgroup>col" tbl) +(puthash "input:color" "input type=color" tbl) +(puthash "meta:compat" "meta http-equiv=X-UA-Compatible content=\"IE=edge,chrome=1\"" tbl) +(puthash "input:hidden" "input type=hidden" tbl) +(puthash "a:mail" "a href=mailto:" tbl) +(puthash "html:xs" "!!!xs+doc4 xmlns=http://www.w3.org/1999/xhtml xml:lang=en" tbl) +(puthash "html:xt" "!!!xt+doc4 xmlns=http://www.w3.org/1999/xhtml xml:lang=en" tbl) (puthash "datal" "datalist" tbl) (puthash "map+" "map>area" tbl) (puthash "kg" "keygen" tbl) -(puthash "textarea" "<textarea name=\"\" id=\"\" cols=\"${1:30}\" rows=\"${2:10}\">" tbl) -(puthash "doc" "html>(head>meta[charset=UTF-8]+title{${1:Document}})+body" tbl) -(puthash "input:submit" "<input type=\"submit\" value=\"\" />" tbl) -(puthash "input:text" "inp" tbl) -(puthash "input:checkbox" "inp[type=checkbox]" tbl) -(puthash "command" "<command/>" tbl) +(puthash "doc" "html>(head>meta charset=UTF-8+title{Document})+body" tbl) +(puthash "datag" "datagrid" tbl) +(puthash "input:text" "input" tbl) +(puthash "input:checkbox" "input type=checkbox" tbl) +(puthash "fst" "fieldset" tbl) (puthash "sect" "section" tbl) -(puthash "audio" "<audio src=\"\">" tbl) -(puthash "bdo" "<bdo dir=\"\">" tbl) tbl) tbl) -(puthash "snippets" (let ((tbl (make-hash-table :test 'equal))) -(puthash "c" "<!-- |${child} -->" tbl) -(puthash "!!!" "<!doctype html>" tbl) -(puthash "!!!xxs" "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.1//EN\" \"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd\">" tbl) -(puthash "cc:ie6" "<!--[if lte IE 6]>\n\t${child}|\n<![endif]-->" tbl) -(puthash "cc:ie" "<!--[if IE]>\n\t${child}|\n<![endif]-->" tbl) -(puthash "!!!xs" "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\">" tbl) -(puthash "!!!4t" "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">" tbl) -(puthash "cc:noie" "<!--[if !IE]><!-->\n\t${child}|\n<!--<![endif]-->" tbl) -(puthash "!!!4s" "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01//EN\" \"http://www.w3.org/TR/html4/strict.dtd\">" tbl) -(puthash "!!!xt" "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">" tbl) -tbl) tbl) -(puthash "filters" "html" tbl) tbl) tbl) (puthash "css" (let ((tbl (make-hash-table :test 'equal))) (puthash "snippets" (let ((tbl (make-hash-table :test 'equal))) @@ -882,62 +823,6 @@ tbl) tbl) (puthash "cps" "caption-side:|;" tbl) (puthash "v:v" "visibility:visible;" tbl) tbl) tbl) -(puthash "filters" "html" tbl) -tbl) tbl) -(puthash "haml" (let ((tbl (make-hash-table :test 'equal))) -(puthash "profile" "xml" tbl) -(puthash "extends" "html" tbl) -(puthash "filters" "haml" tbl) -tbl) tbl) -(puthash "xsl" (let ((tbl (make-hash-table :test 'equal))) -(puthash "profile" "xml" tbl) -(puthash "abbreviations" (let ((tbl (make-hash-table :test 'equal))) -(puthash "ch" "<xsl:choose>" tbl) -(puthash "co" "<xsl:copy-of select=\"\"/>" tbl) -(puthash "fall" "<xsl:fallback>" tbl) -(puthash "vare" "<xsl:variable name=\"\" select=\"\"/>" tbl) -(puthash "ap" "<xsl:apply-templates select=\"\" mode=\"\"/>" tbl) -(puthash "api" "<xsl:apply-imports/>" tbl) -(puthash "attrs" "<xsl:attribute-set name=\"\">" tbl) -(puthash "strip" "<xsl:strip-space elements=\"\"/>" tbl) -(puthash "cp" "<xsl:copy select=\"\"/>" tbl) -(puthash "if" "<xsl:if test=\"\">" tbl) -(puthash "par" "<xsl:param name=\"\">" tbl) -(puthash "val" "<xsl:value-of select=\"\"/>" tbl) -(puthash "for" "each" tbl) -(puthash "tn" "<xsl:template name=\"\">" tbl) -(puthash "imp" "<xsl:import href=\"\"/>" tbl) -(puthash "tm" "<xsl:template match=\"\" mode=\"\">" tbl) -(puthash "call" "<xsl:call-template name=\"\"/>" tbl) -(puthash "var" "<xsl:variable name=\"\">" tbl) -(puthash "inc" "<xsl:include href=\"\"/>" tbl) -(puthash "proc" "<xsl:processing-instruction name=\"\">" tbl) -(puthash "pres" "<xsl:preserve-space elements=\"\"/>" tbl) -(puthash "sort" "<xsl:sort select=\"\" order=\"\"/>" tbl) -(puthash "pare" "<xsl:param name=\"\" select=\"\"/>" tbl) -(puthash "nam" "<namespace-alias stylesheet-prefix=\"\" result-prefix=\"\"/>" tbl) -(puthash "xsl:when" "<xsl:when test=\"\">" tbl) -(puthash "wh" "xsl:when" tbl) -(puthash "tname" "tn" tbl) -(puthash "key" "<xsl:key name=\"\" match=\"\" use=\"\"/>" tbl) -(puthash "wp" "<xsl:with-param name=\"\" select=\"\"/>" tbl) -(puthash "msg" "<xsl:message terminate=\"no\">" tbl) -(puthash "tmatch" "tm" tbl) -(puthash "attr" "<xsl:attribute name=\"\">" tbl) -(puthash "tex" "<xsl:text></xsl:text>" tbl) -(puthash "elem" "<xsl:element name=\"\">" tbl) -(puthash "num" "<xsl:number value=\"\"/>" tbl) -(puthash "choose+" "xsl:choose>xsl:when+xsl:otherwise" tbl) -(puthash "each" "<xsl:for-each select=\"\">" tbl) -(puthash "ot" "<xsl:otherwise>" tbl) -(puthash "com" "<xsl:comment>" tbl) -(puthash "xsl" "!!!+xsl:stylesheet[version=1.0 xmlns:xsl=http://www.w3.org/1999/XSL/Transform]>{\n|}" tbl) -tbl) tbl) -(puthash "extends" "html" tbl) -(puthash "snippets" (let ((tbl (make-hash-table :test 'equal))) -(puthash "!!!" "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" tbl) -tbl) tbl) -(puthash "filters" "html, xsl" tbl) tbl) tbl) tbl)) ;; src/preferences.el @@ -945,6 +830,572 @@ tbl)) ;; Don't edit. (zencoding-defparameter zencoding-preferences (let ((tbl (make-hash-table :test 'equal))) +(puthash "html" (let ((tbl (make-hash-table :test 'equal))) +(puthash "tags" (let ((tbl (make-hash-table :test 'equal))) +(puthash "code" (let ((tbl (make-hash-table :test 'equal))) +(puthash "selfClosing" nil tbl) +(puthash "block" nil tbl) +tbl) tbl) +(puthash "meter" (let ((tbl (make-hash-table :test 'equal))) +(puthash "selfClosing" nil tbl) +(puthash "block" nil tbl) +tbl) tbl) +(puthash "tbody" (let ((tbl (make-hash-table :test 'equal))) +(puthash "selfClosing" nil tbl) +(puthash "block" t tbl) +tbl) tbl) +(puthash "font" (let ((tbl (make-hash-table :test 'equal))) +(puthash "selfClosing" nil tbl) +(puthash "block" nil tbl) +tbl) tbl) +(puthash "noscript" (let ((tbl (make-hash-table :test 'equal))) +(puthash "selfClosing" nil tbl) +(puthash "block" nil tbl) +tbl) tbl) +(puthash "style" (let ((tbl (make-hash-table :test 'equal))) +(puthash "selfClosing" nil tbl) +(puthash "block" t tbl) +tbl) tbl) +(puthash "img" (let ((tbl (make-hash-table :test 'equal))) +(puthash "selfClosing" t tbl) +(puthash "defaultAttr" (let ((tbl (make-hash-table :test 'equal))) +(puthash "src" "" tbl) +(puthash "alt" "" tbl) +tbl) tbl) +(puthash "block" nil tbl) +tbl) tbl) +(puthash "title" (let ((tbl (make-hash-table :test 'equal))) +(puthash "selfClosing" nil tbl) +(puthash "block" nil tbl) +tbl) tbl) +(puthash "menu" (let ((tbl (make-hash-table :test 'equal))) +(puthash "selfClosing" nil tbl) +(puthash "block" t tbl) +tbl) tbl) +(puthash "tt" (let ((tbl (make-hash-table :test 'equal))) +(puthash "selfClosing" nil tbl) +(puthash "block" nil tbl) +tbl) tbl) +(puthash "tr" (let ((tbl (make-hash-table :test 'equal))) +(puthash "selfClosing" nil tbl) +(puthash "block" t tbl) +tbl) tbl) +(puthash "param" (let ((tbl (make-hash-table :test 'equal))) +(puthash "selfClosing" t tbl) +(puthash "defaultAttr" (let ((tbl (make-hash-table :test 'equal))) +(puthash "name" "" tbl) +(puthash "value" "" tbl) +tbl) tbl) +(puthash "block" nil tbl) +tbl) tbl) +(puthash "li" (let ((tbl (make-hash-table :test 'equal))) +(puthash "selfClosing" nil tbl) +(puthash "block" nil tbl) +tbl) tbl) +(puthash "source" (let ((tbl (make-hash-table :test 'equal))) +(puthash "selfClosing" t tbl) +(puthash "block" nil tbl) +tbl) tbl) +(puthash "tfoot" (let ((tbl (make-hash-table :test 'equal))) +(puthash "selfClosing" nil tbl) +(puthash "block" t tbl) +tbl) tbl) +(puthash "th" (let ((tbl (make-hash-table :test 'equal))) +(puthash "selfClosing" nil tbl) +(puthash "block" nil tbl) +tbl) tbl) +(puthash "input" (let ((tbl (make-hash-table :test 'equal))) +(puthash "selfClosing" t tbl) +(puthash "defaultAttr" (let ((tbl (make-hash-table :test 'equal))) +(puthash "type" "text" tbl) +(puthash "name" "" tbl) +(puthash "value" "" tbl) +tbl) tbl) +(puthash "block" nil tbl) +tbl) tbl) +(puthash "td" (let ((tbl (make-hash-table :test 'equal))) +(puthash "selfClosing" nil tbl) +(puthash "block" nil tbl) +tbl) tbl) +(puthash "dl" (let ((tbl (make-hash-table :test 'equal))) +(puthash "selfClosing" nil tbl) +(puthash "block" t tbl) +tbl) tbl) +(puthash "blockquote" (let ((tbl (make-hash-table :test 'equal))) +(puthash "selfClosing" nil tbl) +(puthash "block" t tbl) +tbl) tbl) +(puthash "fieldset" (let ((tbl (make-hash-table :test 'equal))) +(puthash "selfClosing" nil tbl) +(puthash "block" t tbl) +tbl) tbl) +(puthash "big" (let ((tbl (make-hash-table :test 'equal))) +(puthash "selfClosing" nil tbl) +(puthash "block" nil tbl) +tbl) tbl) +(puthash "dd" (let ((tbl (make-hash-table :test 'equal))) +(puthash "selfClosing" nil tbl) +(puthash "block" nil tbl) +tbl) tbl) +(puthash "kbd" (let ((tbl (make-hash-table :test 'equal))) +(puthash "selfClosing" nil tbl) +(puthash "block" nil tbl) +tbl) tbl) +(puthash "optgroup" (let ((tbl (make-hash-table :test 'equal))) +(puthash "selfClosing" nil tbl) +(puthash "block" t tbl) +tbl) tbl) +(puthash "dt" (let ((tbl (make-hash-table :test 'equal))) +(puthash "selfClosing" nil tbl) +(puthash "block" nil tbl) +tbl) tbl) +(puthash "wbr" (let ((tbl (make-hash-table :test 'equal))) +(puthash "selfClosing" nil tbl) +(puthash "block" nil tbl) +tbl) tbl) +(puthash "button" (let ((tbl (make-hash-table :test 'equal))) +(puthash "selfClosing" nil tbl) +(puthash "block" nil tbl) +tbl) tbl) +(puthash "summary" (let ((tbl (make-hash-table :test 'equal))) +(puthash "selfClosing" nil tbl) +(puthash "block" nil tbl) +tbl) tbl) +(puthash "p" (let ((tbl (make-hash-table :test 'equal))) +(puthash "selfClosing" nil tbl) +(puthash "block" nil tbl) +tbl) tbl) +(puthash "small" (let ((tbl (make-hash-table :test 'equal))) +(puthash "selfClosing" nil tbl) +(puthash "block" nil tbl) +tbl) tbl) +(puthash "output" (let ((tbl (make-hash-table :test 'equal))) +(puthash "selfClosing" nil tbl) +(puthash "block" nil tbl) +tbl) tbl) +(puthash "div" (let ((tbl (make-hash-table :test 'equal))) +(puthash "selfClosing" nil tbl) +(puthash "block" t tbl) +tbl) tbl) +(puthash "dir" (let ((tbl (make-hash-table :test 'equal))) +(puthash "selfClosing" nil tbl) +(puthash "block" t tbl) +tbl) tbl) +(puthash "em" (let ((tbl (make-hash-table :test 'equal))) +(puthash "selfClosing" nil tbl) +(puthash "block" nil tbl) +tbl) tbl) +(puthash "datalist" (let ((tbl (make-hash-table :test 'equal))) +(puthash "selfClosing" nil tbl) +(puthash "block" t tbl) +tbl) tbl) +(puthash "frame" (let ((tbl (make-hash-table :test 'equal))) +(puthash "selfClosing" t tbl) +(puthash "block" nil tbl) +tbl) tbl) +(puthash "hgroup" (let ((tbl (make-hash-table :test 'equal))) +(puthash "selfClosing" nil tbl) +(puthash "block" t tbl) +tbl) tbl) +(puthash "meta" (let ((tbl (make-hash-table :test 'equal))) +(puthash "selfClosing" t tbl) +(puthash "block" nil tbl) +tbl) tbl) +(puthash "video" (let ((tbl (make-hash-table :test 'equal))) +(puthash "selfClosing" nil tbl) +(puthash "defaultAttr" (let ((tbl (make-hash-table :test 'equal))) +(puthash "src" "" tbl) +tbl) tbl) +(puthash "block" t tbl) +tbl) tbl) +(puthash "rt" (let ((tbl (make-hash-table :test 'equal))) +(puthash "selfClosing" nil tbl) +(puthash "block" nil tbl) +tbl) tbl) +(puthash "canvas" (let ((tbl (make-hash-table :test 'equal))) +(puthash "selfClosing" nil tbl) +(puthash "block" nil tbl) +tbl) tbl) +(puthash "rp" (let ((tbl (make-hash-table :test 'equal))) +(puthash "selfClosing" nil tbl) +(puthash "block" nil tbl) +tbl) tbl) +(puthash "sub" (let ((tbl (make-hash-table :test 'equal))) +(puthash "selfClosing" nil tbl) +(puthash "block" nil tbl) +tbl) tbl) +(puthash "bdo" (let ((tbl (make-hash-table :test 'equal))) +(puthash "selfClosing" nil tbl) +(puthash "defaultAttr" (let ((tbl (make-hash-table :test 'equal))) +(puthash "dir" "" tbl) +tbl) tbl) +(puthash "block" t tbl) +tbl) tbl) +(puthash "bdi" (let ((tbl (make-hash-table :test 'equal))) +(puthash "selfClosing" nil tbl) +(puthash "block" nil tbl) +tbl) tbl) +(puthash "label" (let ((tbl (make-hash-table :test 'equal))) +(puthash "selfClosing" nil tbl) +(puthash "defaultAttr" (let ((tbl (make-hash-table :test 'equal))) +(puthash "for" "" tbl) +tbl) tbl) +(puthash "block" nil tbl) +tbl) tbl) +(puthash "acronym" (let ((tbl (make-hash-table :test 'equal))) +(puthash "selfClosing" nil tbl) +(puthash "defaultAttr" (let ((tbl (make-hash-table :test 'equal))) +(puthash "title" "" tbl) +tbl) tbl) +(puthash "block" nil tbl) +tbl) tbl) +(puthash "sup" (let ((tbl (make-hash-table :test 'equal))) +(puthash "selfClosing" nil tbl) +(puthash "block" nil tbl) +tbl) tbl) +(puthash "progress" (let ((tbl (make-hash-table :test 'equal))) +(puthash "selfClosing" nil tbl) +(puthash "block" nil tbl) +tbl) tbl) +(puthash "body" (let ((tbl (make-hash-table :test 'equal))) +(puthash "selfClosing" nil tbl) +(puthash "block" t tbl) +tbl) tbl) +(puthash "basefont" (let ((tbl (make-hash-table :test 'equal))) +(puthash "selfClosing" t tbl) +(puthash "block" nil tbl) +tbl) tbl) +(puthash "base" (let ((tbl (make-hash-table :test 'equal))) +(puthash "selfClosing" t tbl) +(puthash "defaultAttr" (let ((tbl (make-hash-table :test 'equal))) +(puthash "href" "" tbl) +tbl) tbl) +(puthash "block" nil tbl) +tbl) tbl) +(puthash "br" (let ((tbl (make-hash-table :test 'equal))) +(puthash "selfClosing" t tbl) +(puthash "block" nil tbl) +tbl) tbl) +(puthash "address" (let ((tbl (make-hash-table :test 'equal))) +(puthash "selfClosing" nil tbl) +(puthash "block" t tbl) +tbl) tbl) +(puthash "article" (let ((tbl (make-hash-table :test 'equal))) +(puthash "selfClosing" nil tbl) +(puthash "block" t tbl) +tbl) tbl) +(puthash "strong" (let ((tbl (make-hash-table :test 'equal))) +(puthash "selfClosing" nil tbl) +(puthash "block" nil tbl) +tbl) tbl) +(puthash "legend" (let ((tbl (make-hash-table :test 'equal))) +(puthash "selfClosing" nil tbl) +(puthash "block" nil tbl) +tbl) tbl) +(puthash "ol" (let ((tbl (make-hash-table :test 'equal))) +(puthash "selfClosing" nil tbl) +(puthash "block" t tbl) +tbl) tbl) +(puthash "script" (let ((tbl (make-hash-table :test 'equal))) +(puthash "selfClosing" nil tbl) +(puthash "block" t tbl) +tbl) tbl) +(puthash "caption" (let ((tbl (make-hash-table :test 'equal))) +(puthash "selfClosing" nil tbl) +(puthash "block" nil tbl) +tbl) tbl) +(puthash "s" (let ((tbl (make-hash-table :test 'equal))) +(puthash "selfClosing" nil tbl) +(puthash "block" nil tbl) +tbl) tbl) +(puthash "dialog" (let ((tbl (make-hash-table :test 'equal))) +(puthash "selfClosing" nil tbl) +(puthash "block" nil tbl) +tbl) tbl) +(puthash "col" (let ((tbl (make-hash-table :test 'equal))) +(puthash "selfClosing" t tbl) +(puthash "block" nil tbl) +tbl) tbl) +(puthash "h2" (let ((tbl (make-hash-table :test 'equal))) +(puthash "selfClosing" nil tbl) +(puthash "block" nil tbl) +tbl) tbl) +(puthash "h3" (let ((tbl (make-hash-table :test 'equal))) +(puthash "selfClosing" nil tbl) +(puthash "block" nil tbl) +tbl) tbl) +(puthash "h1" (let ((tbl (make-hash-table :test 'equal))) +(puthash "selfClosing" nil tbl) +(puthash "block" nil tbl) +tbl) tbl) +(puthash "h6" (let ((tbl (make-hash-table :test 'equal))) +(puthash "selfClosing" nil tbl) +(puthash "block" nil tbl) +tbl) tbl) +(puthash "h4" (let ((tbl (make-hash-table :test 'equal))) +(puthash "selfClosing" nil tbl) +(puthash "block" nil tbl) +tbl) tbl) +(puthash "h5" (let ((tbl (make-hash-table :test 'equal))) +(puthash "selfClosing" nil tbl) +(puthash "block" nil tbl) +tbl) tbl) +(puthash "header" (let ((tbl (make-hash-table :test 'equal))) +(puthash "selfClosing" nil tbl) +(puthash "block" t tbl) +tbl) tbl) +(puthash "table" (let ((tbl (make-hash-table :test 'equal))) +(puthash "selfClosing" nil tbl) +(puthash "block" t tbl) +tbl) tbl) +(puthash "select" (let ((tbl (make-hash-table :test 'equal))) +(puthash "selfClosing" nil tbl) +(puthash "defaultAttr" (let ((tbl (make-hash-table :test 'equal))) +(puthash "name" "" tbl) +(puthash "id" "" tbl) +tbl) tbl) +(puthash "block" t tbl) +tbl) tbl) +(puthash "noframes" (let ((tbl (make-hash-table :test 'equal))) +(puthash "selfClosing" nil tbl) +(puthash "block" nil tbl) +tbl) tbl) +(puthash "span" (let ((tbl (make-hash-table :test 'equal))) +(puthash "selfClosing" nil tbl) +(puthash "block" nil tbl) +tbl) tbl) +(puthash "area" (let ((tbl (make-hash-table :test 'equal))) +(puthash "selfClosing" t tbl) +(puthash "defaultAttr" (let ((tbl (make-hash-table :test 'equal))) +(puthash "shape" "" tbl) +(puthash "href" "" tbl) +(puthash "coords" "" tbl) +(puthash "alt" "" tbl) +tbl) tbl) +(puthash "block" nil tbl) +tbl) tbl) +(puthash "mark" (let ((tbl (make-hash-table :test 'equal))) +(puthash "selfClosing" nil tbl) +(puthash "block" nil tbl) +tbl) tbl) +(puthash "dfn" (let ((tbl (make-hash-table :test 'equal))) +(puthash "selfClosing" nil tbl) +(puthash "block" nil tbl) +tbl) tbl) +(puthash "strike" (let ((tbl (make-hash-table :test 'equal))) +(puthash "selfClosing" nil tbl) +(puthash "block" nil tbl) +tbl) tbl) +(puthash "cite" (let ((tbl (make-hash-table :test 'equal))) +(puthash "selfClosing" nil tbl) +(puthash "block" nil tbl) +tbl) tbl) +(puthash "thead" (let ((tbl (make-hash-table :test 'equal))) +(puthash "selfClosing" nil tbl) +(puthash "block" t tbl) +tbl) tbl) +(puthash "head" (let ((tbl (make-hash-table :test 'equal))) +(puthash "selfClosing" nil tbl) +(puthash "block" t tbl) +tbl) tbl) +(puthash "option" (let ((tbl (make-hash-table :test 'equal))) +(puthash "selfClosing" nil tbl) +(puthash "defaultAttr" (let ((tbl (make-hash-table :test 'equal))) +(puthash "value" "" tbl) +tbl) tbl) +(puthash "block" nil tbl) +tbl) tbl) +(puthash "form" (let ((tbl (make-hash-table :test 'equal))) +(puthash "selfClosing" nil tbl) +(puthash "defaultAttr" (let ((tbl (make-hash-table :test 'equal))) +(puthash "action" "" tbl) +tbl) tbl) +(puthash "block" t tbl) +tbl) tbl) +(puthash "hr" (let ((tbl (make-hash-table :test 'equal))) +(puthash "selfClosing" t tbl) +(puthash "block" nil tbl) +tbl) tbl) +(puthash "var" (let ((tbl (make-hash-table :test 'equal))) +(puthash "selfClosing" nil tbl) +(puthash "block" nil tbl) +tbl) tbl) +(puthash "link" (let ((tbl (make-hash-table :test 'equal))) +(puthash "selfClosing" t tbl) +(puthash "defaultAttr" (let ((tbl (make-hash-table :test 'equal))) +(puthash "href" "" tbl) +(puthash "rel" "stylesheet" tbl) +tbl) tbl) +(puthash "block" nil tbl) +tbl) tbl) +(puthash "ruby" (let ((tbl (make-hash-table :test 'equal))) +(puthash "selfClosing" nil tbl) +(puthash "block" nil tbl) +tbl) tbl) +(puthash "b" (let ((tbl (make-hash-table :test 'equal))) +(puthash "selfClosing" nil tbl) +(puthash "block" nil tbl) +tbl) tbl) +(puthash "colgroup" (let ((tbl (make-hash-table :test 'equal))) +(puthash "selfClosing" nil tbl) +(puthash "block" t tbl) +tbl) tbl) +(puthash "keygen" (let ((tbl (make-hash-table :test 'equal))) +(puthash "selfClosing" t tbl) +(puthash "block" nil tbl) +tbl) tbl) +(puthash "ul" (let ((tbl (make-hash-table :test 'equal))) +(puthash "selfClosing" nil tbl) +(puthash "block" t tbl) +tbl) tbl) +(puthash "applet" (let ((tbl (make-hash-table :test 'equal))) +(puthash "selfClosing" nil tbl) +(puthash "block" t tbl) +tbl) tbl) +(puthash "del" (let ((tbl (make-hash-table :test 'equal))) +(puthash "selfClosing" nil tbl) +(puthash "block" nil tbl) +tbl) tbl) +(puthash "iframe" (let ((tbl (make-hash-table :test 'equal))) +(puthash "selfClosing" nil tbl) +(puthash "defaultAttr" (let ((tbl (make-hash-table :test 'equal))) +(puthash "src" "" tbl) +(puthash "frameborder" "0" tbl) +tbl) tbl) +(puthash "block" nil tbl) +tbl) tbl) +(puthash "embed" (let ((tbl (make-hash-table :test 'equal))) +(puthash "selfClosing" t tbl) +(puthash "defaultAttr" (let ((tbl (make-hash-table :test 'equal))) +(puthash "src" "" tbl) +(puthash "type" "" tbl) +tbl) tbl) +(puthash "block" nil tbl) +tbl) tbl) +(puthash "pre" (let ((tbl (make-hash-table :test 'equal))) +(puthash "selfClosing" nil tbl) +(puthash "block" t tbl) +tbl) tbl) +(puthash "frameset" (let ((tbl (make-hash-table :test 'equal))) +(puthash "selfClosing" nil tbl) +(puthash "block" t tbl) +tbl) tbl) +(puthash "figure" (let ((tbl (make-hash-table :test 'equal))) +(puthash "selfClosing" nil tbl) +(puthash "block" t tbl) +tbl) tbl) +(puthash "ins" (let ((tbl (make-hash-table :test 'equal))) +(puthash "selfClosing" nil tbl) +(puthash "block" nil tbl) +tbl) tbl) +(puthash "aside" (let ((tbl (make-hash-table :test 'equal))) +(puthash "selfClosing" nil tbl) +(puthash "block" t tbl) +tbl) tbl) +(puthash "html" (let ((tbl (make-hash-table :test 'equal))) +(puthash "selfClosing" nil tbl) +(puthash "block" t tbl) +tbl) tbl) +(puthash "nav" (let ((tbl (make-hash-table :test 'equal))) +(puthash "selfClosing" nil tbl) +(puthash "block" t tbl) +tbl) tbl) +(puthash "details" (let ((tbl (make-hash-table :test 'equal))) +(puthash "selfClosing" nil tbl) +(puthash "block" t tbl) +tbl) tbl) +(puthash "u" (let ((tbl (make-hash-table :test 'equal))) +(puthash "selfClosing" nil tbl) +(puthash "block" nil tbl) +tbl) tbl) +(puthash "samp" (let ((tbl (make-hash-table :test 'equal))) +(puthash "selfClosing" nil tbl) +(puthash "block" nil tbl) +tbl) tbl) +(puthash "map" (let ((tbl (make-hash-table :test 'equal))) +(puthash "selfClosing" nil tbl) +(puthash "defaultAttr" (let ((tbl (make-hash-table :test 'equal))) +(puthash "name" "" tbl) +tbl) tbl) +(puthash "block" t tbl) +tbl) tbl) +(puthash "track" (let ((tbl (make-hash-table :test 'equal))) +(puthash "selfClosing" t tbl) +(puthash "block" nil tbl) +tbl) tbl) +(puthash "object" (let ((tbl (make-hash-table :test 'equal))) +(puthash "selfClosing" nil tbl) +(puthash "defaultAttr" (let ((tbl (make-hash-table :test 'equal))) +(puthash "type" "" tbl) +(puthash "data" "" tbl) +tbl) tbl) +(puthash "block" nil tbl) +tbl) tbl) +(puthash "figcaption" (let ((tbl (make-hash-table :test 'equal))) +(puthash "selfClosing" nil tbl) +(puthash "block" nil tbl) +tbl) tbl) +(puthash "a" (let ((tbl (make-hash-table :test 'equal))) +(puthash "selfClosing" nil tbl) +(puthash "defaultAttr" (let ((tbl (make-hash-table :test 'equal))) +(puthash "href" "" tbl) +tbl) tbl) +(puthash "block" nil tbl) +tbl) tbl) +(puthash "center" (let ((tbl (make-hash-table :test 'equal))) +(puthash "selfClosing" nil tbl) +(puthash "block" nil tbl) +tbl) tbl) +(puthash "textarea" (let ((tbl (make-hash-table :test 'equal))) +(puthash "selfClosing" nil tbl) +(puthash "defaultAttr" (let ((tbl (make-hash-table :test 'equal))) +(puthash "rows" "10" tbl) +(puthash "cols" "30" tbl) +(puthash "name" "" tbl) +(puthash "id" "" tbl) +tbl) tbl) +(puthash "block" t tbl) +tbl) tbl) +(puthash "footer" (let ((tbl (make-hash-table :test 'equal))) +(puthash "selfClosing" nil tbl) +(puthash "block" t tbl) +tbl) tbl) +(puthash "i" (let ((tbl (make-hash-table :test 'equal))) +(puthash "selfClosing" nil tbl) +(puthash "block" nil tbl) +tbl) tbl) +(puthash "q" (let ((tbl (make-hash-table :test 'equal))) +(puthash "selfClosing" nil tbl) +(puthash "block" nil tbl) +tbl) tbl) +(puthash "command" (let ((tbl (make-hash-table :test 'equal))) +(puthash "selfClosing" nil tbl) +(puthash "block" nil tbl) +tbl) tbl) +(puthash "time" (let ((tbl (make-hash-table :test 'equal))) +(puthash "selfClosing" nil tbl) +(puthash "block" nil tbl) +tbl) tbl) +(puthash "audio" (let ((tbl (make-hash-table :test 'equal))) +(puthash "selfClosing" nil tbl) +(puthash "defaultAttr" (let ((tbl (make-hash-table :test 'equal))) +(puthash "src" "" tbl) +tbl) tbl) +(puthash "block" t tbl) +tbl) tbl) +(puthash "section" (let ((tbl (make-hash-table :test 'equal))) +(puthash "selfClosing" nil tbl) +(puthash "block" t tbl) +tbl) tbl) +(puthash "abbr" (let ((tbl (make-hash-table :test 'equal))) +(puthash "selfClosing" nil tbl) +(puthash "defaultAttr" (let ((tbl (make-hash-table :test 'equal))) +(puthash "title" "" tbl) +tbl) tbl) +(puthash "block" nil tbl) +tbl) tbl) +tbl) tbl) +tbl) tbl) (puthash "css" (let ((tbl (make-hash-table :test 'equal))) (puthash "vendorPrefixesProperties" (let ((tbl (make-hash-table :test 'equal))) (puthash "text-fill-color" (vector @@ -2318,6 +2769,10 @@ tbl)) "Function to execute when expanding a leaf node in the Zencoding AST.") +(zencoding-defparameter + zencoding-tag-settings-table + (gethash "tags" (gethash "html" zencoding-preferences))) + (defvar zencoding-filters '("html" (zencoding-primary-filter zencoding-make-html-tag) "c" (zencoding-primary-filter zencoding-make-commented-html-tag) @@ -2353,43 +2808,65 @@ tbl)) (classes (pop tag-info)) (props (pop tag-info)) (txt (pop tag-info)) - (self-closing? (not (or txt content - (and has-body? - (not (member name zencoding-self-closing-tags))))))) - (funcall tag-maker name id classes props txt self-closing? + (settings (gethash name zencoding-tag-settings-table))) + (funcall tag-maker name has-body? id classes props txt settings (if content content (if zencoding-leaf-function (funcall zencoding-leaf-function)))))) -(defun zencoding-make-html-tag (tag-name tag-id tag-classes tag-props tag-txt self-closing? content) +(defun zencoding-hash-to-list (hash &optional proc) + (unless proc (setq proc #'cons)) + (loop for key being the hash-keys of hash using (hash-values val) + collect (funcall proc key val))) + +(defun zencoding-merge-tag-props (default-table tag-props) + (if default-table + (let ((tbl (copy-hash-table default-table))) + (loop for prop in tag-props do + (puthash (symbol-name (car prop)) (cadr prop) tbl)) + (zencoding-hash-to-list tbl 'list)) + tag-props)) + +(defun zencoding-make-html-tag (tag-name tag-has-body? tag-id tag-classes tag-props tag-txt settings content) "Create HTML markup string" - (let* ((id (zencoding-concat-or-empty " id=\"" tag-id "\"")) - (classes (zencoding-mapconcat-or-empty " class=\"" tag-classes " " "\"")) - (props (zencoding-mapconcat-or-empty " " tag-props " " nil - (lambda (prop) - (concat (symbol-name (car prop)) "=\"" (cadr prop) "\"")))) + (let* ((id (zencoding-concat-or-empty " id=\"" tag-id "\"")) + (classes (zencoding-mapconcat-or-empty " class=\"" tag-classes " " "\"")) + (props (let* ((tag-props-default + (and settings (gethash "defaultAttr" settings))) + (merged-tag-props + (zencoding-merge-tag-props + tag-props-default + tag-props))) + (zencoding-mapconcat-or-empty + " " merged-tag-props " " nil + (lambda (prop) + (let ((key (car prop))) + (concat (if (symbolp key) (symbol-name key) key) + "=\"" (cadr prop) "\"")))))) (content-multiline? (and content (string-match "\n" content))) - (block-tag? (or (member tag-name zencoding-block-tags) - (and (> (length tag-name) 1) - (not (member tag-name zencoding-inline-tags))))) - (lf (if (or content-multiline? block-tag?) - "\n"))) - (concat "<" tag-name id classes props (if self-closing? - "/>" - (concat ">" - (if tag-txt - (if (or content-multiline? block-tag?) - (zencoding-indent tag-txt) - tag-txt)) - (if content - (if (or content-multiline? block-tag?) - (zencoding-indent content) - content)) - lf - "</" tag-name ">"))))) - -(defun zencoding-make-commented-html-tag (tag-name tag-id tag-classes tag-props tag-txt self-closing? content) + (block-tag? (and settings (gethash "block" settings))) + (self-closing? (and (not (or tag-txt content)) + (or (not tag-has-body?) + (and settings (gethash "selfClosing" settings))))) + (lf (if (or content-multiline? block-tag?) "\n"))) + ;(print (concat "block-tag? " tag-name)) + ;(print (if block-tag? "yes" "no")) + (concat "<" tag-name id classes props + (if self-closing? "/>" + (concat ">" + (if tag-txt + (if (or content-multiline? block-tag?) + (zencoding-indent tag-txt) + tag-txt)) + (if content + (if (or content-multiline? block-tag?) + (zencoding-indent content) + content)) + lf + "</" tag-name ">"))))) + +(defun zencoding-make-commented-html-tag (tag-name tag-has-body? tag-id tag-classes tag-props tag-txt settings content) "Create HTML markup string with extra comments for elements with #id or .classes" - (let ((body (zencoding-make-html-tag tag-name tag-id tag-classes tag-props tag-txt self-closing? content))) + (let ((body (zencoding-make-html-tag tag-name tag-has-body? tag-id tag-classes tag-props tag-txt settings content))) (if (or tag-id tag-classes) (let ((id (zencoding-concat-or-empty "#" tag-id)) (classes (zencoding-mapconcat-or-empty "." tag-classes "."))) @@ -2398,7 +2875,7 @@ tbl)) "\n<!-- /" id classes " -->")) body))) -(defun zencoding-make-haml-tag (tag-name tag-id tag-classes tag-props tag-txt self-closing? content) +(defun zencoding-make-haml-tag (tag-name tag-has-body? tag-id tag-classes tag-props tag-txt settings content) "Create HAML string" (let ((name (if (and (equal tag-name "div") (or tag-id tag-classes)) @@ -2406,22 +2883,24 @@ tbl)) (concat "%" tag-name))) (id (zencoding-concat-or-empty "#" tag-id)) (classes (zencoding-mapconcat-or-empty "." tag-classes ".")) - (props (zencoding-mapconcat-or-empty "{" tag-props ", " "}" - (lambda (prop) - (concat ":" (symbol-name (car prop)) " => \"" (cadr prop) "\""))))) + (props (zencoding-mapconcat-or-empty + "{" tag-props ", " "}" + (lambda (prop) + (concat ":" (symbol-name (car prop)) " => \"" (cadr prop) "\""))))) (concat name id classes props (if tag-txt (zencoding-indent tag-txt)) (if content (zencoding-indent content))))) -(defun zencoding-make-hiccup-tag (tag-name tag-id tag-classes tag-props tag-txt self-closing? content) +(defun zencoding-make-hiccup-tag (tag-name tag-has-body? tag-id tag-classes tag-props tag-txt settings content) "Create Hiccup string" (let* ((id (zencoding-concat-or-empty "#" tag-id)) (classes (zencoding-mapconcat-or-empty "." tag-classes ".")) - (props (zencoding-mapconcat-or-empty " {" tag-props ", " "}" - (lambda (prop) - (concat ":" (symbol-name (car prop)) " \"" (cadr prop) "\"")))) + (props (zencoding-mapconcat-or-empty + " {" tag-props ", " "}" + (lambda (prop) + (concat ":" (symbol-name (car prop)) " \"" (cadr prop) "\"")))) (content-multiline? (and content (string-match "\n" content))) (block-tag? (or (member tag-name zencoding-block-tags) (and (> (length tag-name) 1) |