on master help sign in
Merge branch 'master' into type-safe-identifiers
d08a33aJasper Van der Jeugt
hakyll.cabal+2−1
@@ -1,5 +1,5 @@
1Name: hakyll
1Name: hakyll
2−Version: 3.1.2.7
2+Version: 3.1.2.8
3
3
4Synopsis: A static website compiler library
4Synopsis: A static website compiler library
5Description:
5Description:
@@ -120,6 +120,7 @@ Library
120 Hakyll.Web.Tags
120 Hakyll.Web.Tags
121 Hakyll.Web.Template
121 Hakyll.Web.Template
122 Hakyll.Web.Template.Read
122 Hakyll.Web.Template.Read
123+ Hakyll.Web.Util.Html
123 Hakyll.Web.Util.Url
124 Hakyll.Web.Util.Url
124
125
125 Other-Modules:
126 Other-Modules:
src/Hakyll.hs+2
@@ -29,6 +29,7 @@ module Hakyll
29 , module Hakyll.Web.RelativizeUrls
29 , module Hakyll.Web.RelativizeUrls
30 , module Hakyll.Web.Tags
30 , module Hakyll.Web.Tags
31 , module Hakyll.Web.Template
31 , module Hakyll.Web.Template
32+ , module Hakyll.Web.Util.Html
32 , module Hakyll.Web.Util.Url
33 , module Hakyll.Web.Util.Url
33 ) where
34 ) where
34
35
@@ -60,4 +61,5 @@ import Hakyll.Web.Pandoc.FileType
60import Hakyll.Web.RelativizeUrls
61import Hakyll.Web.RelativizeUrls
61import Hakyll.Web.Tags
62import Hakyll.Web.Tags
62import Hakyll.Web.Template
63import Hakyll.Web.Template
64+import Hakyll.Web.Util.Html
63import Hakyll.Web.Util.Url
65import Hakyll.Web.Util.Url
src/Hakyll/Web/Util/Html.hsnew file+30
@@ -0,0 +1,30 @@
1+-- | Miscellaneous HTML manipulation functions
2+--
3+module Hakyll.Web.Util.Html
4+ ( stripTags
5+ ) where
6+
7+-- | Strip all HTML tags from a string
8+--
9+-- Example:
10+--
11+-- > stripTags "<p>foo</p>"
12+--
13+-- Result:
14+--
15+-- > "foo"
16+--
17+-- This also works for incomplete tags
18+--
19+-- Example:
20+--
21+-- > stripTags "<p>foo</p"
22+--
23+-- Result:
24+--
25+-- > "foo"
26+--
27+stripTags :: String -> String
28+stripTags [] = []
29+stripTags ('<' : xs) = stripTags $ drop 1 $ dropWhile (/= '>') xs
30+stripTags (x : xs) = x : stripTags xs
tests/Hakyll/Web/Util/Html/Tests.hsnew file+18
@@ -0,0 +1,18 @@
1+module Hakyll.Web.Util.Html.Tests
2+ ( tests
3+ ) where
4+
5+import Test.Framework
6+import Test.HUnit hiding (Test)
7+
8+import Hakyll.Web.Util.Html
9+import TestSuite.Util
10+
11+tests :: [Test]
12+tests = concat
13+ [ fromAssertions "stripTags"
14+ [ "foo" @=? stripTags "<p>foo</p>"
15+ , "foo bar" @=? stripTags "<p>foo</p> bar"
16+ , "foo" @=? stripTags "<p>foo</p"
17+ ]
18+ ]
tests/TestSuite.hs+3
@@ -12,6 +12,7 @@ import qualified Hakyll.Web.Page.Tests
12import qualified Hakyll.Web.Page.Metadata.Tests
12import qualified Hakyll.Web.Page.Metadata.Tests
13import qualified Hakyll.Web.RelativizeUrls.Tests
13import qualified Hakyll.Web.RelativizeUrls.Tests
14import qualified Hakyll.Web.Template.Tests
14import qualified Hakyll.Web.Template.Tests
15+import qualified Hakyll.Web.Util.Html.Tests
15import qualified Hakyll.Web.Util.Url.Tests
16import qualified Hakyll.Web.Util.Url.Tests
16
17
17main :: IO ()
18main :: IO ()
@@ -36,6 +37,8 @@ main = defaultMain
36 Hakyll.Web.RelativizeUrls.Tests.tests
37 Hakyll.Web.RelativizeUrls.Tests.tests
37 , testGroup "Hakyll.Web.Template.Tests"
38 , testGroup "Hakyll.Web.Template.Tests"
38 Hakyll.Web.Template.Tests.tests
39 Hakyll.Web.Template.Tests.tests
40+ , testGroup "Hakyll.Web.Util.Html.Tests"
41+ Hakyll.Web.Util.Html.Tests.tests
39 , testGroup "Hakyll.Web.Util.Url.Tests"
42 , testGroup "Hakyll.Web.Util.Url.Tests"
40 Hakyll.Web.Util.Url.Tests.tests
43 Hakyll.Web.Util.Url.Tests.tests
41 ]
44 ]