@@ -3,19 +3,28 @@ import Text.Hakyll.Render
33import Text.Hakyll.Renderables
44import Text.Hakyll.File
55
6−import Control.Monad(mapM_)
6+import Control.Monad (mapM_, liftM)
7+import Data.List (sort)
8+
9+import Text.Regex.Posix
710
811main = hakyll $ do
912 directory css "css"
1013 directory static "images"
1114 directory static "examples"
1215
13− mapM_ render' [ "about.markdown"
14− , "index.markdown"
15− , "tutorials.markdown"
16− , "tutorial1.markdown"
17− , "tutorial2.markdown"
18− , "tutorial3.markdown"
19− ]
16+ tutorials <- liftM (sort . filter (=~ "tutorial[0-9]*.markdown")) $ getRecursiveContents "."
17+ let tutorialList = renderAndConcat "templates/tutorialitem.html"
18+ (map createPagePath tutorials)
19+ tutorialPage = createCustomPage "tutorials.html"
20+ ("templates/tutorialitem.html" : tutorials)
21+ [ ("title", Left "Tutorials")
22+ , ("tutorials", Right tutorialList)
23+ ]
24+ renderChain ["templates/tutorials.html", "templates/default.html"] tutorialPage
25+
26+ mapM_ render' $ [ "about.markdown"
27+ , "index.markdown"
28+ ] ++ tutorials
2029
2130 where render' = renderChain ["templates/default.html"] . createPagePath