on master help sign in
Update example site
commit00262e3f6dd84ac9f44d7b1f23111336ef937c5e authorJasper Van der Jeugt <m@jaspervdj.be> dateThu 13 Dec 2012, 11:08 (14 years ago) parent251e112
18 files changed+312−101
data/example/code.lhs−21 data/example/contact.markdown+6 data/example/css/default.css+9−5 data/example/css/syntax.css−18 data/example/index.html+19 data/example/index.markdown−27 data/example/posts/2012-08-12-spqr.markdown+59 data/example/posts/2012-10-07-rosa-rosa-rosam.markdown+45 data/example/posts/2012-11-28-carpe-diem.markdown+50 data/example/posts/2012-11-28-example-post.markdown−5 data/example/posts/2012-12-07-running-hakyll.markdown−7 data/example/posts/2012-12-07-tu-quoque.markdown+57 data/example/site.hs+41−9 data/example/templates/archive.html+3 data/example/templates/default.html+5−3 data/example/templates/post-item.html+3 data/example/templates/post.html+3 hakyll.cabal+12−6
data/example/code.lhsdeleted−21
@@ -1,21 +0,0 @@
1−---
2−title: Code
3−---
4−Etiam condimentum auctor semper. Donec lobortis, magna id sodales sollicitudin,
5−lectus mi egestas nulla, pulvinar lobortis nunc eros id nisl. Curabitur
6−imperdiet, erat at accumsan vulputate.
7−
8−> reverse' [] = []
9−> reverse' (x:xs) = (reverse' xs) ++ [x]
10−
11−Purus nunc blandit nulla, dictum.
12−
13−vestibulum sem lorem eget ipsum. Nunc tincidunt, turpis ut fermentum dapibus,
14−justo tortor bibendum sem, at facilisis justo odio luctus lectus. Quisque nec
15−ligula ipsum. Nunc augue lacus, ullamcorper vel dapibus in, mattis eget elit.
16−
17−> main = print $ reverse' [1 .. 10]
18−
19−Integer ut dui eu felis mollis vestibulum. Etiam at nibh id diam aliquet
20−vestibulum sit amet a nibh. Aliquam erat volutpat. Etiam vitae nulla at dolor
21−fringilla tempor ut a nunc. Pellentesque elementum elit lorem.
data/example/contact.markdownnew file+6
@@ -0,0 +1,6 @@
1+---
2+title: Contact
3+---
4+
5+I live in a small hut in the mountains of Kumano Kodō on Kii Hantō and would not
6+like to be contacted.
data/example/css/default.css+9−5
@@ -41,12 +41,16 @@ div#footer {
4141 text-align: right;
4242}
4343
44−div.figure {
45− float: right;
46− margin: 20px 0px 20px 20px;
44+h1 {
45+ font-size: 24px;
4746}
4847
49−div.figure p.caption {
50− text-align: center;
48+h2 {
49+ font-size: 20px;
50+}
51+
52+div.info {
53+ color: #555;
54+ font-size: 14px;
5155 font-style: italic;
5256}
data/example/css/syntax.cssdeleted−18
@@ -1,18 +0,0 @@
1−/* Generated by pandoc. */
2−table.sourceCode, tr.sourceCode, td.lineNumbers, td.sourceCode, table.sourceCode pre
3− { margin: 0; padding: 0; border: 0; vertical-align: baseline; border: none; }
4−td.lineNumbers { border-right: 1px solid #AAAAAA; text-align: right; color: #AAAAAA; padding-right: 5px; padding-left: 5px; }
5−td.sourceCode { padding-left: 5px; }
6−pre.sourceCode span.kw { color: #007020; font-weight: bold; }
7−pre.sourceCode span.dt { color: #902000; }
8−pre.sourceCode span.dv { color: #40a070; }
9−pre.sourceCode span.bn { color: #40a070; }
10−pre.sourceCode span.fl { color: #40a070; }
11−pre.sourceCode span.ch { color: #4070a0; }
12−pre.sourceCode span.st { color: #4070a0; }
13−pre.sourceCode span.co { color: #60a0b0; font-style: italic; }
14−pre.sourceCode span.ot { color: #007020; }
15−pre.sourceCode span.al { color: red; font-weight: bold; }
16−pre.sourceCode span.fu { color: #06287e; }
17−pre.sourceCode span.re { }
18−pre.sourceCode span.er { color: red; font-weight: bold; }
data/example/index.htmlnew file+19
@@ -0,0 +1,19 @@
1+---
2+title: Home
3+---
4+
5+<h2>Welcome</h2>
6+
7+<img src="/images/haskell-logo.png" style="float: right; margin: 10px;" />
8+
9+<p>Welcome to my blog!</p>
10+
11+<p>I've reproduced a list of recent posts here for your reading pleasure:</p>
12+
13+<h2>Posts</h2>
14+
15+<ul>
16+ $posts$
17+</ul>
18+
19+<p>…or you can find more in the <a href="/archive.html">archives</a>.
data/example/index.markdowndeleted−27
@@ -1,27 +0,0 @@
1−---
2−title: Home
3−---
4−Lorem ipsum dolor sit amet, consectetur adipiscing elit. Fusce tempor, urna et
5−auctor tincidunt, eros mauris facilisis purus, eget sollicitudin leo massa sit
6−amet ipsum. Vivamus eu massa in urna vehicula rutrum eget sit amet purus.
7−
8−![Haskell logo](/images/haskell-logo.png)
9−
10−- Mauris sit amet justo mi.
11−- Curabitur vel quam felis.
12−- In hac habitasse platea dictumst.
13−
14−Etiam nec consequat risus. Donec consequat est vitae neque fermentum
15−feugiat nec ac nibh. Nulla rhoncus, odio quis scelerisque rutrum, metus sem
16−tempor ante, a ornare ipsum felis sed ligula. Morbi urna lectus, scelerisque
17−non pharetra in, rutrum quis ligula. Phasellus semper ullamcorper arcu eu
18−auctor.
19−
20−Aliquam sagittis tincidunt libero ut elementum. Ut sit amet vestibulum metus.
21−Ut aliquet congue neque eu tincidunt. Integer eu elit sed massa sollicitudin
22−vehicula nec ut sem. Cras euismod enim eget purus lacinia non feugiat urna
23−imperdiet. Aliquam justo sem, viverra eu vehicula vitae, imperdiet vel magna.
24−
25−Pellentesque enim dui, interdum elementum vehicula luctus, feugiat vitae arcu.
26−Vestibulum ut felis justo. Quisque vestibulum mauris eget ipsum luctus
27−consequat.
data/example/posts/2012-08-12-spqr.markdownnew file+59
@@ -0,0 +1,59 @@
1+---
2+title: S.P.Q.R.
3+---
4+
5+Mauris in lorem nisl. Maecenas tempus facilisis ante, eget viverra nisl
6+tincidunt et. Donec turpis lectus, mattis ac malesuada a, accumsan eu libero.
7+Morbi condimentum, tortor et tincidunt ullamcorper, sem quam pretium nulla, id
8+convallis lectus libero nec turpis. Proin dapibus nisi id est sodales nec
9+ultrices tortor pellentesque. Vivamus vel nisi ac lacus sollicitudin vulputate
10+ac ut ligula. Nullam feugiat risus eget eros gravida in molestie sapien euismod.
11+Nunc sed hendrerit orci. Nulla mollis consequat lorem ac blandit. Ut et turpis
12+mauris. Nulla est odio, posuere id ullamcorper sit amet, tincidunt vel justo.
13+Curabitur placerat tincidunt varius. Nulla vulputate, ipsum eu consectetur
14+mollis, dui nibh aliquam neque, at ultricies leo ligula et arcu. Proin et mi
15+eget tellus sodales lobortis. Sed tempor, urna vel pulvinar faucibus, lectus
16+urna vehicula ante, at facilisis dolor odio at lorem. Morbi vehicula euismod
17+urna, et imperdiet urna ornare vitae.
18+
19+Sed tincidunt sollicitudin ultrices. In hac habitasse platea dictumst. Morbi
20+ligula lectus, egestas at ultricies nec, fringilla et tellus. Duis urna lorem,
21+bibendum a ornare sed, euismod sed nunc. Aliquam tempor massa at velit fringilla
22+fringilla. Praesent sit amet tempor felis. Maecenas id felis ac velit aliquam
23+tempor a sit amet orci. Nunc placerat nulla pellentesque sem commodo cursus.
24+Praesent quis sapien orci, quis ultricies augue. Nam vestibulum sem non augue
25+semper tincidunt pellentesque ipsum volutpat. Duis congue, nunc a aliquam
26+luctus, quam ante convallis nisi, ac pellentesque lacus orci vel turpis. Cum
27+sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus
28+mus. Suspendisse hendrerit nisl eu felis sagittis faucibus. Nunc eu congue
29+lorem. Quisque non nibh nisi, et ultrices massa. Sed vitae erat vitae nulla
30+pellentesque fermentum.
31+
32+Ut diam nunc, consectetur ut ultrices eu, iaculis sed felis. Sed lacinia, odio
33+et accumsan luctus, arcu ipsum accumsan erat, sit amet malesuada libero lacus et
34+velit. Donec accumsan tristique tristique. Proin a metus magna, vitae mattis
35+nisl. Integer a libero ipsum. Mauris faucibus eleifend metus id sodales. Morbi
36+ornare, nibh nec facilisis imperdiet, turpis sem commodo lorem, id commodo
37+mauris metus vitae justo. Etiam at pellentesque tortor. Proin mollis accumsan
38+ligula, nec tempus augue auctor quis. Nulla lacinia, mi quis lobortis auctor,
39+nisi diam posuere dui, pulvinar feugiat dui libero eget quam. Fusce eu risus
40+nunc, a consectetur orci. Class aptent taciti sociosqu ad litora torquent per
41+conubia nostra, per inceptos himenaeos. Maecenas venenatis aliquet orci, a
42+ultricies sem facilisis eu. Donec dolor purus, porta condimentum convallis nec,
43+dignissim nec libero.
44+
45+Etiam rutrum ultricies dui, et interdum metus elementum et. Nulla sapien nunc,
46+interdum tristique porttitor in, laoreet vitae mi. Ut vehicula auctor mauris sit
47+amet bibendum. Phasellus adipiscing mattis libero, eget adipiscing erat
48+dignissim at. Vivamus convallis malesuada metus nec cursus. Ut cursus, lorem
49+eleifend sollicitudin condimentum, felis tortor sodales augue, ac tempus lacus
50+ipsum vitae quam. Vestibulum vitae lacus non tortor vehicula iaculis faucibus
51+quis massa.
52+
53+Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus
54+mus. Duis malesuada neque nec ante porttitor accumsan. Suspendisse potenti.
55+Aliquam in lacus magna, imperdiet laoreet lectus. Praesent id diam nec ante
56+commodo rhoncus nec vel augue. Pellentesque tortor massa, dignissim ut sagittis
57+sed, hendrerit vitae nunc. Nam gravida, urna vitae hendrerit rutrum, felis augue
58+vulputate tortor, ut varius velit libero nec lectus. In adipiscing massa in est
59+scelerisque ullamcorper. Vivamus in nisi metus.
data/example/posts/2012-10-07-rosa-rosa-rosam.markdownnew file+45
@@ -0,0 +1,45 @@
1+---
2+title: Rosa Rosa Rosam
3+---
4+
5+Suspendisse pharetra ullamcorper sem et auctor. Suspendisse vitae tellus eu
6+turpis dignissim gravida ut ut tortor. Cum sociis natoque penatibus et magnis
7+dis parturient montes, nascetur ridiculus mus. Morbi aliquam sapien quis nisl
8+sodales non aliquet nisl iaculis. Curabitur fermentum orci vel sapien
9+pellentesque id condimentum metus vehicula. Curabitur turpis purus, scelerisque
10+at interdum quis, placerat sit amet tortor. Aliquam erat volutpat.
11+
12+Integer posuere felis non arcu suscipit ullamcorper. Nam tempus risus venenatis
13+orci sagittis eu aliquam ante tincidunt. Aenean vehicula ipsum id sapien
14+tincidunt commodo. Aliquam erat volutpat. Curabitur vehicula libero ac turpis
15+cursus consectetur. Praesent posuere egestas purus et dapibus. Mauris egestas,
16+lectus vitae scelerisque ultricies, metus lorem tempor nisi, sed vehicula tortor
17+mauris nec urna. Quisque urna tellus, facilisis at mollis eget, adipiscing in
18+nisl. Proin quam arcu, euismod et imperdiet sed, ultricies sed orci.
19+
20+Nulla malesuada sem eget lectus scelerisque nec rhoncus metus interdum. In dui
21+felis, rhoncus id scelerisque eget, vulputate id sem. Nulla facilisi. Vestibulum
22+eleifend, metus dignissim lacinia ornare, magna nulla vehicula nisi, sed
23+molestie mauris ipsum vel turpis. Class aptent taciti sociosqu ad litora
24+torquent per conubia nostra, per inceptos himenaeos. Nulla urna leo, vehicula
25+eget dignissim a, hendrerit ut risus. Fusce ultricies elementum placerat. Nam at
26+dolor sed nisi mollis sollicitudin vitae at urna. Vestibulum iaculis adipiscing
27+eros et mollis.
28+
29+Phasellus ultricies elit eu risus sagittis eu dictum ante ultrices. Nulla
30+congue, augue ac placerat tempor, orci mi luctus nisi, at varius ipsum sem sed
31+eros. Vivamus eget velit eget felis posuere ornare. In sed metus non est iaculis
32+facilisis dapibus sit amet enim. Aliquam viverra tortor eget neque volutpat in
33+auctor urna rutrum. Aliquam ligula augue, congue sit amet rutrum in, semper vel
34+nulla. Sed tempus porttitor faucibus. Donec cursus sodales nulla, quis lacinia
35+mi vehicula vel. Sed nec purus orci. Nam leo sapien, rutrum a ultrices quis,
36+placerat vel ligula. Donec massa quam, pellentesque et molestie nec, hendrerit
37+id mauris. In hac habitasse platea dictumst. Cras quis quam sem. Curabitur in
38+arcu diam, in interdum mauris.
39+
40+Proin lorem sapien, iaculis et faucibus nec, dictum sed nunc. Pellentesque in
41+purus justo. Vestibulum facilisis rutrum nisi, a egestas nunc suscipit sed. Ut
42+quis tortor a arcu bibendum placerat non sed ante. Praesent orci sem, posuere
43+sit amet cursus molestie, volutpat ut purus. Curabitur aliquam, purus in
44+pharetra viverra, lorem leo aliquam tellus, vel consequat felis neque et mauris.
45+Aliquam erat volutpat.
data/example/posts/2012-11-28-carpe-diem.markdownnew file+50
@@ -0,0 +1,50 @@
1+---
2+title: Carpe Diem
3+---
4+
5+Fusce tortor quam, egestas in posuere quis, porttitor vel turpis. Donec
6+vulputate porttitor augue at rhoncus. Proin iaculis consectetur sagittis.
7+Curabitur venenatis turpis sit amet purus tristique nec posuere risus laoreet.
8+Nullam nisi sem, dapibus id semper id, egestas vel arcu. Morbi porttitor ipsum
9+placerat erat consequat sed consequat purus feugiat. Donec auctor elit ut risus
10+mattis facilisis. Lorem ipsum dolor sit amet, consectetur adipiscing elit.
11+
12+Proin vulputate sapien facilisis leo ornare pulvinar. Fusce tempus massa a risus
13+semper iaculis. Suspendisse sollicitudin posuere nunc, sit amet rutrum leo
14+facilisis mattis. Sed ornare auctor dui, vitae rutrum neque auctor sit amet.
15+Proin ac dui magna. Mauris vehicula interdum augue, nec ultrices libero egestas
16+quis. Nunc convallis euismod ipsum, id sollicitudin orci consequat ac. Fusce
17+bibendum congue libero, in rutrum nulla congue non. Cras sit amet risus tortor,
18+eu pellentesque dui. Phasellus euismod enim non nibh sodales quis consectetur
19+lorem laoreet. Vivamus a egestas quam. Curabitur in tortor augue, vitae varius
20+tellus. Integer varius, elit ac gravida suscipit, eros erat pellentesque nisi,
21+et tristique augue odio id nulla. Aliquam sit amet nunc vel tellus hendrerit
22+tempus ac vel sem.
23+
24+Aenean tincidunt sollicitudin sapien ut porttitor. Curabitur molestie adipiscing
25+lorem vel scelerisque. Donec vitae interdum est. Proin rutrum vulputate
26+faucibus. Suspendisse sit amet felis odio, non volutpat ante. Sed eu lectus
27+quam. Curabitur tristique rhoncus est, vel commodo tortor suscipit semper.
28+Maecenas feugiat vestibulum nisi id facilisis. Nulla non tincidunt libero.
29+Praesent ultrices interdum commodo. Sed euismod nisl auctor leo ultrices rutrum.
30+Aliquam nibh felis, congue molestie blandit at, bibendum at eros. Aenean
31+tincidunt, tortor iaculis placerat sollicitudin, lorem justo tempor diam, et
32+posuere sapien leo et magna. Quisque vel aliquam mauris.
33+
34+Proin varius tempus fermentum. Cum sociis natoque penatibus et magnis dis
35+parturient montes, nascetur ridiculus mus. Sed tincidunt nunc id magna
36+adipiscing non sollicitudin turpis tempor. Etiam vel elit ipsum, quis euismod
37+velit. Quisque elementum magna vitae quam venenatis lacinia. Sed at arcu ipsum.
38+Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos
39+himenaeos. Donec ut lorem ac sapien cursus lacinia sit amet mollis dolor.
40+Vivamus tempus odio nec magna faucibus sed hendrerit lorem tempor.
41+
42+Vestibulum eu nisi arcu. Curabitur nisi risus, fermentum ut lacinia ut, interdum
43+nec magna. Nunc aliquet gravida massa, eu aliquam lorem faucibus at. Sed
44+sollicitudin volutpat velit id tempor. In nibh justo, pharetra et pretium
45+dignissim, tempus in turpis. Phasellus eget lobortis nisl. Phasellus sed
46+fermentum diam. Nam tempus pharetra odio, quis congue eros imperdiet eu. Aliquam
47+dui eros, hendrerit et vulputate vel, porta eu eros. Nullam nisi dui, commodo
48+eget pharetra ut, ornare sit amet nunc. Fusce vel neque urna. Maecenas nulla
49+ante, egestas at consequat quis, fermentum a enim. Aliquam id tristique urna.
50+Integer augue justo, scelerisque et consectetur id, rhoncus eget enim.
data/example/posts/2012-11-28-example-post.markdowndeleted−5
@@ -1,5 +0,0 @@
1−---
2−title: An example post
3−---
4−
5−This is an example post.
data/example/posts/2012-12-07-running-hakyll.markdowndeleted−7
@@ -1,7 +0,0 @@
1−---
2−title: Up and running with Hakyll!
3−---
4−
5−# Up and running with Hakyll!
6−
7−Congratulations, you succesfully compiled your Hakyll blog.
data/example/posts/2012-12-07-tu-quoque.markdownnew file+57
@@ -0,0 +1,57 @@
1+---
2+title: Tu Quoque
3+---
4+
5+Vestibulum leo turpis, dignissim quis ultrices sit amet, iaculis ac ligula.
6+Pellentesque tristique, velit eget scelerisque scelerisque, est dolor ultrices
7+arcu, quis ullamcorper justo arcu luctus mauris. Integer congue molestie nisi id
8+posuere. Fusce pellentesque gravida tempus. Integer viverra tortor nec eros
9+mollis quis convallis sem laoreet. Nulla id libero ac erat varius laoreet. Proin
10+sed est est. Curabitur lacinia fermentum lorem, elementum malesuada ipsum
11+malesuada ut. Donec suscipit elit id leo vehicula mattis non sed leo. Morbi
12+varius eleifend varius. Nulla vestibulum, neque vitae aliquam eleifend, nisi
13+tellus placerat nunc, quis suscipit elit turpis eu tortor. Etiam euismod
14+convallis lectus quis venenatis. Phasellus laoreet magna in nibh cursus eu
15+egestas nulla convallis. Aliquam vel ullamcorper risus. Fusce dictum, massa id
16+consequat viverra, nulla ante tristique est, a faucibus nisi enim nec dui. Donec
17+metus ligula, condimentum at porttitor eget, lobortis at quam.
18+
19+Aenean vel libero in magna ultricies congue in a odio. Donec faucibus rutrum
20+ornare. Fusce dictum eleifend fermentum. Vestibulum vel nibh a metus porttitor
21+rhoncus. Pellentesque id quam neque, eget molestie arcu. Integer in elit vel
22+neque viverra ultricies in eget massa. Nam ut convallis est. Pellentesque eros
23+eros, sodales non vehicula et, tincidunt ut odio. Cras suscipit ultrices metus
24+sit amet molestie. Fusce enim leo, vehicula sed sodales quis, adipiscing at
25+ipsum.
26+
27+Nunc tempor dignissim enim, sed tincidunt eros bibendum quis. Curabitur et dolor
28+augue, id laoreet mi. Nulla cursus felis id dui vehicula vitae ornare lorem
29+blandit. Cras eget dui nec odio volutpat pharetra. Fusce hendrerit justo justo,
30+vel imperdiet enim. Vivamus elit risus, interdum ultrices accumsan eleifend,
31+vestibulum vitae sapien. Integer bibendum ullamcorper tristique. Nulla quis odio
32+lectus, quis eleifend augue. Integer a ligula mauris. Aenean et tempus tortor.
33+Quisque at tortor mi. Vivamus accumsan feugiat est a blandit. Sed vitae enim ut
34+dolor semper sodales. Duis tristique, ante et placerat elementum, nulla tellus
35+pellentesque sapien, quis posuere velit mi eget nulla. Sed vestibulum nunc non
36+est porttitor ut rutrum nibh semper. Pellentesque habitant morbi tristique
37+senectus et netus et malesuada fames ac turpis egestas.
38+
39+Nulla adipiscing ultricies lobortis. Vivamus iaculis nisl vitae tellus laoreet
40+vitae aliquet lacus mollis. Phasellus ut lacus urna, sed sagittis ante. Etiam
41+consectetur pretium nisl sed dignissim. Pellentesque convallis, nisl eget
42+commodo mollis, sem magna consequat arcu, sed pretium ipsum arcu sit amet neque.
43+Aliquam erat volutpat. Morbi sed mi sed urna vestibulum placerat vitae vel
44+metus. Fusce ac ante at justo pharetra vehicula. Vivamus vel tortor eget augue
45+aliquet aliquet at vel odio. Nunc venenatis, magna quis facilisis fringilla,
46+augue tellus varius neque, in vulputate est eros ut tortor. Duis lorem neque,
47+aliquam congue posuere id, condimentum non dui. Phasellus ut dui massa,
48+porttitor suscipit augue. Praesent quis tellus quam, vel volutpat metus. Vivamus
49+enim est, aliquam in imperdiet et, sagittis eu ligula. Vestibulum hendrerit
50+placerat orci et aliquet. Cras pharetra, dolor placerat lobortis tempor, metus
51+odio cursus ligula, et posuere lacus ligula quis dui.
52+
53+Donec a lectus eu nibh malesuada aliquam. Proin at metus quam, et tincidunt leo.
54+Quisque lacus justo, scelerisque sodales pulvinar sed, dignissim ut sapien.
55+Vivamus diam felis, adipiscing sollicitudin ultricies id, accumsan ac felis. In
56+eu posuere ligula. Suspendisse potenti. Donec porttitor dictum dui id vehicula.
57+Integer ante velit, congue id dictum et, adipiscing a tortor.
data/example/site.hs+41−9
@@ -1,8 +1,8 @@
11--------------------------------------------------------------------------------
22{-# LANGUAGE OverloadedStrings #-}
3−import Hakyll
4−import Data.List (sort)
5−import Control.Applicative ((<$>))
3+import Control.Applicative ((<$>))
4+import Data.Monoid (mappend)
5+import Hakyll
66
77
88--------------------------------------------------------------------------------
@@ -16,7 +16,7 @@ main = hakyll $ do
1616 route idRoute
1717 compile compressCssCompiler
1818
19− match (fromList ["about.rst", "code.lhs"]) $ do
19+ match (fromList ["about.rst", "contact.markdown"]) $ do
2020 route $ setExtension "html"
2121 compile $ pageCompiler
2222 >>= requireApplyTemplate "templates/default.html" defaultContext
@@ -28,16 +28,48 @@ main = hakyll $ do
2828 post <- pageCompiler
2929 saveSnapshot "content" post
3030 return post
31− >>= requireApplyTemplate "templates/default.html" defaultContext
31+ >>= requireApplyTemplate "templates/post.html" postCtx
32+ >>= requireApplyTemplate "templates/default.html" postCtx
3233 >>= relativizeUrls
3334
35+ match "archive.html" $ do
36+ route idRoute
37+ compile $ do
38+ let archiveCtx =
39+ field "posts" (\_ -> postList recentFirst) `mappend`
40+ constField "title" "Archives" `mappend`
41+ defaultContext
42+
43+ makeItem ""
44+ >>= requireApplyTemplate "templates/archive.html" archiveCtx
45+ >>= requireApplyTemplate "templates/default.html" archiveCtx
46+ >>= relativizeUrls
47+
48+
3449 match "index.html" $ do
3550 route idRoute
3651 compile $ do
37− posts <- sort <$> getMatches "posts/*"
38− post <- requireSnapshot (head posts) "content"
39− return post
40− >>= requireApplyTemplate "templates/default.html" defaultContext
52+ let indexCtx = field "posts" $ \_ -> postList (take 3 . recentFirst)
53+
54+ getResourceBody
55+ >>= applySelf indexCtx
56+ >>= requireApplyTemplate "templates/default.html" postCtx
4157 >>= relativizeUrls
4258
4359 match "templates/*" $ compile templateCompiler
60+
61+
62+--------------------------------------------------------------------------------
63+postCtx :: Context String
64+postCtx =
65+ dateField "date" "%B %e, %Y" `mappend`
66+ defaultContext
67+
68+
69+--------------------------------------------------------------------------------
70+postList :: ([Item String] -> [Item String]) -> Compiler String
71+postList preprocess = do
72+ posts <- preprocess <$> requireAll "posts/*"
73+ itemTpl <- requireBody "templates/post-item.html"
74+ list <- applyTemplateList itemTpl postCtx posts
75+ return list
data/example/templates/archive.htmlnew file+3
@@ -0,0 +1,3 @@
1+<ul>
2+ $posts$
3+</ul>
data/example/templates/default.html+5−3
@@ -4,9 +4,8 @@
44<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
55 <head>
66 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
7− <title>MyAweSomeCompany - $title$</title>
7+ <title>My Hakyll Blog - $title$</title>
88 <link rel="stylesheet" type="text/css" href="/css/default.css" />
9− <link rel="stylesheet" type="text/css" href="/css/syntax.css" />
109 </head>
1110 <body>
1211 <div id="header">
@@ -16,11 +15,14 @@
1615 <div id="navigation">
1716 <a href="/">Home</a>
1817 <a href="/about.html">About</a>
19− <a href="/code.html">Code</a>
18+ <a href="/contact.html">Contact</a>
19+ <a href="/archive.html">Archive</a>
2020 </div>
2121 </div>
2222
2323 <div id="content">
24+ <h1>$title$</h1>
25+
2426 $body$
2527 </div>
2628 <div id="footer">
data/example/templates/post-item.htmlnew file+3
@@ -0,0 +1,3 @@
1+<li>
2+ <a href="$url$">$title$</a> - $date$
3+</li>
data/example/templates/post.htmlnew file+3
@@ -0,0 +1,3 @@
1+<div class="info">Posted on $date$</div>
2+
3+$body$
hakyll.cabal+12−6
@@ -42,14 +42,20 @@ Build-Type: Simple
4242Data-Dir: data
4343
4444Data-files:
45− example/about.rst
46− example/code.lhs
47− example/css/default.css
48− example/css/syntax.css
49− example/images/haskell-logo.png
50− example/index.markdown
45+ example/posts/2012-11-28-carpe-diem.markdown
46+ example/posts/2012-10-07-rosa-rosa-rosam.markdown
47+ example/posts/2012-12-07-tu-quoque.markdown
48+ example/posts/2012-08-12-spqr.markdown
5149 example/site.hs
50+ example/images/haskell-logo.png
51+ example/templates/post-item.html
5252 example/templates/default.html
53+ example/templates/archive.html
54+ example/templates/post.html
55+ example/css/default.css
56+ example/index.html
57+ example/about.rst
58+ example/contact.markdown
5359 templates/atom-item.xml
5460 templates/atom.xml
5561 templates/rss-item.xml