@@ -362,14 +362,15 @@ fn map_links<'e>(
362
362
// holds the origin link target on start event and the rewritten one on end event
363
363
let mut end_link_target: Option < CowStr > = None ;
364
364
// normally link's type is determined by the type of link tag in the end event,
365
- // however in same cases we want to change the link type, for example,
365
+ // however in some cases we want to change the link type, for example,
366
366
// `Shortcut` type doesn't make sense for url links
367
367
let mut end_link_type: Option < LinkType > = None ;
368
368
369
369
events. map ( move |evt| match evt {
370
- Event :: Start ( Tag :: Link ( _ , ref target, _) ) => {
370
+ Event :: Start ( Tag :: Link ( link_type , ref target, _) ) => {
371
371
in_link = true ;
372
372
end_link_target = Some ( target. clone ( ) ) ;
373
+ end_link_type = Some ( link_type) ;
373
374
evt
374
375
}
375
376
Event :: End ( Tag :: Link ( link_type, target, _) ) => {
@@ -381,17 +382,13 @@ fn map_links<'e>(
381
382
) )
382
383
}
383
384
Event :: Text ( s) if in_link => {
384
- let ( link_type, link_target_s, link_name) =
385
- callback ( & end_link_target. take ( ) . unwrap ( ) , & s) ;
385
+ let ( _, link_target_s, link_name) = callback ( & end_link_target. take ( ) . unwrap ( ) , & s) ;
386
386
end_link_target = Some ( CowStr :: Boxed ( link_target_s. into ( ) ) ) ;
387
- end_link_type = link_type;
388
387
Event :: Text ( CowStr :: Boxed ( link_name. into ( ) ) )
389
388
}
390
389
Event :: Code ( s) if in_link => {
391
- let ( link_type, link_target_s, link_name) =
392
- callback ( & end_link_target. take ( ) . unwrap ( ) , & s) ;
390
+ let ( _, link_target_s, link_name) = callback ( & end_link_target. take ( ) . unwrap ( ) , & s) ;
393
391
end_link_target = Some ( CowStr :: Boxed ( link_target_s. into ( ) ) ) ;
394
- end_link_type = link_type;
395
392
Event :: Code ( CowStr :: Boxed ( link_name. into ( ) ) )
396
393
}
397
394
_ => evt,
0 commit comments