39 lines
1.2 KiB
Haskell
39 lines
1.2 KiB
Haskell
{-# LANGUAGE GHC2021 #-}
|
|
-- | Re-exports all Pandoc AST filter modules and provides a single
|
|
-- @applyAll@ combinator that chains them in the correct order.
|
|
module Filters
|
|
( applyAll
|
|
, preprocessSource
|
|
) where
|
|
|
|
import Text.Pandoc.Definition (Pandoc)
|
|
|
|
import qualified Filters.Sidenotes as Sidenotes
|
|
import qualified Filters.Typography as Typography
|
|
import qualified Filters.Links as Links
|
|
import qualified Filters.Smallcaps as Smallcaps
|
|
import qualified Filters.Dropcaps as Dropcaps
|
|
import qualified Filters.Math as Math
|
|
import qualified Filters.Wikilinks as Wikilinks
|
|
import qualified Filters.Transclusion as Transclusion
|
|
import qualified Filters.Code as Code
|
|
import qualified Filters.Images as Images
|
|
|
|
-- | Apply all AST-level filters in pipeline order.
|
|
-- Run on the Pandoc document after reading, before writing.
|
|
applyAll :: Pandoc -> Pandoc
|
|
applyAll
|
|
= Sidenotes.apply
|
|
. Typography.apply
|
|
. Links.apply
|
|
. Smallcaps.apply
|
|
. Dropcaps.apply
|
|
. Math.apply
|
|
. Code.apply
|
|
. Images.apply
|
|
|
|
-- | Apply source-level preprocessors to the raw Markdown string.
|
|
-- Run before 'readPandocWith'.
|
|
preprocessSource :: String -> String
|
|
preprocessSource = Transclusion.preprocess . Wikilinks.preprocess
|