Skip to content

amake/org_parser

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Mar 27, 2025
52157fb · Mar 27, 2025
Aug 22, 2023
Mar 26, 2025
Mar 26, 2025
Mar 26, 2025
Dec 9, 2021
Feb 6, 2020
Mar 27, 2025
Apr 18, 2021
Nov 4, 2023
Jan 15, 2025
Aug 28, 2023
Mar 7, 2025
Mar 27, 2025

Repository files navigation

org_parser

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.

Caveats

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.

Supported syntax

  • Sections/headlines

    * TODO [#A] foo bar
    
  • Blocks

    #+BEGIN_SRC
    foo bar
    #+END_SRC
    
  • Inline src

    foo src_sh{echo "bar"} baz
    
  • 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>>