Safe Haskell | Safe |
---|---|
Language | Haskell98 |
We do not define a tag data type here, since this is too much bound to the particular use (e.g. list or tree structure). However we define a tag name and several
- newtype Name ident = Name {
- unname :: ident
- doctype :: Tag name => Name name
- doctypeName :: Tag name => Name name
- doctypeString :: String
- cdata :: Tag name => Name name
- cdataName :: Tag name => Name name
- cdataString :: String
- isEmpty :: Tag name => Name name -> Bool
- isSloppy :: Tag name => Name name -> Bool
- isInnerOf :: Tag name => Name name -> Name name -> Bool
- closes :: Tag name => Name name -> Name name -> Bool
- maybeMetaHTTPHeader :: (Tag name, Attribute name) => Name name -> [T name string] -> Maybe (string, string)
- maybeMetaEncoding :: (Tag name, Attribute name) => Name name -> [T name String] -> Maybe String
- maybeMetaCharset :: (Tag name, Attribute name) => Name name -> [T name string] -> Maybe string
- encodingFromContentType :: String -> String
Documentation
doctypeName :: Tag name => Name name Source #
cdataString :: String Source #
isSloppy :: Tag name => Name name -> Bool Source #
Some tags, namely those for text styles like FONT, B, I, are used quite sloppily. That is, they are not terminated or not terminated in the right order. We close them implicitly, if another tag closes and ignore non-matching closing tags.
maybeMetaHTTPHeader :: (Tag name, Attribute name) => Name name -> [T name string] -> Maybe (string, string) Source #
maybeMetaEncoding :: (Tag name, Attribute name) => Name name -> [T name String] -> Maybe String Source #
A simple routine that does not check for valid syntax of the Content-Type specification.
In future we might use a distinct Encoding
type instead of plain String.
maybeMetaCharset :: (Tag name, Attribute name) => Name name -> [T name string] -> Maybe string Source #
encodingFromContentType :: String -> String Source #
Extract charset from Content-Type declaration.
encodingFromContentType "text/html; charset=UTF-8" == "utf-8"
The routine does not perform any syntax check.