{-# LANGUAGE RecordWildCards #-}

module Ondim.Targets.LaTeX.Load where

import Ondim.Loading (LoadConfig (..), loadFnSimple)
import Ondim.Targets.LaTeX.Expansions (defaultState)
import Ondim.Targets.LaTeX.Parser (parseLaTeX)

loadLaTeX :: LoadConfig s
loadLaTeX :: forall s. LoadConfig s
loadLaTeX = LoadConfig {[FilePattern]
OndimState s
LoadFn s
forall {s}. OndimState s
forall {n}. LoadFn n
patterns :: [FilePattern]
initialState :: forall {s}. OndimState s
loadFn :: forall {n}. LoadFn n
initialState :: OndimState s
loadFn :: LoadFn s
patterns :: [FilePattern]
..}
  where
    patterns :: [FilePattern]
patterns = [FilePattern
"**/*.tex"]
    initialState :: OndimState s
initialState = OndimState s
forall {s}. OndimState s
defaultState
    loadFn :: LoadFn n
loadFn = (FilePattern -> LByteString -> Either FilePattern LaTeXDoc)
-> LoadFn n
forall a n.
OndimNode a =>
(FilePattern -> LByteString -> Either FilePattern a) -> LoadFn n
loadFnSimple \FilePattern
fp LByteString
bs -> FilePattern -> Text -> Either FilePattern LaTeXDoc
parseLaTeX FilePattern
fp (Text -> Either FilePattern LaTeXDoc)
-> Text -> Either FilePattern LaTeXDoc
forall a b. (a -> b) -> a -> b
$ LByteString -> Text
forall a b. ConvertUtf8 a b => b -> a
decodeUtf8 LByteString
bs