module Hakyll.Parsec.Parsec ( compileParsec , compileParsec_ , evalParsec ) where import Prolog import Hakyll import Text.Parsec import Text.Parsec.Error import Hakyll.Error -- evalParsec :: (MonadError [String] m) => Either ParseError a -> m a -- evalParsec = either (throwError . fmap messageString . errorMessages) pure compileParsec :: (MonadError [String] m, Stream s Identity t) => Parsec s u a -> u -> Item s -> m (Item a) compileParsec p u itm@(Item i _) = traverse (liftErr . runParser p u (show i)) itm compileParsec_ :: (MonadError [String] m, Stream s Identity t) => Parsec s () a -> Item s -> m (Item a) compileParsec_ p = compileParsec p ()