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 | |
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.
-rw-r--r-- | .gitignore | 1 | ||||
-rw-r--r-- | conf/preferences.json | 125 | ||||
-rw-r--r-- | conf/snippets.json | 379 | ||||
-rw-r--r-- | src/html-abbrev.el | 106 | ||||
-rw-r--r-- | src/preferences.el | 566 | ||||
-rw-r--r-- | src/snippets.el | 275 | ||||
-rw-r--r-- | src/test.el | 196 | ||||
-rwxr-xr-x | tools/json2hash | 2 | ||||
-rw-r--r-- | zencoding-mode.el | 947 |
9 files changed, 1776 insertions, 821 deletions
diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..f5711cb --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +memo*
\ No newline at end of file diff --git a/conf/preferences.json b/conf/preferences.json index d6352b3..8c6444b 100644 --- a/conf/preferences.json +++ b/conf/preferences.json @@ -1,4 +1,129 @@ { + "html": { + "tags": { + "a": {"block": false, "selfClosing": false, "defaultAttr": {"href": ""}}, + "abbr": {"block": false, "selfClosing": false, "defaultAttr": {"title": ""}}, + "acronym": {"block": false, "selfClosing": false, "defaultAttr": {"title": ""}}, + "address": {"block": true, "selfClosing": false}, + "applet": {"block": true, "selfClosing": false}, + "area": {"block": false, "selfClosing": true, "defaultAttr": {"shape": "", "coords": "", "href": "", "alt": ""}}, + "article": {"block": true, "selfClosing": false}, + "aside": {"block": true, "selfClosing": false}, + "audio": {"block": true, "selfClosing": false, "defaultAttr": {"src": ""}}, + "b": {"block": false, "selfClosing": false}, + "base": {"block": false, "selfClosing": true, "defaultAttr": {"href": ""}}, + "basefont": {"block": false, "selfClosing": true}, + "bdi": {"block": false, "selfClosing": false}, + "bdo": {"block": true, "selfClosing": false, "defaultAttr": {"dir": ""}}, + "big": {"block": false, "selfClosing": false}, + "blockquote": {"block": true, "selfClosing": false}, + "body": {"block": true, "selfClosing": false}, + "br": {"block": false, "selfClosing": true}, + "button": {"block": false, "selfClosing": false}, + "canvas": {"block": false, "selfClosing": false}, + "caption": {"block": false, "selfClosing": false}, + "center": {"block": false, "selfClosing": false}, + "cite": {"block": false, "selfClosing": false}, + "code": {"block": false, "selfClosing": false}, + "col": {"block": false, "selfClosing": true}, + "colgroup": {"block": true, "selfClosing": false}, + "command": {"block": false, "selfClosing": false}, + "datalist": {"block": true, "selfClosing": false}, + "dd": {"block": false, "selfClosing": false}, + "del": {"block": false, "selfClosing": false}, + "details": {"block": true, "selfClosing": false}, + "dfn": {"block": false, "selfClosing": false}, + "dialog": {"block": false, "selfClosing": false}, + "dir": {"block": true, "selfClosing": false}, + "div": {"block": true, "selfClosing": false}, + "dl": {"block": true, "selfClosing": false}, + "dt": {"block": false, "selfClosing": false}, + "em": {"block": false, "selfClosing": false}, + "embed": {"block": false, "selfClosing": true, "defaultAttr": {"src": "", "type": ""}}, + "fieldset": {"block": true, "selfClosing": false}, + "figcaption": {"block": false, "selfClosing": false}, + "figure": {"block": true, "selfClosing": false}, + "font": {"block": false, "selfClosing": false}, + "footer": {"block": true, "selfClosing": false}, + "form": {"block": true, "selfClosing": false, "defaultAttr": {"action": ""}}, + "frame": {"block": false, "selfClosing": true}, + "frameset": {"block": true, "selfClosing": false}, + "head": {"block": true, "selfClosing": false}, + "header": {"block": true, "selfClosing": false}, + "hgroup": {"block": true, "selfClosing": false}, + "h1": {"block": false, "selfClosing": false}, + "h2": {"block": false, "selfClosing": false}, + "h3": {"block": false, "selfClosing": false}, + "h4": {"block": false, "selfClosing": false}, + "h5": {"block": false, "selfClosing": false}, + "h6": {"block": false, "selfClosing": false}, + "hr": {"block": false, "selfClosing": true}, + "html": {"block": true, "selfClosing": false}, + "i": {"block": false, "selfClosing": false}, + "iframe": {"block": false, "selfClosing": false, "defaultAttr": {"src": "", "frameborder": "0"}}, + "img": {"block": false, "selfClosing": true, "defaultAttr": {"src": "", "alt": ""}}, + "input": {"block": false, "selfClosing": true, "defaultAttr": {"type": "text", "name": "", "value": ""}}, + "ins": {"block": false, "selfClosing": false}, + "kbd": {"block": false, "selfClosing": false}, + "keygen": {"block": false, "selfClosing": true}, + "label": {"block": false, "selfClosing": false, "defaultAttr": {"for": ""}}, + "legend": {"block": false, "selfClosing": false}, + "li": {"block": false, "selfClosing": false}, + "link": {"block": false, "selfClosing": true, "defaultAttr": {"rel": "stylesheet", "href": ""}}, + "map": {"block": true, "selfClosing": false, "defaultAttr": {"name": ""}}, + "mark": {"block": false, "selfClosing": false}, + "menu": {"block": true, "selfClosing": false}, + "meta": {"block": false, "selfClosing": true}, + "meter": {"block": false, "selfClosing": false}, + "nav": {"block": true, "selfClosing": false}, + "noframes": {"block": false, "selfClosing": false}, + "noscript": {"block": false, "selfClosing": false}, + "object": {"block": false, "selfClosing": false, "defaultAttr": {"data": "", "type": ""}}, + "ol": {"block": true, "selfClosing": false}, + "optgroup": {"block": true, "selfClosing": false}, + "option": {"block": false, "selfClosing": false, "defaultAttr": {"value": ""}}, + "output": {"block": false, "selfClosing": false}, + "p": {"block": false, "selfClosing": false}, + "param": {"block": false, "selfClosing": true, "defaultAttr": {"name": "", "value": ""}}, + "pre": {"block": true, "selfClosing": false}, + "progress": {"block": false, "selfClosing": false}, + "q": {"block": false, "selfClosing": false}, + "rp": {"block": false, "selfClosing": false}, + "rt": {"block": false, "selfClosing": false}, + "ruby": {"block": false, "selfClosing": false}, + "s": {"block": false, "selfClosing": false}, + "samp": {"block": false, "selfClosing": false}, + "script": {"block": true, "selfClosing": false}, + "section": {"block": true, "selfClosing": false}, + "select": {"block": true, "selfClosing": false, "defaultAttr": {"name": "", "id": ""}}, + "small": {"block": false, "selfClosing": false}, + "source": {"block": false, "selfClosing": true}, + "span": {"block": false, "selfClosing": false}, + "strike": {"block": false, "selfClosing": false}, + "strong": {"block": false, "selfClosing": false}, + "style": {"block": true, "selfClosing": false}, + "sub": {"block": false, "selfClosing": false}, + "summary": {"block": false, "selfClosing": false}, + "sup": {"block": false, "selfClosing": false}, + "table": {"block": true, "selfClosing": false}, + "tbody": {"block": true, "selfClosing": false}, + "td": {"block": false, "selfClosing": false}, + "textarea": {"block": true, "selfClosing": false, "defaultAttr": {"name": "", "id": "", "cols": "30", "rows": "10"}}, + "tfoot": {"block": true, "selfClosing": false}, + "th": {"block": false, "selfClosing": false}, + "thead": {"block": true, "selfClosing": false}, + "time": {"block": false, "selfClosing": false}, + "title": {"block": false, "selfClosing": false}, + "tr": {"block": true, "selfClosing": false}, + "track": {"block": false, "selfClosing": true}, + "tt": {"block": false, "selfClosing": false}, + "u": {"block": false, "selfClosing": false}, + "ul": {"block": true, "selfClosing": false}, + "var": {"block": false, "selfClosing": false}, + "video": {"block": true, "selfClosing": false, "defaultAttr": {"src": ""}}, + "wbr": {"block": false, "selfClosing": false} + } + }, "css": { "vendorPrefixesProperties": { "text-fill-color": ["webkit"], diff --git a/conf/snippets.json b/conf/snippets.json index 64a1c9e..e42a3db 100644 --- a/conf/snippets.json +++ b/conf/snippets.json @@ -1,13 +1,6 @@ { - "variables": { - "lang": "en", - "locale": "en-US", - "charset": "UTF-8", - "indentation": "\t", - "newline": "\n" - }, "css": { - "filters": "html", + "snippets": { "@i": "@import url(|);", "@import": "@import url(|);", @@ -591,255 +584,135 @@ }, "html": { - "filters": "html", - "profile": "html", - "snippets": { - "!!!": "<!doctype html>", - "!!!4t": "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">", - "!!!4s": "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01//EN\" \"http://www.w3.org/TR/html4/strict.dtd\">", - "!!!xt": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">", - "!!!xs": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\">", - "!!!xxs": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.1//EN\" \"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd\">", - "c": "<!-- |${child} -->", - "cc:ie6": "<!--[if lte IE 6]>\n\t${child}|\n<![endif]-->", - "cc:ie": "<!--[if IE]>\n\t${child}|\n<![endif]-->", + "snippets": { + "!!!": "<!doctype html>", + "!!!4t": "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">", + "!!!4s": "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01//EN\" \"http://www.w3.org/TR/html4/strict.dtd\">", + "!!!xt": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">", + "!!!xs": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\">", + "!!!xxs": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.1//EN\" \"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd\">", + "c": "<!-- |${child} -->", + "cc:ie6": "<!--[if lte IE 6]>\n\t${child}|\n<![endif]-->", + "cc:ie": "<!--[if IE]>\n\t${child}|\n<![endif]-->", "cc:noie": "<!--[if !IE]><!-->\n\t${child}|\n<!--<![endif]-->" }, - "abbreviations": { - "!": "html:5", - "a": "<a href=\"\">", - "a:link": "<a href=\"http://|\">", - "a:mail": "<a href=\"mailto:|\">", - "abbr": "<abbr title=\"\">", - "acronym": "<acronym title=\"\">", - "base": "<base href=\"\" />", - "basefont": "<basefont/>", - "br": "<br/>", - "frame": "<frame/>", - "hr": "<hr/>", - "bdo": "<bdo dir=\"\">", - "bdo:r": "<bdo dir=\"rtl\">", - "bdo:l": "<bdo dir=\"ltr\">", - "col": "<col/>", - "link": "<link rel=\"stylesheet\" href=\"\" />", - "link:css": "<link rel=\"stylesheet\" href=\"${1:style}.css\" />", - "link:print": "<link rel=\"stylesheet\" href=\"${1:print}.css\" media=\"print\" />", - "link:favicon": "<link rel=\"shortcut icon\" type=\"image/x-icon\" href=\"${1:favicon.ico}\" />", - "link:touch": "<link rel=\"apple-touch-icon\" href=\"${1:favicon.png}\" />", - "link:rss": "<link rel=\"alternate\" type=\"application/rss+xml\" title=\"RSS\" href=\"${1:rss.xml}\" />", - "link:atom": "<link rel=\"alternate\" type=\"application/atom+xml\" title=\"Atom\" href=\"${1:atom.xml}\" />", - "meta": "<meta/>", - "meta:utf": "<meta http-equiv=\"Content-Type\" content=\"text/html;charset=UTF-8\" />", - "meta:win": "<meta http-equiv=\"Content-Type\" content=\"text/html;charset=windows-1251\" />", - "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}\" />", - "meta:compat": "<meta http-equiv=\"X-UA-Compatible\" content=\"${1:IE=7}\" />", - "style": "<style>", - "script": "<script>", - "script:src": "<script src=\"\">", - "img": "<img src=\"\" alt=\"\" />", - "iframe": "<iframe src=\"\" frameborder=\"0\">", - "embed": "<embed src=\"\" type=\"\" />", - "object": "<object data=\"\" type=\"\">", - "param": "<param name=\"\" value=\"\" />", - "map": "<map name=\"\">", - "area": "<area shape=\"\" coords=\"\" href=\"\" alt=\"\" />", - "area:d": "<area shape=\"default\" href=\"\" alt=\"\" />", - "area:c": "<area shape=\"circle\" coords=\"\" href=\"\" alt=\"\" />", - "area:r": "<area shape=\"rect\" coords=\"\" href=\"\" alt=\"\" />", - "area:p": "<area shape=\"poly\" coords=\"\" href=\"\" alt=\"\" />", - "form": "<form action=\"\">", - "form:get": "<form action=\"\" method=\"get\">", - "form:post": "<form action=\"\" method=\"post\">", - "label": "<label for=\"\">", - "input": "<input type=\"${1:text}\" />", - "inp": "<input type=\"${1:text}\" name=\"\" id=\"\" />", - "input:hidden": "input[type=hidden name]", - "input:h": "input:hidden", - "input:text": "inp", - "input:t": "inp", - "input:search": "inp[type=search]", - "input:email": "inp[type=email]", - "input:url": "inp[type=url]", - "input:password": "inp[type=password]", - "input:p": "input:password", - "input:datetime": "inp[type=datetime]", - "input:date": "inp[type=date]", - "input:datetime-local": "inp[type=datetime-local]", - "input:month": "inp[type=month]", - "input:week": "inp[type=week]", - "input:time": "inp[type=time]", - "input:number": "inp[type=number]", - "input:color": "inp[type=color]", - "input:checkbox": "inp[type=checkbox]", - "input:c": "input:checkbox", - "input:radio": "inp[type=radio]", - "input:r": "input:radio", - "input:range": "inp[type=range]", - "input:file": "inp[type=file]", - "input:f": "input:file", - "input:submit": "<input type=\"submit\" value=\"\" />", - "input:s": "input:submit", - "input:image": "<input type=\"image\" src=\"\" alt=\"\" />", - "input:i": "input:image", - "input:button": "<input type=\"button\" value=\"\" />", - "input:b": "input:button", - "isindex": "<isindex/>", - "input:reset": "input:button[type=reset]", - "select": "<select name=\"\" id=\"\">", - "option": "<option value=\"\">", - "textarea": "<textarea name=\"\" id=\"\" cols=\"${1:30}\" rows=\"${2:10}\">", - "menu:context": "menu[type=context]>", - "menu:c": "menu:context", - "menu:toolbar": "menu[type=toolbar]>", - "menu:t": "menu:toolbar", - "video": "<video src=\"\">", - "audio": "<audio src=\"\">", - "html:xml": "<html xmlns=\"http://www.w3.org/1999/xhtml\">", - "keygen": "<keygen/>", - "command": "<command/>", - - "bq": "blockquote", - "acr": "acronym", - "fig": "figure", - "figc": "figcaption", - "ifr": "iframe", - "emb": "embed", - "obj": "object", - "src": "source", - "cap": "caption", - "colg": "colgroup", - "fst": "fieldset", - "btn": "button", - "btn:b": "button[type=button]", - "btn:r": "button[type=reset]", - "btn:s": "button[type=submit]", - "optg": "optgroup", - "opt": "option", - "tarea": "textarea", - "leg": "legend", - "sect": "section", - "art": "article", - "hdr": "header", - "ftr": "footer", - "adr": "address", - "dlg": "dialog", - "str": "strong", - "prog": "progress", - "fset": "fieldset", - "datag": "datagrid", - "datal": "datalist", - "kg": "keygen", - "out": "output", - "det": "details", - "cmd": "command", - "doc": "html>(head>meta[charset=UTF-8]+title{${1:Document}})+body", - "doc4": "html>(head>meta[http-equiv=\"Content-Type\" content=\"text/html;charset=${charset}\"]+title{${1:Document}})", - - "html:4t": "!!!4t+doc4[lang=${lang}]", - "html:4s": "!!!4s+doc4[lang=${lang}]", - "html:xt": "!!!xt+doc4[xmlns=http://www.w3.org/1999/xhtml xml:lang=${lang}]", - "html:xs": "!!!xs+doc4[xmlns=http://www.w3.org/1999/xhtml xml:lang=${lang}]", - "html:xxs": "!!!xxs+doc4[xmlns=http://www.w3.org/1999/xhtml xml:lang=${lang}]", - "html:5": "!!!+doc[lang=${lang}]", - - "ol+": "ol>li", - "ul+": "ul>li", - "dl+": "dl>dt+dd", - "map+": "map>area", - "table+": "table>tr>td", - "colgroup+": "colgroup>col", - "colg+": "colgroup>col", - "tr+": "tr>td", - "select+": "select>option", - "optgroup+": "optgroup>option", - "optg+": "optgroup>option" - } - }, - - "xml": { - "extends": "html", - "profile": "xml", - "filters": "html" - }, - - "xsl": { - "extends": "html", - "profile": "xml", - "filters": "html, xsl", - "abbreviations": { - "tm": "<xsl:template match=\"\" mode=\"\">", - "tmatch": "tm", - "tn": "<xsl:template name=\"\">", - "tname": "tn", - "call": "<xsl:call-template name=\"\"/>", - "ap": "<xsl:apply-templates select=\"\" mode=\"\"/>", - "api": "<xsl:apply-imports/>", - "imp": "<xsl:import href=\"\"/>", - "inc": "<xsl:include href=\"\"/>", - - "ch": "<xsl:choose>", - "xsl:when": "<xsl:when test=\"\">", - "wh": "xsl:when", - "ot": "<xsl:otherwise>", - "if": "<xsl:if test=\"\">", - - "par": "<xsl:param name=\"\">", - "pare": "<xsl:param name=\"\" select=\"\"/>", - "var": "<xsl:variable name=\"\">", - "vare": "<xsl:variable name=\"\" select=\"\"/>", - "wp": "<xsl:with-param name=\"\" select=\"\"/>", - "key": "<xsl:key name=\"\" match=\"\" use=\"\"/>", - - "elem": "<xsl:element name=\"\">", - "attr": "<xsl:attribute name=\"\">", - "attrs": "<xsl:attribute-set name=\"\">", - - "cp": "<xsl:copy select=\"\"/>", - "co": "<xsl:copy-of select=\"\"/>", - "val": "<xsl:value-of select=\"\"/>", - "each": "<xsl:for-each select=\"\">", - "for": "each", - "tex": "<xsl:text></xsl:text>", - - "com": "<xsl:comment>", - "msg": "<xsl:message terminate=\"no\">", - "fall": "<xsl:fallback>", - "num": "<xsl:number value=\"\"/>", - "nam": "<namespace-alias stylesheet-prefix=\"\" result-prefix=\"\"/>", - "pres": "<xsl:preserve-space elements=\"\"/>", - "strip": "<xsl:strip-space elements=\"\"/>", - "proc": "<xsl:processing-instruction name=\"\">", - "sort": "<xsl:sort select=\"\" order=\"\"/>", - - "choose+": "xsl:choose>xsl:when+xsl:otherwise", - "xsl": "!!!+xsl:stylesheet[version=1.0 xmlns:xsl=http://www.w3.org/1999/XSL/Transform]>{\n|}" - }, - "snippets": { - "!!!": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" + "aliases": { + "a:link": "a href=http://", + "a:mail": "a href=mailto:", + "bdo:r": "bdo dir=rtl", + "bdo:l": "bdo dir=ltr", + "link:css": "link rel=stylesheet href=style.css", + "link:print": "link rel=stylesheet href=print.css media=print", + "link:favicon": "link icon rel=shortcut type=image/x-icon href=favicon.ico", + "link:touch": "link rel=apple-touch-icon href=favicon.png", + "link:rss": "link rel=alternate type=application/rss+xml title=RSS href=rss.xml", + "link:atom": "link rel=alternate type=\"application/atom+xml\" title=Atom href=atom.xml", + "meta:utf": "meta http-equiv=Content-Type content=\"text/html;charset=UTF-8\"", + "meta:win": "meta http-equiv=Content-Type content=\"text/html;charset=windows-1251\"", + "meta:vp": "meta name=viewport content=\"width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0\"", + "meta:compat": "meta http-equiv=X-UA-Compatible content=\"IE=edge,chrome=1\"", + "script:src": "script src", + "area:d": "area shape=default href alt", + "area:c": "area shape=circle coords href alt", + "area:r": "area shape=rect coords href alt", + "area:p": "area shape=poly coords href alt", + "form:get": "form action method=get", + "form:post": "form action method=post", + "input:text": "input", + "input:t": "input", + "input:hidden": "input type=hidden", + "input:h": "input:hidden", + "input:search": "input type=search", + "input:email": "input type=email", + "input:url": "input type=url", + "input:password": "input type=password", + "input:p": "input:password", + "input:datetime": "input type=datetime", + "input:date": "input type=date", + "input:datetime-local": "input type=datetime-local", + "input:month": "input type=month", + "input:week": "input type=week", + "input:time": "input type=time", + "input:number": "input type=number", + "input:color": "input type=color", + "input:checkbox": "input type=checkbox", + "input:c": "input:checkbox", + "input:radio": "input type=radio", + "input:r": "input:radio", + "input:range": "input type=range", + "input:file": "input type=file", + "input:f": "input:file", + "input:submit": "input type=submit", + "input:s": "input:submit", + "input:image": "input type=image src alt", + "input:i": "input:image", + "input:button": "input type=button", + "input:b": "input:button", + "input:reset": "input type=reset", + "menu:context": "menu type=context", + "menu:c": "menu:context", + "menu:toolbar": "menu type=toolbar", + "menu:t": "menu:toolbar", + "html:xml": "html xmlns=http://www.w3.org/1999/xhtml", + + "bq": "blockquote", + "acr": "acronym", + "fig": "figure", + "figc": "figcaption", + "ifr": "iframe", + "emb": "embed", + "obj": "object", + "src": "source", + "cap": "caption", + "colg": "colgroup", + "fst": "fieldset", + "btn": "button", + "btn:b": "button type=button", + "btn:r": "button type=reset", + "btn:s": "button type=submit", + "optg": "optgroup", + "opt": "option", + "tarea": "textarea", + "leg": "legend", + "sect": "section", + "art": "article", + "hdr": "header", + "ftr": "footer", + "adr": "address", + "dlg": "dialog", + "str": "strong", + "prog": "progress", + "fset": "fieldset", + "datag": "datagrid", + "datal": "datalist", + "kg": "keygen", + "out": "output", + "det": "details", + "cmd": "command", + "doc": "html>(head>meta charset=UTF-8+title{Document})+body", + "doc4": "html>(head>meta http-equiv=\"Content-Type\" content=\"text/html;charset=UTF-8\"+title{Document})", + + "!": "html:5", + "html:4t": "!!!4t+doc4 lang=en", + "html:4s": "!!!4s+doc4 lang=en", + "html:xt": "!!!xt+doc4 xmlns=http://www.w3.org/1999/xhtml xml:lang=en", + "html:xs": "!!!xs+doc4 xmlns=http://www.w3.org/1999/xhtml xml:lang=en", + "html:xxs": "!!!xxs+doc4 xmlns=http://www.w3.org/1999/xhtml xml:lang=en", + "html:5": "!!!+doc lang=en", + + "ol+": "ol>li", + "ul+": "ul>li", + "dl+": "dl>dt+dd", + "map+": "map>area", + "table+": "table>tr>td", + "colgroup+": "colgroup>col", + "colg+": "colgroup>col", + "tr+": "tr>td", + "select+": "select>option", + "optgroup+": "optgroup>option", + "optg+": "optgroup>option" } - }, - - "haml": { - "filters": "haml", - "extends": "html", - "profile": "xml" - }, - - "scss": { - "extends": "css" - }, - - "sass": { - "extends": "css" - }, - - "less": { - "extends": "css" - }, - - "stylus": { - "extends": "css" } } diff --git a/src/html-abbrev.el b/src/html-abbrev.el index db2e83e..f5236f9 100644 --- a/src/html-abbrev.el +++ b/src/html-abbrev.el @@ -405,6 +405,10 @@ "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) @@ -440,43 +444,65 @@ (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 "."))) @@ -485,7 +511,7 @@ "\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)) @@ -493,22 +519,24 @@ (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) diff --git a/src/preferences.el b/src/preferences.el index e456b59..653c4e3 100644 --- a/src/preferences.el +++ b/src/preferences.el @@ -3,6 +3,572 @@ ;; 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 diff --git a/src/snippets.el b/src/snippets.el index 5ad56fb..d69919e 100644 --- a/src/snippets.el +++ b/src/snippets.el @@ -3,191 +3,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))) @@ -754,61 +695,5 @@ 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)) diff --git a/src/test.el b/src/test.el index 1433d86..dc731eb 100644 --- a/src/test.el +++ b/src/test.el @@ -56,10 +56,10 @@ ;; XML-abbrev tests (define-zencoding-transform-html-test-case Tags - "a" ("<a></a>") - "a.x" ("<a class=\"x\"></a>") - "a#q.x" ("<a id=\"q\" class=\"x\"></a>") - "a#q.x.y.z" ("<a id=\"q\" class=\"x y z\"></a>") + "a" ("<a href=\"\"></a>") + "a.x" ("<a class=\"x\" href=\"\"></a>") + "a#q.x" ("<a id=\"q\" class=\"x\" href=\"\"></a>") + "a#q.x.y.z" ("<a id=\"q\" class=\"x y z\" href=\"\"></a>") "#q" ("<div id=\"q\">" "</div>") ".x" ("<div class=\"x\">" @@ -70,39 +70,38 @@ "</div>")) (define-zencoding-transform-html-test-case Empty-tags - "a/" ("<a/>") - "a/.x" ("<a class=\"x\"/>") - "a/#q.x" ("<a id=\"q\" class=\"x\"/>") - "a/#q.x.y.z" ("<a id=\"q\" class=\"x y z\"/>")) + "a/" ("<a href=\"\"/>") + "a/.x" ("<a class=\"x\" href=\"\"/>") + "a/#q.x" ("<a id=\"q\" class=\"x\" href=\"\"/>") + "a/#q.x.y.z" ("<a id=\"q\" class=\"x y z\" href=\"\"/>")) (define-zencoding-transform-html-test-case Self-closing-tags - "input type=text" ("<input type=\"text\"/>") - "img" ("<img/>") - "img>metadata/*2" ("<img>" + "input type=text" ("<input type=\"text\" name=\"\" value=\"\"/>") + "img" ("<img src=\"\" alt=\"\"/>") + "img>metadata/*2" ("<img src=\"\" alt=\"\">" " <metadata/>" " <metadata/>" "</img>")) (define-zencoding-transform-html-test-case Siblings - "a+b" ("<a></a>" + "a+b" ("<a href=\"\"></a>" "<b></b>") - "a+b+c" ("<a></a>" + "a+b+c" ("<a href=\"\"></a>" "<b></b>" "<c></c>") - "a.x+b" ("<a class=\"x\"></a>" + "a.x+b" ("<a class=\"x\" href=\"\"></a>" "<b></b>") - "a#q.x+b" ("<a id=\"q\" class=\"x\"></a>" + "a#q.x+b" ("<a id=\"q\" class=\"x\" href=\"\"></a>" "<b></b>") - "a#q.x.y.z+b" ("<a id=\"q\" class=\"x y z\"></a>" + "a#q.x.y.z+b" ("<a id=\"q\" class=\"x y z\" href=\"\"></a>" "<b></b>") - "a#q.x.y.z+b#p.l.m.n" ("<a id=\"q\" class=\"x y z\"></a>" + "a#q.x.y.z+b#p.l.m.n" ("<a id=\"q\" class=\"x y z\" href=\"\"></a>" "<b id=\"p\" class=\"l m n\"></b>")) (define-zencoding-transform-html-test-case Tag-expansion "table+" ("<table>" " <tr>" - " <td>" - " </td>" + " <td></td>" " </tr>" "</table>") "dl+" ("<dl>" @@ -123,60 +122,60 @@ "</ul>")) (define-zencoding-transform-html-test-case Parent-child - "a>b" ("<a><b></b></a>") - "a>b>c" ("<a><b><c></c></b></a>") - "a.x>b" ("<a class=\"x\"><b></b></a>") - "a#q.x>b" ("<a id=\"q\" class=\"x\"><b></b></a>") - "a#q.x.y.z>b" ("<a id=\"q\" class=\"x y z\"><b></b></a>") - "a#q.x.y.z>b#p.l.m.n" ("<a id=\"q\" class=\"x y z\"><b id=\"p\" class=\"l m n\"></b></a>") + "a>b" ("<a href=\"\"><b></b></a>") + "a>b>c" ("<a href=\"\"><b><c></c></b></a>") + "a.x>b" ("<a class=\"x\" href=\"\"><b></b></a>") + "a#q.x>b" ("<a id=\"q\" class=\"x\" href=\"\"><b></b></a>") + "a#q.x.y.z>b" ("<a id=\"q\" class=\"x y z\" href=\"\"><b></b></a>") + "a#q.x.y.z>b#p.l.m.n" ("<a id=\"q\" class=\"x y z\" href=\"\"><b id=\"p\" class=\"l m n\"></b></a>") "#q>.x" ("<div id=\"q\">" " <div class=\"x\">" " </div>" "</div>") - "a>b+c" ("<a>" + "a>b+c" ("<a href=\"\">" " <b></b>" " <c></c>" "</a>") - "a>b+c>d" ("<a>" + "a>b+c>d" ("<a href=\"\">" " <b></b>" " <c><d></d></c>" "</a>")) (define-zencoding-transform-html-test-case Multiplication - "a*1" ("<a></a>") - "a*2" ("<a></a>" - "<a></a>") - "a/*2" ("<a/>" - "<a/>") - "a*2+b*2" ("<a></a>" - "<a></a>" + "a*1" ("<a href=\"\"></a>") + "a*2" ("<a href=\"\"></a>" + "<a href=\"\"></a>") + "a/*2" ("<a href=\"\"/>" + "<a href=\"\"/>") + "a*2+b*2" ("<a href=\"\"></a>" + "<a href=\"\"></a>" "<b></b>" "<b></b>") - "a*2>b*2" ("<a>" + "a*2>b*2" ("<a href=\"\">" " <b></b>" " <b></b>" "</a>" - "<a>" + "<a href=\"\">" " <b></b>" " <b></b>" "</a>") - "a>b*2" ("<a>" + "a>b*2" ("<a href=\"\">" " <b></b>" " <b></b>" "</a>") - "a#q.x>b#q.x*2" ("<a id=\"q\" class=\"x\">" + "a#q.x>b#q.x*2" ("<a id=\"q\" class=\"x\" href=\"\">" " <b id=\"q\" class=\"x\"></b>" " <b id=\"q\" class=\"x\"></b>" "</a>") - "a#q.x>b/#q.x*2" ("<a id=\"q\" class=\"x\">" + "a#q.x>b/#q.x*2" ("<a id=\"q\" class=\"x\" href=\"\">" " <b id=\"q\" class=\"x\"/>" " <b id=\"q\" class=\"x\"/>" "</a>")) (define-zencoding-transform-html-test-case Numbering - "a.$x*3" ("<a class=\"1x\"></a>" - "<a class=\"2x\"></a>" - "<a class=\"3x\"></a>") + "a.$x*3" ("<a class=\"1x\" href=\"\"></a>" + "<a class=\"2x\" href=\"\"></a>" + "<a class=\"3x\" href=\"\"></a>") "ul>li.item$*3" ("<ul>" " <li class=\"item1\"></li>" " <li class=\"item2\"></li>" @@ -195,12 +194,12 @@ " <li class=\"item1001\"></li>" " <li class=\"item1000\"></li>" "</ul>") - "a.$*2>b.$$@-*3" ("<a class=\"1\">" + "a.$*2>b.$$@-*3" ("<a class=\"1\" href=\"\">" " <b class=\"03\"></b>" " <b class=\"02\"></b>" " <b class=\"01\"></b>" "</a>" - "<a class=\"2\">" + "<a class=\"2\" href=\"\">" " <b class=\"03\"></b>" " <b class=\"02\"></b>" " <b class=\"01\"></b>" @@ -208,14 +207,14 @@ "(div>(a#id$$*2)+b.c$@-3+c#d$)*2" ("<div>" - " <a id=\"id01\"></a>" - " <a id=\"id02\"></a>" + " <a id=\"id01\" href=\"\"></a>" + " <a id=\"id02\" href=\"\"></a>" " <b class=\"c4\"></b>" " <c id=\"d1\"></c>" "</div>" "<div>" - " <a id=\"id01\"></a>" - " <a id=\"id02\"></a>" + " <a id=\"id01\" href=\"\"></a>" + " <a id=\"id02\" href=\"\"></a>" " <b class=\"c3\"></b>" " <c id=\"d2\"></c>" "</div>") @@ -233,66 +232,66 @@ "</ul>")) (define-zencoding-transform-html-test-case Properties - "a x" ("<a x=\"\"></a>") - "a x=" ("<a x=\"\"></a>") - "a x=\"\"" ("<a x=\"\"></a>") - "a x=y" ("<a x=\"y\"></a>") - "a x=\"y\"" ("<a x=\"y\"></a>") - "a x=\"()\"" ("<a x=\"()\"></a>") - "a x m" ("<a x=\"\" m=\"\"></a>") - "a x= m=\"\"" ("<a x=\"\" m=\"\"></a>") - "a x=y m=l" ("<a x=\"y\" m=\"l\"></a>") - "a/ x=y m=l" ("<a x=\"y\" m=\"l\"/>") - "a#foo x=y m=l" ("<a id=\"foo\" x=\"y\" m=\"l\"></a>") - "a.foo x=y m=l" ("<a class=\"foo\" x=\"y\" m=\"l\"></a>") - "a#foo.bar.mu x=y m=l" ("<a id=\"foo\" class=\"bar mu\" x=\"y\" m=\"l\"></a>") - "a/#foo.bar.mu x=y m=l" ("<a id=\"foo\" class=\"bar mu\" x=\"y\" m=\"l\"/>") - "a x=y+b" ("<a x=\"y\"></a>" + "a x" ("<a href=\"\" x=\"\"></a>") + "a x=" ("<a href=\"\" x=\"\"></a>") + "a x=\"\"" ("<a href=\"\" x=\"\"></a>") + "a x=y" ("<a href=\"\" x=\"y\"></a>") + "a x=\"y\"" ("<a href=\"\" x=\"y\"></a>") + "a x=\"()\"" ("<a href=\"\" x=\"()\"></a>") + "a x m" ("<a href=\"\" x=\"\" m=\"\"></a>") + "a x= m=\"\"" ("<a href=\"\" x=\"\" m=\"\"></a>") + "a x=y m=l" ("<a href=\"\" x=\"y\" m=\"l\"></a>") + "a/ x=y m=l" ("<a href=\"\" x=\"y\" m=\"l\"/>") + "a#foo x=y m=l" ("<a id=\"foo\" href=\"\" x=\"y\" m=\"l\"></a>") + "a.foo x=y m=l" ("<a class=\"foo\" href=\"\" x=\"y\" m=\"l\"></a>") + "a#foo.bar.mu x=y m=l" ("<a id=\"foo\" class=\"bar mu\" href=\"\" x=\"y\" m=\"l\"></a>") + "a/#foo.bar.mu x=y m=l" ("<a id=\"foo\" class=\"bar mu\" href=\"\" x=\"y\" m=\"l\"/>") + "a x=y+b" ("<a href=\"\" x=\"y\"></a>" "<b></b>") - "a x=y+b x=y" ("<a x=\"y\"></a>" + "a x=y+b x=y" ("<a href=\"\" x=\"y\"></a>" "<b x=\"y\"></b>") - "a x=y>b" ("<a x=\"y\"><b></b></a>") - "a x=y>b x=y" ("<a x=\"y\"><b x=\"y\"></b></a>") - "a x=y>b x=y+c x=y" ("<a x=\"y\">" + "a x=y>b" ("<a href=\"\" x=\"y\"><b></b></a>") + "a x=y>b x=y" ("<a href=\"\" x=\"y\"><b x=\"y\"></b></a>") + "a x=y>b x=y+c x=y" ("<a href=\"\" x=\"y\">" " <b x=\"y\"></b>" " <c x=\"y\"></c>" "</a>")) (define-zencoding-transform-html-test-case Parentheses - "(a)" ("<a></a>") - "(a)+(b)" ("<a></a>" + "(a)" ("<a href=\"\"></a>") + "(a)+(b)" ("<a href=\"\"></a>" "<b></b>") - "a>(b)" ("<a><b></b></a>") - "(a>b)>c" ("<a><b></b></a>") - "(a>b)+c" ("<a><b></b></a>" + "a>(b)" ("<a href=\"\"><b></b></a>") + "(a>b)>c" ("<a href=\"\"><b></b></a>") + "(a>b)+c" ("<a href=\"\"><b></b></a>" "<c></c>") "z+(a>b)+c+k" ("<z></z>" - "<a><b></b></a>" + "<a href=\"\"><b></b></a>" "<c></c>" "<k></k>") - "(a)*2" ("<a></a>" - "<a></a>") - "((a)*2)" ("<a></a>" - "<a></a>") - "((a))*2" ("<a></a>" - "<a></a>") - "(a>b)*2" ("<a><b></b></a>" - "<a><b></b></a>") - "(a+b)*2" ("<a></a>" + "(a)*2" ("<a href=\"\"></a>" + "<a href=\"\"></a>") + "((a)*2)" ("<a href=\"\"></a>" + "<a href=\"\"></a>") + "((a))*2" ("<a href=\"\"></a>" + "<a href=\"\"></a>") + "(a>b)*2" ("<a href=\"\"><b></b></a>" + "<a href=\"\"><b></b></a>") + "(a+b)*2" ("<a href=\"\"></a>" "<b></b>" - "<a></a>" + "<a href=\"\"></a>" "<b></b>")) (define-zencoding-transform-html-test-case Text - "a{Click me}" ("<a>Click me</a>") - "a>{Click me}*3" ("<a>" + "a{Click me}" ("<a href=\"\">Click me</a>") + "a>{Click me}*3" ("<a href=\"\">" " Click me" " Click me" " Click me" "</a>") - "a{click}+b{here}" ("<a>click</a>" + "a{click}+b{here}" ("<a href=\"\">click</a>" "<b>here</b>") - "a>{click}+b{here}" ("<a>" + "a>{click}+b{here}" ("<a href=\"\">" " click" " <b>here</b>" "</a>") @@ -300,30 +299,28 @@ "p>{Click }+a{here}+{ to continue}" ("<p>" " Click " - " <a>here</a>" + " <a href=\"\">here</a>" " to continue" "</p>") "p{Click }+a{here}+{ to continue}" - ("<p>" - " Click " - "</p>" - "<a>here</a>" + ("<p>Click </p>" + "<a href=\"\">here</a>" " to continue")) (define-zencoding-transform-html-test-case Climb-up - "a>b>c^d" ("<a>" + "a>b>c^d" ("<a href=\"\">" " <b><c></c></b>" " <d></d>" "</a>") - "a>b>c^^d" ("<a><b><c></c></b></a>" + "a>b>c^^d" ("<a href=\"\"><b><c></c></b></a>" "<d></d>") - "a*2>b*2>c^d" ("<a>" + "a*2>b*2>c^d" ("<a href=\"\">" " <b><c></c></b>" " <b><c></c></b>" " <d></d>" "</a>" - "<a>" + "<a href=\"\">" " <b><c></c></b>" " <b><c></c></b>" " <d></d>" @@ -332,14 +329,13 @@ "div+a>p>span{foo}+em>b^^^p" ("<div>" "</div>" - "<a>" + "<a href=\"\">" " <p>" " <span>foo</span>" " <em><b></b></em>" " </p>" "</a>" - "<p>" - "</p>") + "<p></p>") "div+div>p>span+em^blockquote{foo}" ("<div>" @@ -356,7 +352,7 @@ (define-zencoding-transform-html-test-case Filter-comment "a.b|c" ("<!-- .b -->" - "<a class=\"b\"></a>" + "<a class=\"b\" href=\"\"></a>" "<!-- /.b -->") "#a>.b|c" ("<!-- #a -->" "<div id=\"a\">" diff --git a/tools/json2hash b/tools/json2hash index 0accbcd..8dbe9ae 100755 --- a/tools/json2hash +++ b/tools/json2hash @@ -37,6 +37,8 @@ class Processor(object): self._print(v) self.out.write('\n') self.out.write(')\n') + elif _type is bool: + self.out.write('t' if data else 'nil') elif (_type is str or _type is unicode): self.out.write(pystr2elstrexp(data)) else: # number ? 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) |