3
3
4
4
5
5
module Test.Haddock.Xhtml
6
- ( Xhtml (.. )
7
- , parseXhtml , dumpXhtml
6
+ ( Xml (.. )
7
+ , parseXml , dumpXml
8
8
, stripLinks , stripLinksWhen , stripAnchorsWhen , stripFooter
9
9
) where
10
10
@@ -13,11 +13,12 @@ import Data.Generics.Aliases
13
13
import Data.Generics.Schemes
14
14
15
15
import Text.XML.Light
16
- import Text.XHtml
16
+ import Text.XHtml (Html , HtmlAttr , (!) )
17
+ import qualified Text.XHtml as Xhtml
17
18
18
19
19
- newtype Xhtml = Xhtml
20
- { xhtmlElement :: Element
20
+ newtype Xml = Xml
21
+ { xmlElement :: Element
21
22
} deriving Eq
22
23
23
24
@@ -27,19 +28,19 @@ deriving instance Eq Content
27
28
deriving instance Eq CData
28
29
29
30
30
- parseXhtml :: String -> Maybe Xhtml
31
- parseXhtml = fmap Xhtml . parseXMLDoc
31
+ parseXml :: String -> Maybe Xml
32
+ parseXml = fmap Xml . parseXMLDoc
32
33
33
34
34
- dumpXhtml :: Xhtml -> String
35
- dumpXhtml = ppElement . xhtmlElement
35
+ dumpXml :: Xml -> String
36
+ dumpXml = Xhtml. renderHtmlFragment . xmlElementToXhtml . xmlElement
36
37
37
38
38
- stripLinks :: Xhtml -> Xhtml
39
+ stripLinks :: Xml -> Xml
39
40
stripLinks = stripLinksWhen (const True )
40
41
41
42
42
- stripLinksWhen :: (String -> Bool ) -> Xhtml -> Xhtml
43
+ stripLinksWhen :: (String -> Bool ) -> Xml -> Xml
43
44
stripLinksWhen p =
44
45
processAnchors unlink
45
46
where
@@ -48,7 +49,7 @@ stripLinksWhen p =
48
49
| otherwise = attr
49
50
50
51
51
- stripAnchorsWhen :: (String -> Bool ) -> Xhtml -> Xhtml
52
+ stripAnchorsWhen :: (String -> Bool ) -> Xml -> Xml
52
53
stripAnchorsWhen p =
53
54
processAnchors unname
54
55
where
@@ -57,13 +58,13 @@ stripAnchorsWhen p =
57
58
| otherwise = attr
58
59
59
60
60
- processAnchors :: (Attr -> Attr ) -> Xhtml -> Xhtml
61
- processAnchors f = Xhtml . everywhere (mkT f) . xhtmlElement
61
+ processAnchors :: (Attr -> Attr ) -> Xml -> Xml
62
+ processAnchors f = Xml . everywhere (mkT f) . xmlElement
62
63
63
64
64
- stripFooter :: Xhtml -> Xhtml
65
+ stripFooter :: Xml -> Xml
65
66
stripFooter =
66
- Xhtml . everywhere (mkT defoot) . xhtmlElement
67
+ Xml . everywhere (mkT defoot) . xmlElement
67
68
where
68
69
defoot el
69
70
| isFooter el = el { elContent = [] }
@@ -77,17 +78,17 @@ stripFooter =
77
78
78
79
xmlElementToXhtml :: Element -> Html
79
80
xmlElementToXhtml (Element { .. }) =
80
- tag (qName elName) contents ! attrs
81
+ Xhtml. tag (qName elName) contents ! attrs
81
82
where
82
83
contents = mconcat $ map xmlContentToXhtml elContent
83
84
attrs = map xmlAttrToXhtml elAttribs
84
85
85
86
86
87
xmlContentToXhtml :: Content -> Html
87
88
xmlContentToXhtml (Elem el) = xmlElementToXhtml el
88
- xmlContentToXhtml (Text text) = toHtml $ cdData text
89
- xmlContentToXhtml (CRef cref ) = noHtml
89
+ xmlContentToXhtml (Text text) = Xhtml. toHtml $ cdData text
90
+ xmlContentToXhtml (CRef _ ) = Xhtml. noHtml
90
91
91
92
92
93
xmlAttrToXhtml :: Attr -> HtmlAttr
93
- xmlAttrToXhtml (Attr { .. }) = strAttr (qName attrKey) attrVal
94
+ xmlAttrToXhtml (Attr { .. }) = Xhtml. strAttr (qName attrKey) attrVal
0 commit comments