{-# LANGUAGE OverloadedStrings #-} module Text.Authoring.Combinator.Meta where import Control.Monad.Writer import Data.Text (Text) import Text.Authoring.Document import Text.Authoring.Combinator.Writer -- | wrap the argument @x@ using curly braces "{x}" braces :: (MonadWriter t m, HasDocument t) => m () -> m () braces con = do raw "{" con raw "}" -- | command1 x con = "\x{con}" command1 :: (MonadWriter t m, HasDocument t) => Text -> m () -> m () command1 x con = do raw "\\" raw x raw "{" con raw "}" -- | environment x con = "\begin{x}con\end{x}" environment :: (MonadWriter t m, HasDocument t) => Text -> m () -> m () environment x con = do raw "\\begin{" raw x raw "}\n" con raw "\\end{" raw x raw "}\n"