@@ -504,28 +504,27 @@ fn write_fg_span(buffer: &mut String, span: SpanKind, element: &adapter::Element
504
504
classes. push ( "hidden" ) ;
505
505
}
506
506
507
- let mut need_closing_a = false ;
508
-
509
507
match span {
510
508
SpanKind :: Span => {
511
509
if classes. is_empty ( ) && element. url . is_none ( ) {
512
510
// No need to create an element if there is no class or href.
513
511
write ! ( buffer, "{fragment}" ) . unwrap ( ) ;
514
512
}
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
+ } ;
516
520
write_classes ( buffer, classes) ;
517
521
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
- }
522
522
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 ( ) ;
527
524
}
528
525
SpanKind :: Tspan => {
526
+ let mut need_closing_a = false ;
527
+
529
528
write ! ( buffer, r#"<tspan"# ) . unwrap ( ) ;
530
529
write_classes ( buffer, classes) ;
531
530
write ! ( buffer, r#">"# ) . unwrap ( ) ;
0 commit comments