  select small span strong style sub summary sup table tbody td textarea tfoot
  th thead time title tr u ul video'
 
+ # Support for SVG 1.1 tags
+  svg: 'a altGlyph altGlyphDef altGlyphItem animate animateColor animateMotion
+ animateTransform circle clipPath color-profile cursor defs desc ellipse
+ feBlend feColorMatrix feComponentTransfer feComposite feConvolveMatrix
+ feDiffuseLighting feDisplacementMap feDistantLight feFlood feFuncA feFuncB
+ feFuncG feFuncR feGaussianBlur feImage feMerge feMergeNode feMorphology
+ feOffset fePointLight feSpecularLighting feSpotLight feTile feTurbulence
+ filter font font-face font-face-format font-face-name font-face-src
+ font-face-uri foreignObject g glyph glyphRef hkern image line linearGradient
+ marker mask metadata missing-glyph mpath path pattern polygon polyline
+ radialGradient rect script set stop style svg switch symbol text textPath
+ title tref tspan use view vkern'
+
   # Valid self-closing HTML 5 elements.
   void: 'area base br col command embed hr img input keygen link meta param
  source track wbr'

# **CoffeeKup** lets you to write HTML templates in 100% pure
# [CoffeeScript](http://coffeescript.org).
# 
# You can run it on [node.js](http://nodejs.org) or the browser, or compile your
# templates down to self-contained javascript functions, that will take in data
# and options and return generated HTML on any JS runtime.
# 
# The concept is directly stolen from the amazing
# [Markaby](http://markaby.rubyforge.org/) by Tim Fletcher and why the lucky
# stiff.

# Public/customizable list of possible elements.
# For each name in this list that is also present in the input template code,
# a function with the same name will be added to the compiled template.
coffeekup.tags = merge_elements 'regular', 'obsolete', 'void', 'obsolete_void',
  'svg'

# Public/customizable list of elements that should be rendered self-closed.
coffeekup.self_closing = merge_elements 'void', 'obsolete_void'

# This is the basic material from which compiled templates will be formed.
# It will be manipulated in its string form at the `coffeekup.compile` function
# to generate the final template function.
skeleton = (data = {}) ->
  # Whether to generate formatted HTML with indentation and line breaks, or
  # just the natural "faux-minified" output.
