Sophie

Sophie

distrib > Fedora > 14 > x86_64 > media > updates > by-pkgid > 6c85566fec64e7041dd42427dd724811 > files > 38

ghc-tagsoup-devel-0.12-4.fc14.i686.rpm

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!--Rendered using the Haskell Html Library v0.2-->
<HTML
><HEAD
><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"
><TITLE
>Text.HTML.TagSoup</TITLE
><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
><SCRIPT SRC="haddock-util.js" TYPE="text/javascript"
></SCRIPT
><SCRIPT TYPE="text/javascript"
>window.onload = function () {setSynopsis("mini_Text-HTML-TagSoup.html")};</SCRIPT
></HEAD
><BODY
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="topbar"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD
><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
></TD
><TD CLASS="title"
>tagsoup-0.12: Parsing and extracting information from (possibly malformed) HTML/XML documents</TD
><TD CLASS="topbut"
><A HREF="src/Text-HTML-TagSoup.html"
>Source code</A
></TD
><TD CLASS="topbut"
><A HREF="index.html"
>Contents</A
></TD
><TD CLASS="topbut"
><A HREF="doc-index.html"
>Index</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="modulebar"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD
><FONT SIZE="6"
>Text.HTML.TagSoup</FONT
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="section4"
><B
>Contents</B
></TD
></TR
><TR
><TD
><DL
><DT
><A HREF="#1"
>Data structures and parsing
</A
></DT
><DT
><A HREF="#2"
>Tag identification
</A
></DT
><DT
><A HREF="#3"
>Extraction
</A
></DT
><DT
><A HREF="#4"
>Utility
</A
></DT
><DT
><A HREF="#5"
>Combinators
</A
></DT
></DL
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="section1"
>Description</TD
></TR
><TR
><TD CLASS="doc"
><P
>This module is for working with HTML/XML. It deals with both well-formed XML and
    malformed HTML from the web. It features:
</P
><UL
><LI
> A lazy parser, based on the HTML 5 specification - see <TT
><A HREF="Text-HTML-TagSoup.html#v%3AparseTags"
>parseTags</A
></TT
>.
</LI
><LI
> A renderer that can write out HTML/XML - see <TT
><A HREF="Text-HTML-TagSoup.html#v%3ArenderTags"
>renderTags</A
></TT
>.
</LI
><LI
> Utilities for extracting information from a document - see <TT
><A HREF="Text-HTML-TagSoup.html#v%3A~%3D%3D"
>~==</A
></TT
>, <TT
><A HREF="Text-HTML-TagSoup.html#v%3Asections"
>sections</A
></TT
> and <TT
><A HREF="Text-HTML-TagSoup.html#v%3Apartitions"
>partitions</A
></TT
>.
</LI
></UL
><P
>The standard practice is to parse a <TT
><A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Char.html#t%3AString"
>String</A
></TT
> to <TT
>[</TT
><TT
><A HREF="Text-HTML-TagSoup.html#t%3ATag"
>Tag</A
></TT
> <TT
><A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Char.html#t%3AString"
>String</A
></TT
><TT
>]</TT
> using <TT
><A HREF="Text-HTML-TagSoup.html#v%3AparseTags"
>parseTags</A
></TT
>,
    then operate upon it to extract the necessary information.
</P
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="section1"
>Synopsis</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="decl"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>data</SPAN
>  <A HREF="#t%3ATag"
>Tag</A
> str </TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="decl"
>= <A HREF="#v%3ATagOpen"
>TagOpen</A
> str [<A HREF="Text-HTML-TagSoup.html#t%3AAttribute"
>Attribute</A
> str]</TD
></TR
><TR
><TD CLASS="decl"
>| <A HREF="#v%3ATagClose"
>TagClose</A
> str</TD
></TR
><TR
><TD CLASS="decl"
>| <A HREF="#v%3ATagText"
>TagText</A
> str</TD
></TR
><TR
><TD CLASS="decl"
>| <A HREF="#v%3ATagComment"
>TagComment</A
> str</TD
></TR
><TR
><TD CLASS="decl"
>| <A HREF="#v%3ATagWarning"
>TagWarning</A
> str</TD
></TR
><TR
><TD CLASS="decl"
>| <A HREF="#v%3ATagPosition"
>TagPosition</A
> !<A HREF="Text-HTML-TagSoup.html#t%3ARow"
>Row</A
> !<A HREF="Text-HTML-TagSoup.html#t%3AColumn"
>Column</A
></TD
></TR
></TABLE
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>type</SPAN
> <A HREF="#t%3ARow"
>Row</A
> = <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Int.html#t%3AInt"
>Int</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>type</SPAN
> <A HREF="#t%3AColumn"
>Column</A
> = <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Int.html#t%3AInt"
>Int</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>type</SPAN
> <A HREF="#t%3AAttribute"
>Attribute</A
> str = (str, str)</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AparseTags"
>parseTags</A
> :: <A HREF="Text-StringLike.html#t%3AStringLike"
>StringLike</A
> str =&gt; str -&gt; [<A HREF="Text-HTML-TagSoup.html#t%3ATag"
>Tag</A
> str]</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AparseTagsOptions"
>parseTagsOptions</A
> :: <A HREF="Text-StringLike.html#t%3AStringLike"
>StringLike</A
> str =&gt; <A HREF="Text-HTML-TagSoup.html#t%3AParseOptions"
>ParseOptions</A
> str -&gt; str -&gt; [<A HREF="Text-HTML-TagSoup.html#t%3ATag"
>Tag</A
> str]</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>data</SPAN
>  <A HREF="#t%3AParseOptions"
>ParseOptions</A
> str = <A HREF="#v%3AParseOptions"
>ParseOptions</A
> {<TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="recfield"
><A HREF="#v%3AoptTagPosition"
>optTagPosition</A
> :: <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Bool.html#t%3ABool"
>Bool</A
></TD
></TR
><TR
><TD CLASS="recfield"
><A HREF="#v%3AoptTagWarning"
>optTagWarning</A
> :: <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Bool.html#t%3ABool"
>Bool</A
></TD
></TR
><TR
><TD CLASS="recfield"
><A HREF="#v%3AoptEntityData"
>optEntityData</A
> :: (str, <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Bool.html#t%3ABool"
>Bool</A
>) -&gt; [<A HREF="Text-HTML-TagSoup.html#t%3ATag"
>Tag</A
> str]</TD
></TR
><TR
><TD CLASS="recfield"
><A HREF="#v%3AoptEntityAttrib"
>optEntityAttrib</A
> :: (str, <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Bool.html#t%3ABool"
>Bool</A
>) -&gt; (str, [<A HREF="Text-HTML-TagSoup.html#t%3ATag"
>Tag</A
> str])</TD
></TR
><TR
><TD CLASS="recfield"
><A HREF="#v%3AoptTagTextMerge"
>optTagTextMerge</A
> :: <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Bool.html#t%3ABool"
>Bool</A
></TD
></TR
></TABLE
>}</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AparseOptions"
>parseOptions</A
> :: <A HREF="Text-StringLike.html#t%3AStringLike"
>StringLike</A
> str =&gt; <A HREF="Text-HTML-TagSoup.html#t%3AParseOptions"
>ParseOptions</A
> str</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AparseOptionsFast"
>parseOptionsFast</A
> :: <A HREF="Text-StringLike.html#t%3AStringLike"
>StringLike</A
> str =&gt; <A HREF="Text-HTML-TagSoup.html#t%3AParseOptions"
>ParseOptions</A
> str</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3ArenderTags"
>renderTags</A
> :: <A HREF="Text-StringLike.html#t%3AStringLike"
>StringLike</A
> str =&gt; [<A HREF="Text-HTML-TagSoup.html#t%3ATag"
>Tag</A
> str] -&gt; str</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3ArenderTagsOptions"
>renderTagsOptions</A
> :: <A HREF="Text-StringLike.html#t%3AStringLike"
>StringLike</A
> str =&gt; <A HREF="Text-HTML-TagSoup.html#t%3ARenderOptions"
>RenderOptions</A
> str -&gt; [<A HREF="Text-HTML-TagSoup.html#t%3ATag"
>Tag</A
> str] -&gt; str</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AescapeHTML"
>escapeHTML</A
> :: <A HREF="Text-StringLike.html#t%3AStringLike"
>StringLike</A
> str =&gt; str -&gt; str</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>data</SPAN
>  <A HREF="#t%3ARenderOptions"
>RenderOptions</A
> str = <A HREF="#v%3ARenderOptions"
>RenderOptions</A
> {<TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="recfield"
><A HREF="#v%3AoptEscape"
>optEscape</A
> :: str -&gt; str</TD
></TR
><TR
><TD CLASS="recfield"
><A HREF="#v%3AoptMinimize"
>optMinimize</A
> :: str -&gt; <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Bool.html#t%3ABool"
>Bool</A
></TD
></TR
></TABLE
>}</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3ArenderOptions"
>renderOptions</A
> :: <A HREF="Text-StringLike.html#t%3AStringLike"
>StringLike</A
> str =&gt; <A HREF="Text-HTML-TagSoup.html#t%3ARenderOptions"
>RenderOptions</A
> str</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AcanonicalizeTags"
>canonicalizeTags</A
> :: <A HREF="Text-StringLike.html#t%3AStringLike"
>StringLike</A
> str =&gt; [<A HREF="Text-HTML-TagSoup.html#t%3ATag"
>Tag</A
> str] -&gt; [<A HREF="Text-HTML-TagSoup.html#t%3ATag"
>Tag</A
> str]</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AisTagOpen"
>isTagOpen</A
> ::  <A HREF="Text-HTML-TagSoup.html#t%3ATag"
>Tag</A
> str -&gt; <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Bool.html#t%3ABool"
>Bool</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AisTagClose"
>isTagClose</A
> ::  <A HREF="Text-HTML-TagSoup.html#t%3ATag"
>Tag</A
> str -&gt; <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Bool.html#t%3ABool"
>Bool</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AisTagText"
>isTagText</A
> ::  <A HREF="Text-HTML-TagSoup.html#t%3ATag"
>Tag</A
> str -&gt; <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Bool.html#t%3ABool"
>Bool</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AisTagWarning"
>isTagWarning</A
> ::  <A HREF="Text-HTML-TagSoup.html#t%3ATag"
>Tag</A
> str -&gt; <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Bool.html#t%3ABool"
>Bool</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AisTagPosition"
>isTagPosition</A
> ::  <A HREF="Text-HTML-TagSoup.html#t%3ATag"
>Tag</A
> str -&gt; <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Bool.html#t%3ABool"
>Bool</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AisTagOpenName"
>isTagOpenName</A
> :: <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Eq.html#t%3AEq"
>Eq</A
> str =&gt; str -&gt; <A HREF="Text-HTML-TagSoup.html#t%3ATag"
>Tag</A
> str -&gt; <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Bool.html#t%3ABool"
>Bool</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AisTagCloseName"
>isTagCloseName</A
> :: <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Eq.html#t%3AEq"
>Eq</A
> str =&gt; str -&gt; <A HREF="Text-HTML-TagSoup.html#t%3ATag"
>Tag</A
> str -&gt; <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Bool.html#t%3ABool"
>Bool</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AfromTagText"
>fromTagText</A
> :: <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Text-Show.html#t%3AShow"
>Show</A
> str =&gt; <A HREF="Text-HTML-TagSoup.html#t%3ATag"
>Tag</A
> str -&gt; str</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AfromAttrib"
>fromAttrib</A
> :: (<A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Text-Show.html#t%3AShow"
>Show</A
> str, <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Eq.html#t%3AEq"
>Eq</A
> str, <A HREF="Text-StringLike.html#t%3AStringLike"
>StringLike</A
> str) =&gt; str -&gt; <A HREF="Text-HTML-TagSoup.html#t%3ATag"
>Tag</A
> str -&gt; str</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AmaybeTagText"
>maybeTagText</A
> ::  <A HREF="Text-HTML-TagSoup.html#t%3ATag"
>Tag</A
> str -&gt; <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Maybe.html#t%3AMaybe"
>Maybe</A
> str</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AmaybeTagWarning"
>maybeTagWarning</A
> ::  <A HREF="Text-HTML-TagSoup.html#t%3ATag"
>Tag</A
> str -&gt; <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Maybe.html#t%3AMaybe"
>Maybe</A
> str</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AinnerText"
>innerText</A
> :: <A HREF="Text-StringLike.html#t%3AStringLike"
>StringLike</A
> str =&gt; [<A HREF="Text-HTML-TagSoup.html#t%3ATag"
>Tag</A
> str] -&gt; str</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3Asections"
>sections</A
> ::  (a -&gt; <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Bool.html#t%3ABool"
>Bool</A
>) -&gt; [a] -&gt; [[a]]</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3Apartitions"
>partitions</A
> ::  (a -&gt; <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Bool.html#t%3ABool"
>Bool</A
>) -&gt; [a] -&gt; [[a]]</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>class</SPAN
>  <A HREF="#t%3ATagRep"
>TagRep</A
> a  <SPAN CLASS="keyword"
>where</SPAN
></TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="decl"
><A HREF="#v%3AtoTagRep"
>toTagRep</A
> :: <A HREF="Text-StringLike.html#t%3AStringLike"
>StringLike</A
> str =&gt; a -&gt; <A HREF="Text-HTML-TagSoup.html#t%3ATag"
>Tag</A
> str</TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3A~%3D%3D"
>(~==)</A
> :: (<A HREF="Text-StringLike.html#t%3AStringLike"
>StringLike</A
> str, <A HREF="Text-HTML-TagSoup.html#t%3ATagRep"
>TagRep</A
> t) =&gt; <A HREF="Text-HTML-TagSoup.html#t%3ATag"
>Tag</A
> str -&gt; t -&gt; <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Bool.html#t%3ABool"
>Bool</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3A~%2F%3D"
>(~/=)</A
> :: (<A HREF="Text-StringLike.html#t%3AStringLike"
>StringLike</A
> str, <A HREF="Text-HTML-TagSoup.html#t%3ATagRep"
>TagRep</A
> t) =&gt; <A HREF="Text-HTML-TagSoup.html#t%3ATag"
>Tag</A
> str -&gt; t -&gt; <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Bool.html#t%3ABool"
>Bool</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="section1"
><A NAME="1"
><A NAME="1"
>Data structures and parsing
</A
></A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><SPAN CLASS="keyword"
>data</SPAN
>  <A NAME="t:Tag"
><A NAME="t%3ATag"
></A
></A
><B
>Tag</B
> str </TD
><TD CLASS="declbut"
><A HREF="src/Text-HTML-TagSoup-Type.html#Tag"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="ndoc"
>A single HTML element. A whole document is represented by a list of <TT
>Tag</TT
>.
   There is no requirement for <TT
><A HREF="Text-HTML-TagSoup.html#v%3ATagOpen"
>TagOpen</A
></TT
> and <TT
><A HREF="Text-HTML-TagSoup.html#v%3ATagClose"
>TagClose</A
></TT
> to match.
</TD
></TR
><TR
><TD CLASS="section4"
>Constructors</TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
><TR
><TD CLASS="arg"
><A NAME="v:TagOpen"
><A NAME="v%3ATagOpen"
></A
></A
><B
>TagOpen</B
> str [<A HREF="Text-HTML-TagSoup.html#t%3AAttribute"
>Attribute</A
> str]</TD
><TD CLASS="rdoc"
>An open tag with <TT
><A HREF="Text-HTML-TagSoup.html#t%3AAttribute"
>Attribute</A
></TT
>s in their original order
</TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:TagClose"
><A NAME="v%3ATagClose"
></A
></A
><B
>TagClose</B
> str</TD
><TD CLASS="rdoc"
>A closing tag
</TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:TagText"
><A NAME="v%3ATagText"
></A
></A
><B
>TagText</B
> str</TD
><TD CLASS="rdoc"
>A text node, guaranteed not to be the empty string
</TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:TagComment"
><A NAME="v%3ATagComment"
></A
></A
><B
>TagComment</B
> str</TD
><TD CLASS="rdoc"
>A comment
</TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:TagWarning"
><A NAME="v%3ATagWarning"
></A
></A
><B
>TagWarning</B
> str</TD
><TD CLASS="rdoc"
>Meta: A syntax error in the input file
</TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:TagPosition"
><A NAME="v%3ATagPosition"
></A
></A
><B
>TagPosition</B
> !<A HREF="Text-HTML-TagSoup.html#t%3ARow"
>Row</A
> !<A HREF="Text-HTML-TagSoup.html#t%3AColumn"
>Column</A
></TD
><TD CLASS="rdoc"
>Meta: The position of a parsed element
</TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="section4"
><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:Tag')" ALT="show/hide"
> Instances</TD
></TR
><TR
><TD CLASS="body"
><DIV ID="i:Tag" STYLE="display:block;"
><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
><TR
><TD CLASS="decl"
><A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Control-Monad.html#t%3AFunctor"
>Functor</A
> <A HREF="Text-HTML-TagSoup.html#t%3ATag"
>Tag</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Typeable.html#t%3ATypeable1"
>Typeable1</A
> <A HREF="Text-HTML-TagSoup.html#t%3ATag"
>Tag</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Eq.html#t%3AEq"
>Eq</A
> str =&gt; <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Eq.html#t%3AEq"
>Eq</A
> (<A HREF="Text-HTML-TagSoup.html#t%3ATag"
>Tag</A
> str)</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Data.html#t%3AData"
>Data</A
> str =&gt; <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Data.html#t%3AData"
>Data</A
> (<A HREF="Text-HTML-TagSoup.html#t%3ATag"
>Tag</A
> str)</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Ord.html#t%3AOrd"
>Ord</A
> str =&gt; <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Ord.html#t%3AOrd"
>Ord</A
> (<A HREF="Text-HTML-TagSoup.html#t%3ATag"
>Tag</A
> str)</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Text-Show.html#t%3AShow"
>Show</A
> str =&gt; <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Text-Show.html#t%3AShow"
>Show</A
> (<A HREF="Text-HTML-TagSoup.html#t%3ATag"
>Tag</A
> str)</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Text-StringLike.html#t%3AStringLike"
>StringLike</A
> str =&gt; <A HREF="Text-HTML-TagSoup.html#t%3ATagRep"
>TagRep</A
> (<A HREF="Text-HTML-TagSoup.html#t%3ATag"
>Tag</A
> str)</TD
></TR
></TABLE
></DIV
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><SPAN CLASS="keyword"
>type</SPAN
> <A NAME="t:Row"
><A NAME="t%3ARow"
></A
></A
><B
>Row</B
> = <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Int.html#t%3AInt"
>Int</A
></TD
><TD CLASS="declbut"
><A HREF="src/Text-HTML-TagSoup-Type.html#Row"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="doc"
>The row/line of a position, starting at 1
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><SPAN CLASS="keyword"
>type</SPAN
> <A NAME="t:Column"
><A NAME="t%3AColumn"
></A
></A
><B
>Column</B
> = <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Int.html#t%3AInt"
>Int</A
></TD
><TD CLASS="declbut"
><A HREF="src/Text-HTML-TagSoup-Type.html#Column"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="doc"
>The column of a position, starting at 1
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><SPAN CLASS="keyword"
>type</SPAN
> <A NAME="t:Attribute"
><A NAME="t%3AAttribute"
></A
></A
><B
>Attribute</B
> str = (str, str)</TD
><TD CLASS="declbut"
><A HREF="src/Text-HTML-TagSoup-Type.html#Attribute"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="doc"
>An HTML attribute <TT
>id=&quot;name&quot;</TT
> generates <TT
>(&quot;id&quot;,&quot;name&quot;)</TT
>
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><A NAME="v:parseTags"
><A NAME="v%3AparseTags"
></A
></A
><B
>parseTags</B
> :: <A HREF="Text-StringLike.html#t%3AStringLike"
>StringLike</A
> str =&gt; str -&gt; [<A HREF="Text-HTML-TagSoup.html#t%3ATag"
>Tag</A
> str]</TD
><TD CLASS="declbut"
><A HREF="src/Text-HTML-TagSoup-Parser.html#parseTags"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="doc"
><P
>Parse a string to a list of tags, using an HTML 5 compliant parser.
</P
><PRE
> parseTags &quot;&lt;hello&gt;my&amp;amp;&lt;/world&gt;&quot; == [TagOpen &quot;hello&quot; [],TagText &quot;my&amp;&quot;,TagClose &quot;world&quot;]
</PRE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><A NAME="v:parseTagsOptions"
><A NAME="v%3AparseTagsOptions"
></A
></A
><B
>parseTagsOptions</B
> :: <A HREF="Text-StringLike.html#t%3AStringLike"
>StringLike</A
> str =&gt; <A HREF="Text-HTML-TagSoup.html#t%3AParseOptions"
>ParseOptions</A
> str -&gt; str -&gt; [<A HREF="Text-HTML-TagSoup.html#t%3ATag"
>Tag</A
> str]</TD
><TD CLASS="declbut"
><A HREF="src/Text-HTML-TagSoup-Parser.html#parseTagsOptions"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="doc"
><P
>Parse a string to a list of tags, using settings supplied by the <TT
><A HREF="Text-HTML-TagSoup.html#t%3AParseOptions"
>ParseOptions</A
></TT
> parameter,
   eg. to output position information:
</P
><PRE
> parseTagsOptions parseOptions{optTagPosition = True} &quot;&lt;hello&gt;my&amp;amp;&lt;/world&gt;&quot; ==
    [TagPosition 1 1,TagOpen &quot;hello&quot; [],TagPosition 1 8,TagText &quot;my&amp;&quot;,TagPosition 1 15,TagClose &quot;world&quot;]
</PRE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><SPAN CLASS="keyword"
>data</SPAN
>  <A NAME="t:ParseOptions"
><A NAME="t%3AParseOptions"
></A
></A
><B
>ParseOptions</B
> str </TD
><TD CLASS="declbut"
><A HREF="src/Text-HTML-TagSoup-Options.html#ParseOptions"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="ndoc"
>These options control how parseTags works.
</TD
></TR
><TR
><TD CLASS="section4"
>Constructors</TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="5" CELLPADDING="0"
><TR
><TD CLASS="arg"
><A NAME="v:ParseOptions"
><A NAME="v%3AParseOptions"
></A
></A
><B
>ParseOptions</B
></TD
><TD CLASS="rdoc"
></TD
></TR
><TR
><TD CLASS="body" COLSPAN="2"
><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
><TR
><TD CLASS="arg"
><A NAME="v:optTagPosition"
><A NAME="v%3AoptTagPosition"
></A
></A
><B
>optTagPosition</B
> :: <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Bool.html#t%3ABool"
>Bool</A
></TD
><TD CLASS="rdoc"
>Should <TT
><A HREF="Text-HTML-TagSoup.html#v%3ATagPosition"
>TagPosition</A
></TT
> values be given before some items (default=False,fast=False)
</TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:optTagWarning"
><A NAME="v%3AoptTagWarning"
></A
></A
><B
>optTagWarning</B
> :: <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Bool.html#t%3ABool"
>Bool</A
></TD
><TD CLASS="rdoc"
>Should <TT
><A HREF="Text-HTML-TagSoup.html#v%3ATagWarning"
>TagWarning</A
></TT
> values be given (default=False,fast=False)
</TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:optEntityData"
><A NAME="v%3AoptEntityData"
></A
></A
><B
>optEntityData</B
> :: (str, <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Bool.html#t%3ABool"
>Bool</A
>) -&gt; [<A HREF="Text-HTML-TagSoup.html#t%3ATag"
>Tag</A
> str]</TD
><TD CLASS="rdoc"
>How to lookup an entity (Bool = has ending <TT
>';'</TT
>)
</TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:optEntityAttrib"
><A NAME="v%3AoptEntityAttrib"
></A
></A
><B
>optEntityAttrib</B
> :: (str, <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Bool.html#t%3ABool"
>Bool</A
>) -&gt; (str, [<A HREF="Text-HTML-TagSoup.html#t%3ATag"
>Tag</A
> str])</TD
><TD CLASS="rdoc"
>How to lookup an entity in an attribute (Bool = has ending <TT
>';'</TT
>?)
</TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:optTagTextMerge"
><A NAME="v%3AoptTagTextMerge"
></A
></A
><B
>optTagTextMerge</B
> :: <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Bool.html#t%3ABool"
>Bool</A
></TD
><TD CLASS="rdoc"
>Require no adjacent <TT
><A HREF="Text-HTML-TagSoup.html#v%3ATagText"
>TagText</A
></TT
> values (default=True,fast=False)
</TD
></TR
></TABLE
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="section4"
><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:ParseOptions')" ALT="show/hide"
> Instances</TD
></TR
><TR
><TD CLASS="body"
><DIV ID="i:ParseOptions" STYLE="display:block;"
><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
><TR
><TD CLASS="decl"
><A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Typeable.html#t%3ATypeable1"
>Typeable1</A
> <A HREF="Text-HTML-TagSoup.html#t%3AParseOptions"
>ParseOptions</A
></TD
></TR
></TABLE
></DIV
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><A NAME="v:parseOptions"
><A NAME="v%3AparseOptions"
></A
></A
><B
>parseOptions</B
> :: <A HREF="Text-StringLike.html#t%3AStringLike"
>StringLike</A
> str =&gt; <A HREF="Text-HTML-TagSoup.html#t%3AParseOptions"
>ParseOptions</A
> str</TD
><TD CLASS="declbut"
><A HREF="src/Text-HTML-TagSoup-Options.html#parseOptions"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="doc"
>The default parse options value, described in <TT
><A HREF="Text-HTML-TagSoup.html#t%3AParseOptions"
>ParseOptions</A
></TT
>.
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><A NAME="v:parseOptionsFast"
><A NAME="v%3AparseOptionsFast"
></A
></A
><B
>parseOptionsFast</B
> :: <A HREF="Text-StringLike.html#t%3AStringLike"
>StringLike</A
> str =&gt; <A HREF="Text-HTML-TagSoup.html#t%3AParseOptions"
>ParseOptions</A
> str</TD
><TD CLASS="declbut"
><A HREF="src/Text-HTML-TagSoup-Options.html#parseOptionsFast"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="doc"
>A <TT
><A HREF="Text-HTML-TagSoup.html#t%3AParseOptions"
>ParseOptions</A
></TT
> structure optimised for speed, following the fast options.
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><A NAME="v:renderTags"
><A NAME="v%3ArenderTags"
></A
></A
><B
>renderTags</B
> :: <A HREF="Text-StringLike.html#t%3AStringLike"
>StringLike</A
> str =&gt; [<A HREF="Text-HTML-TagSoup.html#t%3ATag"
>Tag</A
> str] -&gt; str</TD
><TD CLASS="declbut"
><A HREF="src/Text-HTML-TagSoup-Render.html#renderTags"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="doc"
><P
>Show a list of tags, as they might have been parsed, using the default settings given in
   <TT
><A HREF="Text-HTML-TagSoup.html#t%3ARenderOptions"
>RenderOptions</A
></TT
>.
</P
><PRE
> renderTags [TagOpen &quot;hello&quot; [],TagText &quot;my&amp;&quot;,TagClose &quot;world&quot;] == &quot;&lt;hello&gt;my&amp;amp;&lt;/world&gt;&quot;
</PRE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><A NAME="v:renderTagsOptions"
><A NAME="v%3ArenderTagsOptions"
></A
></A
><B
>renderTagsOptions</B
> :: <A HREF="Text-StringLike.html#t%3AStringLike"
>StringLike</A
> str =&gt; <A HREF="Text-HTML-TagSoup.html#t%3ARenderOptions"
>RenderOptions</A
> str -&gt; [<A HREF="Text-HTML-TagSoup.html#t%3ATag"
>Tag</A
> str] -&gt; str</TD
><TD CLASS="declbut"
><A HREF="src/Text-HTML-TagSoup-Render.html#renderTagsOptions"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="doc"
><P
>Show a list of tags using settings supplied by the <TT
><A HREF="Text-HTML-TagSoup.html#t%3ARenderOptions"
>RenderOptions</A
></TT
> parameter,
   eg. to avoid escaping any characters one could do:
</P
><PRE
> renderTagsOptions renderOptions{optEscape = id} [TagText &quot;my&amp;&quot;] == &quot;my&amp;&quot;
</PRE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><A NAME="v:escapeHTML"
><A NAME="v%3AescapeHTML"
></A
></A
><B
>escapeHTML</B
> :: <A HREF="Text-StringLike.html#t%3AStringLike"
>StringLike</A
> str =&gt; str -&gt; str</TD
><TD CLASS="declbut"
><A HREF="src/Text-HTML-TagSoup-Render.html#escapeHTML"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="doc"
>Replace the four characters <TT
>&amp;&quot;&lt;&gt;</TT
> with their HTML entities (the list from <TT
><A HREF="Text-HTML-TagSoup-Entity.html#v%3AxmlEntities"
>xmlEntities</A
></TT
>).
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><SPAN CLASS="keyword"
>data</SPAN
>  <A NAME="t:RenderOptions"
><A NAME="t%3ARenderOptions"
></A
></A
><B
>RenderOptions</B
> str </TD
><TD CLASS="declbut"
><A HREF="src/Text-HTML-TagSoup-Render.html#RenderOptions"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="ndoc"
><P
>These options control how <TT
><A HREF="Text-HTML-TagSoup.html#v%3ArenderTags"
>renderTags</A
></TT
> works.
</P
><P
>The strange quirk of only minimizing <TT
>&lt;br&gt;</TT
> tags is due to Internet Explorer treating
   <TT
>&lt;br&gt;&lt;/br&gt;</TT
> as <TT
>&lt;br&gt;&lt;br&gt;</TT
>.
</P
></TD
></TR
><TR
><TD CLASS="section4"
>Constructors</TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="5" CELLPADDING="0"
><TR
><TD CLASS="arg"
><A NAME="v:RenderOptions"
><A NAME="v%3ARenderOptions"
></A
></A
><B
>RenderOptions</B
></TD
><TD CLASS="rdoc"
></TD
></TR
><TR
><TD CLASS="body" COLSPAN="2"
><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
><TR
><TD CLASS="arg"
><A NAME="v:optEscape"
><A NAME="v%3AoptEscape"
></A
></A
><B
>optEscape</B
> :: str -&gt; str</TD
><TD CLASS="rdoc"
>Escape a piece of text (default = escape the four characters <TT
>&amp;&quot;&lt;&gt;</TT
>)
</TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:optMinimize"
><A NAME="v%3AoptMinimize"
></A
></A
><B
>optMinimize</B
> :: str -&gt; <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Bool.html#t%3ABool"
>Bool</A
></TD
><TD CLASS="rdoc"
>Minimise &lt;b&gt;&lt;/b&gt; -&gt; &lt;b/&gt; (default = minimise only <TT
>&lt;br&gt;</TT
> tags)
</TD
></TR
></TABLE
></TD
></TR
></TABLE
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><A NAME="v:renderOptions"
><A NAME="v%3ArenderOptions"
></A
></A
><B
>renderOptions</B
> :: <A HREF="Text-StringLike.html#t%3AStringLike"
>StringLike</A
> str =&gt; <A HREF="Text-HTML-TagSoup.html#t%3ARenderOptions"
>RenderOptions</A
> str</TD
><TD CLASS="declbut"
><A HREF="src/Text-HTML-TagSoup-Render.html#renderOptions"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="doc"
>The default render options value, described in <TT
><A HREF="Text-HTML-TagSoup.html#t%3ARenderOptions"
>RenderOptions</A
></TT
>.
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><A NAME="v:canonicalizeTags"
><A NAME="v%3AcanonicalizeTags"
></A
></A
><B
>canonicalizeTags</B
> :: <A HREF="Text-StringLike.html#t%3AStringLike"
>StringLike</A
> str =&gt; [<A HREF="Text-HTML-TagSoup.html#t%3ATag"
>Tag</A
> str] -&gt; [<A HREF="Text-HTML-TagSoup.html#t%3ATag"
>Tag</A
> str]</TD
><TD CLASS="declbut"
><A HREF="src/Text-HTML-TagSoup.html#canonicalizeTags"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="doc"
>Turns all tag names and attributes to lower case and
   converts DOCTYPE to upper case.
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="section1"
><A NAME="2"
><A NAME="2"
>Tag identification
</A
></A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><A NAME="v:isTagOpen"
><A NAME="v%3AisTagOpen"
></A
></A
><B
>isTagOpen</B
> ::  <A HREF="Text-HTML-TagSoup.html#t%3ATag"
>Tag</A
> str -&gt; <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Bool.html#t%3ABool"
>Bool</A
></TD
><TD CLASS="declbut"
><A HREF="src/Text-HTML-TagSoup-Type.html#isTagOpen"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="doc"
>Test if a <TT
><A HREF="Text-HTML-TagSoup.html#t%3ATag"
>Tag</A
></TT
> is a <TT
><A HREF="Text-HTML-TagSoup.html#v%3ATagOpen"
>TagOpen</A
></TT
>
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><A NAME="v:isTagClose"
><A NAME="v%3AisTagClose"
></A
></A
><B
>isTagClose</B
> ::  <A HREF="Text-HTML-TagSoup.html#t%3ATag"
>Tag</A
> str -&gt; <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Bool.html#t%3ABool"
>Bool</A
></TD
><TD CLASS="declbut"
><A HREF="src/Text-HTML-TagSoup-Type.html#isTagClose"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="doc"
>Test if a <TT
><A HREF="Text-HTML-TagSoup.html#t%3ATag"
>Tag</A
></TT
> is a <TT
><A HREF="Text-HTML-TagSoup.html#v%3ATagClose"
>TagClose</A
></TT
>
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><A NAME="v:isTagText"
><A NAME="v%3AisTagText"
></A
></A
><B
>isTagText</B
> ::  <A HREF="Text-HTML-TagSoup.html#t%3ATag"
>Tag</A
> str -&gt; <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Bool.html#t%3ABool"
>Bool</A
></TD
><TD CLASS="declbut"
><A HREF="src/Text-HTML-TagSoup-Type.html#isTagText"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="doc"
>Test if a <TT
><A HREF="Text-HTML-TagSoup.html#t%3ATag"
>Tag</A
></TT
> is a <TT
><A HREF="Text-HTML-TagSoup.html#v%3ATagText"
>TagText</A
></TT
>
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><A NAME="v:isTagWarning"
><A NAME="v%3AisTagWarning"
></A
></A
><B
>isTagWarning</B
> ::  <A HREF="Text-HTML-TagSoup.html#t%3ATag"
>Tag</A
> str -&gt; <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Bool.html#t%3ABool"
>Bool</A
></TD
><TD CLASS="declbut"
><A HREF="src/Text-HTML-TagSoup-Type.html#isTagWarning"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="doc"
>Test if a <TT
><A HREF="Text-HTML-TagSoup.html#t%3ATag"
>Tag</A
></TT
> is a <TT
><A HREF="Text-HTML-TagSoup.html#v%3ATagWarning"
>TagWarning</A
></TT
>
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><A NAME="v:isTagPosition"
><A NAME="v%3AisTagPosition"
></A
></A
><B
>isTagPosition</B
> ::  <A HREF="Text-HTML-TagSoup.html#t%3ATag"
>Tag</A
> str -&gt; <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Bool.html#t%3ABool"
>Bool</A
></TD
><TD CLASS="declbut"
><A HREF="src/Text-HTML-TagSoup-Type.html#isTagPosition"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="doc"
>Test if a <TT
><A HREF="Text-HTML-TagSoup.html#t%3ATag"
>Tag</A
></TT
> is a <TT
><A HREF="Text-HTML-TagSoup.html#v%3ATagPosition"
>TagPosition</A
></TT
>
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><A NAME="v:isTagOpenName"
><A NAME="v%3AisTagOpenName"
></A
></A
><B
>isTagOpenName</B
> :: <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Eq.html#t%3AEq"
>Eq</A
> str =&gt; str -&gt; <A HREF="Text-HTML-TagSoup.html#t%3ATag"
>Tag</A
> str -&gt; <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Bool.html#t%3ABool"
>Bool</A
></TD
><TD CLASS="declbut"
><A HREF="src/Text-HTML-TagSoup-Type.html#isTagOpenName"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="doc"
>Returns True if the <TT
><A HREF="Text-HTML-TagSoup.html#t%3ATag"
>Tag</A
></TT
> is <TT
><A HREF="Text-HTML-TagSoup.html#v%3ATagOpen"
>TagOpen</A
></TT
> and matches the given name
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><A NAME="v:isTagCloseName"
><A NAME="v%3AisTagCloseName"
></A
></A
><B
>isTagCloseName</B
> :: <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Eq.html#t%3AEq"
>Eq</A
> str =&gt; str -&gt; <A HREF="Text-HTML-TagSoup.html#t%3ATag"
>Tag</A
> str -&gt; <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Bool.html#t%3ABool"
>Bool</A
></TD
><TD CLASS="declbut"
><A HREF="src/Text-HTML-TagSoup-Type.html#isTagCloseName"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="doc"
>Returns True if the <TT
><A HREF="Text-HTML-TagSoup.html#t%3ATag"
>Tag</A
></TT
> is <TT
><A HREF="Text-HTML-TagSoup.html#v%3ATagClose"
>TagClose</A
></TT
> and matches the given name
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="section1"
><A NAME="3"
><A NAME="3"
>Extraction
</A
></A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><A NAME="v:fromTagText"
><A NAME="v%3AfromTagText"
></A
></A
><B
>fromTagText</B
> :: <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Text-Show.html#t%3AShow"
>Show</A
> str =&gt; <A HREF="Text-HTML-TagSoup.html#t%3ATag"
>Tag</A
> str -&gt; str</TD
><TD CLASS="declbut"
><A HREF="src/Text-HTML-TagSoup-Type.html#fromTagText"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="doc"
>Extract the string from within <TT
><A HREF="Text-HTML-TagSoup.html#v%3ATagText"
>TagText</A
></TT
>, crashes if not a <TT
><A HREF="Text-HTML-TagSoup.html#v%3ATagText"
>TagText</A
></TT
>
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><A NAME="v:fromAttrib"
><A NAME="v%3AfromAttrib"
></A
></A
><B
>fromAttrib</B
> :: (<A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Text-Show.html#t%3AShow"
>Show</A
> str, <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Eq.html#t%3AEq"
>Eq</A
> str, <A HREF="Text-StringLike.html#t%3AStringLike"
>StringLike</A
> str) =&gt; str -&gt; <A HREF="Text-HTML-TagSoup.html#t%3ATag"
>Tag</A
> str -&gt; str</TD
><TD CLASS="declbut"
><A HREF="src/Text-HTML-TagSoup-Type.html#fromAttrib"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="doc"
>Extract an attribute, crashes if not a <TT
><A HREF="Text-HTML-TagSoup.html#v%3ATagOpen"
>TagOpen</A
></TT
>.
   Returns <TT
>&quot;&quot;</TT
> if no attribute present.
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><A NAME="v:maybeTagText"
><A NAME="v%3AmaybeTagText"
></A
></A
><B
>maybeTagText</B
> ::  <A HREF="Text-HTML-TagSoup.html#t%3ATag"
>Tag</A
> str -&gt; <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Maybe.html#t%3AMaybe"
>Maybe</A
> str</TD
><TD CLASS="declbut"
><A HREF="src/Text-HTML-TagSoup-Type.html#maybeTagText"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="doc"
>Extract the string from within <TT
><A HREF="Text-HTML-TagSoup.html#v%3ATagText"
>TagText</A
></TT
>, otherwise <TT
><A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Maybe.html#v%3ANothing"
>Nothing</A
></TT
>
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><A NAME="v:maybeTagWarning"
><A NAME="v%3AmaybeTagWarning"
></A
></A
><B
>maybeTagWarning</B
> ::  <A HREF="Text-HTML-TagSoup.html#t%3ATag"
>Tag</A
> str -&gt; <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Maybe.html#t%3AMaybe"
>Maybe</A
> str</TD
><TD CLASS="declbut"
><A HREF="src/Text-HTML-TagSoup-Type.html#maybeTagWarning"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="doc"
>Extract the string from within <TT
><A HREF="Text-HTML-TagSoup.html#v%3ATagWarning"
>TagWarning</A
></TT
>, otherwise <TT
><A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Maybe.html#v%3ANothing"
>Nothing</A
></TT
>
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><A NAME="v:innerText"
><A NAME="v%3AinnerText"
></A
></A
><B
>innerText</B
> :: <A HREF="Text-StringLike.html#t%3AStringLike"
>StringLike</A
> str =&gt; [<A HREF="Text-HTML-TagSoup.html#t%3ATag"
>Tag</A
> str] -&gt; str</TD
><TD CLASS="declbut"
><A HREF="src/Text-HTML-TagSoup-Type.html#innerText"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="doc"
>Extract all text content from tags (similar to Verbatim found in HaXml)
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="section1"
><A NAME="4"
><A NAME="4"
>Utility
</A
></A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><A NAME="v:sections"
><A NAME="v%3Asections"
></A
></A
><B
>sections</B
> ::  (a -&gt; <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Bool.html#t%3ABool"
>Bool</A
>) -&gt; [a] -&gt; [[a]]</TD
><TD CLASS="declbut"
><A HREF="src/Text-HTML-TagSoup.html#sections"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="doc"
>This function takes a list, and returns all suffixes whose
   first item matches the predicate.
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><A NAME="v:partitions"
><A NAME="v%3Apartitions"
></A
></A
><B
>partitions</B
> ::  (a -&gt; <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Bool.html#t%3ABool"
>Bool</A
>) -&gt; [a] -&gt; [[a]]</TD
><TD CLASS="declbut"
><A HREF="src/Text-HTML-TagSoup.html#partitions"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="doc"
>This function is similar to <TT
><A HREF="Text-HTML-TagSoup.html#v%3Asections"
>sections</A
></TT
>, but splits the list
   so no element appears in any two partitions.
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="section1"
><A NAME="5"
><A NAME="5"
>Combinators
</A
></A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><SPAN CLASS="keyword"
>class</SPAN
>  <A NAME="t:TagRep"
><A NAME="t%3ATagRep"
></A
></A
><B
>TagRep</B
> a  <SPAN CLASS="keyword"
>where</SPAN
></TD
><TD CLASS="declbut"
><A HREF="src/Text-HTML-TagSoup.html#TagRep"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="ndoc"
>Define a class to allow String's or Tag str's to be used as matches
</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="section4"
>Methods</TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><A NAME="v:toTagRep"
><A NAME="v%3AtoTagRep"
></A
></A
><B
>toTagRep</B
> :: <A HREF="Text-StringLike.html#t%3AStringLike"
>StringLike</A
> str =&gt; a -&gt; <A HREF="Text-HTML-TagSoup.html#t%3ATag"
>Tag</A
> str</TD
><TD CLASS="declbut"
><A HREF="src/Text-HTML-TagSoup.html#toTagRep"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="section4"
><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:TagRep')" ALT="show/hide"
> Instances</TD
></TR
><TR
><TD CLASS="body"
><DIV ID="i:TagRep" STYLE="display:block;"
><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
><TR
><TD CLASS="decl"
><A HREF="Text-HTML-TagSoup.html#t%3ATagRep"
>TagRep</A
> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Char.html#t%3AString"
>String</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Text-StringLike.html#t%3AStringLike"
>StringLike</A
> str =&gt; <A HREF="Text-HTML-TagSoup.html#t%3ATagRep"
>TagRep</A
> (<A HREF="Text-HTML-TagSoup.html#t%3ATag"
>Tag</A
> str)</TD
></TR
></TABLE
></DIV
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><A NAME="v:~=="
><A NAME="v%3A~%3D%3D"
></A
></A
><B
>(~==)</B
> :: (<A HREF="Text-StringLike.html#t%3AStringLike"
>StringLike</A
> str, <A HREF="Text-HTML-TagSoup.html#t%3ATagRep"
>TagRep</A
> t) =&gt; <A HREF="Text-HTML-TagSoup.html#t%3ATag"
>Tag</A
> str -&gt; t -&gt; <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Bool.html#t%3ABool"
>Bool</A
></TD
><TD CLASS="declbut"
><A HREF="src/Text-HTML-TagSoup.html#~%3D%3D"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="doc"
><P
>Performs an inexact match, the first item should be the thing to match.
 If the second item is a blank string, that is considered to match anything.
 For example:
</P
><PRE
> (TagText &quot;test&quot; ~== TagText &quot;&quot;    ) == True
 (TagText &quot;test&quot; ~== TagText &quot;test&quot;) == True
 (TagText &quot;test&quot; ~== TagText &quot;soup&quot;) == False
</PRE
><P
>For <TT
><A HREF="Text-HTML-TagSoup.html#v%3ATagOpen"
>TagOpen</A
></TT
> missing attributes on the right are allowed.
</P
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><A NAME="v:~/="
><A NAME="v%3A~%2F%3D"
></A
></A
><B
>(~/=)</B
> :: (<A HREF="Text-StringLike.html#t%3AStringLike"
>StringLike</A
> str, <A HREF="Text-HTML-TagSoup.html#t%3ATagRep"
>TagRep</A
> t) =&gt; <A HREF="Text-HTML-TagSoup.html#t%3ATag"
>Tag</A
> str -&gt; t -&gt; <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Bool.html#t%3ABool"
>Bool</A
></TD
><TD CLASS="declbut"
><A HREF="src/Text-HTML-TagSoup.html#~%2F%3D"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="doc"
>Negation of <TT
><A HREF="Text-HTML-TagSoup.html#v%3A~%3D%3D"
>~==</A
></TT
>
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="botbar"
>Produced by <A HREF="http://www.haskell.org/haddock/"
>Haddock</A
> version 2.6.1</TD
></TR
></TABLE
></BODY
></HTML
>