@@ -71,6 +71,7 @@ import qualified Data.Map as M
7171import Data.Maybe (catMaybes, fromMaybe)
7272import Data.Monoid (mconcat)
7373import Data.Ord (comparing)
74+import qualified Data.Set as S
7475import System.FilePath (takeBaseName, takeDirectory)
7576import Text.Blaze.Html (toHtml, toValue, (!))
7677import Text.Blaze.Html.Renderer.String (renderHtml)
@@ -124,7 +125,8 @@ buildTagsWith :: MonadMetadata m
124125buildTagsWith f pattern makeId = do
125126 ids <- getMatches pattern
126127 tagMap <- foldM addTags M.empty ids
127− return $ Tags (M.toList tagMap) makeId (PatternDependency pattern ids)
128+ let set' = S.fromList ids
129+ return $ Tags (M.toList tagMap) makeId (PatternDependency pattern set')
128130 where
129131 -- Create a tag map for one page
130132 addTags tagMap id' = do
@@ -148,8 +150,8 @@ buildCategories = buildTagsWith getCategory
148150tagsRules :: Tags -> (String -> Pattern -> Rules ()) -> Rules ()
149151tagsRules tags rules =
150152 forM_ (tagsMap tags) $ \(tag, identifiers) ->
151− create [tagsMakeId tags tag] $
152− rulesExtraDependencies [tagsDependency tags] $
153+ rulesExtraDependencies [tagsDependency tags] $
154+ create [tagsMakeId tags tag] $
153155 rules tag $ fromList identifiers
154156
155157