File tree Expand file tree Collapse file tree 2 files changed +32
-6
lines changed Expand file tree Collapse file tree 2 files changed +32
-6
lines changed Original file line number Diff line number Diff line change @@ -546,19 +546,33 @@ fn resolve(tokenizer: &mut Tokenizer) {
546
546
let mut line = 0 ;
547
547
548
548
while child_index < child. events . len ( ) {
549
- let event = & child. events [ child_index] ;
550
-
551
- if event. kind == Kind :: Enter
552
- && ( event. name == Name :: LineEnding || event. name == Name :: BlankLineEnding )
549
+ if child. events [ child_index] . kind == Kind :: Exit
550
+ && matches ! (
551
+ child. events[ child_index] . name,
552
+ Name :: LineEnding | Name :: BlankLineEnding
553
+ )
553
554
{
555
+ // Inject before `Enter:LineEnding`.
556
+ let mut inject_index = child_index - 1 ;
557
+ let mut point = & child. events [ inject_index] . point ;
558
+
559
+ while child_index + 1 < child. events . len ( )
560
+ && child. events [ child_index + 1 ] . kind == Kind :: Exit
561
+ {
562
+ child_index += 1 ;
563
+ point = & child. events [ child_index] . point ;
564
+ // Inject after `Exit:*`.
565
+ inject_index = child_index + 1 ;
566
+ }
567
+
554
568
if let Some ( mut exits) = tokenizer. tokenize_state . document_exits [ line] . take ( ) {
555
569
let mut exit_index = 0 ;
556
570
while exit_index < exits. len ( ) {
557
- exits[ exit_index] . point = event . point . clone ( ) ;
571
+ exits[ exit_index] . point = point. clone ( ) ;
558
572
exit_index += 1 ;
559
573
}
560
574
561
- child. map . add ( child_index , 0 , exits) ;
575
+ child. map . add ( inject_index , 0 , exits) ;
562
576
}
563
577
564
578
line += 1 ;
Original file line number Diff line number Diff line change @@ -56,5 +56,17 @@ fn fuzz() -> Result<(), String> {
56
56
"5: lists should support high start numbers (GH-17)"
57
57
) ;
58
58
59
+ assert_eq ! (
60
+ to_html( "> ```\n " ) ,
61
+ "<blockquote>\n <pre><code>\n </code></pre>\n </blockquote>" ,
62
+ "6-a: container close after unclosed fenced code, with eol (block quote, GH-16)"
63
+ ) ;
64
+
65
+ assert_eq ! (
66
+ to_html( "- ```\n " ) ,
67
+ "<ul>\n <li>\n <pre><code>\n </code></pre>\n </li>\n </ul>" ,
68
+ "6-b: container close after unclosed fenced code, with eol (list, GH-16)"
69
+ ) ;
70
+
59
71
Ok ( ( ) )
60
72
}
You can’t perform that action at this time.
0 commit comments