module Ondim.Targets.LaTeX.Expansions where

import Ondim
import Ondim.Extra.Expansions
import Ondim.Extra.Standard (standardMap)
import Ondim.Targets.LaTeX.Instances (LaTeXNode (..), escapeLaTeX)

defaultState :: OndimState s
defaultState :: forall s. OndimState s
defaultState =
  OndimState
    { expansions :: Namespace s
expansions = Namespace s
forall {m}. Namespace m
exps
    }
  where
    exps :: Namespace m
exps = NamespaceMap m -> Namespace m
forall m. NamespaceMap m -> Namespace m
mapToNamespace do
      Text
"escaped.tex" Text -> Expansion m LaTeXNode -> NamespaceMap m
forall t m.
(HasCallStack, Typeable t) =>
Text -> Expansion m t -> NamespaceMap m
## \(LaTeXNode
node :: LaTeXNode) -> do
        t <- Text -> LaTeXNode -> Ondim m Text
forall t s. OndimNode t => Text -> t -> Ondim s Text
lookupAttr' Text
"text" LaTeXNode
node
        return [Text $ escapeLaTeX t]
      NamespaceMap m
forall s. NamespaceMap s
standardMap