summaryrefslogtreecommitdiff
path: root/src/Hakyll/Core/Run.hs
diff options
context:
space:
mode:
Diffstat (limited to 'src/Hakyll/Core/Run.hs')
-rw-r--r--src/Hakyll/Core/Run.hs34
1 files changed, 20 insertions, 14 deletions
diff --git a/src/Hakyll/Core/Run.hs b/src/Hakyll/Core/Run.hs
index 31280db..e850d99 100644
--- a/src/Hakyll/Core/Run.hs
+++ b/src/Hakyll/Core/Run.hs
@@ -141,17 +141,23 @@ runCompilers ((id', compiler) : compilers) = Hakyll $ do
result <- liftIO $ runCompiler compiler id' provider url store isModified
liftIO $ putStrLn $ "Generated target: " ++ show id'
- let CompileRule compiled = result
-
- case url of
- Nothing -> return ()
- Just r -> liftIO $ do
- putStrLn $ "Routing " ++ show id' ++ " to " ++ r
- let path = "_site" </> r
- makeDirectories path
- write path compiled
-
- liftIO $ putStrLn ""
-
- -- Continue for the remaining compilers
- unHakyll $ runCompilers compilers
+ case result of
+ -- Compile rule for one item, easy stuff
+ CompileRule compiled -> do
+ case url of
+ Nothing -> return ()
+ Just r -> liftIO $ do
+ putStrLn $ "Routing " ++ show id' ++ " to " ++ r
+ let path = "_site" </> r
+ makeDirectories path
+ write path compiled
+
+ liftIO $ putStrLn ""
+
+ -- Continue for the remaining compilers
+ unHakyll $ runCompilers compilers
+
+ -- Metacompiler, slightly more complicated
+ MetaCompileRule newCompilers -> do
+ -- Actually I was just kidding, it's not hard at all
+ unHakyll $ addNewCompilers compilers newCompilers