| title | about |
|---|
moar aboot me' it ezz sexi!!!
| <?xml version="1.0" encoding="UTF-8" ?> | |
| <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> | |
| <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> | |
| <head> | |
| <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> | |
| <title>My Hakyll Blog - about</title> | |
| <link rel="stylesheet" type="text/css" href="./css/default.css" /> | |
| </head> | |
| <body> | |
| <div id="header"> | |
| <div id="logo"> | |
| <a href="./">Dihydrogen Monoxide Poisoning</a> | |
| </div> | |
| <div id="navigation"> | |
| <a href="./">Home</a> | |
| <a href="./about.html">About</a> | |
| <a href="./contact.html">Contact</a> | |
| <a href="./archive.html">Archive</a> | |
| </div> | |
| </div> | |
| <div id="content"> | |
| <h1>about</h1> | |
| <p>moar aboot me |
| serialhex@multi-hex [~/src/serialhex.net]$ ./site build -v [ruby-1.9.3-p194] | |
| Initialising... | |
| Creating store... | |
| site: _site/about.html: commitBuffer: invalid argument (invalid character) | |
| Creating provider... | |
| Running rules... | |
| Checking for out-of-date items | |
| [DEBUG] about.md is out-of-date because it is new | |
| [DEBUG] archive.html is out-of-date because it is new | |
| [DEBUG] contact.md is out-of-date because it is new | |
| [DEBUG] css/default.css is out-of-date because it is new | |
| [DEBUG] images/haskell-logo.png is out-of-date because it is new | |
| [DEBUG] index.html is out-of-date because it is new | |
| [DEBUG] posts/2013-01-28-its-been-a-long-time.markdown is out-of-date because it is new | |
| [DEBUG] posts/2013-01-28-reasons.md is out-of-date because it is new | |
| [DEBUG] templates/archive.html is out-of-date because it is new | |
| [DEBUG] templates/default.html is out-of-date because it is new | |
| [DEBUG] templates/post-item.html is out-of-date because it is new | |
| [DEBUG] templates/post.html is out-of-date because it is new | |
| Compiling | |
| [DEBUG] Processing about.md | |
| [DEBUG] Require templates/default.html: chasing | |
| [DEBUG] Processing templates/default.html | |
| updated templates/default.html | |
| [DEBUG] Processing about.md | |
| [DEBUG] Require templates/default.html: OK | |
| [DEBUG] Processing about.md | |
| updated about.md |
| -------------------------------------------------------------------------------- | |
| {-# LANGUAGE OverloadedStrings #-} | |
| import Control.Applicative ((<$>)) | |
| import Data.Monoid (mappend) | |
| import Hakyll | |
| -------------------------------------------------------------------------------- | |
| main :: IO () | |
| main = hakyll $ do | |
| match "images/*" $ do | |
| route idRoute | |
| compile copyFileCompiler | |
| match "css/*" $ do | |
| route idRoute | |
| compile compressCssCompiler | |
| match (fromList ["about.md", "contact.md"]) $ do | |
| route $ setExtension "html" | |
| compile $ pandocCompiler | |
| >>= loadAndApplyTemplate "templates/default.html" defaultContext | |
| >>= relativizeUrls | |
| match "posts/*" $ do | |
| route $ setExtension "html" | |
| compile $ pandocCompiler | |
| >>= loadAndApplyTemplate "templates/post.html" postCtx | |
| >>= loadAndApplyTemplate "templates/default.html" postCtx | |
| >>= relativizeUrls | |
| create ["archive.html"] $ do | |
| route idRoute | |
| compile $ do | |
| let archiveCtx = | |
| field "posts" (\_ -> postList recentFirst) `mappend` | |
| constField "title" "Archives" `mappend` | |
| defaultContext | |
| makeItem "" | |
| >>= loadAndApplyTemplate "templates/archive.html" archiveCtx | |
| >>= loadAndApplyTemplate "templates/default.html" archiveCtx | |
| >>= relativizeUrls | |
| match "index.html" $ do | |
| route idRoute | |
| compile $ do | |
| let indexCtx = field "posts" $ \_ -> postList (take 3 . recentFirst) | |
| getResourceBody | |
| >>= applyAsTemplate indexCtx | |
| >>= loadAndApplyTemplate "templates/default.html" postCtx | |
| >>= relativizeUrls | |
| match "templates/*" $ compile templateCompiler | |
| -------------------------------------------------------------------------------- | |
| postCtx :: Context String | |
| postCtx = | |
| dateField "date" "%B %e, %Y" `mappend` | |
| defaultContext | |
| -------------------------------------------------------------------------------- | |
| postList :: ([Item String] -> [Item String]) -> Compiler String | |
| postList sortFilter = do | |
| posts <- sortFilter <$> loadAll "posts/*" | |
| itemTpl <- loadBody "templates/post-item.html" | |
| list <- applyTemplateList itemTpl postCtx posts | |
| return list |