xhtml-3000.2.1: An XHTML combinator library

Safe Haskell | Safe

Text.XHtml.Frameset

Contents

- Data types
- Classes
- Primitives and basic combinators
- Rendering
- Elements in XHTML Strict
- Extra elements in XHTML Frameset
- Attributes in XHTML Strict
- Extra attributes in XHTML Frameset
- Converting strings to HTML
- Html abbreviations
- Hotlinks
- Lists
- Forms

Description

Produces XHTML 1.0 Frameset.

Synopsis

- data Html
- data HtmlAttr
- class HTML a where
  - toHtml :: a -> Html
  - toHtmlFromList :: [a] -> Html
- class ADDATTRS a where
  - (!) :: a -> [HtmlAttr] -> a
- class CHANGEATTRS a where
  - changeAttrs :: a -> ([HtmlAttr] -> [HtmlAttr]) -> a
- (<<) :: HTML a => (Html -> b) -> a -> b
- concatHtml :: HTML a => [a] -> Html
- (+++) :: (HTML a, HTML b) => a -> b -> Html
- noHtml :: Html
- isNoHtml :: Html -> Bool
- tag :: String -> Html -> Html
- itag :: String -> Html
- htmlAttrPair :: HtmlAttr -> (String, String)
- emptyAttr :: String -> HtmlAttr
- intAttr :: String -> Int -> HtmlAttr
- strAttr :: String -> String -> HtmlAttr
- htmlAttr :: String -> Html -> HtmlAttr
- primHtml :: String -> Html
- showHtml :: HTML html => html -> String
- renderHtml :: HTML html => html -> String
- prettyHtml :: HTML html => html -> String
- showHtmlFragment :: HTML html => html -> String
- renderHtmlFragment :: HTML html => html -> String
- prettyHtmlFragment :: HTML html => html -> String
- abbr :: Html -> Html
- acronym :: Html -> Html
- address :: Html -> Html
- anchor :: Html -> Html
- area :: Html
- bdo :: Html -> Html
- big :: Html -> Html
- blockquote :: Html -> Html
- body :: Html -> Html
- bold :: Html -> Html
- br :: Html
- button :: Html -> Html
- caption :: Html -> Html
- cite :: Html -> Html
- col :: Html -> Html
- colgroup :: Html -> Html
- del :: Html -> Html
- ddef :: Html -> Html
- define :: Html -> Html
- dlist :: Html -> Html
- dterm :: Html -> Html
- emphasize :: Html -> Html
- fieldset :: Html -> Html
- form :: Html -> Html
- h1 :: Html -> Html
- h2 :: Html -> Html
- h3 :: Html -> Html
- h4 :: Html -> Html
- h5 :: Html -> Html
- h6 :: Html -> Html
- header :: Html -> Html
- hr :: Html
- image :: Html
- input :: Html
- ins :: Html -> Html
- italics :: Html -> Html
- keyboard :: Html -> Html
- label :: Html -> Html
- legend :: Html -> Html
- li :: Html -> Html
- meta :: Html
- noscript :: Html -> Html
- object :: Html -> Html
- olist :: Html -> Html
- optgroup :: Html -> Html
- option :: Html -> Html
- paragraph :: Html -> Html
- param :: Html
- pre :: Html -> Html
- quote :: Html -> Html
- sample :: Html -> Html
- script :: Html -> Html
- select :: Html -> Html
- small :: Html -> Html
- strong :: Html -> Html
- style :: Html -> Html
- sub :: Html -> Html
- sup :: Html -> Html
- table :: Html -> Html
- tbody :: Html -> Html
- td :: Html -> Html
- textarea :: Html -> Html
- tfoot :: Html -> Html
- th :: Html -> Html
- thead :: Html -> Html
- thebase :: Html
- thecode :: Html -> Html
- thediv :: Html -> Html
- thehtml :: Html -> Html
- thelink :: Html -> Html
- themap :: Html -> Html
- thespan :: Html -> Html
- thetitle :: Html -> Html
- tr :: Html -> Html
- tt :: Html -> Html
- ulist :: Html -> Html
- variable :: Html -> Html
- frame :: Html -> Html
- frameset :: Html -> Html
- noframes :: Html -> Html
- action :: String -> HtmlAttr
- align :: String -> HtmlAttr
- alt :: String -> HtmlAttr
- altcode :: String -> HtmlAttr
- archive :: String -> HtmlAttr
- base :: String -> HtmlAttr
- border :: Int -> HtmlAttr
- bordercolor :: String -> HtmlAttr
- cellpadding :: Int -> HtmlAttr
- cellspacing :: Int -> HtmlAttr
- checked :: HtmlAttr
- codebase :: String -> HtmlAttr
- cols :: String -> HtmlAttr
- colspan :: Int -> HtmlAttr
- content :: String -> HtmlAttr
- coords :: String -> HtmlAttr
- disabled :: HtmlAttr
- enctype :: String -> HtmlAttr
- height :: String -> HtmlAttr
- href :: String -> HtmlAttr
- hreflang :: String -> HtmlAttr
- httpequiv :: String -> HtmlAttr
- identifier :: String -> HtmlAttr
- ismap :: HtmlAttr
- lang :: String -> HtmlAttr
- maxlength :: Int -> HtmlAttr
- method :: String -> HtmlAttr
- multiple :: HtmlAttr
- name :: String -> HtmlAttr
- nohref :: HtmlAttr
- rel :: String -> HtmlAttr
- rev :: String -> HtmlAttr
- rows :: String -> HtmlAttr
- rowspan :: Int -> HtmlAttr
- rules :: String -> HtmlAttr
- selected :: HtmlAttr
- shape :: String -> HtmlAttr
- size :: String -> HtmlAttr
- src :: String -> HtmlAttr
- theclass :: String -> HtmlAttr
- thefor :: String -> HtmlAttr
- thestyle :: String -> HtmlAttr
- thetype :: String -> HtmlAttr
- title :: String -> HtmlAttr
- usemap :: String -> HtmlAttr
- valign :: String -> HtmlAttr
- value :: String -> HtmlAttr
- width :: String -> HtmlAttr
- frameborder :: Int -> HtmlAttr
- marginheight :: Int -> HtmlAttr
- marginwidth :: Int -> HtmlAttr
- noresize :: HtmlAttr
- scrolling :: String -> HtmlAttr
- stringToHtml :: String -> Html
- lineToHtml :: String -> Html
- linesToHtml :: [String] -> Html
- primHtmlChar :: String -> Html
- copyright :: Html
- spaceHtml :: Html
- bullet :: Html
- p :: Html -> Html
- type URL = String
- data HotLink = HotLink {
  - hotLinkURL :: URL
  - hotLinkContents :: Html
  - hotLinkAttributes :: [HtmlAttr]
  }
- hotlink :: URL -> Html -> HotLink
- ordList :: HTML a => [a] -> Html
- unordList :: HTML a => [a] -> Html
- defList :: (HTML a, HTML b) => [(a, b)] -> Html
- widget :: String -> String -> [HtmlAttr] -> Html
- checkbox :: String -> String -> Html
- hidden :: String -> String -> Html
- radio :: String -> String -> Html
- reset :: String -> String -> Html
- submit :: String -> String -> Html
- password :: String -> Html
- textfield :: String -> Html
- afile :: String -> Html
- clickmap :: String -> Html
- menu :: String -> [Html] -> Html
- gui :: String -> Html -> Html

# Data types

data Html Source

Instances

Show Html |
Monoid Html |
CHANGEATTRS Html |
ADDATTRS Html |
HTML Html |
HTMLTABLE Html |

data HtmlAttr Source

Attributes with name and value.

Instances

Show HtmlAttr |

# Classes

class HTML a where Source

HTML is the class of things that can be validly put inside an HTML tag. So this can be one or more `Html` elements, or a `String`, for example.

Methods

toHtml :: a -> Html Source

toHtmlFromList :: [a] -> Html Source

Instances

HTML Char |
HTML Html |
HTML HotLink |
HTML HtmlTable |
HTML HtmlTree |
HTML a => HTML [a] |
HTML a => HTML (Maybe a) |

class ADDATTRS a where Source

Methods

(!) :: a -> [HtmlAttr] -> aSource

Instances

ADDATTRS Html |
ADDATTRS HotLink |
ADDATTRS b => ADDATTRS (a -> b) |

class CHANGEATTRS a where Source

CHANGEATTRS is a more expressive alternative to ADDATTRS

Methods

changeAttrs :: a -> ([HtmlAttr] -> [HtmlAttr]) -> aSource

Instances

CHANGEATTRS Html |
CHANGEATTRS b => CHANGEATTRS (a -> b) |

# Primitives and basic combinators

(<<)Source

Arguments

:: HTML a |
=> (Html -> b) | Parent
-> a | Child
-> b |

Put something inside an HTML element.

concatHtml :: HTML a => [a] -> Html Source

(+++) :: (HTML a, HTML b) => a -> b -> Html Source

Create a piece of HTML which is the concatenation of two things which can be made into HTML.

noHtml :: Html Source

An empty piece of HTML.

isNoHtml :: Html -> Bool Source

Checks whether the given piece of HTML is empty.

tag Source

Arguments

:: String | Element name
-> Html | Element contents
-> Html |

Constructs an element with a custom name.

itag :: String -> Html Source

Constructs an element with a custom name, and without any children.

htmlAttrPair :: HtmlAttr -> (String, String)Source

emptyAttr :: String -> HtmlAttr Source

intAttr :: String -> Int -> HtmlAttr Source

strAttr :: String -> String -> HtmlAttr Source

htmlAttr :: String -> Html -> HtmlAttr Source

primHtml :: String -> Html Source

This is not processed for special chars. use stringToHtml or lineToHtml instead, for user strings, because they understand special chars, like ``<``.

# Rendering

showHtml :: HTML html => html -> String Source

Output the HTML without adding newlines or spaces within the markup. This should be the most time and space efficient way to render HTML, though the ouput is quite unreadable.

renderHtml :: HTML html => html -> String Source

Outputs indented HTML. Because space matters in HTML, the output is quite messy.

prettyHtml :: HTML html => html -> String Source

Outputs indented HTML, with indentation inside elements. This can change the meaning of the HTML document, and is mostly useful for debugging the HTML output. The implementation is inefficient, and you are normally better off using `showHtml` or `renderHtml`.

showHtmlFragment :: HTML html => html -> String Source

Render a piece of HTML without adding a DOCTYPE declaration or root element. Does not add any extra whitespace.

renderHtmlFragment :: HTML html => html -> String Source

Render a piece of indented HTML without adding a DOCTYPE declaration or root element. Only adds whitespace where it does not change the meaning of the document.

prettyHtmlFragment :: HTML html => html -> String Source

Render a piece of indented HTML without adding a DOCTYPE declaration or a root element. The indentation is done inside elements. This can change the meaning of the HTML document, and is mostly useful for debugging the HTML output. The implementation is inefficient, and you are normally better off using `showHtmlFragment` or `renderHtmlFragment`.

# Elements in XHTML Strict

abbr :: Html -> Html Source

acronym :: Html -> Html Source

address :: Html -> Html Source

anchor :: Html -> Html Source

area :: Html Source

bdo :: Html -> Html Source

big :: Html -> Html Source

blockquote :: Html -> Html Source

body :: Html -> Html Source

bold :: Html -> Html Source

br :: Html Source

button :: Html -> Html Source

caption :: Html -> Html Source

cite :: Html -> Html Source

col :: Html -> Html Source

colgroup :: Html -> Html Source

del :: Html -> Html Source

ddef :: Html -> Html Source

define :: Html -> Html Source

dlist :: Html -> Html Source

dterm :: Html -> Html Source

emphasize :: Html -> Html Source

fieldset :: Html -> Html Source

form :: Html -> Html Source

h1 :: Html -> Html Source

h2 :: Html -> Html Source

h3 :: Html -> Html Source

h4 :: Html -> Html Source

h5 :: Html -> Html Source

h6 :: Html -> Html Source

header :: Html -> Html Source

hr :: Html Source

image :: Html Source

input :: Html Source

ins :: Html -> Html Source

italics :: Html -> Html Source

keyboard :: Html -> Html Source

label :: Html -> Html Source

legend :: Html -> Html Source

li :: Html -> Html Source

meta :: Html Source

noscript :: Html -> Html Source

object :: Html -> Html Source

olist :: Html -> Html Source

optgroup :: Html -> Html Source

option :: Html -> Html Source

paragraph :: Html -> Html Source

param :: Html Source

pre :: Html -> Html Source

quote :: Html -> Html Source

sample :: Html -> Html Source

script :: Html -> Html Source

select :: Html -> Html Source

small :: Html -> Html Source

strong :: Html -> Html Source

style :: Html -> Html Source

sub :: Html -> Html Source

sup :: Html -> Html Source

table :: Html -> Html Source

tbody :: Html -> Html Source

td :: Html -> Html Source

textarea :: Html -> Html Source

tfoot :: Html -> Html Source

th :: Html -> Html Source

thead :: Html -> Html Source

thebase :: Html Source

thecode :: Html -> Html Source

thediv :: Html -> Html Source

thehtml :: Html -> Html Source

thelink :: Html -> Html Source

themap :: Html -> Html Source

thespan :: Html -> Html Source

thetitle :: Html -> Html Source

tr :: Html -> Html Source

tt :: Html -> Html Source

ulist :: Html -> Html Source

variable :: Html -> Html Source

# Extra elements in XHTML Frameset

frame :: Html -> Html Source

frameset :: Html -> Html Source

noframes :: Html -> Html Source

# Attributes in XHTML Strict

action :: String -> HtmlAttr Source

align :: String -> HtmlAttr Source

alt :: String -> HtmlAttr Source

altcode :: String -> HtmlAttr Source

archive :: String -> HtmlAttr Source

base :: String -> HtmlAttr Source

border :: Int -> HtmlAttr Source

bordercolor :: String -> HtmlAttr Source

cellpadding :: Int -> HtmlAttr Source

cellspacing :: Int -> HtmlAttr Source

checked :: HtmlAttr Source

codebase :: String -> HtmlAttr Source

cols :: String -> HtmlAttr Source

colspan :: Int -> HtmlAttr Source

content :: String -> HtmlAttr Source

coords :: String -> HtmlAttr Source

disabled :: HtmlAttr Source

enctype :: String -> HtmlAttr Source

height :: String -> HtmlAttr Source

href :: String -> HtmlAttr Source

hreflang :: String -> HtmlAttr Source

httpequiv :: String -> HtmlAttr Source

identifier :: String -> HtmlAttr Source

ismap :: HtmlAttr Source

lang :: String -> HtmlAttr Source

maxlength :: Int -> HtmlAttr Source

method :: String -> HtmlAttr Source

multiple :: HtmlAttr Source

name :: String -> HtmlAttr Source

nohref :: HtmlAttr Source

rel :: String -> HtmlAttr Source

rev :: String -> HtmlAttr Source

rows :: String -> HtmlAttr Source

rowspan :: Int -> HtmlAttr Source

rules :: String -> HtmlAttr Source

selected :: HtmlAttr Source

shape :: String -> HtmlAttr Source

size :: String -> HtmlAttr Source

src :: String -> HtmlAttr Source

theclass :: String -> HtmlAttr Source

thefor :: String -> HtmlAttr Source

thestyle :: String -> HtmlAttr Source

thetype :: String -> HtmlAttr Source

title :: String -> HtmlAttr Source

usemap :: String -> HtmlAttr Source

valign :: String -> HtmlAttr Source

value :: String -> HtmlAttr Source

width :: String -> HtmlAttr Source

# Extra attributes in XHTML Frameset

frameborder :: Int -> HtmlAttr Source

marginheight :: Int -> HtmlAttr Source

marginwidth :: Int -> HtmlAttr Source

noresize :: HtmlAttr Source

scrolling :: String -> HtmlAttr Source

# Converting strings to HTML

stringToHtml :: String -> Html Source

Convert a `String` to `Html`, converting characters that need to be escaped to HTML entities.

lineToHtml :: String -> Html Source

This converts a string, but keeps spaces as non-line-breakable.

linesToHtml :: [String] -> Html Source

This converts a string, but keeps spaces as non-line-breakable, and adds line breaks between each of the strings in the input list.

# Html abbreviations

primHtmlChar :: String -> Html Source

copyright :: Html Source

Copyright sign.

spaceHtml :: Html Source

Non-breaking space.

bullet :: Html Source

p :: Html -> Html Source

Same as `paragraph`.

# Hotlinks

type URL = String Source

data HotLink Source

Constructors

HotLink |
Fields hotLinkURL :: URL hotLinkContents :: Html hotLinkAttributes :: [HtmlAttr]

Instances

Show HotLink |
ADDATTRS HotLink |
HTML HotLink |

hotlink :: URL -> Html -> HotLink Source

# Lists

ordList :: HTML a => [a] -> Html Source

unordList :: HTML a => [a] -> Html Source

defList :: (HTML a, HTML b) => [(a, b)] -> Html Source

# Forms

widget :: String -> String -> [HtmlAttr] -> Html Source

checkbox :: String -> String -> Html Source

hidden :: String -> String -> Html Source

radio :: String -> String -> Html Source

reset :: String -> String -> Html Source

submit :: String -> String -> Html Source

password :: String -> Html Source

textfield :: String -> Html Source

afile :: String -> Html Source

clickmap :: String -> Html Source

menu :: String -> [Html] -> Html Source

Deprecated: menu generates strange XHTML, and is not flexible enough. Roll your own that suits your needs.

gui :: String -> Html -> Html Source