From b7ae04bdbaeff0a23bbd71a6a5af3dc900cf2b2c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20G=C3=B6ls?= <6608231+Abrynos@users.noreply.github.com> Date: Mon, 18 Mar 2024 09:04:47 +0100 Subject: [PATCH] Make alert block headers case-invariant --- src/Markdig/Extensions/Alerts/AlertBlockRenderer.cs | 4 +++- src/Markdig/Extensions/Alerts/AlertInlineParser.cs | 4 ++-- src/Markdig/Extensions/Bootstrap/BootstrapExtension.cs | 5 ++++- 3 files changed, 9 insertions(+), 4 deletions(-) diff --git a/src/Markdig/Extensions/Alerts/AlertBlockRenderer.cs b/src/Markdig/Extensions/Alerts/AlertBlockRenderer.cs index f9b95d61..1309f568 100644 --- a/src/Markdig/Extensions/Alerts/AlertBlockRenderer.cs +++ b/src/Markdig/Extensions/Alerts/AlertBlockRenderer.cs @@ -61,7 +61,9 @@ public class AlertBlockRenderer : HtmlObjectRenderer /// The kind of the alert to render public static void DefaultRenderKind(HtmlRenderer renderer, StringSlice kind) { - string? html = kind.AsSpan() switch + Span upperKind = stackalloc char[kind.Length]; + kind.AsSpan().ToUpperInvariant(upperKind); + string? html = upperKind switch { "NOTE" => "

Note

", "TIP" => "

Tip

", diff --git a/src/Markdig/Extensions/Alerts/AlertInlineParser.cs b/src/Markdig/Extensions/Alerts/AlertInlineParser.cs index f5a5881d..6f95c5b6 100644 --- a/src/Markdig/Extensions/Alerts/AlertInlineParser.cs +++ b/src/Markdig/Extensions/Alerts/AlertInlineParser.cs @@ -46,7 +46,7 @@ public class AlertInlineParser : InlineParser var start = slice.Start; var end = start; - while (c.IsAlphaUpper()) + while (c.IsAlpha()) { end = slice.Start; c = slice.NextChar(); @@ -86,7 +86,7 @@ public class AlertInlineParser : InlineParser } break; } - else if (!c.IsSpaceOrTab()) + else if (!c.IsSpaceOrTab()) { slice = saved; return false; diff --git a/src/Markdig/Extensions/Bootstrap/BootstrapExtension.cs b/src/Markdig/Extensions/Bootstrap/BootstrapExtension.cs index 560cc7bf..483377bb 100644 --- a/src/Markdig/Extensions/Bootstrap/BootstrapExtension.cs +++ b/src/Markdig/Extensions/Bootstrap/BootstrapExtension.cs @@ -61,7 +61,10 @@ public class BootstrapExtension : IMarkdownExtension var attributes = node.GetAttributes(); attributes.AddClass("alert"); attributes.AddProperty("role", "alert"); - string? @class = alertBlock.Kind.AsSpan() switch + + Span upperKind = new char[alertBlock.Kind.Length]; + alertBlock.Kind.AsSpan().ToUpperInvariant(upperKind); + string? @class = upperKind switch { "NOTE" => "alert-primary", "TIP" => "alert-success",