{-# 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