| module Main where
import Xml
main =
processXmlWith (albumf `o` deep (tag "album"))
albumf =
html
[ hhead
[ htitle
[ txt `o` children `o` tag "artist"
`o` children `o` tag "album"
, literal ": "
, keep /> tag "title" /> txt
]
]
, hbody [("bgcolor",("white"!))]
[ hcenter
[ h1 [ keep /> tag "title" /> txt ] ]
, h2 [ ("Notes"!) ]
, hpara [ notesf `o` (keep /> tag "notes") ]
, summaryf
]
]
notesf =
foldXml (txt ?> keep :>
tag "trackref" ?> replaceTag "EM" :>
tag "albumref" ?> mkLink :>
children)
summaryf =
htable [("BORDER",("1"!))]
[ hrow [ hcol [ ("Album title"!) ]
, hcol [ keep /> tag "title" /> txt ]
]
, hrow [ hcol [ ("Artist"!) ]
, hcol [ keep /> tag "artist" /> txt ]
]
, hrow [ hcol [ ("Recording date"!) ]
, hcol [ keep />
tag "recordingdate" /> txt ]
]
, hrow [ hcola [ ("VALIGN",("top"!)) ]
[ ("Catalog numbers"!) ]
, hcol
[ hlist
[ catno `oo`
numbered (deep (tag "catalogno"))
]
]
]
]
catno n =
mkElem "LI"
[ ((show n++". ")!), ("label"?), ("number"?)
, (" ("!), ("format"?), (")"!) ]
mkLink =
mkElemAttr "A" [ ("HREF",("link"?)) ]
[ children ] |