-- | -- Module : Zettel.Math -- Description : Wrap math with hugo raw-html markers -- Copyright : (c) 2023, Yann Herklotz -- License : GPL-3.0-only -- Maintainer : git [at] yannherklotz [dot] com -- Stability : experimental -- Portability : POSIX module Zettel.Math where import Text.Pandoc.Definition (Inline (..), Block (..)) import Text.Pandoc.Walk (walk) import Zettel.Types wrapMath :: [Inline] -> [Inline] wrapMath = concatMap f where f :: Inline -> [Inline] f m@(Math _ _) = [RawInline "markdown" "{{< math >}}", m, RawInline "markdown" "{{< /math >}}"] f a = [a] wrapMathLatex :: Block -> Block wrapMathLatex r@(RawBlock t b) | t == "latex" = RawBlock "markdown" $ "{{< math >}}\n" <> b <> "{{< /math >}}" | otherwise = r wrapMathLatex r = r wrapZettelGraph :: ZettelGraph -> ZettelGraph wrapZettelGraph = walk wrapMathLatex . walk wrapMath