pandoc-highlighting-extensions-1.0.0.0: library/Text/Pandoc/Highlighting/Extensions/WriterOptions.hs
{-# OPTIONS_GHC -Wall #-}
{- |
Functions on 'WriterOptions' that modify the syntax highlighting.
-}
module Text.Pandoc.Highlighting.Extensions.WriterOptions
( applyAllSyntaxExtensions
, modifySyntaxMap
, modifySyntax
, modifyContext
) where
-- pandoc
import Text.Pandoc (WriterOptions (..))
-- skylighting-core
import Skylighting.Types (Context, Syntax)
-- skylighting-extensions
import qualified Skylighting.Extensions
-- skylighting-modding
import Skylighting.Modding (SyntaxMap)
import qualified Skylighting.Modding
-- text
import Data.Text (Text)
{- |
Apply all of the syntax highlighting extensions provided by the
@skylighting-extensions@ package to Pandoc writer options.
-}
applyAllSyntaxExtensions :: WriterOptions -> WriterOptions
applyAllSyntaxExtensions = modifySyntaxMap Skylighting.Extensions.applyAll
{- |
Apply a function to the 'SyntaxMap' within Pandoc writer options.
-}
modifySyntaxMap :: (SyntaxMap -> SyntaxMap) -> WriterOptions -> WriterOptions
modifySyntaxMap f o = o{ writerSyntaxMap = f (writerSyntaxMap o) }
{- |
Modify a particular syntax by name.
-}
modifySyntax
:: Text -- ^ Name of the syntax to modify
-> (Syntax -> Syntax) -> WriterOptions -> WriterOptions
modifySyntax name =
modifySyntaxMap .
Skylighting.Modding.modifySyntax name
{- |
Modify a particular syntax context by name.
-}
modifyContext
:: Text -- ^ Name of the syntax to modify
-> Text -- ^ Name of the context to modify
-> (Context -> Context) -> WriterOptions -> WriterOptions
modifyContext syntaxName contextName =
modifySyntax syntaxName .
Skylighting.Modding.modifySyntaxContexts .
Skylighting.Modding.modifyContext contextName