@@ -116,15 +116,19 @@ macro_rules! event_loop_break {
116116 match event {
117117 $( $end_event) |* => break ,
118118 Event :: Text ( ref s) => {
119+ debug!( "Text" ) ;
119120 inner( $id, s) ;
120121 if $escape {
121122 $buf. push_str( & format!( "{}" , Escape ( s) ) ) ;
122123 } else {
123124 $buf. push_str( s) ;
124125 }
125126 }
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+ }
128132 }
129133 x => {
130134 looper( $parser, & mut $buf, Some ( x) , $toc_builder, $shorter, $id) ;
@@ -165,6 +169,7 @@ pub fn render(w: &mut fmt::Formatter,
165169 print_toc : bool ,
166170 shorter : MarkdownOutputStyle ) -> fmt:: Result {
167171 fn code_block ( parser : & mut ParserWrapper , buffer : & mut String , lang : & str ) {
172+ debug ! ( "CodeBlock" ) ;
168173 let mut origtext = String :: new ( ) ;
169174 while let Some ( event) = parser. next ( ) {
170175 match event {
@@ -244,6 +249,7 @@ pub fn render(w: &mut fmt::Formatter,
244249
245250 fn heading ( parser : & mut ParserWrapper , buffer : & mut String ,
246251 toc_builder : & mut Option < TocBuilder > , shorter : MarkdownOutputStyle , level : i32 ) {
252+ debug ! ( "Heading" ) ;
247253 let mut ret = String :: new ( ) ;
248254 let mut id = String :: new ( ) ;
249255 event_loop_break ! ( parser, toc_builder, shorter, ret, true , & mut Some ( & mut id) ,
@@ -279,6 +285,7 @@ pub fn render(w: &mut fmt::Formatter,
279285 fn inline_code ( parser : & mut ParserWrapper , buffer : & mut String ,
280286 toc_builder : & mut Option < TocBuilder > , shorter : MarkdownOutputStyle ,
281287 id : & mut Option < & mut String > ) {
288+ debug ! ( "InlineCode" ) ;
282289 let mut content = String :: new ( ) ;
283290 event_loop_break ! ( parser, toc_builder, shorter, content, false , id, Event :: End ( Tag :: Code ) ) ;
284291 buffer. push_str ( & format ! ( "<code>{}</code>" ,
@@ -288,6 +295,7 @@ pub fn render(w: &mut fmt::Formatter,
288295 fn link ( parser : & mut ParserWrapper , buffer : & mut String , toc_builder : & mut Option < TocBuilder > ,
289296 shorter : MarkdownOutputStyle , url : & str , title : & str ,
290297 id : & mut Option < & mut String > ) {
298+ debug ! ( "Link" ) ;
291299 let mut content = String :: new ( ) ;
292300 event_loop_break ! ( parser, toc_builder, shorter, content, true , id,
293301 Event :: End ( Tag :: Link ( _, _) ) ) ;
@@ -302,6 +310,7 @@ pub fn render(w: &mut fmt::Formatter,
302310 fn image ( parser : & mut ParserWrapper , buffer : & mut String , toc_builder : & mut Option < TocBuilder > ,
303311 shorter : MarkdownOutputStyle , url : & str , mut title : String ,
304312 id : & mut Option < & mut String > ) {
313+ debug ! ( "Image" ) ;
305314 event_loop_break ! ( parser, toc_builder, shorter, title, true , id,
306315 Event :: End ( Tag :: Image ( _, _) ) ) ;
307316 buffer. push_str ( & format ! ( "<img src=\" {}\" alt=\" {}\" >" , url, title) ) ;
@@ -310,6 +319,7 @@ pub fn render(w: &mut fmt::Formatter,
310319 fn paragraph ( parser : & mut ParserWrapper , buffer : & mut String ,
311320 toc_builder : & mut Option < TocBuilder > , shorter : MarkdownOutputStyle ,
312321 id : & mut Option < & mut String > ) {
322+ debug ! ( "Paragraph" ) ;
313323 let mut content = String :: new ( ) ;
314324 event_loop_break ! ( parser, toc_builder, shorter, content, true , id,
315325 Event :: End ( Tag :: Paragraph ) ) ;
@@ -318,6 +328,7 @@ pub fn render(w: &mut fmt::Formatter,
318328
319329 fn table_cell ( parser : & mut ParserWrapper , buffer : & mut String ,
320330 toc_builder : & mut Option < TocBuilder > , shorter : MarkdownOutputStyle ) {
331+ debug ! ( "TableCell" ) ;
321332 let mut content = String :: new ( ) ;
322333 event_loop_break ! ( parser, toc_builder, shorter, content, true , & mut None ,
323334 Event :: End ( Tag :: TableHead ) |
@@ -329,6 +340,7 @@ pub fn render(w: &mut fmt::Formatter,
329340
330341 fn table_row ( parser : & mut ParserWrapper , buffer : & mut String ,
331342 toc_builder : & mut Option < TocBuilder > , shorter : MarkdownOutputStyle ) {
343+ debug ! ( "TableRow" ) ;
332344 let mut content = String :: new ( ) ;
333345 while let Some ( event) = parser. next ( ) {
334346 match event {
@@ -348,6 +360,7 @@ pub fn render(w: &mut fmt::Formatter,
348360
349361 fn table_head ( parser : & mut ParserWrapper , buffer : & mut String ,
350362 toc_builder : & mut Option < TocBuilder > , shorter : MarkdownOutputStyle ) {
363+ debug ! ( "TableHead" ) ;
351364 let mut content = String :: new ( ) ;
352365 while let Some ( event) = parser. next ( ) {
353366 match event {
@@ -367,6 +380,7 @@ pub fn render(w: &mut fmt::Formatter,
367380
368381 fn table ( parser : & mut ParserWrapper , buffer : & mut String , toc_builder : & mut Option < TocBuilder > ,
369382 shorter : MarkdownOutputStyle ) {
383+ debug ! ( "Table" ) ;
370384 let mut content = String :: new ( ) ;
371385 let mut rows = String :: new ( ) ;
372386 while let Some ( event) = parser. next ( ) {
@@ -392,6 +406,7 @@ pub fn render(w: &mut fmt::Formatter,
392406
393407 fn blockquote ( parser : & mut ParserWrapper , buffer : & mut String ,
394408 toc_builder : & mut Option < TocBuilder > , shorter : MarkdownOutputStyle ) {
409+ debug ! ( "BlockQuote" ) ;
395410 let mut content = String :: new ( ) ;
396411 event_loop_break ! ( parser, toc_builder, shorter, content, true , & mut None ,
397412 Event :: End ( Tag :: BlockQuote ) ) ;
@@ -400,6 +415,7 @@ pub fn render(w: &mut fmt::Formatter,
400415
401416 fn list_item ( parser : & mut ParserWrapper , buffer : & mut String ,
402417 toc_builder : & mut Option < TocBuilder > , shorter : MarkdownOutputStyle ) {
418+ debug ! ( "ListItem" ) ;
403419 let mut content = String :: new ( ) ;
404420 while let Some ( event) = parser. next ( ) {
405421 match event {
@@ -417,6 +433,7 @@ pub fn render(w: &mut fmt::Formatter,
417433
418434 fn list ( parser : & mut ParserWrapper , buffer : & mut String , toc_builder : & mut Option < TocBuilder > ,
419435 shorter : MarkdownOutputStyle ) {
436+ debug ! ( "List" ) ;
420437 let mut content = String :: new ( ) ;
421438 while let Some ( event) = parser. next ( ) {
422439 match event {
@@ -435,6 +452,7 @@ pub fn render(w: &mut fmt::Formatter,
435452 fn emphasis ( parser : & mut ParserWrapper , buffer : & mut String ,
436453 toc_builder : & mut Option < TocBuilder > , shorter : MarkdownOutputStyle ,
437454 id : & mut Option < & mut String > ) {
455+ debug ! ( "Emphasis" ) ;
438456 let mut content = String :: new ( ) ;
439457 event_loop_break ! ( parser, toc_builder, shorter, content, false , id,
440458 Event :: End ( Tag :: Emphasis ) ) ;
@@ -443,6 +461,7 @@ pub fn render(w: &mut fmt::Formatter,
443461
444462 fn strong ( parser : & mut ParserWrapper , buffer : & mut String , toc_builder : & mut Option < TocBuilder > ,
445463 shorter : MarkdownOutputStyle , id : & mut Option < & mut String > ) {
464+ debug ! ( "Strong" ) ;
446465 let mut content = String :: new ( ) ;
447466 event_loop_break ! ( parser, toc_builder, shorter, content, false , id,
448467 Event :: End ( Tag :: Strong ) ) ;
@@ -452,6 +471,7 @@ pub fn render(w: &mut fmt::Formatter,
452471 fn footnote ( parser : & mut ParserWrapper , buffer : & mut String ,
453472 toc_builder : & mut Option < TocBuilder > , shorter : MarkdownOutputStyle ,
454473 id : & mut Option < & mut String > ) {
474+ debug ! ( "FootnoteDefinition" ) ;
455475 let mut content = String :: new ( ) ;
456476 event_loop_break ! ( parser, toc_builder, shorter, content, true , id,
457477 Event :: End ( Tag :: FootnoteDefinition ( _) ) ) ;
@@ -460,6 +480,7 @@ pub fn render(w: &mut fmt::Formatter,
460480
461481 fn rule ( parser : & mut ParserWrapper , buffer : & mut String , toc_builder : & mut Option < TocBuilder > ,
462482 shorter : MarkdownOutputStyle , id : & mut Option < & mut String > ) {
483+ debug ! ( "Rule" ) ;
463484 let mut content = String :: new ( ) ;
464485 event_loop_break ! ( parser, toc_builder, shorter, content, true , id,
465486 Event :: End ( Tag :: Rule ) ) ;
@@ -508,6 +529,7 @@ pub fn render(w: &mut fmt::Formatter,
508529 rule ( parser, buffer, toc_builder, shorter, id) ;
509530 }
510531 Event :: Start ( Tag :: FootnoteDefinition ( ref def) ) => {
532+ debug ! ( "FootnoteDefinition" ) ;
511533 let mut content = String :: new ( ) ;
512534 let def = def. as_ref ( ) ;
513535 footnote ( parser, & mut content, toc_builder, shorter, id) ;
@@ -523,12 +545,22 @@ pub fn render(w: &mut fmt::Formatter,
523545 } ) ) ;
524546 }
525547 Event :: FootnoteReference ( ref reference) => {
548+ debug ! ( "FootnoteReference" ) ;
526549 let entry = parser. get_entry ( reference. as_ref ( ) ) ;
527550 buffer. push_str ( & format ! ( "<sup id=\" supref{0}\" ><a href=\" #ref{0}\" >{0}</a>\
528551 </sup>",
529552 ( * entry) . 1 ) ) ;
530553 }
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+ }
531562 Event :: Html ( h) | Event :: InlineHtml ( h) => {
563+ debug ! ( "Html/InlineHtml" ) ;
532564 buffer. push_str ( & * h) ;
533565 }
534566 _ => { }
0 commit comments