diff --git a/src/Elastic.Markdown/Myst/ParserContext.cs b/src/Elastic.Markdown/Myst/ParserContext.cs index 7a8d8cf5a..15e469e05 100644 --- a/src/Elastic.Markdown/Myst/ParserContext.cs +++ b/src/Elastic.Markdown/Myst/ParserContext.cs @@ -45,18 +45,18 @@ public ParserContext( Configuration = configuration; foreach (var (key, value) in configuration.Substitutions) - Properties[key] = value; + Properties[key.ToLowerInvariant()] = value; if (frontMatter?.Properties is { } props) { - foreach (var (key, value) in props) + foreach (var (k, value) in props) { + var key = k.ToLowerInvariant(); if (configuration.Substitutions.TryGetValue(key, out _)) this.EmitError($"{{{key}}} can not be redeclared in front matter as its a global substitution"); else Properties[key] = value; } - } if (frontMatter?.Title is { } title) diff --git a/src/Elastic.Markdown/Myst/Substitution/SubstitutionParser.cs b/src/Elastic.Markdown/Myst/Substitution/SubstitutionParser.cs index 3e0a4ff0c..32d16bcb5 100644 --- a/src/Elastic.Markdown/Myst/Substitution/SubstitutionParser.cs +++ b/src/Elastic.Markdown/Myst/Substitution/SubstitutionParser.cs @@ -137,7 +137,7 @@ public override bool Match(InlineProcessor processor, ref StringSlice slice) startPosition -= openSticks; startPosition = Math.Max(startPosition, 0); - var key = content.ToString().Trim(['{', '}']); + var key = content.ToString().Trim(['{', '}']).ToLowerInvariant(); var found = false; var replacement = string.Empty; if (processor.Context?.Properties.TryGetValue(key, out var value) ?? false)