diff --git a/packages/flutter_markdown/CHANGELOG.md b/packages/flutter_markdown/CHANGELOG.md index dcf09eafb59..dd37dea0bef 100644 --- a/packages/flutter_markdown/CHANGELOG.md +++ b/packages/flutter_markdown/CHANGELOG.md @@ -1,3 +1,7 @@ +## 0.6.18+2 + +* Removes leading whitespace from list items. + ## 0.6.18+1 * Fixes a typo in README. diff --git a/packages/flutter_markdown/lib/src/builder.dart b/packages/flutter_markdown/lib/src/builder.dart index 07cde26ad8b..0ab3346d337 100644 --- a/packages/flutter_markdown/lib/src/builder.dart +++ b/packages/flutter_markdown/lib/src/builder.dart @@ -323,7 +323,8 @@ class MarkdownBuilder implements md.NodeVisitor { // Leading spaces in paragraph or list item are ignored // https://github.github.com/gfm/#example-192 // https://github.github.com/gfm/#example-236 - if (const ['ul', 'ol', 'p', 'br'].contains(_lastVisitedTag)) { + if (const ['ul', 'ol', 'li', 'p', 'br'] + .contains(_lastVisitedTag)) { text = text.replaceAll(leadingSpacesPattern, ''); } diff --git a/packages/flutter_markdown/pubspec.yaml b/packages/flutter_markdown/pubspec.yaml index b2396c2f2d9..cb14d71d16a 100644 --- a/packages/flutter_markdown/pubspec.yaml +++ b/packages/flutter_markdown/pubspec.yaml @@ -4,7 +4,7 @@ description: A Markdown renderer for Flutter. Create rich text output, formatted with simple Markdown tags. repository: https://github.com/flutter/packages/tree/main/packages/flutter_markdown issue_tracker: https://github.com/flutter/flutter/issues?q=is%3Aissue+is%3Aopen+label%3A%22p%3A+flutter_markdown%22 -version: 0.6.18+1 +version: 0.6.18+2 environment: sdk: ">=3.0.0 <4.0.0" diff --git a/packages/flutter_markdown/test/list_test.dart b/packages/flutter_markdown/test/list_test.dart index 9e2b1fcab44..05464e7b93f 100644 --- a/packages/flutter_markdown/test/list_test.dart +++ b/packages/flutter_markdown/test/list_test.dart @@ -72,6 +72,28 @@ void defineTests() { 'two', ]); }); + + testWidgets( + 'leading spaces are ignored (non-paragraph test case)', + (WidgetTester tester) async { + const String data = '- one\n- two\n- three'; + await tester.pumpWidget( + boilerplate( + const MarkdownBody(data: data), + ), + ); + + final Iterable widgets = tester.allWidgets; + expectTextStrings(widgets, [ + '•', + 'one', + '•', + 'two', + '•', + 'three', + ]); + }, + ); }); group('Ordered List', () {