module Data.Frontmatter.Internal where
import Control.Applicative ((*>))
import Data.Attoparsec.ByteString
import Data.Attoparsec.ByteString.Char8
import Data.ByteString (ByteString)
import qualified Data.ByteString.Char8 as ByteString (pack)
frontmatter :: Parser ByteString
frontmatter = frontmatter' <?> "frontmatter"
where
frontmatter' = do
f <- frontmatterSeparator *> manyTill anyChar frontmatterSeparator
return $ ByteString.pack f
frontmatterSeparator :: Parser ()
frontmatterSeparator = string "---" >> endOfLine