[][src]Crate reorg

reorg is a convenient library to read org-mode files from Rust.

It has many limitations as of now, as it can only read very simple files. A file is a collection of Sections, each section contains a heading: a line with one or more '*' and a title. After the heading section a contents section is expected, which is a multi-line string.


let org_doc = String::from("* This is first item
with some content
and a second line
** And we have another title
also with some content");
let doc = reorg::Document::from(org_doc).unwrap();

assert_eq!(doc.sections.borrow()[0].heading.stars, 1);
assert_eq!(doc.sections.borrow()[0].heading.title, "This is first item");
assert_eq!(doc.sections.borrow()[0].children.borrow()[0].heading.stars, 2);
assert_eq!(doc.sections.borrow()[0].children.borrow()[0].heading.title, "And we have another title");

assert_eq!(doc.sections.borrow()[0].content, "with some content\nand a second line\n");
assert_eq!(doc.sections.borrow()[0].children.borrow()[0].content, "also with some content");



Document is an org representation of a text file. It is a collection of entries but it can be preceded by some content. The prologue is not yet implemented.


Heading is the title of each section, it includes a number of stars, which set the "priority" for this given Section.


A Section is a Heading and some optional Content. A Document is composed of many Sections.