A collection of Attoparsec combinators for parsing org-mode flavored documents.
`orgmode-parse` is a parsing library for the org-mode flavor of document markup.
The provided Attoparsec combinators parse the human-readable and textual representation into a simple AST for storage or output to another format (HTML? Markdown?).
Welcome!
orgmode-parse
provides a top-level parser and collection of attoparsec parser combinators for org-mode structured text.
You can find the package on Hackage.
What's Finished
We have built attoparsec parsers for parsing org-mode document structures and meta-data. Here is a list of all the syntax features that have a complete parsing implementation and not:
- [X] Headlines
- [X] State keywords
- [X] Priority indicator
- [X] Title
- [X] Status / progress indicator
- [X] Tag list
- [X] Property drawers
- [X] State keyword changelogs
- [X] Scheduled and deadline timestamps (timestamp, range, duration, periodicity)
- [X] Active and inactive timestamps
- [X] Clock timestamps
- [ ] Markup
- [ ] Emphasis
- [ ] Bold
- [ ] Italic
- [ ] Strikethrough
- [ ] Underline
- [ ] Superscript
- [ ] Subscript
- [ ] Code / monospaced
- [ ] Tables
- [ ] Lists
- [ ] Unordered lists
- [ ] Numbered lists
- [ ] Checkbox modified lists
- [ ] Blocks (src / quote / example blocks)
- [ ] Emphasis
Parsing org-mode markup is currently being worked on.
What's Planned (outside of what's not finished)
- Modernizing this library and adding significantly more documentation to it
- Writing a sister library,
orgmode-pretty
, providing a pretty printer implementation for an org-mode AST - Pandoc integration
Building
There are a few ways to build this library if you're developing a patch:
stack build && stack test
, andnix-build --no-out-link --attr orgmode-parse release.nix
You can also use the nix-shell
provided cabal environment for incremental development:
$ nix-shell --attr orgmode-parse.env release.nix
$ cabal build
Projects that use this package:
https://github.com/volhovm/orgstat