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"));