build: upgrade to indextree 4.0
This commit is contained in:
parent
23c091a482
commit
54c063f41b
|
@ -22,12 +22,12 @@ ser = ["serde", "serde_indextree"]
|
||||||
[dependencies]
|
[dependencies]
|
||||||
bytecount = "0.5.1"
|
bytecount = "0.5.1"
|
||||||
chrono = { version = "0.4.7", optional = true }
|
chrono = { version = "0.4.7", optional = true }
|
||||||
indextree = "3.3.0"
|
indextree = "4.0.0"
|
||||||
jetscii = "0.4.4"
|
jetscii = "0.4.4"
|
||||||
memchr = "2.2.1"
|
memchr = "2.2.1"
|
||||||
nom = "5.0.0"
|
nom = "5.0.0"
|
||||||
serde = { version = "1.0.98", optional = true, features = ["derive"] }
|
serde = { version = "1.0.98", optional = true, features = ["derive"] }
|
||||||
serde_indextree = { version = "0.1.0", optional = true }
|
serde_indextree = { version = "0.2.0", optional = true }
|
||||||
|
|
||||||
[dev-dependencies]
|
[dev-dependencies]
|
||||||
lazy_static = "1.3.0"
|
lazy_static = "1.3.0"
|
||||||
|
|
|
@ -63,8 +63,8 @@ impl Org<'_> {
|
||||||
self.document
|
self.document
|
||||||
.traverse(&self.arena)
|
.traverse(&self.arena)
|
||||||
.map(move |edge| match edge {
|
.map(move |edge| match edge {
|
||||||
NodeEdge::Start(e) => Event::Start(&self.arena[e].data),
|
NodeEdge::Start(e) => Event::Start(self.arena[e].get()),
|
||||||
NodeEdge::End(e) => Event::End(&self.arena[e].data),
|
NodeEdge::End(e) => Event::End(self.arena[e].get()),
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -53,7 +53,7 @@ pub fn parse_title<'a>(
|
||||||
let (tail, title) = Title::parse(content, config).unwrap();
|
let (tail, title) = Title::parse(content, config).unwrap();
|
||||||
let content = title.raw;
|
let content = title.raw;
|
||||||
let node = arena.new_node(Element::Title(title));
|
let node = arena.new_node(Element::Title(title));
|
||||||
parent.append(node, arena).unwrap();
|
parent.append(node, arena);
|
||||||
containers.push(Container::Inline { content, node });
|
containers.push(Container::Inline { content, node });
|
||||||
tail
|
tail
|
||||||
}
|
}
|
||||||
|
@ -74,21 +74,21 @@ pub fn parse_section_and_headlines<'a>(
|
||||||
if let Some((mut tail, headline_content)) = parse_headline(&content[last_end..]) {
|
if let Some((mut tail, headline_content)) = parse_headline(&content[last_end..]) {
|
||||||
if last_end != 0 {
|
if last_end != 0 {
|
||||||
let node = arena.new_node(Element::Section);
|
let node = arena.new_node(Element::Section);
|
||||||
parent.append(node, arena).unwrap();
|
parent.append(node, arena);
|
||||||
containers.push(Container::Block {
|
containers.push(Container::Block {
|
||||||
content: &content[0..last_end],
|
content: &content[0..last_end],
|
||||||
node,
|
node,
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
let node = arena.new_node(Element::Headline);
|
let node = arena.new_node(Element::Headline);
|
||||||
parent.append(node, arena).unwrap();
|
parent.append(node, arena);
|
||||||
containers.push(Container::Headline {
|
containers.push(Container::Headline {
|
||||||
content: headline_content,
|
content: headline_content,
|
||||||
node,
|
node,
|
||||||
});
|
});
|
||||||
while let Some((new_tail, content)) = parse_headline(tail) {
|
while let Some((new_tail, content)) = parse_headline(tail) {
|
||||||
let node = arena.new_node(Element::Headline);
|
let node = arena.new_node(Element::Headline);
|
||||||
parent.append(node, arena).unwrap();
|
parent.append(node, arena);
|
||||||
containers.push(Container::Headline { content, node });
|
containers.push(Container::Headline { content, node });
|
||||||
tail = new_tail;
|
tail = new_tail;
|
||||||
}
|
}
|
||||||
|
@ -98,7 +98,7 @@ pub fn parse_section_and_headlines<'a>(
|
||||||
}
|
}
|
||||||
|
|
||||||
let node = arena.new_node(Element::Section);
|
let node = arena.new_node(Element::Section);
|
||||||
parent.append(node, arena).unwrap();
|
parent.append(node, arena);
|
||||||
containers.push(Container::Block { content, node });
|
containers.push(Container::Block { content, node });
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -139,7 +139,7 @@ pub fn parse_blocks<'a>(
|
||||||
let mut tail = skip_empty_lines(content);
|
let mut tail = skip_empty_lines(content);
|
||||||
|
|
||||||
if let Some((new_tail, element)) = parse_block(content, arena, containers) {
|
if let Some((new_tail, element)) = parse_block(content, arena, containers) {
|
||||||
parent.append(element, arena).unwrap();
|
parent.append(element, arena);
|
||||||
tail = skip_empty_lines(new_tail);
|
tail = skip_empty_lines(new_tail);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -153,7 +153,7 @@ pub fn parse_blocks<'a>(
|
||||||
if tail.as_bytes()[0..i].iter().all(u8::is_ascii_whitespace) {
|
if tail.as_bytes()[0..i].iter().all(u8::is_ascii_whitespace) {
|
||||||
tail = skip_empty_lines(&tail[i..]);
|
tail = skip_empty_lines(&tail[i..]);
|
||||||
let node = arena.new_node(Element::Paragraph);
|
let node = arena.new_node(Element::Paragraph);
|
||||||
parent.append(node, arena).unwrap();
|
parent.append(node, arena);
|
||||||
containers.push(Container::Inline {
|
containers.push(Container::Inline {
|
||||||
content: &text[0..pos].trim_end_matches('\n'),
|
content: &text[0..pos].trim_end_matches('\n'),
|
||||||
node,
|
node,
|
||||||
|
@ -163,14 +163,14 @@ pub fn parse_blocks<'a>(
|
||||||
} else if let Some((new_tail, element)) = parse_block(tail, arena, containers) {
|
} else if let Some((new_tail, element)) = parse_block(tail, arena, containers) {
|
||||||
if pos != 0 {
|
if pos != 0 {
|
||||||
let node = arena.new_node(Element::Paragraph);
|
let node = arena.new_node(Element::Paragraph);
|
||||||
parent.append(node, arena).unwrap();
|
parent.append(node, arena);
|
||||||
containers.push(Container::Inline {
|
containers.push(Container::Inline {
|
||||||
content: &text[0..pos].trim_end_matches('\n'),
|
content: &text[0..pos].trim_end_matches('\n'),
|
||||||
node,
|
node,
|
||||||
});
|
});
|
||||||
pos = 0;
|
pos = 0;
|
||||||
}
|
}
|
||||||
parent.append(element, arena).unwrap();
|
parent.append(element, arena);
|
||||||
tail = skip_empty_lines(new_tail);
|
tail = skip_empty_lines(new_tail);
|
||||||
text = tail;
|
text = tail;
|
||||||
} else {
|
} else {
|
||||||
|
@ -181,7 +181,7 @@ pub fn parse_blocks<'a>(
|
||||||
|
|
||||||
if !text.is_empty() {
|
if !text.is_empty() {
|
||||||
let node = arena.new_node(Element::Paragraph);
|
let node = arena.new_node(Element::Paragraph);
|
||||||
parent.append(node, arena).unwrap();
|
parent.append(node, arena);
|
||||||
containers.push(Container::Inline {
|
containers.push(Container::Inline {
|
||||||
content: &text[0..pos].trim_end_matches('\n'),
|
content: &text[0..pos].trim_end_matches('\n'),
|
||||||
node,
|
node,
|
||||||
|
@ -363,7 +363,7 @@ pub fn parse_inlines<'a>(
|
||||||
let mut tail = content;
|
let mut tail = content;
|
||||||
|
|
||||||
if let Some((new_tail, element)) = parse_inline(tail, arena, containers) {
|
if let Some((new_tail, element)) = parse_inline(tail, arena, containers) {
|
||||||
parent.append(element, arena).unwrap();
|
parent.append(element, arena);
|
||||||
tail = new_tail;
|
tail = new_tail;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -380,10 +380,10 @@ pub fn parse_inlines<'a>(
|
||||||
let node = arena.new_node(Element::Text {
|
let node = arena.new_node(Element::Text {
|
||||||
value: &text[0..pos + off],
|
value: &text[0..pos + off],
|
||||||
});
|
});
|
||||||
parent.append(node, arena).unwrap();
|
parent.append(node, arena);
|
||||||
pos = 0;
|
pos = 0;
|
||||||
}
|
}
|
||||||
parent.append(element, arena).unwrap();
|
parent.append(element, arena);
|
||||||
tail = new_tail;
|
tail = new_tail;
|
||||||
text = new_tail;
|
text = new_tail;
|
||||||
continue;
|
continue;
|
||||||
|
@ -393,9 +393,9 @@ pub fn parse_inlines<'a>(
|
||||||
let node = arena.new_node(Element::Text {
|
let node = arena.new_node(Element::Text {
|
||||||
value: &text[0..pos + off + 1],
|
value: &text[0..pos + off + 1],
|
||||||
});
|
});
|
||||||
parent.append(node, arena).unwrap();
|
parent.append(node, arena);
|
||||||
pos = 0;
|
pos = 0;
|
||||||
parent.append(element, arena).unwrap();
|
parent.append(element, arena);
|
||||||
tail = new_tail;
|
tail = new_tail;
|
||||||
text = new_tail;
|
text = new_tail;
|
||||||
continue;
|
continue;
|
||||||
|
@ -407,9 +407,9 @@ pub fn parse_inlines<'a>(
|
||||||
let node = arena.new_node(Element::Text {
|
let node = arena.new_node(Element::Text {
|
||||||
value: &text[0..pos + off + 1],
|
value: &text[0..pos + off + 1],
|
||||||
});
|
});
|
||||||
parent.append(node, arena).unwrap();
|
parent.append(node, arena);
|
||||||
pos = 0;
|
pos = 0;
|
||||||
parent.append(element, arena).unwrap();
|
parent.append(element, arena);
|
||||||
tail = new_tail;
|
tail = new_tail;
|
||||||
text = new_tail;
|
text = new_tail;
|
||||||
continue;
|
continue;
|
||||||
|
@ -421,10 +421,10 @@ pub fn parse_inlines<'a>(
|
||||||
let node = arena.new_node(Element::Text {
|
let node = arena.new_node(Element::Text {
|
||||||
value: &text[0..pos + off],
|
value: &text[0..pos + off],
|
||||||
});
|
});
|
||||||
parent.append(node, arena).unwrap();
|
parent.append(node, arena);
|
||||||
pos = 0;
|
pos = 0;
|
||||||
}
|
}
|
||||||
parent.append(element, arena).unwrap();
|
parent.append(element, arena);
|
||||||
tail = new_tail;
|
tail = new_tail;
|
||||||
text = new_tail;
|
text = new_tail;
|
||||||
continue;
|
continue;
|
||||||
|
@ -437,7 +437,7 @@ pub fn parse_inlines<'a>(
|
||||||
|
|
||||||
if !text.is_empty() {
|
if !text.is_empty() {
|
||||||
let node = arena.new_node(Element::Text { value: text });
|
let node = arena.new_node(Element::Text { value: text });
|
||||||
parent.append(node, arena).unwrap();
|
parent.append(node, arena);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -550,7 +550,7 @@ pub fn parse_list_items<'a>(
|
||||||
let (tail, list_item, content) = ListItem::parse(contents, indent);
|
let (tail, list_item, content) = ListItem::parse(contents, indent);
|
||||||
let list_item = Element::ListItem(list_item);
|
let list_item = Element::ListItem(list_item);
|
||||||
let node = arena.new_node(list_item);
|
let node = arena.new_node(list_item);
|
||||||
parent.append(node, arena).unwrap();
|
parent.append(node, arena);
|
||||||
containers.push(Container::Block { content, node });
|
containers.push(Container::Block { content, node });
|
||||||
contents = tail;
|
contents = tail;
|
||||||
}
|
}
|
||||||
|
@ -570,10 +570,10 @@ pub fn prase_table<'a>(
|
||||||
match TableRow::parse(line) {
|
match TableRow::parse(line) {
|
||||||
Some(TableRow::Standard) => {
|
Some(TableRow::Standard) => {
|
||||||
let row_node = arena.new_node(Element::TableRow(TableRow::Standard));
|
let row_node = arena.new_node(Element::TableRow(TableRow::Standard));
|
||||||
table_node.append(row_node, arena).unwrap();
|
table_node.append(row_node, arena);
|
||||||
for cell in line[1..].split_terminator('|') {
|
for cell in line[1..].split_terminator('|') {
|
||||||
let cell_node = arena.new_node(Element::TableCell);
|
let cell_node = arena.new_node(Element::TableCell);
|
||||||
row_node.append(cell_node, arena).unwrap();
|
row_node.append(cell_node, arena);
|
||||||
containers.push(Container::Inline {
|
containers.push(Container::Inline {
|
||||||
content: cell.trim(),
|
content: cell.trim(),
|
||||||
node: cell_node,
|
node: cell_node,
|
||||||
|
@ -582,7 +582,7 @@ pub fn prase_table<'a>(
|
||||||
}
|
}
|
||||||
Some(TableRow::Rule) => {
|
Some(TableRow::Rule) => {
|
||||||
let row_node = arena.new_node(Element::TableRow(TableRow::Rule));
|
let row_node = arena.new_node(Element::TableRow(TableRow::Rule));
|
||||||
table_node.append(row_node, arena).unwrap();
|
table_node.append(row_node, arena);
|
||||||
}
|
}
|
||||||
None => return Some((&contents[last_end..], table_node)),
|
None => return Some((&contents[last_end..], table_node)),
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue