From bbec17ed4777a6c5f91820c66d9d88bd0f0082d7 Mon Sep 17 00:00:00 2001 From: Simon Michael Date: Fri, 21 May 2010 18:20:07 +0000 Subject: [PATCH] site: use hakyll 2.1, expose all hakyll & pandoc options, fix missing quotes --- site/hakyll.hs | 65 ++++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 63 insertions(+), 2 deletions(-) diff --git a/site/hakyll.hs b/site/hakyll.hs index c85627c07..bd5767301 100644 --- a/site/hakyll.hs +++ b/site/hakyll.hs @@ -1,14 +1,74 @@ #!/usr/bin/env runhaskell +{-o +hakyll build script for hledger.org +requires Hakyll >= 2.1, pandoc >= 1.5 +-} import Control.Monad (forM_) import Control.Monad.Trans (liftIO) import System.Process -import Text.Hakyll (hakyll) +import Text.Hakyll +import Text.Hakyll.HakyllMonad import Text.Hakyll.Render import Text.Hakyll.CreateContext (createPage, createCustomPage, createListing) +import Text.Pandoc import Text.Printf -main = hakyll "http://hledger.org" $ do +pandocparsercfg = defaultParserState { + -- stateParseRaw = False, -- ^ Parse raw HTML and LaTeX? + -- stateParserContext = NullState, -- ^ Inside list? + -- stateQuoteContext = NoQuote, -- ^ Inside quoted environment? + -- stateSanitizeHTML = False, -- ^ Sanitize HTML? + -- stateKeys = [], -- ^ List of reference keys + -- stateNotes = [], -- ^ List of notes + -- stateTabStop = 4, -- ^ Tab stop + -- stateStandalone = False, -- ^ Parse bibliographic info? + -- stateTitle = [], -- ^ Title of document + -- stateAuthors = [], -- ^ Authors of document + -- stateDate = [], -- ^ Date of document + -- stateStrict = False, -- ^ Use strict markdown syntax? + stateSmart = False -- ^ Use smart typography? + -- stateLiterateHaskell = False, -- ^ Treat input as literate haskell + -- stateColumns = 80, -- ^ Number of columns in terminal + -- stateHeaderTable = [], -- ^ Ordered list of header types used + -- stateIndentedCodeClasses = [] -- ^ Classes to use for indented code blocks + } + +pandocwritercfg = defaultWriterOptions { + writerStandalone = False -- ^ Include header and footer + -- ,writerTemplate = "" -- ^ Template to use in standalone mode + -- ,writerVariables = [] -- ^ Variables to set in template + -- ,writerIncludeBefore = "" -- ^ Text to include before the body + -- ,writerIncludeAfter = "" -- ^ Text to include after the body + -- ,writerTabStop = 4 -- ^ Tabstop for conversion btw spaces and tabs + -- ,writerTableOfContents = False -- ^ Include table of contents + -- ,writerS5 = False -- ^ We're writing S5 + -- ,writerXeTeX = False -- ^ Create latex suitable for use by xetex + -- ,writerHTMLMathMethod = PlainMath -- ^ How to print math in HTML + -- ,writerIgnoreNotes = False -- ^ Ignore footnotes (used in making toc) + -- ,writerIncremental = False -- ^ Incremental S5 lists + -- ,writerNumberSections = False -- ^ Number sections in LaTeX + -- ,writerStrictMarkdown = False -- ^ Use strict markdown syntax + -- ,writerReferenceLinks = False -- ^ Use reference links in writing markdown, rst + -- ,writerWrapText = True -- ^ Wrap text to line length + -- ,writerLiterateHaskell = False -- ^ Write as literate haskell + -- ,writerEmailObfuscation = JavascriptObfuscation -- ^ How to obfuscate emails + -- ,writerIdentifierPrefix = "" -- ^ Prefix for section & note ids in HTML + } + +hakyllcfg = defaultHakyllConfiguration { + absoluteUrl = "http://hledger.org" -- Absolute URL of the site. + -- ,additionalContext = Context -- An additional context to use when rendering. This additional context is used globally. + -- ,siteDirectory = FilePath -- Directory where the site is placed. + -- ,cacheDirectory = FilePath -- Directory for cache files. + -- ,enableIndexUrl = Bool -- Enable index links. + -- ,previewPollDelay = Int -- Delay between polls in preview mode. + ,pandocParserState = pandocparsercfg + ,pandocWriterOptions = pandocwritercfg + } + +main = hakyllWithConfiguration hakyllcfg $ do + -- renderChain [] $ createPage "t.markdown" mapM_ renderParentDirPage ["README.rst" ,"README2.rst" @@ -30,3 +90,4 @@ main = hakyll "http://hledger.org" $ do renderParentDirPage p = do liftIO $ system $ printf "[ -f %s ] || ln -s ../%s" p p renderChain ["site.tmpl"] $ createPage p +