orgmode-parse 0.0.1.2 → 0.0.2.0
raw patch · 6 files changed
+41/−8 lines, 6 filesdep +old-localedep +thymePVP ok
version bump matches the API change (PVP)
Dependencies added: old-locale, thyme
API changes (from Hackage documentation)
+ Data.OrgMode.Parse.Attoparsec.Headings: APPOINTMENT :: ScheduleType
+ Data.OrgMode.Parse.Attoparsec.Headings: Active :: LocalTime -> Timestamp
+ Data.OrgMode.Parse.Attoparsec.Headings: Close :: Char -> Close
+ Data.OrgMode.Parse.Attoparsec.Headings: DEADLINE :: ScheduleType
+ Data.OrgMode.Parse.Attoparsec.Headings: Inactive :: LocalTime -> Timestamp
+ Data.OrgMode.Parse.Attoparsec.Headings: Open :: Char -> Open
+ Data.OrgMode.Parse.Attoparsec.Headings: SCHEDULED :: ScheduleType
+ Data.OrgMode.Parse.Attoparsec.Headings: Schedule :: ScheduleType -> Maybe Timestamp -> Maybe Text -> Schedule
+ Data.OrgMode.Parse.Attoparsec.Headings: data Schedule
+ Data.OrgMode.Parse.Attoparsec.Headings: data ScheduleType
+ Data.OrgMode.Parse.Attoparsec.Headings: data Timestamp
+ Data.OrgMode.Parse.Attoparsec.Headings: newtype Close
+ Data.OrgMode.Parse.Attoparsec.Headings: newtype Open
+ Data.OrgMode.Parse.Attoparsec.Headings: recurring :: Schedule -> Maybe Text
+ Data.OrgMode.Parse.Attoparsec.Headings: schedule_type :: Schedule -> ScheduleType
+ Data.OrgMode.Parse.Attoparsec.Headings: timestamp :: Schedule -> Maybe Timestamp
+ Data.OrgMode.Parse.Attoparsec.PropertyDrawer: APPOINTMENT :: ScheduleType
+ Data.OrgMode.Parse.Attoparsec.PropertyDrawer: Active :: LocalTime -> Timestamp
+ Data.OrgMode.Parse.Attoparsec.PropertyDrawer: Close :: Char -> Close
+ Data.OrgMode.Parse.Attoparsec.PropertyDrawer: DEADLINE :: ScheduleType
+ Data.OrgMode.Parse.Attoparsec.PropertyDrawer: Inactive :: LocalTime -> Timestamp
+ Data.OrgMode.Parse.Attoparsec.PropertyDrawer: Open :: Char -> Open
+ Data.OrgMode.Parse.Attoparsec.PropertyDrawer: SCHEDULED :: ScheduleType
+ Data.OrgMode.Parse.Attoparsec.PropertyDrawer: Schedule :: ScheduleType -> Maybe Timestamp -> Maybe Text -> Schedule
+ Data.OrgMode.Parse.Attoparsec.PropertyDrawer: data Schedule
+ Data.OrgMode.Parse.Attoparsec.PropertyDrawer: data ScheduleType
+ Data.OrgMode.Parse.Attoparsec.PropertyDrawer: data Timestamp
+ Data.OrgMode.Parse.Attoparsec.PropertyDrawer: newtype Close
+ Data.OrgMode.Parse.Attoparsec.PropertyDrawer: newtype Open
+ Data.OrgMode.Parse.Attoparsec.PropertyDrawer: recurring :: Schedule -> Maybe Text
+ Data.OrgMode.Parse.Attoparsec.PropertyDrawer: schedule_type :: Schedule -> ScheduleType
+ Data.OrgMode.Parse.Attoparsec.PropertyDrawer: timestamp :: Schedule -> Maybe Timestamp
+ Data.OrgMode.Parse.Attoparsec.Time: A :: Priority
+ Data.OrgMode.Parse.Attoparsec.Time: APPOINTMENT :: ScheduleType
+ Data.OrgMode.Parse.Attoparsec.Time: Active :: LocalTime -> Timestamp
+ Data.OrgMode.Parse.Attoparsec.Time: B :: Priority
+ Data.OrgMode.Parse.Attoparsec.Time: C :: Priority
+ Data.OrgMode.Parse.Attoparsec.Time: Close :: Char -> Close
+ Data.OrgMode.Parse.Attoparsec.Time: DEADLINE :: ScheduleType
+ Data.OrgMode.Parse.Attoparsec.Time: Heading :: Int -> Maybe Priority -> Maybe State -> Text -> [Keyword] -> Heading
+ Data.OrgMode.Parse.Attoparsec.Time: Inactive :: LocalTime -> Timestamp
+ Data.OrgMode.Parse.Attoparsec.Time: Keyword :: Text -> Keyword
+ Data.OrgMode.Parse.Attoparsec.Time: Open :: Char -> Open
+ Data.OrgMode.Parse.Attoparsec.Time: PropertyDrawer :: (HashMap k v) -> PropertyDrawer k v
+ Data.OrgMode.Parse.Attoparsec.Time: SCHEDULED :: ScheduleType
+ Data.OrgMode.Parse.Attoparsec.Time: Schedule :: ScheduleType -> Maybe Timestamp -> Maybe Text -> Schedule
+ Data.OrgMode.Parse.Attoparsec.Time: State :: Text -> State
+ Data.OrgMode.Parse.Attoparsec.Time: Unknown :: Priority
+ Data.OrgMode.Parse.Attoparsec.Time: data Heading
+ Data.OrgMode.Parse.Attoparsec.Time: data Priority
+ Data.OrgMode.Parse.Attoparsec.Time: data Schedule
+ Data.OrgMode.Parse.Attoparsec.Time: data ScheduleType
+ Data.OrgMode.Parse.Attoparsec.Time: data Timestamp
+ Data.OrgMode.Parse.Attoparsec.Time: keywords :: Heading -> [Keyword]
+ Data.OrgMode.Parse.Attoparsec.Time: level :: Heading -> Int
+ Data.OrgMode.Parse.Attoparsec.Time: newtype Close
+ Data.OrgMode.Parse.Attoparsec.Time: newtype Keyword
+ Data.OrgMode.Parse.Attoparsec.Time: newtype Open
+ Data.OrgMode.Parse.Attoparsec.Time: newtype PropertyDrawer k v
+ Data.OrgMode.Parse.Attoparsec.Time: newtype State
+ Data.OrgMode.Parse.Attoparsec.Time: parseTimestamp :: Open -> Close -> Parser Text (Maybe Schedule)
+ Data.OrgMode.Parse.Attoparsec.Time: priority :: Heading -> Maybe Priority
+ Data.OrgMode.Parse.Attoparsec.Time: recurring :: Schedule -> Maybe Text
+ Data.OrgMode.Parse.Attoparsec.Time: scheduleType :: Parser Text ScheduleType
+ Data.OrgMode.Parse.Attoparsec.Time: schedule_type :: Schedule -> ScheduleType
+ Data.OrgMode.Parse.Attoparsec.Time: state :: Heading -> Maybe State
+ Data.OrgMode.Parse.Attoparsec.Time: timestamp :: Schedule -> Maybe Timestamp
+ Data.OrgMode.Parse.Attoparsec.Time: title :: Heading -> Text
+ Data.OrgMode.Parse.Attoparsec.Time: toPriority :: Text -> Priority
Files
- CHANGELOG +3/−0
- README.org +1/−1
- orgmode-parse.cabal +9/−5
- src/Data/OrgMode/Parse.hs +2/−0
- src/Data/OrgMode/Parse/Internal.hs +24/−2
- test/Test.hs +2/−0
CHANGELOG view
@@ -1,6 +1,9 @@ -*- mode: org -*- * Changelog+** 0.0.2.0+*** Features+ - [X] Added parsers for the scheduled / deadline timestamps. ** 0.0.1.1 *** Features - [X] Parsing of property drawer.
README.org view
@@ -2,6 +2,6 @@ [[https://hackage.haskell.org/package/orgmode-parse][https://img.shields.io/hackage/v/orgmode-parse.svg?style=flat]] [[https://travis-ci.org/digitalmentat/orgmode-parse][https://travis-ci.org/digitalmentat/orgmode-parse.svg?branch=master]] - This is a reference implementation of an [[https://github.com/msgheap/orgmode-grammar/blob/master/SPECIFICATION.org][orgmode-grammar]] parser in+ This is a reference implementation of an [[https://github.com/digitalmentat/orgmode-grammar/blob/master/SPECIFICATION.org][orgmode-grammar]] parser in Haskell.
orgmode-parse.cabal view
@@ -1,5 +1,5 @@ Name: orgmode-parse-Version: 0.0.1.2+Version: 0.0.2.0 Author: Parnell Springmeyer <parnell@digitalmentat.com> Maintainer: Parnell Springmeyer <parnell@digitalmentat.com> License: BSD3@@ -8,14 +8,14 @@ Synopsis: A parser and writer for org-mode flavored documents. Description: + <<https://travis-ci.org/digitalmentat/orgmode-parse.svg?branch=master>>+ . `orgmode-parse` is a parsing and writing library for the org-mode flavor of document markup. . This library parses the human-readable and textual representation into an AST that can be used for output to another format (HTML?- Markdown?), binary serialized for storage, etc...- .- <<https://travis-ci.org/digitalmentat/orgmode-parse.svg?branch=master>>+ Markdown?), serialized for storage, etc... Cabal-Version: >= 1.10 Build-Type: Simple@@ -42,6 +42,8 @@ base >= 4.4 && < 5, attoparsec >= 0.12 && < 0.13, unordered-containers >= 0.2 && < 0.3,+ thyme >= 0.3 && < 0.4,+ old-locale >= 1.0 && < 2.0, free >= 4.9 && < 5, text >= 1.0 && < 2.0 @@ -58,7 +60,9 @@ base >= 4.4 && < 5, text >= 1.0 && < 2.0, attoparsec >= 0.12 && < 0.13,- unordered-containers >= 0.2 && < 0.3,+ unordered-containers >= 0.2 && < 0.3,+ thyme >= 0.3 && < 0.4,+ old-locale >= 1.0 && < 2.0, HUnit >= 1.2.5.2 && < 1.3, tasty >= 0.8 && < 0.9, tasty-hunit >= 0.8.0.1 && < 0.9
src/Data/OrgMode/Parse.hs view
@@ -16,9 +16,11 @@ -- * Parse Headline module Data.OrgMode.Parse.Attoparsec.Headings -- * Parse Headline Metadata (properties, timestamps, etc...)+, module Data.OrgMode.Parse.Attoparsec.Time , module Data.OrgMode.Parse.Attoparsec.PropertyDrawer -- * Parse Body ) where import Data.OrgMode.Parse.Attoparsec.Headings import Data.OrgMode.Parse.Attoparsec.PropertyDrawer+import Data.OrgMode.Parse.Attoparsec.Time
src/Data/OrgMode/Parse/Internal.hs view
@@ -17,11 +17,17 @@ , State (..) , Keyword (..) , PropertyDrawer (..)+, Schedule (..)+, ScheduleType (..)+, Timestamp (..)+, Open (..)+, Close (..) , toPriority ) where -import Data.HashMap.Strict (HashMap)-import Data.Text (Text)+import Data.HashMap.Strict (HashMap)+import Data.Text (Text)+import Data.Thyme.LocalTime (LocalTime (..)) ---------------------------------------------------------------------------- @@ -53,3 +59,19 @@ newtype PropertyDrawer k v = PropertyDrawer (HashMap k v) deriving (Show, Eq)++----------------------------------------------------------------------------+data Schedule = Schedule+ { schedule_type :: ScheduleType+ , timestamp :: Maybe Timestamp+ , recurring :: Maybe Text+ } deriving (Show, Eq)++data ScheduleType = SCHEDULED | DEADLINE | APPOINTMENT+ deriving (Show, Eq)++data Timestamp = Active LocalTime | Inactive LocalTime+ deriving (Show, Eq)++newtype Open = Open Char+newtype Close = Close Char
test/Test.hs view
@@ -6,6 +6,7 @@ import Headings import PropertyDrawer import Test.Tasty+import Timestamps main :: IO () main = defaultMain tests@@ -15,4 +16,5 @@ "OrgMode Parser Tests" [ parserHeadingTests , parserPropertyDrawerTests+ , parserTimestampTests ]