mirror of
https://github.com/simonmichael/hledger.git
synced 2024-11-08 07:09:28 +03:00
tools: hakyll cleanup
This commit is contained in:
parent
0276c095ca
commit
5732e42cc3
127
site/hakyll.hs
127
site/hakyll.hs
@ -1,74 +1,22 @@
|
||||
#!/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
|
||||
import Text.Hakyll.HakyllMonad
|
||||
import Text.Hakyll.Render
|
||||
import System.Process (system)
|
||||
import Text.Hakyll (hakyllWithConfiguration, defaultHakyllConfiguration)
|
||||
import Text.Hakyll.HakyllMonad (HakyllConfiguration(..))
|
||||
import Text.Hakyll.Render (renderChain, static)
|
||||
import Text.Hakyll.CreateContext (createPage, createCustomPage, createListing)
|
||||
import Text.Pandoc
|
||||
import Text.Pandoc (ParserState(..), WriterOptions(..), defaultParserState, defaultWriterOptions)
|
||||
import Text.Printf
|
||||
|
||||
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
|
||||
}
|
||||
baseurl = "http://hledger.org"
|
||||
|
||||
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 "http://hledger.org") {
|
||||
-- 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"
|
||||
main = hakyllWithConfiguration cfg $ do
|
||||
mapM_ renderParentDirPage
|
||||
["README.rst"
|
||||
,"README2.rst"
|
||||
@ -84,10 +32,59 @@ main = hakyllWithConfiguration hakyllcfg $ do
|
||||
,"hledger-screen-1.png"
|
||||
,"hledger-charts-2.png"
|
||||
]
|
||||
where
|
||||
-- Render a page from the parent directory as if it was in the hakyll
|
||||
-- root dir, setting up a symbolic link when needed.
|
||||
renderParentDirPage p = do
|
||||
liftIO $ system $ printf "[ -f %s ] || ln -s ../%s" p p
|
||||
renderChain ["site.tmpl"] $ createPage p
|
||||
|
||||
-- Render a page from the parent directory as if it was in the hakyll
|
||||
-- root dir, setting up a symbolic link when needed.
|
||||
renderParentDirPage p = do
|
||||
liftIO $ system $ printf "[ -f %s ] || ln -s ../%s" p p
|
||||
renderChain ["site.tmpl"] $ createPage p
|
||||
cfg :: HakyllConfiguration
|
||||
cfg = (defaultHakyllConfiguration baseurl) {
|
||||
-- ,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 = 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
|
||||
}
|
||||
,pandocWriterOptions = 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
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user