@@ -47,12 +47,11 @@ impl gen {
47
47
match type ctx.Node {
48
48
| doc::Separator:
49
49
if *group != 0 {
50
- self.out.WriteStr("\n```\n")!
51
- *group = 0
50
+ self.out.WriteStr("\n")!
52
51
} else {
53
52
self.out.WriteStr("\n\n")!
53
+ indent = 0
54
54
}
55
- indent = 0
56
55
lastIsListItem = false
57
56
lastIsSeparator = true
58
57
continue
@@ -74,8 +73,15 @@ impl gen {
74
73
*group = ctx.Indent
75
74
self.out.WriteStr("```\n")!
76
75
} else if *group != 0 {
77
- self.out.WriteStr("\n")!
78
- self.out.WriteStr(strings::Repeat("\t", ctx.Indent-*group))!
76
+ // Indentation is lower than group indentation.
77
+ // This is end fo the group.
78
+ if *group > ctx.Indent {
79
+ self.out.WriteStr("\n```\n")!
80
+ *group = 0
81
+ } else {
82
+ self.out.WriteStr("\n")!
83
+ self.out.WriteStr(strings::Repeat("\t", ctx.Indent-*group))!
84
+ }
79
85
}
80
86
txt := doc::Text(ctx.Node)
81
87
writeDocText(str(txt))
@@ -88,8 +94,15 @@ impl gen {
88
94
self.out.WriteStr("<br>\n\n")!
89
95
}
90
96
} else if *group != 0 {
91
- self.out.WriteStr("\n")!
92
- self.out.WriteStr(strings::Repeat("\t", ctx.Indent-*group))!
97
+ // Indentation is lower than group indentation.
98
+ // This is end fo the group.
99
+ if *group > ctx.Indent {
100
+ self.out.WriteStr("\n```\n")!
101
+ *group = 0
102
+ } else {
103
+ self.out.WriteStr("\n")!
104
+ self.out.WriteStr(strings::Repeat("\t", ctx.Indent-*group))!
105
+ }
93
106
}
94
107
self.out.WriteStr("- ")!
95
108
txt := doc::ListItem(ctx.Node)
0 commit comments