Skip to main content

parse

Function parse 

Source
pub fn parse(
    src: &str,
    fence: &str,
    item_names: &[&str],
) -> Result<Vec<Item>, String>
Expand description

Parse a block document. item_names declares which directive names open an item; every other fence name is a payload section. An item-opening directive implicitly closes the previous item, and end closes one explicitly — so attribute-only items (#% delete path=…) need no end.

§Examples

use coding_tools::blockdoc::{parse, DEFAULT_FENCE};

let doc = "#% edit expect=\"=1\"\n#% find\nold()\n#% replace\nnew()\n#% end\n";
let items = parse(doc, DEFAULT_FENCE, &["edit"]).unwrap();
assert_eq!(items.len(), 1);
assert_eq!(items[0].attr("expect"), Some("=1"));
assert_eq!(items[0].section("find"), Some("old()\n"));