Skip to content

Commit 0de7406

Browse files
authored
fix(html): recursively update ns_qualifiers when resolving a reference (#678)
1 parent fbc0b77 commit 0de7406

File tree

1 file changed

+18
-2
lines changed

1 file changed

+18
-2
lines changed

src/html/mod.rs

Lines changed: 18 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -527,8 +527,24 @@ impl GenerateCtx {
527527
parent.ns_qualifiers.len() + node.ns_qualifiers.len(),
528528
);
529529
ns_qualifiers.extend(parent.sub_qualifier());
530-
ns_qualifiers.extend(node.ns_qualifiers.iter().cloned());
531-
node.ns_qualifiers = ns_qualifiers.into();
530+
531+
fn handle_node(
532+
node: &mut DocNodeWithContext,
533+
ns_qualifiers: Vec<String>,
534+
) {
535+
if let Some(children) = &mut node.namespace_children {
536+
for node in children {
537+
handle_node(node, ns_qualifiers.clone());
538+
}
539+
}
540+
541+
let mut new_ns_qualifiers = ns_qualifiers;
542+
new_ns_qualifiers.extend(node.ns_qualifiers.iter().cloned());
543+
node.ns_qualifiers = new_ns_qualifiers.into();
544+
}
545+
546+
handle_node(&mut node, ns_qualifiers);
547+
532548
Cow::Owned(node)
533549
} else {
534550
node

0 commit comments

Comments
 (0)