Skip to content

Commit 08db168

Browse files
authored
Fixing structure issue of nested lists indented by tabs (#2172) (#2173)
1 parent 16276f5 commit 08db168

File tree

3 files changed

+79
-1
lines changed

3 files changed

+79
-1
lines changed

pkgs/markdown/CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
* Fix performance and correctness of HTML comment parser.
77
* Optimize indentation processing of fenced code blocks.
88
* Require Dart `^3.4.0`.
9+
* Fix an issue with nested list structure when indented by tabs (#2172).
910

1011
## 7.3.0
1112

pkgs/markdown/lib/src/block_syntaxes/list_syntax.dart

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -211,7 +211,9 @@ abstract class ListSyntax extends BlockSyntax {
211211
// any indentation past the required whitespace character.
212212
indent = precedingWhitespaces;
213213
} else {
214-
indent = precedingWhitespaces + contentWhitespances;
214+
indent = precedingWhitespaces +
215+
contentWhitespances +
216+
(parser.current.tabRemaining ?? 0);
215217
}
216218

217219
taskListItemState = null;

pkgs/markdown/test/original/unordered_lists.unit

Lines changed: 75 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -118,6 +118,26 @@ two</li>
118118

119119
* two
120120

121+
<<<
122+
<ul>
123+
<li>
124+
<p>one</p>
125+
<ul>
126+
<li>nested one</li>
127+
<li>nested two</li>
128+
</ul>
129+
</li>
130+
<li>
131+
<p>two</p>
132+
</li>
133+
</ul>
134+
>>> can nest lists by tabs
135+
* one
136+
* nested one
137+
* nested two
138+
139+
* two
140+
121141
<<<
122142
<ul>
123143
<li>
@@ -149,3 +169,58 @@ item</li>
149169
<li>list</li>
150170
</ul>
151171
<hr />
172+
>>> can nest multiple levels with tabs.
173+
- Level 1, 1
174+
- Level 1, 2
175+
- Level 2, 1
176+
- Level 2, 2
177+
- Level 3, 1
178+
- Level 3, 2
179+
- Level 3, 3
180+
- Level 4, 1
181+
- Level 4, 2
182+
- Level 4, 3
183+
- Level 5, 1
184+
- Level 5, 2
185+
- Level 5, 3
186+
- Level 5, 4
187+
- Level 6, 1
188+
- Level 6, 2
189+
- Level 6, 3
190+
- Level 1, 4
191+
<<<
192+
<ul>
193+
<li>Level 1, 1</li>
194+
<li>Level 1, 2
195+
<ul>
196+
<li>Level 2, 1</li>
197+
<li>Level 2, 2
198+
<ul>
199+
<li>Level 3, 1</li>
200+
<li>Level 3, 2</li>
201+
<li>Level 3, 3
202+
<ul>
203+
<li>Level 4, 1</li>
204+
<li>Level 4, 2</li>
205+
<li>Level 4, 3
206+
<ul>
207+
<li>Level 5, 1</li>
208+
<li>Level 5, 2</li>
209+
<li>Level 5, 3</li>
210+
<li>Level 5, 4
211+
<ul>
212+
<li>Level 6, 1</li>
213+
<li>Level 6, 2</li>
214+
<li>Level 6, 3</li>
215+
</ul>
216+
</li>
217+
</ul>
218+
</li>
219+
</ul>
220+
</li>
221+
</ul>
222+
</li>
223+
</ul>
224+
</li>
225+
<li>Level 1, 4</li>
226+
</ul>

0 commit comments

Comments
 (0)