Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[markdown] Putting UnorderedListWithCheckboxSyntax before SetextHeaderSyntax leads to incorrect parsing of "a\n-" #1953

Open
w568w opened this issue Dec 31, 2024 · 0 comments

Comments

@w568w
Copy link

w568w commented Dec 31, 2024

(I'm opening a blank issue because the package:markdown issue type isn't available on the New Issue page.)

Problem

If UnorderedListWithCheckboxSyntax precedes SetextHeaderSyntax in BlockParser's blockSyntaxes (as is the case when ExtensionSet.gitHubFlavored is enabled, due to its inclusion of UnorderedListWithCheckboxSyntax), the following text will be rendered as an empty list item:

I am paragraph
-

Actual Output

I am paragraph is ignored, producing an empty list item, as follows:

Expected Output

I am paragraph should be rendered as a SETEXT-style heading. Check:

https://spec.commonmark.org/dingus/?text=I%20am%20paragraph%0A-

Minimal Reproducible Example

import 'package:markdown/markdown.dart' as md;

void main() {
  final md.Document document = md.Document(
    blockSyntaxes: [
      const md.UnorderedListSyntax(), // <-- This line breaks the case
    ],
  );
  final List<md.Node> astNodes = document.parse("I am paragraph\n-");
  print((astNodes[0] as md.Element).tag); // should print: h2; actual print: ul
}
@w568w w568w changed the title [markdown] Putting UnorderedListWithCheckboxSyntax before SetextHeaderSyntax leads to incorrect parsing [markdown] Putting UnorderedListWithCheckboxSyntax before SetextHeaderSyntax leads to incorrect parsing of "a\n-" Dec 31, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant