@@ -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