orgmode-parse-0.1.0.4: src/Data/OrgMode/Parse/Attoparsec/Document.hs
module Data.OrgMode.Parse.Attoparsec.Document (
parseDocument
) where
import Control.Applicative ((<$>), (<*>))
import Data.Attoparsec.Text
import Data.Attoparsec.Types as TP
import Prelude hiding (unlines)
import Data.Text (Text, pack, unlines)
import Data.OrgMode.Parse.Types
import Data.OrgMode.Parse.Attoparsec.Headings
------------------------------------------------------------------------------
parseDocument :: [Text] -> TP.Parser Text Document
parseDocument otherKeywords =
Document
<$> (unlines <$> many' nonHeaderLine)
<*> many' (headingBelowLevel otherKeywords 0)
nonHeaderLine :: TP.Parser Text Text
nonHeaderLine = pack <$> manyTill (notChar '*') endOfLine