Skip to content

Commit 87825e6

Browse files
Remove <span> tag wrapping if it contains a link (<a>)
1 parent 6ba4c30 commit 87825e6

File tree

2 files changed

+11
-12
lines changed

2 files changed

+11
-12
lines changed

crates/anstyle-svg/src/lib.rs

Lines changed: 10 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -504,28 +504,27 @@ fn write_fg_span(buffer: &mut String, span: SpanKind, element: &adapter::Element
504504
classes.push("hidden");
505505
}
506506

507-
let mut need_closing_a = false;
508-
509507
match span {
510508
SpanKind::Span => {
511509
if classes.is_empty() && element.url.is_none() {
512510
// No need to create an element if there is no class or href.
513511
write!(buffer, "{fragment}").unwrap();
514512
}
515-
write!(buffer, r#"<span"#).unwrap();
513+
let closing_tag = if let Some(hyperlink) = &element.url {
514+
write!(buffer, r#"<a href="{hyperlink}">"#).unwrap();
515+
"</a>"
516+
} else {
517+
write!(buffer, r#"<span"#).unwrap();
518+
"</span>"
519+
};
516520
write_classes(buffer, classes);
517521
write!(buffer, r#">"#).unwrap();
518-
if let Some(hyperlink) = &element.url {
519-
write!(buffer, r#"<a href="{hyperlink}">"#).unwrap();
520-
need_closing_a = true;
521-
}
522522
write!(buffer, "{fragment}").unwrap();
523-
if need_closing_a {
524-
write!(buffer, r#"</a>"#).unwrap();
525-
}
526-
write!(buffer, r#"</span>"#).unwrap();
523+
buffer.write_str(closing_tag).unwrap();
527524
}
528525
SpanKind::Tspan => {
526+
let mut need_closing_a = false;
527+
529528
write!(buffer, r#"<tspan"#).unwrap();
530529
write_classes(buffer, classes);
531530
write!(buffer, r#">"#).unwrap();

0 commit comments

Comments
 (0)