@@ -19,6 +19,7 @@
1919module Hakyll.Core.Rules
2020 ( Rules
2121 , match
22+ , matchMetadata
2223 , create
2324 , version
2425 , compile
@@ -131,6 +132,19 @@ match pattern rules = do
131132 setMatches ids env = env {rulesMatches = ids}
132133
133134
135+--------------------------------------------------------------------------------
136+matchMetadata :: Pattern -> (Metadata -> Bool) -> Rules () -> Rules ()
137+matchMetadata pattern metadataPred rules = do
138+ tellPattern pattern
139+ flush
140+ idsAndMetadata <- getAllMetadata pattern
141+ let ids = map fst . filter (metadataPred . snd) $ idsAndMetadata
142+ tellResources ids
143+ Rules $ local (setMatches ids) $ unRules $ rules >> flush
144+ where
145+ setMatches ids env = env {rulesMatches = ids}
146+
147+
134148--------------------------------------------------------------------------------
135149create :: [Identifier] -> Rules () -> Rules ()
136150create ids rules = do