jV;      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789: GHC experimental!alasdair.armstrong@googlemail.com'Escaping text in generic HTML elements "Escaping text in attribute values ;=escaping basic text the be used inside normal HTML-elements  based on y'http://code.google.com/p/owasp-esapi-java/source/browse/trunk/src/main/java/org/owasp/esapi/codecs/HTMLEntityCodec.java' <Should be improved by using an array-based lookup for chars <=0xff =Escaping text intended for places where scripts can be used -Escape text for CSS (style) data <&Escape a single character #Lists of chars to be used verbatim %function handling non standard cases char to encode =>GHC experimental!alasdair.armstrong@googlemail.com?@ABCD EFGHIJKLM ?@ABCD EFGHIJKLM ??@CBAABCDD EFGHIJKLM GHC experimental!alasdair.armstrong@googlemail.comNO %Quickly render a xhtml page to text. BThis function will render the entire page on a single line, which - is somewhat unreadable. On the plus side, it's relatively fast. 7Renders a pretty xhtml page with readable indentation. %What we do is turn the document from P into a Q,  parse that string with Text.XML.Light , then use Text.XML.Light's I pretty printing function to render it, before finally packing it again. 7 It probably goes without saying, but this function is  incredibly inefficient! Also, Text.XML.Light3 will render the document as proper XML, which is  fine only if you'*re not trying to pass of your page as text/html. LIt also has a tendency to turn escaped characters back into their unescaped  counterparts, so it'0s probably best to only use this for debugging.      GHC experimental!alasdair.armstrong@googlemail.comRSTRSTRSTGHC experimental!alasdair.armstrong@googlemail.com1 !"#$%&'()*+,-./0123456789:;<=>?1 !"#$%&'()*+,-./0123456789:;<=>?1 !"#$%&'()*+,-./0123456789:;<=>?1 !"#$%&'()*+,-./0123456789:;<=>? GHC experimental!alasdair.armstrong@googlemail.comUVWUVWUVWGHC experimental!alasdair.armstrong@googlemail.com1@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnop1@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnop1@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghipjklmno1@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnop GHC experimental!alasdair.armstrong@googlemail.comqXYrZ[s\]t^_u`avbcwdexfgyhizjk{lm|no}pq~rstuvwxyz{|}~)True for XML declaration, false to omit. Required content attribute. 0 is a bit useless without any attributes, but it's 9 included anyway for consistency reasons. As are several  other similar elements. Required type attribute. Required type attribute. "Required language direction code. Required src attribute. Required alt attribute. Required id attribute. Required alt attribute. Required action attribute. Required label attribute. Required rows attribute. Required cols attribute.      qXYrZ[s\]t^_u`avbcwdexfgyhizjk{lm|no}pq~rstuvwxyz{|}~     qXYXYrZ[Z[s\]\]t^_^_u`a`avbcbcwdedexfgfgyhihizjkjk{lmlm|nono}pqpq~rrststuuvwvwxxyzyz{{|}~     GHC experimental!alasdair.armstrong@googlemail.com ! ! ! !GHC experimental!alasdair.armstrong@googlemail.com qrstuvwxyz{|}~     } |{~xwzyuvtsrq       GHC experimental!alasdair.armstrong@googlemail.com"#$%&'()*+,-./0123456789: qrstuvwxyz{|}~     "#$%&'()*+,-./0123456789:"#$%&'()*+,-./0123456789:"#$%&'()*+,-./0123456789:   !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJK !"#$%&'()*+,-./0123456789:;<=>?@ABCDFGHIJKE L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e G f ! g h i j k E l m n o p q r s t u v w x y z { | } ~  `eGf!ghkElm     !                   ! " # $ % & ' ( ) * + , X - . Y / 0 [ 1 2 ] 3 4 5 6 7 8 9:;<=xhtml-combinators-0.2.2Text.XHtmlCombinators.EscapeText.XHtmlCombinatorsText.XHtmlCombinators.Render Text.XHtmlCombinators.Attributes%Text.XHtmlCombinators.Attributes.Safe"Text.XHtmlCombinators.Extras.LoremText.XHtmlCombinators.SafeText.XHtmlCombinators.Internal)Text.XHtmlCombinators.Attributes.Internal.Text.XHtmlCombinators.Attributes.Internal.Safe!Text.XHtmlCombinators.Combinatorsescape escapeAttrescapeJavaScript escapeCSSXHtmlXHtmlTXHtmlMTContentAttrAttrsemptyrenderT renderPrettyTrender renderPrettyattractionalignaltaltcodearchivebaseborder bordercolor cellpadding cellspacingcheckedcodebasecolscolspancontentcoordsdisabledenctypeheighthrefhreflang httpEquivid_ismaplang maxlengthmethodmultiplenamenohrefrelrevrowsrowspanrulesselectedshapesizesrcclass_forstyletype_titleusemapvalignvaluewidthTableColContent Table3Content Table2Content Table1ContentFieldSetContent OptionContent MapContent ObjectContentDefinitionListContent ListContent HeadContentTopLevelContentPageFlow FlowContentBlock BlockContentInline InlineContentCDatatexthtml'htmlhead'head_title'base'meta'metalink'linkstyle'script'script noscript'noscriptbody'bodydiv'div_p'ph1'h1h2'h2h3'h3h4'h4h5'h5h6'h6ul'ulol'olli'lidl'dldt'dtdd'ddaddress'addresshr'hrpre'pre blockquote' blockquoteins'insdel'dela'aspan'span_bdo'bdobr'brem'emstrong'strongdfn'dfncode'codesamp'sampkbd'kbdvar'varcite'citeabbr'abbracronym'acronymq'qsub'subtt'tti'ib'bbig'bigsmall'smallobject'objectparam'paramimg'imgmap'map_area'areaform'formlabel'labelinput'inputselect'select optgroup'optgroupoption'option textarea'textarea fieldset'fieldsetlegend'legendbutton'buttontable'tablecaption'captionthead'theadtfoot'tfoottbody'tbody colgroup'colgroupcol'coltr'trth'thtd'tdlorem'loremloremIO'loremIO escapeEntity escapeCharhex entityMap toContentNode WithAttrsTextNodefirsttextNode emptyNodenodetellS execXHtml tellTextNode tellEmptyNodetellNode renderAttrsvalidEmptyElements text-0.10.0.0Data.Text.InternalTextGHC.BaseString emptyAttrintAttrtextAttrTableColtableColToNodeTable3 table3ToNodeTable2 table2ToNodeTable1 table1ToNodeFieldSetfieldSetToNodeOption optionToNodeMap mapToNodeObject objectToNodeDefinitionListdefinitionListToNodeList listToNodeHead headToNodeTopLeveltopLevelToNode pageToNodeflow flowToNodeblock blockToNodeinline inlineToNodecdata xhtml10strictdoctypexmlDecsup'sup randomPara randomParaIOpara