An Org Mode parser for Dart.
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.
This parser was developed for an application that is halfway between pretty-printing and evaluating/interpreting, so in many cases the parsed structure does not split out constituent parts as thoroughly as needed for some applications.
-
Sections/headlines
* TODO [#A] foo bar
-
Blocks
#+BEGIN_SRC foo bar #+END_SRC
-
Affiliated keywords
#+name: foo
-
Fixed-width areas
: foo bar : baz buzz
-
Tables
| foo | bar | |-----+-----| | biz | baz |
-
Lists
- foo - [X] bar 1. baz 2. buzz
-
Drawers
:PROPERTIES: foo bar :END:
-
Footnotes
Foo bar[fn:1] biz buzz [fn:1] Bazinga
-
Links
[[http://example.com][example]] http://example.com
-
Emphasis markup
*bold* /italic/ _underline_ +strikethrough+ ~code~ =verbatim=
-
Timestamps
[2020-05-05 Tue] <2020-05-05 Tue 10:00>
-
Macro references
{{{kbd(C-c C-c)}}}
-
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
[cite:@key]
-
Horizontal rules
-----
-
Radio targets
<<<foo>>>
-
Link targets
<<bar>>