@@ -116,15 +116,19 @@ macro_rules! event_loop_break {
116
116
match event {
117
117
$( $end_event) |* => break ,
118
118
Event :: Text ( ref s) => {
119
+ debug!( "Text" ) ;
119
120
inner( $id, s) ;
120
121
if $escape {
121
122
$buf. push_str( & format!( "{}" , Escape ( s) ) ) ;
122
123
} else {
123
124
$buf. push_str( s) ;
124
125
}
125
126
}
126
- Event :: SoftBreak | Event :: HardBreak if !$buf. is_empty( ) => {
127
- $buf. push( ' ' ) ;
127
+ Event :: SoftBreak => {
128
+ debug!( "SoftBreak" ) ;
129
+ if !$buf. is_empty( ) {
130
+ $buf. push( ' ' ) ;
131
+ }
128
132
}
129
133
x => {
130
134
looper( $parser, & mut $buf, Some ( x) , $toc_builder, $shorter, $id) ;
@@ -165,6 +169,7 @@ pub fn render(w: &mut fmt::Formatter,
165
169
print_toc : bool ,
166
170
shorter : MarkdownOutputStyle ) -> fmt:: Result {
167
171
fn code_block ( parser : & mut ParserWrapper , buffer : & mut String , lang : & str ) {
172
+ debug ! ( "CodeBlock" ) ;
168
173
let mut origtext = String :: new ( ) ;
169
174
while let Some ( event) = parser. next ( ) {
170
175
match event {
@@ -244,6 +249,7 @@ pub fn render(w: &mut fmt::Formatter,
244
249
245
250
fn heading ( parser : & mut ParserWrapper , buffer : & mut String ,
246
251
toc_builder : & mut Option < TocBuilder > , shorter : MarkdownOutputStyle , level : i32 ) {
252
+ debug ! ( "Heading" ) ;
247
253
let mut ret = String :: new ( ) ;
248
254
let mut id = String :: new ( ) ;
249
255
event_loop_break ! ( parser, toc_builder, shorter, ret, true , & mut Some ( & mut id) ,
@@ -279,6 +285,7 @@ pub fn render(w: &mut fmt::Formatter,
279
285
fn inline_code ( parser : & mut ParserWrapper , buffer : & mut String ,
280
286
toc_builder : & mut Option < TocBuilder > , shorter : MarkdownOutputStyle ,
281
287
id : & mut Option < & mut String > ) {
288
+ debug ! ( "InlineCode" ) ;
282
289
let mut content = String :: new ( ) ;
283
290
event_loop_break ! ( parser, toc_builder, shorter, content, false , id, Event :: End ( Tag :: Code ) ) ;
284
291
buffer. push_str ( & format ! ( "<code>{}</code>" ,
@@ -288,6 +295,7 @@ pub fn render(w: &mut fmt::Formatter,
288
295
fn link ( parser : & mut ParserWrapper , buffer : & mut String , toc_builder : & mut Option < TocBuilder > ,
289
296
shorter : MarkdownOutputStyle , url : & str , title : & str ,
290
297
id : & mut Option < & mut String > ) {
298
+ debug ! ( "Link" ) ;
291
299
let mut content = String :: new ( ) ;
292
300
event_loop_break ! ( parser, toc_builder, shorter, content, true , id,
293
301
Event :: End ( Tag :: Link ( _, _) ) ) ;
@@ -302,6 +310,7 @@ pub fn render(w: &mut fmt::Formatter,
302
310
fn image ( parser : & mut ParserWrapper , buffer : & mut String , toc_builder : & mut Option < TocBuilder > ,
303
311
shorter : MarkdownOutputStyle , url : & str , mut title : String ,
304
312
id : & mut Option < & mut String > ) {
313
+ debug ! ( "Image" ) ;
305
314
event_loop_break ! ( parser, toc_builder, shorter, title, true , id,
306
315
Event :: End ( Tag :: Image ( _, _) ) ) ;
307
316
buffer. push_str ( & format ! ( "<img src=\" {}\" alt=\" {}\" >" , url, title) ) ;
@@ -310,6 +319,7 @@ pub fn render(w: &mut fmt::Formatter,
310
319
fn paragraph ( parser : & mut ParserWrapper , buffer : & mut String ,
311
320
toc_builder : & mut Option < TocBuilder > , shorter : MarkdownOutputStyle ,
312
321
id : & mut Option < & mut String > ) {
322
+ debug ! ( "Paragraph" ) ;
313
323
let mut content = String :: new ( ) ;
314
324
event_loop_break ! ( parser, toc_builder, shorter, content, true , id,
315
325
Event :: End ( Tag :: Paragraph ) ) ;
@@ -318,6 +328,7 @@ pub fn render(w: &mut fmt::Formatter,
318
328
319
329
fn table_cell ( parser : & mut ParserWrapper , buffer : & mut String ,
320
330
toc_builder : & mut Option < TocBuilder > , shorter : MarkdownOutputStyle ) {
331
+ debug ! ( "TableCell" ) ;
321
332
let mut content = String :: new ( ) ;
322
333
event_loop_break ! ( parser, toc_builder, shorter, content, true , & mut None ,
323
334
Event :: End ( Tag :: TableHead ) |
@@ -329,6 +340,7 @@ pub fn render(w: &mut fmt::Formatter,
329
340
330
341
fn table_row ( parser : & mut ParserWrapper , buffer : & mut String ,
331
342
toc_builder : & mut Option < TocBuilder > , shorter : MarkdownOutputStyle ) {
343
+ debug ! ( "TableRow" ) ;
332
344
let mut content = String :: new ( ) ;
333
345
while let Some ( event) = parser. next ( ) {
334
346
match event {
@@ -348,6 +360,7 @@ pub fn render(w: &mut fmt::Formatter,
348
360
349
361
fn table_head ( parser : & mut ParserWrapper , buffer : & mut String ,
350
362
toc_builder : & mut Option < TocBuilder > , shorter : MarkdownOutputStyle ) {
363
+ debug ! ( "TableHead" ) ;
351
364
let mut content = String :: new ( ) ;
352
365
while let Some ( event) = parser. next ( ) {
353
366
match event {
@@ -367,6 +380,7 @@ pub fn render(w: &mut fmt::Formatter,
367
380
368
381
fn table ( parser : & mut ParserWrapper , buffer : & mut String , toc_builder : & mut Option < TocBuilder > ,
369
382
shorter : MarkdownOutputStyle ) {
383
+ debug ! ( "Table" ) ;
370
384
let mut content = String :: new ( ) ;
371
385
let mut rows = String :: new ( ) ;
372
386
while let Some ( event) = parser. next ( ) {
@@ -392,6 +406,7 @@ pub fn render(w: &mut fmt::Formatter,
392
406
393
407
fn blockquote ( parser : & mut ParserWrapper , buffer : & mut String ,
394
408
toc_builder : & mut Option < TocBuilder > , shorter : MarkdownOutputStyle ) {
409
+ debug ! ( "BlockQuote" ) ;
395
410
let mut content = String :: new ( ) ;
396
411
event_loop_break ! ( parser, toc_builder, shorter, content, true , & mut None ,
397
412
Event :: End ( Tag :: BlockQuote ) ) ;
@@ -400,6 +415,7 @@ pub fn render(w: &mut fmt::Formatter,
400
415
401
416
fn list_item ( parser : & mut ParserWrapper , buffer : & mut String ,
402
417
toc_builder : & mut Option < TocBuilder > , shorter : MarkdownOutputStyle ) {
418
+ debug ! ( "ListItem" ) ;
403
419
let mut content = String :: new ( ) ;
404
420
while let Some ( event) = parser. next ( ) {
405
421
match event {
@@ -417,6 +433,7 @@ pub fn render(w: &mut fmt::Formatter,
417
433
418
434
fn list ( parser : & mut ParserWrapper , buffer : & mut String , toc_builder : & mut Option < TocBuilder > ,
419
435
shorter : MarkdownOutputStyle ) {
436
+ debug ! ( "List" ) ;
420
437
let mut content = String :: new ( ) ;
421
438
while let Some ( event) = parser. next ( ) {
422
439
match event {
@@ -435,6 +452,7 @@ pub fn render(w: &mut fmt::Formatter,
435
452
fn emphasis ( parser : & mut ParserWrapper , buffer : & mut String ,
436
453
toc_builder : & mut Option < TocBuilder > , shorter : MarkdownOutputStyle ,
437
454
id : & mut Option < & mut String > ) {
455
+ debug ! ( "Emphasis" ) ;
438
456
let mut content = String :: new ( ) ;
439
457
event_loop_break ! ( parser, toc_builder, shorter, content, false , id,
440
458
Event :: End ( Tag :: Emphasis ) ) ;
@@ -443,6 +461,7 @@ pub fn render(w: &mut fmt::Formatter,
443
461
444
462
fn strong ( parser : & mut ParserWrapper , buffer : & mut String , toc_builder : & mut Option < TocBuilder > ,
445
463
shorter : MarkdownOutputStyle , id : & mut Option < & mut String > ) {
464
+ debug ! ( "Strong" ) ;
446
465
let mut content = String :: new ( ) ;
447
466
event_loop_break ! ( parser, toc_builder, shorter, content, false , id,
448
467
Event :: End ( Tag :: Strong ) ) ;
@@ -452,6 +471,7 @@ pub fn render(w: &mut fmt::Formatter,
452
471
fn footnote ( parser : & mut ParserWrapper , buffer : & mut String ,
453
472
toc_builder : & mut Option < TocBuilder > , shorter : MarkdownOutputStyle ,
454
473
id : & mut Option < & mut String > ) {
474
+ debug ! ( "FootnoteDefinition" ) ;
455
475
let mut content = String :: new ( ) ;
456
476
event_loop_break ! ( parser, toc_builder, shorter, content, true , id,
457
477
Event :: End ( Tag :: FootnoteDefinition ( _) ) ) ;
@@ -460,6 +480,7 @@ pub fn render(w: &mut fmt::Formatter,
460
480
461
481
fn rule ( parser : & mut ParserWrapper , buffer : & mut String , toc_builder : & mut Option < TocBuilder > ,
462
482
shorter : MarkdownOutputStyle , id : & mut Option < & mut String > ) {
483
+ debug ! ( "Rule" ) ;
463
484
let mut content = String :: new ( ) ;
464
485
event_loop_break ! ( parser, toc_builder, shorter, content, true , id,
465
486
Event :: End ( Tag :: Rule ) ) ;
@@ -508,6 +529,7 @@ pub fn render(w: &mut fmt::Formatter,
508
529
rule ( parser, buffer, toc_builder, shorter, id) ;
509
530
}
510
531
Event :: Start ( Tag :: FootnoteDefinition ( ref def) ) => {
532
+ debug ! ( "FootnoteDefinition" ) ;
511
533
let mut content = String :: new ( ) ;
512
534
let def = def. as_ref ( ) ;
513
535
footnote ( parser, & mut content, toc_builder, shorter, id) ;
@@ -523,12 +545,22 @@ pub fn render(w: &mut fmt::Formatter,
523
545
} ) ) ;
524
546
}
525
547
Event :: FootnoteReference ( ref reference) => {
548
+ debug ! ( "FootnoteReference" ) ;
526
549
let entry = parser. get_entry ( reference. as_ref ( ) ) ;
527
550
buffer. push_str ( & format ! ( "<sup id=\" supref{0}\" ><a href=\" #ref{0}\" >{0}</a>\
528
551
</sup>",
529
552
( * entry) . 1 ) ) ;
530
553
}
554
+ Event :: HardBreak => {
555
+ debug ! ( "HardBreak" ) ;
556
+ if shorter. is_fancy ( ) {
557
+ buffer. push_str ( "<br>" ) ;
558
+ } else if !buffer. is_empty ( ) {
559
+ buffer. push ( ' ' ) ;
560
+ }
561
+ }
531
562
Event :: Html ( h) | Event :: InlineHtml ( h) => {
563
+ debug ! ( "Html/InlineHtml" ) ;
532
564
buffer. push_str ( & * h) ;
533
565
}
534
566
_ => { }
0 commit comments