blob: 7fa4a7050e060d06ac0d5e247ef63ee6410775c4 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
|
{-# LANGUAGE CPP #-}
import Data.Char
import Data.List
import System.Environment
import System.FilePath
import Test.Haddock
import Test.Haddock.Xhtml
checkConfig :: CheckConfig Xhtml
checkConfig = CheckConfig
{ ccfgRead = \_ input -> strip <$> parseXhtml input
, ccfgDump = dumpXhtml
, ccfgEqual = (==)
}
where
strip = stripAnchors' . stripLinks' . stripFooter
stripLinks' = stripLinksWhen $ \href -> "#local-" `isPrefixOf` href
stripAnchors' = stripAnchorsWhen $ \name -> "local-" `isPrefixOf` name
dirConfig :: DirConfig
dirConfig = (defaultDirConfig $ takeDirectory __FILE__)
{ dcfgCheckIgnore = checkIgnore
}
main :: IO ()
main = runAndCheck =<< parseArgs checkConfig dirConfig =<< getArgs
checkIgnore :: FilePath -> Bool
checkIgnore file
| and . map ($ file) $ [isHtmlFile, isSourceFile, isModuleFile] = False
where
isHtmlFile = (== ".html") . takeExtension
isSourceFile = (== "src") . takeDirectory
isModuleFile = isUpper . head . takeBaseName
checkIgnore _ = True
|