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

GFM admonition blocks #327

Open
bric3 opened this issue May 3, 2024 · 4 comments
Open

GFM admonition blocks #327

bric3 opened this issue May 3, 2024 · 4 comments

Comments

@bric3
Copy link

bric3 commented May 3, 2024

Is your feature request related to a problem? Please describe.

Github now support admonition blocks

> [!NOTE]  
> Highlights information that users should take into account, even when skimming.

> [!TIP]
> Optional information to help a user be more successful.

> [!IMPORTANT]  
> Crucial information necessary for users to succeed.

> [!WARNING]  
> Critical content demanding immediate user attention due to potential risks.

> [!CAUTION]
> Negative potential consequences of an action.

Note

Highlights information that users should take into account, even when skimming.

Tip

Optional information to help a user be more successful.

Important

Crucial information necessary for users to succeed.

Warning

Critical content demanding immediate user attention due to potential risks.

Caution

Negative potential consequences of an action.

Describe the solution you'd like

Ideally adding a new gfm extension to common-mark makes sense, to support this admonition syntax.

Describe alternatives you've considered

No alternative.

Additional context

Source [1], [2]

@robinst
Copy link
Collaborator

robinst commented Jul 1, 2024

Hey, thanks for raising this! Yeah, this would be useful. It's interesting that it uses link syntax, and that links take precedence, e.g. in this:

> [!NOTE]  
> Highlights information that users should take into account, even when skimming.

[!NOTE]: https://example.org

It's actually a link because of the definition.

I'm currently working on support for footnotes, see #273, which needed some more flexibility around link parsing and it has a new API to customize link processing. I think after that is done, admonition parsing should be pretty straightforward.

@bric3
Copy link
Author

bric3 commented Jul 1, 2024

I don't know how the internal parsing is working, but the context here seems relevant i.e. when parsing the admonition header, we need to know if it's within a block quote.

@harunagic
Copy link

any updates on this?

@robinst
Copy link
Collaborator

robinst commented Oct 26, 2024

No updates yet. Happy to prioritize this if someone wants to sponsor the work on this.

Some notes from playing around with it:

This is an admonition block, even with the two empty leading lines inside the block quote (not sure how that's done, is there a special check in block quote parsing, or is the marker detected only later in inline parsing, or as a post-processing step?):

> 
> 
> [!NOTE]
> Highlights information that users should take into account, even when skimming.

This is not an admonition block though (trailing spaces after the marker are accepted though):

> [!NOTE] Highlights information that users should take into account, even when skimming.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants