denoland / deno

A modern runtime for JavaScript and TypeScript.
https://deno.com
MIT License
93.99k stars 5.23k forks source link

`fmt` Breaks GitHub Markdown's Callout Syntax #25303

Open maclong9 opened 2 weeks ago

maclong9 commented 2 weeks ago

Describe the bug

When running deno fmt against Markdown files it will move the start of the callout to the first line and then spread > block quotes over multiple lines if they are of a certain length.

> [!NOTE] "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do 
> eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim > veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea..."

Which renders on GitHub as:

[!NOTE] "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim > veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea..."

Steps to Reproduce

  1. Create a Markdown files.
  2. Add a callout using correct syntax.
  3. Run deno fmt file.md.
  4. See incorrect formatting.

Expected behavior

What should happen in order for the syntax to match up to GFM and correctly render the callout on GitHub:

> [!NOTE]
> "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea..."

Which renders on GitHub as:

[!NOTE] "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea..."

Environment

iuioiua commented 2 weeks ago

This is a runtime issue.

dsherret commented 2 weeks ago

It seems to be working fine for me. Can you clarify your input and expected output?

https://dprint.dev/playground/#code/HwAg2ghAcg8gKgUQLoFgBQoBEAZA9gJwFMBbEASwAcBnAV1IBNcAbAkKsgFxAENjCOANCADGuAHZVCwjvxr4e9SmSrCyYgOYhCTTkMn0QjEOlCEyNKsVwGZxCqzWrF9GmK40uTbgCMChLVyMLEQgxNzqYtw8OgCONNwAdCAAqlyEYmSk3AbEapkgoABu6WS8QnHKIGK4VBz4NAaEAB6E+Koc3Bxk4iA0TF7EoiBevviVGey9XNyxNJRaTVqJCQmYQA/config/N4KABGBEAmCmB2B7SAuMAXATgV1iAviEA/plugin/markdown

Renders as:

[!NOTE] "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim > veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea..."

dsherret commented 2 weeks ago

I just realized that github will use the specified wrapping in this case:

[!NOTE] "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim > veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea..."

Versus:

[!NOTE] "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim > veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea..."

That seems like a bug, but I'm not sure if that's the one that this issue is reporting.