@@ -1,6 +1,8 @@
11--------------------------------------------------------------------------------
22{-# LANGUAGE OverloadedStrings #-}
33import Hakyll
4+import Data.List (sort)
5+import Control.Applicative ((<$>))
46
57
68--------------------------------------------------------------------------------
@@ -14,10 +16,28 @@ main = hakyll $ do
1416 route idRoute
1517 compile compressCssCompiler
1618
17− match (fromList ["about.rst", "index.markdown", "code.lhs"]) $ do
19+ match (fromList ["about.rst", "code.lhs"]) $ do
1820 route $ setExtension "html"
1921 compile $ pageCompiler
2022 >>= requireApplyTemplate "templates/default.html" defaultContext
2123 >>= relativizeUrls
2224
25+ match "posts/*" $ do
26+ route $ setExtension "html"
27+ compile $ do
28+ post <- pageCompiler
29+ saveSnapshot "content" post
30+ return post
31+ >>= requireApplyTemplate "templates/default.html" defaultContext
32+ >>= relativizeUrls
33+
34+ match "index.html" $ do
35+ route idRoute
36+ compile $ do
37+ posts <- sort <$> getMatches "posts/*"
38+ post <- requireSnapshot (head posts) "content"
39+ return post
40+ >>= requireApplyTemplate "templates/default.html" defaultContext
41+ >>= relativizeUrls
42+
2343 match "templates/*" $ compile templateCompiler