authoring-0.3: src/Text/Authoring/Combinator/Meta.hs
{-# 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 "}"
-- | command0 x = "\x "
command0 :: (MonadWriter t m, HasDocument t) => Text -> m ()
command0 x = do
raw "\\"
raw x
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 "}"
-- | commandI x con = "{\x con}"
commandI :: (MonadWriter t m, HasDocument t) => Text -> m () -> m ()
commandI 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 "}"
con
raw "\\end{"
raw x
raw "}"