Skip to content

Commit 2555cc3

Browse files
committed
Refactor existing code to use XHTML printer instead of XML one.
1 parent 391225e commit 2555cc3

File tree

3 files changed

+28
-27
lines changed

3 files changed

+28
-27
lines changed

haddock-test/src/Test/Haddock/Xhtml.hs

Lines changed: 21 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,8 @@
33

44

55
module Test.Haddock.Xhtml
6-
( Xhtml(..)
7-
, parseXhtml, dumpXhtml
6+
( Xml(..)
7+
, parseXml, dumpXml
88
, stripLinks, stripLinksWhen, stripAnchorsWhen, stripFooter
99
) where
1010

@@ -13,11 +13,12 @@ import Data.Generics.Aliases
1313
import Data.Generics.Schemes
1414

1515
import Text.XML.Light
16-
import Text.XHtml
16+
import Text.XHtml (Html, HtmlAttr, (!))
17+
import qualified Text.XHtml as Xhtml
1718

1819

19-
newtype Xhtml = Xhtml
20-
{ xhtmlElement :: Element
20+
newtype Xml = Xml
21+
{ xmlElement :: Element
2122
} deriving Eq
2223

2324

@@ -27,19 +28,19 @@ deriving instance Eq Content
2728
deriving instance Eq CData
2829

2930

30-
parseXhtml :: String -> Maybe Xhtml
31-
parseXhtml = fmap Xhtml . parseXMLDoc
31+
parseXml :: String -> Maybe Xml
32+
parseXml = fmap Xml . parseXMLDoc
3233

3334

34-
dumpXhtml :: Xhtml -> String
35-
dumpXhtml = ppElement . xhtmlElement
35+
dumpXml :: Xml -> String
36+
dumpXml = Xhtml.renderHtmlFragment. xmlElementToXhtml . xmlElement
3637

3738

38-
stripLinks :: Xhtml -> Xhtml
39+
stripLinks :: Xml -> Xml
3940
stripLinks = stripLinksWhen (const True)
4041

4142

42-
stripLinksWhen :: (String -> Bool) -> Xhtml -> Xhtml
43+
stripLinksWhen :: (String -> Bool) -> Xml -> Xml
4344
stripLinksWhen p =
4445
processAnchors unlink
4546
where
@@ -48,7 +49,7 @@ stripLinksWhen p =
4849
| otherwise = attr
4950

5051

51-
stripAnchorsWhen :: (String -> Bool) -> Xhtml -> Xhtml
52+
stripAnchorsWhen :: (String -> Bool) -> Xml -> Xml
5253
stripAnchorsWhen p =
5354
processAnchors unname
5455
where
@@ -57,13 +58,13 @@ stripAnchorsWhen p =
5758
| otherwise = attr
5859

5960

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
6263

6364

64-
stripFooter :: Xhtml -> Xhtml
65+
stripFooter :: Xml -> Xml
6566
stripFooter =
66-
Xhtml . everywhere (mkT defoot) . xhtmlElement
67+
Xml . everywhere (mkT defoot) . xmlElement
6768
where
6869
defoot el
6970
| isFooter el = el { elContent = [] }
@@ -77,17 +78,17 @@ stripFooter =
7778

7879
xmlElementToXhtml :: Element -> Html
7980
xmlElementToXhtml (Element { .. }) =
80-
tag (qName elName) contents ! attrs
81+
Xhtml.tag (qName elName) contents ! attrs
8182
where
8283
contents = mconcat $ map xmlContentToXhtml elContent
8384
attrs = map xmlAttrToXhtml elAttribs
8485

8586

8687
xmlContentToXhtml :: Content -> Html
8788
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
9091

9192

9293
xmlAttrToXhtml :: Attr -> HtmlAttr
93-
xmlAttrToXhtml (Attr { .. }) = strAttr (qName attrKey) attrVal
94+
xmlAttrToXhtml (Attr { .. }) = Xhtml.strAttr (qName attrKey) attrVal

html-test/Main.hs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,10 +10,10 @@ import Test.Haddock
1010
import Test.Haddock.Xhtml
1111

1212

13-
checkConfig :: CheckConfig Xhtml
13+
checkConfig :: CheckConfig Xml
1414
checkConfig = CheckConfig
15-
{ ccfgRead = \mdl input -> stripIfRequired mdl <$> parseXhtml input
16-
, ccfgDump = dumpXhtml
15+
{ ccfgRead = \mdl input -> stripIfRequired mdl <$> parseXml input
16+
, ccfgDump = dumpXml
1717
, ccfgEqual = (==)
1818
}
1919

@@ -32,7 +32,7 @@ main = do
3232
}
3333

3434

35-
stripIfRequired :: String -> Xhtml -> Xhtml
35+
stripIfRequired :: String -> Xml -> Xml
3636
stripIfRequired mdl =
3737
stripLinks' . stripFooter
3838
where

hypsrc-test/Main.hs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,10 +11,10 @@ import Test.Haddock
1111
import Test.Haddock.Xhtml
1212

1313

14-
checkConfig :: CheckConfig Xhtml
14+
checkConfig :: CheckConfig Xml
1515
checkConfig = CheckConfig
16-
{ ccfgRead = \_ input -> strip <$> parseXhtml input
17-
, ccfgDump = dumpXhtml
16+
{ ccfgRead = \_ input -> strip <$> parseXml input
17+
, ccfgDump = dumpXml
1818
, ccfgEqual = (==)
1919
}
2020
where

0 commit comments

Comments
 (0)