hTT;      !"#$%&'()*+,-./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.comN %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 O into a P,  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.      GHC experimental!alasdair.armstrong@googlemail.comQRSQRSQRSGHC experimental!alasdair.armstrong@googlemail.com1 !"#$%&'()*+,-./0123456789:;<=>?1 !"#$%&'()*+,-./0123456789:;<=>?1 !"#$%&'()*+,-./0123456789:;<=>?1 !"#$%&'()*+,-./0123456789:;<=>? GHC experimental!alasdair.armstrong@googlemail.comTUVTUVTUVGHC experimental!alasdair.armstrong@googlemail.com1@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnop1@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnop1@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghipjklmno1@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnop GHC experimental!alasdair.armstrong@googlemail.comqWXrYZs[\t]^u_`vabwcdxefyghzij{kl|mn}op~qrstuvwxyz{|})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.      qWXrYZs[\t]^u_`vabwcdxefyghzij{kl|mn}op~qrstuvwxyz{|}~     qWXWXrYZYZs[\[\t]^]^u_`_`vababwcdcdxefefyghghzijij{klkl|mnmn}opop~qqrsrsttuvuvwwxyxyzz{|}~     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 89:;<xhtml-combinators-0.2.1Text.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 renderAttrs text-0.8.0.0Data.Text.InternalTextGHC.BaseString emptyAttrintAttrtextAttrTableColtableColToNodeTable3 table3ToNodeTable2 table2ToNodeTable1 table1ToNodeFieldSetfieldSetToNodeOption optionToNodeMap mapToNodeObject objectToNodeDefinitionListdefinitionListToNodeList listToNodeHead headToNodeTopLeveltopLevelToNode pageToNodeflow flowToNodeblock blockToNodeinline inlineToNodecdata xhtml10strictdoctypexmlDecsup'sup randomPara randomParaIOpara