on master help sign in
Merge branch 'master' into type-safe-identifiers

Conflicts: hakyll.cabal

commitd08a33a28791a2c0cbf39abb59b7770abe20ebb0 authorJasper Van der Jeugt <jaspervdj@gmail.com> dateWed 8 Jun 2011, 15:53 (15 years ago) parenta6329a5699a4e1
5 files changed+55−1
hakyll.cabal+2−1 src/Hakyll.hs+2 src/Hakyll/Web/Util/Html.hs+30 tests/Hakyll/Web/Util/Html/Tests.hs+18 tests/TestSuite.hs+3
hakyll.cabal+2−1
@@ -1,5 +1,5 @@
11Name: hakyll
2−Version: 3.1.2.7
2+Version: 3.1.2.8
33
44Synopsis: A static website compiler library
55Description:
@@ -120,6 +120,7 @@ Library
120120 Hakyll.Web.Tags
121121 Hakyll.Web.Template
122122 Hakyll.Web.Template.Read
123+ Hakyll.Web.Util.Html
123124 Hakyll.Web.Util.Url
124125
125126 Other-Modules:
src/Hakyll.hs+2
@@ -29,6 +29,7 @@ module Hakyll
2929 , module Hakyll.Web.RelativizeUrls
3030 , module Hakyll.Web.Tags
3131 , module Hakyll.Web.Template
32+ , module Hakyll.Web.Util.Html
3233 , module Hakyll.Web.Util.Url
3334 ) where
3435
@@ -60,4 +61,5 @@ import Hakyll.Web.Pandoc.FileType
6061import Hakyll.Web.RelativizeUrls
6162import Hakyll.Web.Tags
6263import Hakyll.Web.Template
64+import Hakyll.Web.Util.Html
6365import 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
1212import qualified Hakyll.Web.Page.Metadata.Tests
1313import qualified Hakyll.Web.RelativizeUrls.Tests
1414import qualified Hakyll.Web.Template.Tests
15+import qualified Hakyll.Web.Util.Html.Tests
1516import qualified Hakyll.Web.Util.Url.Tests
1617
1718main :: IO ()
@@ -36,6 +37,8 @@ main = defaultMain
3637 Hakyll.Web.RelativizeUrls.Tests.tests
3738 , testGroup "Hakyll.Web.Template.Tests"
3839 Hakyll.Web.Template.Tests.tests
40+ , testGroup "Hakyll.Web.Util.Html.Tests"
41+ Hakyll.Web.Util.Html.Tests.tests
3942 , testGroup "Hakyll.Web.Util.Url.Tests"
4043 Hakyll.Web.Util.Url.Tests.tests
4144 ]