module Text.Authoring.Combinator.Writer where
import Control.Lens (scribe)
import Control.Monad.Writer
import Data.Text (Text, pack)
import Prelude
import Safe (readMay)
import Text.LaTeX.Base.Syntax (LaTeX)
import qualified Text.LaTeX.Base.Commands as LTX
import qualified Text.LaTeX.Base.Render as LTX
import qualified Text.LaTeX.Base.Syntax as LTX
import qualified Text.LaTeX.Base.Texy as LTX
import Text.Authoring.Document
latex :: (MonadWriter t m, HasDocument t) => LaTeX -> m ()
latex x = scribe latexSrc x
raw :: (MonadWriter t m, HasDocument t) => Text -> m ()
raw x = latex $ LTX.raw x
esc :: (MonadWriter t m, HasDocument t, Show a) => a -> m ()
esc x = raw $ LTX.protectText $ pack $ Prelude.show x