An Org Mode parser for Dart.
Usage
For displaying Org Mode documents in Flutter applications, see org_flutter. For an example application that displays Org Mode documents with org_parser and org_flutter, see Orgro.
This package allows you to parse raw Org Mode documents into a structured in-memory representation.
import 'package:org_parser/org_parser.dart'; final doc = OrgDocument.parse('''* TODO [#A] foo bar baz buzz'''); print(doc.children[0].headline.keyword); // TODO
See the example for more.
Features
- Parser and rich, immutable AST for Org markup
- Zipper-based editing facilities for Org AST
- Extensive test suite, including checks for lossless round-tripping from markup to AST and back
- Parser for the headline matching DSL
- Parser for file links
- Parser for and extended handling of the TODO workflow DSL
Supported syntax
-
Sections/headlines
-
Blocks
#+BEGIN_SRC foo bar #+END_SRC -
Inline src
foo src_sh{echo "bar"} baz -
Affiliated keywords
-
Fixed-width areas
-
Tables
| foo | bar | |-----+-----| | biz | baz | -
Lists
- foo - [X] bar 1. baz 2. buzz - bazinga :: bazonga -
Drawers
:PROPERTIES: foo bar :END: -
Footnotes
Foo bar[fn:1] biz buzz [fn:1] Bazinga -
Links, including with emphasis in description
[[http://example.com][example]] [[http://example.com][example *with* emphasis]] http://example.com -
Emphasis markup, including nested emphasis
*bold* /italic/ _underline_ +strikethrough+ ~code~ =verbatim= -
Timestamps
[2020-05-05 Tue] <2020-05-05 Tue 10:00> [2020-05-05 Tue]--[2020-05-05 Tue] -
Macro references
-
LaTeX fragments
Then we add $a^2$ to \(b^2\)\begin{equation} \nabla \times \mathbf{B} = \frac{1}{c}\left( 4\pi\mathbf{J} + \frac{\partial \mathbf{E}}{\partial t}\right) \end{equation} -
Entities
a\leftrightarrow{}b conversion -
Citations
-
Horizontal rules
-
Radio targets
-
Link targets