@@ -14,7 +14,7 @@
15-- > <img src="../images/lolcat.png" alt="Funny zomgroflcopter" />
15-- > <img src="../images/lolcat.png" alt="Funny zomgroflcopter" />
17−module Hakyll.Web.RelativizeUrls
17+module Hakyll.Web.Urls.Relativize
18 ( relativizeUrlsCompiler
18 ( relativizeUrlsCompiler
19 , relativizeUrls
19 , relativizeUrls
@@ -23,13 +23,10 @@ import Prelude hiding (id)
23import Control.Category (id)
23import Control.Category (id)
24import Control.Arrow ((&&&), (>>^))
24import Control.Arrow ((&&&), (>>^))
25import Data.List (isPrefixOf)
25import Data.List (isPrefixOf)
26−import qualified Data.Set as S
28−import Text.HTML.TagSoup
30import Hakyll.Core.Compiler
27import Hakyll.Core.Compiler
31import Hakyll.Web.Page
28import Hakyll.Web.Page
32−import Hakyll.Web.Util.Url
29+import Hakyll.Web.Urls
34-- | Compiler form of 'relativizeUrls' which automatically picks the right root
31-- | Compiler form of 'relativizeUrls' which automatically picks the right root
@@ -45,18 +42,6 @@ relativizeUrlsCompiler = getRoute &&& id >>^ uncurry relativize
45relativizeUrls :: String -- ^ Path to the site root
42relativizeUrls :: String -- ^ Path to the site root
46 -> String -- ^ HTML to relativize
43 -> String -- ^ HTML to relativize
47 -> String -- ^ Resulting HTML
44 -> String -- ^ Resulting HTML
48−relativizeUrls root = renderTags . map relativizeUrls' . parseTags
45+relativizeUrls root = withUrls rel
50− relativizeUrls' (TagOpen s a) = TagOpen s $ map (relativizeUrlsAttrs root) a
51− relativizeUrls' x = x
53−-- | Relativize URL's in attributes
55−relativizeUrlsAttrs :: String -- ^ Path to the site root
56− -> Attribute String -- ^ Attribute to relativize
57− -> Attribute String -- ^ Resulting attribute
58−relativizeUrlsAttrs root (key, value)
59− | key `S.member` urls && "/" `isPrefixOf` value = (key, root ++ value)
60− | otherwise = (key, value)
62− urls = S.fromList ["src", "href"]
47+ rel x = if "/" `isPrefixOf` x then root ++ x else x