blob: 6076dc49210d2e06a17823c8f91c60619cdb4b01 (
plain)
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
|
module Text.Hakyll.Util
( trim,
split,
stripHTML
) where
import Data.Char
import Data.List
import Text.Regex
-- | Trim a string (drop spaces and tabs at both sides).
trim :: String -> String
trim = reverse . trim' . reverse . trim'
where trim' = dropWhile isSpace
-- | Strip html tags.
stripHTML :: String -> String
stripHTML [] = []
stripHTML str = let (beforeTag, rest) = break (== '<') str
(_, afterTag) = break (== '>') rest
in beforeTag ++ (stripHTML $ tail' afterTag)
-- We need a failsafe tail function.
where tail' [] = []
tail' xs = tail xs
-- | Split a list at a certain element.
split :: String -> String -> [String]
split pattern = splitRegex (mkRegex pattern)
|