diff --git a/README b/README
--- a/README
+++ b/README
@@ -12,7 +12,7 @@
 [hs-xml]: http://hackage.haskell.org/package/xml
 [html5]: http://www.w3.org/html5
 
-© [rohan drape][rd], 2006-2012, [gpl]
+© [rohan drape][rd], 2006-2013, [gpl]
 
 [rd]: http://rd.slavepianos.org/
 [gpl]: http://gnu.org/copyleft/
diff --git a/Text/HTML/Light.hs b/Text/HTML/Light.hs
--- a/Text/HTML/Light.hs
+++ b/Text/HTML/Light.hs
@@ -1,7 +1,7 @@
 -- | Provides xhtml constructors for 'Text.XML.Light'.
 module Text.HTML.Light (module L
                        ,renderXHTML
-                       ,renderHTML5,renderHTML5_pp) where
+                       ,renderHTML5,renderHTML5_pp,showHTML5) where
 
 import Text.XML.Light
 import Text.HTML.Light.Attribute as L
@@ -34,3 +34,8 @@
 -- | Pretty-printing variant (inserts whitespace).
 renderHTML5_pp :: Element -> String
 renderHTML5_pp e = unlines [html5_dt,pp_el prettyConfigPP e]
+
+-- | Show HTML content (importantly an 'iframe' element must not be
+-- abbreviated).
+showHTML5 :: Content -> String
+showHTML5 = ppcContent (pp_reconf defaultConfigPP)
diff --git a/Text/HTML/Light/Attribute.hs b/Text/HTML/Light/Attribute.hs
--- a/Text/HTML/Light/Attribute.hs
+++ b/Text/HTML/Light/Attribute.hs
@@ -90,6 +90,39 @@
 name :: String -> Attr
 name = mk_attr "name"
 
+onblur :: String -> Attr
+onblur = mk_attr "onblur"
+
+onfocus :: String -> Attr
+onfocus = mk_attr "onfocus"
+
+onkeydown :: String -> Attr
+onkeydown = mk_attr "onkeydown"
+
+onkeypress :: String -> Attr
+onkeypress = mk_attr "onkeypress"
+
+onkeyup :: String -> Attr
+onkeyup = mk_attr "onkeyup"
+
+onmousedown :: String -> Attr
+onmousedown = mk_attr "onmousedown"
+
+onmousemove :: String -> Attr
+onmousemove = mk_attr "onmousemove"
+
+onmouseout :: String -> Attr
+onmouseout = mk_attr "onmouseout"
+
+onmouseover :: String -> Attr
+onmouseover = mk_attr "onmouseover"
+
+onmouseup :: String -> Attr
+onmouseup = mk_attr "onmouseup"
+
+onmousewheel :: String -> Attr
+onmousewheel = mk_attr "onmousewheel"
+
 quality :: String -> Attr
 quality = mk_attr "quality"
 
@@ -121,6 +154,9 @@
 style' :: String -> Attr
 style' = mk_attr "style"
 
+tabindex :: String -> Attr
+tabindex = mk_attr "tabindex"
+
 target :: String -> Attr
 target = mk_attr "target"
 
@@ -135,6 +171,9 @@
 
 usemap :: String -> Attr
 usemap = mk_attr "usemap"
+
+user_data :: String -> String -> Attr
+user_data k = mk_attr ("data-" ++ k)
 
 valign :: String -> Attr
 valign = mk_attr "valign"
diff --git a/Text/HTML/Light/Constant.hs b/Text/HTML/Light/Constant.hs
--- a/Text/HTML/Light/Constant.hs
+++ b/Text/HTML/Light/Constant.hs
@@ -1,69 +1,81 @@
 -- | (x)html related constants.
 module Text.HTML.Light.Constant where
 
+import Text.HTML.Light.Element
 import Text.XML.Light
 
 -- * Named non-ascii characters
 
+c_entity :: String -> Content
+c_entity s = cdata_raw ('&' : s ++ ";")
+
 -- | The copyright character.
 copy :: Content
-copy = Text (CData CDataRaw "&copy;" Nothing)
+copy = c_entity "copy"
 
 -- | The down arrow character.
 darr :: Content
-darr = Text (CData CDataRaw "&darr;" Nothing)
+darr = c_entity "darr"
 
 -- | The double down arrow character.
 dArr :: Content
-dArr = Text (CData CDataRaw "&dArr;" Nothing)
+dArr = c_entity "dArr"
 
 -- | The degree character.
 deg :: Content
-deg = Text (CData CDataRaw "&deg;" Nothing)
+deg = c_entity "deg"
 
 -- | The horizontal ellipsis character.
 hellip :: Content
-hellip = Text (CData CDataRaw "&hellip;" Nothing)
+hellip = c_entity "hellip"
 
 -- | The left double arrow character.
 larr :: Content
-larr = Text (CData CDataRaw "&larr;" Nothing)
+larr = c_entity "larr"
 
 -- | The empty set symbol.
 empty :: Content
-empty = Text (CData CDataRaw "&empty;" Nothing)
+empty = c_entity "empty"
 
 -- | The left arrow character.
 lArr :: Content
-lArr = Text (CData CDataRaw "&lArr;" Nothing)
+lArr = c_entity "lArr"
 
 -- | The right double angle quote character.
 laquo :: Content
-laquo = Text (CData CDataRaw "&laquo;" Nothing)
+laquo = c_entity "laquo"
 
+-- | The mid (centre) dot character.
+middot :: Content
+middot = c_entity "middot"
+
 -- | The non-breaking space character.
 nbsp :: Content
-nbsp = Text (CData CDataRaw "&nbsp;" Nothing)
+nbsp = c_entity "nbsp"
 
 -- | The right arrow character.
 rarr :: Content
-rarr = Text (CData CDataRaw "&rarr;" Nothing)
+rarr = c_entity "rarr"
 
 -- | The right double arrow character.
 rArr :: Content
-rArr = Text (CData CDataRaw "&rArr;" Nothing)
+rArr = c_entity "rArr"
 
 -- | The right double angle quote character.
 raquo :: Content
-raquo = Text (CData CDataRaw "&raquo;" Nothing)
+raquo = c_entity "raquo"
 
+-- | The dot operator.
+sdot :: Content
+sdot = c_entity "sdot"
+
 -- | The up arrow character.
 uarr :: Content
-uarr = Text (CData CDataRaw "&uarr;" Nothing)
+uarr = c_entity "uarr"
 
 -- | The up double arrow character.
 uArr :: Content
-uArr = Text (CData CDataRaw "&uArr;" Nothing)
+uArr = c_entity "uArr"
 
 -- * Version and document type strings
 
diff --git a/Text/HTML/Light/Element.hs b/Text/HTML/Light/Element.hs
--- a/Text/HTML/Light/Element.hs
+++ b/Text/HTML/Light/Element.hs
@@ -207,3 +207,6 @@
 
 tr :: Element_C
 tr = mk_element "tr"
+
+wbr :: Empty_Element_C
+wbr = mk_empty_element "wbr"
diff --git a/html-minimalist.cabal b/html-minimalist.cabal
--- a/html-minimalist.cabal
+++ b/html-minimalist.cabal
@@ -1,5 +1,5 @@
 Name:              html-minimalist
-Version:           0.12
+Version:           0.14
 Synopsis:          Minimalist haskell html library
 Description:       Text.HTML.Light is a very simple Haskell module
                    for writing [x]html documents.  It provides
@@ -7,7 +7,7 @@
                    in terms of Text.XML.Light.
 License:           GPL
 Category:          Text
-Copyright:         (c) Rohan Drape, 2006-2012
+Copyright:         (c) Rohan Drape, 2006-2013
 Author:            Rohan Drape
 Maintainer:        rd@slavepianos.org
 Stability:         Experimental
