on master help sign in
Web.Util.String → {Web.Util.Url, Core.Util.String}
commit49989eab5767b24cb3e917b95137ae05566e34a8 authorJasper Van der Jeugt <jaspervdj@gmail.com> dateMon 28 Feb 2011, 22:33 (16 years ago) parentc355b04
12 files changed+46−37
hakyll.cabal+2−1 src/Hakyll.hs+4−2 src/Hakyll/Web/Util/String.hs → src/Hakyll/Core/Util/String.hs+1−26 src/Hakyll/Web/CompressCss.hs+1−1 src/Hakyll/Web/Feed.hs+1−1 src/Hakyll/Web/Page.hs+1−1 src/Hakyll/Web/Page/Metadata.hs+1−1 src/Hakyll/Web/Page/Read.hs+1−1 src/Hakyll/Web/Preview/Server.hs+1−1 src/Hakyll/Web/RelativizeUrls.hs+1−1 src/Hakyll/Web/Tags.hs+2−1 src/Hakyll/Web/Util/Url.hs+30
hakyll.cabal+2−1
@@ -65,7 +65,7 @@ library
6565 strict-concurrency >= 0.2
6666 exposed-modules: Hakyll
6767 Hakyll.Main
68− Hakyll.Web.Util.String
68+ Hakyll.Web.Util.Url
6969 Hakyll.Web.Preview.Server
7070 Hakyll.Web.Preview.Poll
7171 Hakyll.Web.CompressCss
@@ -85,6 +85,7 @@ library
8585 Hakyll.Core.UnixFilter
8686 Hakyll.Core.Util.Arrow
8787 Hakyll.Core.Util.File
88+ Hakyll.Core.Util.String
8889 Hakyll.Core.ResourceProvider
8990 Hakyll.Core.CompiledItem
9091 Hakyll.Core.Compiler
src/Hakyll.hs+4−2
@@ -12,6 +12,7 @@ module Hakyll
1212 , module Hakyll.Core.UnixFilter
1313 , module Hakyll.Core.Util.Arrow
1414 , module Hakyll.Core.Util.File
15+ , module Hakyll.Core.Util.String
1516 , module Hakyll.Core.Writable
1617 , module Hakyll.Main
1718 , module Hakyll.Web.CompressCss
@@ -24,7 +25,7 @@ module Hakyll
2425 , module Hakyll.Web.RelativizeUrls
2526 , module Hakyll.Web.Tags
2627 , module Hakyll.Web.Template
27− , module Hakyll.Web.Util.String
28+ , module Hakyll.Web.Util.Url
2829 ) where
2930
3031import Hakyll.Core.Compiler
@@ -38,6 +39,7 @@ import Hakyll.Core.Rules
3839import Hakyll.Core.UnixFilter
3940import Hakyll.Core.Util.Arrow
4041import Hakyll.Core.Util.File
42+import Hakyll.Core.Util.String
4143import Hakyll.Core.Writable
4244import Hakyll.Main
4345import Hakyll.Web.CompressCss
@@ -50,4 +52,4 @@ import Hakyll.Web.Pandoc
5052import Hakyll.Web.RelativizeUrls
5153import Hakyll.Web.Tags
5254import Hakyll.Web.Template
53−import Hakyll.Web.Util.String
55+import Hakyll.Web.Util.Url
src/Hakyll/Web/Util/String.hs → src/Hakyll/Core/Util/String.hsrenamed+1−26
@@ -1,17 +1,14 @@
11-- | Miscellaneous string manipulation functions.
22--
3−module Hakyll.Web.Util.String
3+module Hakyll.Core.Util.String
44 ( trim
55 , replaceAll
66 , splitAll
7− , toUrl
8− , toSiteRoot
97 ) where
108
119import Data.Char (isSpace)
1210import Data.Maybe (listToMaybe)
1311
14−import System.FilePath (splitPath, takeDirectory, joinPath)
1512import Text.Regex.PCRE ((=~~))
1613
1714-- | Trim a string (drop spaces, tabs and newlines at both sides).
@@ -49,25 +46,3 @@ splitAll pattern = filter (not . null) . splitAll'
4946 Just (o, l) ->
5047 let (before, tmp) = splitAt o src
5148 in before : splitAll' (drop l tmp)
52−
53−-- | Convert a filepath to an URL starting from the site root
54−--
55−-- Example:
56−--
57−-- > toUrl "foo/bar.html"
58−--
59−-- Result:
60−--
61−-- > "/foo/bar.html"
62−--
63−toUrl :: FilePath -> String
64−toUrl = ('/' :)
65−
66−-- | Get the relative url to the site root, for a given (absolute) url
67−--
68−toSiteRoot :: String -> String
69−toSiteRoot = emptyException . joinPath . map parent . splitPath . takeDirectory
70− where
71− parent = const ".."
72− emptyException [] = "."
73− emptyException x = x
src/Hakyll/Web/CompressCss.hs+1−1
@@ -12,7 +12,7 @@ import Control.Arrow ((>>^))
1212
1313import Hakyll.Core.Compiler
1414import Hakyll.Core.ResourceProvider
15−import Hakyll.Web.Util.String
15+import Hakyll.Core.Util.String
1616
1717-- | Compiler form of 'compressCss'
1818--
src/Hakyll/Web/Feed.hs+1−1
@@ -33,7 +33,7 @@ import Hakyll.Web.Page
3333import Hakyll.Web.Page.Metadata
3434import Hakyll.Web.Template
3535import Hakyll.Web.Template.Read.Hakyll (readTemplate)
36−import Hakyll.Web.Util.String
36+import Hakyll.Web.Util.Url
3737
3838import Paths_hakyll
3939
src/Hakyll/Web/Page.hs+1−1
@@ -73,7 +73,7 @@ import Hakyll.Web.Page.Read
7373import Hakyll.Web.Page.Metadata
7474import Hakyll.Web.Pandoc
7575import Hakyll.Web.Template
76−import Hakyll.Web.Util.String
76+import Hakyll.Web.Util.Url
7777
7878-- | Create a page from a body, without metadata
7979--
src/Hakyll/Web/Page/Metadata.hs+1−1
@@ -24,7 +24,7 @@ import System.FilePath (takeFileName)
2424import System.Locale (TimeLocale, defaultTimeLocale)
2525
2626import Hakyll.Web.Page.Internal
27−import Hakyll.Web.Util.String
27+import Hakyll.Core.Util.String
2828
2929-- | Get a metadata field. If the field does not exist, the empty string is
3030-- returned.
src/Hakyll/Web/Page/Read.hs+1−1
@@ -12,7 +12,7 @@ import Data.Map (Map)
1212import qualified Data.Map as M
1313
1414import Hakyll.Web.Page.Internal
15−import Hakyll.Web.Util.String
15+import Hakyll.Core.Util.String
1616
1717-- | We're using a simple state monad as parser
1818--
src/Hakyll/Web/Preview/Server.hs+1−1
@@ -18,7 +18,7 @@ import Snap.Http.Server ( httpServe, setAccessLog, setErrorLog, addListen
1818 , ConfigListen (..), emptyConfig
1919 )
2020
21−import Hakyll.Web.Util.String (replaceAll)
21+import Hakyll.Core.Util.String (replaceAll)
2222
2323-- | The first file in the list that actually exists is returned
2424--
src/Hakyll/Web/RelativizeUrls.hs+1−1
@@ -29,7 +29,7 @@ import Text.HTML.TagSoup
2929
3030import Hakyll.Core.Compiler
3131import Hakyll.Web.Page
32−import Hakyll.Web.Util.String
32+import Hakyll.Web.Util.Url
3333
3434-- | Compiler form of 'compressCss' which automatically picks the right root
3535-- path
src/Hakyll/Web/Tags.hs+2−1
@@ -55,10 +55,11 @@ import qualified Text.Blaze.Html5.Attributes as A
5555
5656import Hakyll.Web.Page
5757import Hakyll.Web.Page.Metadata
58−import Hakyll.Web.Util.String
58+import Hakyll.Web.Util.Url
5959import Hakyll.Core.Writable
6060import Hakyll.Core.Identifier
6161import Hakyll.Core.Compiler
62+import Hakyll.Core.Util.String
6263
6364-- | Data about tags
6465--
src/Hakyll/Web/Util/Url.hsnew file+30
@@ -0,0 +1,30 @@
1+-- | Miscellaneous URL manipulation functions.
2+--
3+module Hakyll.Web.Util.Url
4+ ( toUrl
5+ , toSiteRoot
6+ ) where
7+
8+import System.FilePath (splitPath, takeDirectory, joinPath)
9+
10+-- | Convert a filepath to an URL starting from the site root
11+--
12+-- Example:
13+--
14+-- > toUrl "foo/bar.html"
15+--
16+-- Result:
17+--
18+-- > "/foo/bar.html"
19+--
20+toUrl :: FilePath -> String
21+toUrl = ('/' :)
22+
23+-- | Get the relative url to the site root, for a given (absolute) url
24+--
25+toSiteRoot :: String -> String
26+toSiteRoot = emptyException . joinPath . map parent . splitPath . takeDirectory
27+ where
28+ parent = const ".."
29+ emptyException [] = "."
30+ emptyException x = x