{-# LANGUAGE OverloadedRecordDot #-} module Zettel.Math where import Text.Pandoc.Definition (Inline (..), Pandoc (..)) 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] wrapMathPandoc :: Pandoc -> Pandoc wrapMathPandoc = walk wrapMath wrapZettel :: Zettel -> Zettel wrapZettel z = z {zettelBody = wrapMathPandoc z.zettelBody} wrapZettelGraph :: ZettelGraph -> ZettelGraph wrapZettelGraph = ZettelGraph . fmap wrapZettel . unZettelGraph