markup/goldmark/blockquotes: Fix handling of lower/mixed case GitHub alerts

Fixes #12767
This commit is contained in:
Bjørn Erik Pedersen 2024-08-14 16:57:18 +02:00
parent 83235262d0
commit d72607adb9
2 changed files with 10 additions and 1 deletions

View file

@ -237,7 +237,8 @@ var _ hooks.PositionerSourceTargetProvider = (*blockquoteContext)(nil)
// https://docs.github.com/en/get-started/writing-on-github/getting-started-with-writing-and-formatting-on-github/basic-writing-and-formatting-syntax#alerts // https://docs.github.com/en/get-started/writing-on-github/getting-started-with-writing-and-formatting-on-github/basic-writing-and-formatting-syntax#alerts
// Five types: // Five types:
// [!NOTE], [!TIP], [!WARNING], [!IMPORTANT], [!CAUTION] // [!NOTE], [!TIP], [!WARNING], [!IMPORTANT], [!CAUTION]
var gitHubAlertRe = regexp.MustCompile(`^<p>\[!(NOTE|TIP|WARNING|IMPORTANT|CAUTION)\]`) // Note that GitHub's implementation is case-insensitive.
var gitHubAlertRe = regexp.MustCompile(`(?i)^<p>\[!(NOTE|TIP|WARNING|IMPORTANT|CAUTION)\]`)
// resolveGitHubAlert returns one of note, tip, warning, important or caution. // resolveGitHubAlert returns one of note, tip, warning, important or caution.
// An empty string if no match. // An empty string if no match.

View file

@ -68,6 +68,11 @@ title: "p1"
> Note triggering showing the position. > Note triggering showing the position.
{showpos="true"} {showpos="true"}
> [!nOtE]
> Mixed case alert type.
` `
b := hugolib.Test(t, files) b := hugolib.Test(t, files)
@ -79,6 +84,9 @@ title: "p1"
"Blockquote Alert Attributes: |<p>This is a tip with attributes.</p>\n|map[class:foo bar id:baz]|", "Blockquote Alert Attributes: |<p>This is a tip with attributes.</p>\n|map[class:foo bar id:baz]|",
filepath.FromSlash("/content/p1.md:20:3"), filepath.FromSlash("/content/p1.md:20:3"),
"Blockquote Alert Page: |<p>This is a tip with attributes.</p>\n|p1|p1|", "Blockquote Alert Page: |<p>This is a tip with attributes.</p>\n|p1|p1|",
// Issue 12767.
"Blockquote Alert: |<p>Mixed case alert type.</p>\n|alert",
) )
} }