From 197b54567def7497f1f4abc905e0d7152ed5d2d2 Mon Sep 17 00:00:00 2001 From: Eugen Wissner Date: Sun, 26 Jul 2026 11:46:44 +0200 Subject: Use compile pandoc functions --- src/Main.hs | 36 +++++++++++++++++++++++++----------- 1 file changed, 25 insertions(+), 11 deletions(-) (limited to 'src') diff --git a/src/Main.hs b/src/Main.hs index c9a5137..d9b3cf5 100644 --- a/src/Main.hs +++ b/src/Main.hs @@ -14,7 +14,6 @@ import Hakyll.Core.Compiler , makeItem , noResult , saveSnapshot - , getResourceBody ) import Hakyll.Core.Configuration (Configuration(..)) import Hakyll.Core.File (copyFileCompiler) @@ -44,9 +43,9 @@ import Hakyll.Web.Paginate import Hakyll.Web.Pandoc ( defaultHakyllReaderOptions , defaultHakyllWriterOptions - , writePandocWith + , pandocItemCompilerWithTransformM ) -import Hakyll.Web.Pandoc.Biblio (biblioCompiler, cslCompiler, readPandocBiblio) +import Hakyll.Web.Pandoc.Biblio (biblioCompiler, cslCompiler, processPandocBiblio) import Hakyll.Web.Tags (Tags(..), buildTags, tagsRules) import Hakyll.Web.Template (loadAndApplyTemplate, templateBodyCompiler) import Hakyll.Web.Template.Context @@ -73,7 +72,13 @@ import System.FilePath ) import System.Process (rawSystem) import qualified Network.Wai.Application.Static as Static -import Text.Pandoc.Options (HTMLMathMethod(..), WriterOptions(..)) +import Text.Pandoc.Options + ( Extension(Ext_latex_macros) + , HTMLMathMethod(..) + , ReaderOptions(..) + , WriterOptions(..) + , extensionsFromList + ) -- -- Default configuration. @@ -214,17 +219,26 @@ cleanIndexUrls = return . fmap (withUrls cleanIndex) | otherwise = url bibtexCompiler :: Compiler (Item String) -bibtexCompiler = do - bib <- load "assets/bibliography/references.bib" - csl <- load "assets/bibliography/theologie-und-philosophie.csl" - - let pandocBiblio = readPandocBiblio defaultHakyllReaderOptions csl bib +bibtexCompiler = + let readerExtensions' = readerExtensions defaultHakyllReaderOptions + <> extensionsFromList [Ext_latex_macros] + readerOptions = defaultHakyllReaderOptions + { readerExtensions = readerExtensions' + } + writerExtensions' = writerExtensions defaultHakyllWriterOptions + <> extensionsFromList [Ext_latex_macros] writerOptions = defaultHakyllWriterOptions { writerHTMLMathMethod = MathML + , writerExtensions = writerExtensions' } + in fmap demoteHeaders + <$> pandocItemCompilerWithTransformM readerOptions writerOptions transformPandoc + where + transformPandoc pandoc = do + bib <- load "assets/bibliography/references.bib" + csl <- load "assets/bibliography/theologie-und-philosophie.csl" - fmap demoteHeaders . writePandocWith writerOptions - <$> (getResourceBody >>= pandocBiblio) + processPandocBiblio csl bib pandoc copyMatchedFiles :: Pattern -> Rules () copyMatchedFiles = flip match $ route idRoute >> compile copyFileCompiler -- cgit v1.2.3