on master help sign in
Update morepages example to work with Hakyll 3.
commitc288567388c6ebcb75f369bee60f19664e855c9c authorBenedict Eastaugh <benedict@eastaugh.net> dateMon 28 Mar 2011, 15:22 (16 years ago) parent9ddde6c
7 files changed+54−33
examples/morepages/about.markdown+4−3 examples/morepages/css/default.css+1 examples/morepages/footer.markdown+4−1 examples/morepages/hakyll.hs+28−13 examples/morepages/index.markdown+4−3 examples/morepages/products.markdown+4−3 examples/morepages/templates/default.html+9−10
examples/morepages/about.markdown+4−3
@@ -1,24 +1,25 @@
11---
22title: About
3+---
34
4−--- section1
55## Mattis
6+
67Nullam imperdiet sodales orci vitae molestie. Nunc quam orci, pharetra a
78rhoncus vitae, eleifend id felis. Suspendisse potenti. Etiam vitae urna orci.
89Quisque pellentesque dignissim felis, egestas tempus urna luctus vitae. In hac
910habitasse platea dictumst. Morbi fringilla mattis odio, et mattis tellus
1011accumsan vitae.
1112
12−--- section2
1313## Orci
14+
1415Vivamus eget mauris sit amet nulla laoreet lobortis. Nulla in diam elementum
1516risus convallis commodo. Cras vehicula varius dui vitae facilisis. Proin
1617elementum libero eget leo aliquet quis euismod orci vestibulum. Duis rhoncus
1718lorem consequat tellus vestibulum aliquam. Quisque orci orci, malesuada porta
1819blandit et, interdum nec magna.
1920
20−--- section3
2121## Augue
22+
2223In urna ante, pulvinar et imperdiet nec, fermentum ac tortor. Cras tristique
2324pellentesque euismod. Pellentesque est ante, sagittis vitae vehicula vitae,
2425ullamcorper eget lectus. Curabitur egestas accumsan leo, ac ullamcorper nibh
examples/morepages/css/default.css+1
@@ -24,4 +24,5 @@ div.column {
2424
2525div#footer {
2626 clear: both;
27+ border-top: 4px solid black;
2728}
examples/morepages/footer.markdown+4−1
@@ -1,4 +1,7 @@
1−--- footer
1+---
2+title: Footer
3+---
4+
25## Sapien
36
47In hac habitasse platea dictumst. Cras placerat felis nec risus varius in
examples/morepages/hakyll.hs+28−13
@@ -1,13 +1,28 @@
1−import Text.Hakyll (hakyll)
2−import Text.Hakyll.File (directory)
3−import Text.Hakyll.Render (css, static, renderChain)
4−import Text.Hakyll.CreateContext (createPage, combine)
5−
6−main = hakyll "http://example.com" $ do
7− directory css "css"
8− render "about.markdown"
9− render "index.markdown"
10− render "products.markdown"
11− where
12− render = renderChain ["templates/default.html"] . withFooter . createPage
13− withFooter = flip combine $ createPage "footer.markdown"
1+{-# LANGUAGE OverloadedStrings, Arrows #-}
2+module Main where
3+
4+import Control.Monad (forM_)
5+import Control.Arrow (arr, (>>>))
6+
7+import Hakyll
8+
9+main :: IO ()
10+main = hakyll $ do
11+ -- Compress CSS
12+ route "css/*" idRoute
13+ compile "css/*" compressCssCompiler
14+
15+ -- Render static pages
16+ forM_ ["about.markdown", "index.markdown", "products.markdown"] $ \p -> do
17+ route p $ setExtension ".html"
18+ compile p $
19+ pageCompiler
20+ >>> requireA "footer.markdown" (setFieldA "footer" $ arr pageBody)
21+ >>> applyTemplateCompiler "templates/default.html"
22+ >>> relativizeUrlsCompiler
23+
24+ -- Compile footer
25+ compile "footer.markdown" pageCompiler
26+
27+ -- Read templates
28+ compile "templates/*" templateCompiler
examples/morepages/index.markdown+4−3
@@ -1,14 +1,15 @@
11---
22title: Home
3+---
34
4−--- section1
55## Purus
6+
67Lorem ipsum dolor sit amet, consectetur adipiscing elit. Fusce tempor, urna et
78auctor tincidunt, eros mauris facilisis purus, eget sollicitudin leo massa sit
89amet ipsum. Vivamus eu massa in urna vehicula rutrum eget sit amet purus.
910
10−--- section2
1111## Ligula
12+
1213Mauris sit amet justo mi. Curabitur vel quam felis. In hac habitasse platea
1314dictumst. Etiam nec consequat risus. Donec consequat est vitae neque fermentum
1415feugiat nec ac nibh. Nulla rhoncus, odio quis scelerisque rutrum, metus sem
@@ -16,8 +17,8 @@ tempor ante, a ornare ipsum felis sed ligula. Morbi urna lectus, scelerisque
1617non pharetra in, rutrum quis ligula. Phasellus semper ullamcorper arcu eu
1718auctor.
1819
19−--- section3
2020## Justo
21+
2122Aliquam sagittis tincidunt libero ut elementum. Ut sit amet vestibulum metus.
2223Ut aliquet congue neque eu tincidunt. Integer eu elit sed massa sollicitudin
2324vehicula nec ut sem. Cras euismod enim eget purus lacinia non feugiat urna
examples/morepages/products.markdown+4−3
@@ -1,22 +1,23 @@
11---
22title: Products
3+---
34
4−--- section1
55## Lacus
6+
67Etiam condimentum auctor semper. Donec lobortis, magna id sodales sollicitudin,
78lectus mi egestas nulla, pulvinar lobortis nunc eros id nisl. Curabitur
89imperdiet, erat at accumsan vulputate, purus nunc blandit nulla, dictum
910vestibulum sem lorem eget ipsum.
1011
11−--- section2
1212## Vitae
13+
1314Integer ut dui eu felis mollis vestibulum. Etiam at nibh id diam aliquet
1415vestibulum sit amet a nibh. Aliquam erat volutpat. Etiam vitae nulla at dolor
1516fringilla tempor ut a nunc. Pellentesque elementum elit lorem. Quisque nec
1617ligula ipsum. Nunc augue lacus, ullamcorper vel dapibus in, mattis eget elit.
1718
18−--- section3
1919## Feugiat
20+
2021Pellentesque enim dui, interdum elementum vehicula luctus, feugiat vitae arcu.
2122Vestibulum ut felis justo. Quisque vestibulum mauris eget ipsum luctus
2223consequat. Nunc tincidunt, turpis ut fermentum dapibus,
examples/morepages/templates/default.html+9−10
@@ -4,20 +4,19 @@
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>
8− <link rel="stylesheet" type="text/css" href="$root/css/default.css" />
7+ <title>MyAweSomeCompany - $title$</title>
8+ <link rel="stylesheet" type="text/css" href="/css/default.css" />
99 </head>
1010 <body>
11− <h1>MyAweSomeCompany - $title</h1>
11+ <h1>MyAweSomeCompany - $title$</h1>
1212 <div id="navigation">
13− <a href="$root/index.html">Home</a>
14− <a href="$root/about.html">About</a>
15− <a href="$root/products.html">Products</a>
13+ <a href="/">Home</a>
14+ <a href="/about.html">About</a>
15+ <a href="/products.html">Products</a>
1616 </div>
1717
18− <div class="column"> $section1 </div>
19− <div class="column"> $section2 </div>
20− <div class="column"> $section3 </div>
21− <div id="footer"> $footer </div>
18+ $body$
19+
20+ <div id="footer"> $footer$ </div>
2221 </body>
2322</html>