summaryrefslogtreecommitdiff
path: root/src/Hakyll/Web
diff options
context:
space:
mode:
authorJasper Van der Jeugt <m@jaspervdj.be>2014-04-11 21:12:01 +0200
committerJasper Van der Jeugt <m@jaspervdj.be>2014-04-11 21:12:01 +0200
commit8229765cbdf971c15e18fc8eb5a5733340b57739 (patch)
tree04d9cc96855bac300f0bd1a1dffcdad348824962 /src/Hakyll/Web
parent889e6f59f761795af3f2cb83c2a551b9c8478d66 (diff)
downloadhakyll-8229765cbdf971c15e18fc8eb5a5733340b57739.tar.gz
Fix tag dependency issue, slightly improve caching
Diffstat (limited to 'src/Hakyll/Web')
-rw-r--r--src/Hakyll/Web/Paginate.hs5
-rw-r--r--src/Hakyll/Web/Tags.hs8
2 files changed, 8 insertions, 5 deletions
diff --git a/src/Hakyll/Web/Paginate.hs b/src/Hakyll/Web/Paginate.hs
index eafd3a9..1af792e 100644
--- a/src/Hakyll/Web/Paginate.hs
+++ b/src/Hakyll/Web/Paginate.hs
@@ -15,6 +15,7 @@ import Control.Monad (forM_)
import Data.List (unfoldr)
import qualified Data.Map as M
import Data.Monoid (mconcat)
+import qualified Data.Set as S
import Text.Printf (printf)
@@ -58,7 +59,7 @@ buildPaginate pattern = do
"invalid page number: " ++ show pn
return $ Paginate pagPages pagPlaces makeId
- (PatternDependency pattern idents)
+ (PatternDependency pattern (S.fromList idents))
--------------------------------------------------------------------------------
@@ -81,7 +82,7 @@ buildPaginateWith n makeId pattern = do
[(makeId i, i) | i <- [1 .. nPages]]
return $ Paginate (M.fromList paginatePages') (M.fromList pagPlaces') makeId
- (PatternDependency pattern idents)
+ (PatternDependency pattern (S.fromList idents))
--------------------------------------------------------------------------------
diff --git a/src/Hakyll/Web/Tags.hs b/src/Hakyll/Web/Tags.hs
index 0fa182c..0887856 100644
--- a/src/Hakyll/Web/Tags.hs
+++ b/src/Hakyll/Web/Tags.hs
@@ -71,6 +71,7 @@ import qualified Data.Map as M
import Data.Maybe (catMaybes, fromMaybe)
import Data.Monoid (mconcat)
import Data.Ord (comparing)
+import qualified Data.Set as S
import System.FilePath (takeBaseName, takeDirectory)
import Text.Blaze.Html (toHtml, toValue, (!))
import Text.Blaze.Html.Renderer.String (renderHtml)
@@ -124,7 +125,8 @@ buildTagsWith :: MonadMetadata m
buildTagsWith f pattern makeId = do
ids <- getMatches pattern
tagMap <- foldM addTags M.empty ids
- return $ Tags (M.toList tagMap) makeId (PatternDependency pattern ids)
+ let set' = S.fromList ids
+ return $ Tags (M.toList tagMap) makeId (PatternDependency pattern set')
where
-- Create a tag map for one page
addTags tagMap id' = do
@@ -148,8 +150,8 @@ buildCategories = buildTagsWith getCategory
tagsRules :: Tags -> (String -> Pattern -> Rules ()) -> Rules ()
tagsRules tags rules =
forM_ (tagsMap tags) $ \(tag, identifiers) ->
- create [tagsMakeId tags tag] $
- rulesExtraDependencies [tagsDependency tags] $
+ rulesExtraDependencies [tagsDependency tags] $
+ create [tagsMakeId tags tag] $
rules tag $ fromList identifiers