tagchup-0.4.0.5: alternative package for processing of tag soups

Safe HaskellSafe
LanguageHaskell98

Text.HTML.Tagchup.Tag

Synopsis

Documentation

data T name string Source

An HTML element, a document is [T]. There is no requirement for Open and Close to match.

The type parameter string lets you choose between [Char] for interpreted HTML entity references and [HTMLChar.T] for uninterpreted HTML entities. You will most oftenly want plain Char, since HTMLChar.T is only necessary if you want to know, whether a non-ASCII character was encoded as HTML entity or as non-ASCII Unicode character.

Constructors

Open (Name name) [T name string]

An open tag with Ts in their original order.

Close (Name name)

A closing tag

Text string

A text node, guaranteed not to be the empty string

Comment String

A comment

Special (Name name) String

A tag like <!DOCTYPE ...>

Processing (Name name) (T name string)

A tag like <?xml ...>

Warning String

Mark a syntax error in the input file

Instances

Functor (T name) Source 
Foldable (T name) Source 
Traversable (T name) Source 
(Eq name, Eq string) => Eq (T name string) Source 
(Ord name, Ord string) => Ord (T name string) Source 
(Show name, Show string, Attribute name) => Show (T name string) Source 
(Tag name, Attribute name, C string) => C (T name string) Source 

newtype Name ident :: * -> *

Constructors

Name ident 

Instances

Eq ident => Eq (Name ident) 
Ord ident => Ord (Name ident) 
Show ident => Show (Name ident) 
Tag ident => C (Name ident) 

mapName :: (Name name0 -> Name name1) -> (Name name0 -> Name name1) -> T name0 string -> T name1 string Source

open :: Name name -> [T name string] -> T name string Source

isOpen :: T name string -> Bool Source

Test if a T is a Open

maybeOpen :: T name string -> Maybe (Name name, [T name string]) Source

close :: Name name -> T name string Source

isClose :: T name string -> Bool Source

Test if a T is a Close

maybeClose :: T name string -> Maybe (Name name) Source

text :: string -> T name string Source

isText :: T name string -> Bool Source

Test if a T is a Text

maybeText :: T name string -> Maybe string Source

Extract the string from within Text, otherwise Nothing

innerText :: Monoid string => [T name string] -> string Source

Extract all text content from tags (similar to Verbatim found in HaXml)

comment :: String -> T name string Source

isComment :: T name string -> Bool Source

maybeComment :: T name string -> Maybe String Source

special :: Name name -> String -> T name string Source

isSpecial :: T name string -> Bool Source

maybeSpecial :: T name string -> Maybe (Name name, String) Source

cdata :: Tag name => String -> T name string Source

isCData :: Tag name => T name string -> Bool Source

maybeCData :: Tag name => T name string -> Maybe String Source

processing :: Name name -> T name string -> T name string Source

isProcessing :: T name string -> Bool Source

maybeProcessing :: T name string -> Maybe (Name name, T name string) Source

warning :: String -> T name string Source

isWarning :: T name string -> Bool Source

maybeWarning :: T name string -> Maybe String Source

formatOpen :: (Tag name, Attribute name, C string) => Bool -> Name name -> [T name string] -> ShowS Source

formatClose :: Tag name => Name name -> ShowS Source

textFromCData :: (Tag name, C char) => T name [char] -> T name [char] Source

Replace CDATA sections by plain text.

concatTexts :: Monoid string => [T name string] -> [T name string] Source

Merge adjacent Text sections.

mapText :: Tag name => (String -> String) -> T name String -> T name String Source

Modify content of a Text or a CDATA part.

mapTextA :: (Tag name, Applicative f) => (String -> f String) -> T name String -> f (T name String) Source