diff --git a/crates/mdbook-html/src/html/tree.rs b/crates/mdbook-html/src/html/tree.rs
index 432cf7be..e4da7ef6 100644
--- a/crates/mdbook-html/src/html/tree.rs
+++ b/crates/mdbook-html/src/html/tree.rs
@@ -306,25 +306,7 @@ where
trace!("event={event:?}");
match event {
Event::Start(tag) => self.start_tag(tag),
- Event::End(tag) => {
- // TODO: This should validate that the event stack is
- // properly synchronized with the tag stack.
- self.pop();
- match tag {
- TagEnd::TableHead => {
- self.table_state = TableState::Body;
- self.push(Node::Element(Element::new("tbody")));
- }
- TagEnd::TableCell => {
- self.table_cell_index += 1;
- }
- TagEnd::Table => {
- // Pop tbody or thead
- self.pop();
- }
- _ => {}
- }
- }
+ Event::End(tag) => self.end_tag(tag),
Event::Text(text) => {
self.append_text(text.into_tendril());
}
@@ -600,6 +582,26 @@ where
self.push(Node::Element(element));
}
+ fn end_tag(&mut self, tag: TagEnd) {
+ // TODO: This should validate that the event stack is
+ // properly synchronized with the tag stack.
+ self.pop();
+ match tag {
+ TagEnd::TableHead => {
+ self.table_state = TableState::Body;
+ self.push(Node::Element(Element::new("tbody")));
+ }
+ TagEnd::TableCell => {
+ self.table_cell_index += 1;
+ }
+ TagEnd::Table => {
+ // Pop tbody or thead
+ self.pop();
+ }
+ _ => {}
+ }
+ }
+
/// Given some HTML, parse it into [`Node`] elements and append them to
/// the current node.
fn append_html(&mut self, html: &str) {