summaryrefslogtreecommitdiff
path: root/src/Text/Hakyll/Pandoc.hs
diff options
context:
space:
mode:
Diffstat (limited to 'src/Text/Hakyll/Pandoc.hs')
-rw-r--r--src/Text/Hakyll/Pandoc.hs57
1 files changed, 0 insertions, 57 deletions
diff --git a/src/Text/Hakyll/Pandoc.hs b/src/Text/Hakyll/Pandoc.hs
deleted file mode 100644
index c0dec77..0000000
--- a/src/Text/Hakyll/Pandoc.hs
+++ /dev/null
@@ -1,57 +0,0 @@
--- | Module exporting a pandoc arrow
---
-module Text.Hakyll.Pandoc
- ( renderAction
- , renderActionWith
- ) where
-
-import Data.Maybe (fromMaybe)
-import qualified Data.Map as M
-import Control.Arrow (second, (>>>), arr, (&&&))
-
-import Text.Pandoc
-
-import Text.Hakyll.Internal.FileType
-import Text.Hakyll.Page
-import Text.Hakyll.HakyllMonad
-import Text.Hakyll.HakyllAction
-import Text.Hakyll.Context
-
--- | Get a render function for a given extension.
---
-getRenderFunction :: HakyllAction FileType (String -> String)
-getRenderFunction = createHakyllAction $ \fileType -> case fileType of
- Html -> return id
- Text -> return id
- UnknownFileType -> return id
- _ -> do parserState <- askHakyll pandocParserState
- writerOptions <- askHakyll pandocWriterOptions
- return $ writeHtmlString writerOptions
- . readFunction fileType (readOptions parserState fileType)
- where
- readFunction ReStructuredText = readRST
- readFunction LaTeX = readLaTeX
- readFunction Markdown = readMarkdown
- readFunction LiterateHaskellMarkdown = readMarkdown
- readFunction t = error $ "Cannot render " ++ show t
-
- readOptions options LiterateHaskellMarkdown = options
- { stateLiterateHaskell = True }
- readOptions options _ = options
-
--- | An action that renders the list of page sections to a context using pandoc
---
-renderAction :: HakyllAction [PageSection] Context
-renderAction = (arr id &&& (getFileType' >>> getRenderFunction))
- >>> renderActionWith
- where
- getFileType' = arr $ getFileType . fromMaybe "unknown" . lookup "path"
- . map (\(x, y, _) -> (x, y)) . map unPageSection
-
--- | An action to render pages, offering just a little more flexibility
---
-renderActionWith :: HakyllAction ([PageSection], String -> String) Context
-renderActionWith = createHakyllAction $ \(sections, render') -> return $
- Context $ M.fromList $ map (renderTriple render' . unPageSection) sections
- where
- renderTriple render' (k, v, r) = second (if r then render' else id) (k, v)