DocumentParsingManager: Ignore XML comments in guidebook pages (#35506)

* Parse XML comments

* Use var instead of typed for variable declaration

---------

Co-authored-by: Simon <63975668+Simyon264@users.noreply.github.com>
This commit is contained in:
Whatstone
2025-04-08 08:44:55 -04:00
committed by GitHub
parent 73863d3304
commit e6ea77d21b

View File

@@ -36,15 +36,17 @@ public sealed partial class DocumentParsingManager
.Assert(_tagControlParsers.ContainsKey, tag => $"unknown tag: {tag}") .Assert(_tagControlParsers.ContainsKey, tag => $"unknown tag: {tag}")
.Bind(tag => _tagControlParsers[tag]); .Bind(tag => _tagControlParsers[tag]);
var whitespaceAndCommentParser = SkipWhitespaces.Then(Try(String("<!--").Then(Parser<char>.Any.SkipUntil(Try(String("-->"))))).SkipMany());
_controlParser = OneOf(_tagParser, TryHeaderControl, ListControlParser, TextControlParser) _controlParser = OneOf(_tagParser, TryHeaderControl, ListControlParser, TextControlParser)
.Before(SkipWhitespaces); .Before(whitespaceAndCommentParser);
foreach (var typ in _reflectionManager.GetAllChildren<IDocumentTag>()) foreach (var typ in _reflectionManager.GetAllChildren<IDocumentTag>())
{ {
_tagControlParsers.Add(typ.Name, CreateTagControlParser(typ.Name, typ, _sandboxHelper)); _tagControlParsers.Add(typ.Name, CreateTagControlParser(typ.Name, typ, _sandboxHelper));
} }
ControlParser = SkipWhitespaces.Then(_controlParser.Many()); ControlParser = whitespaceAndCommentParser.Then(_controlParser.Many());
_sawmill = Logger.GetSawmill("Guidebook"); _sawmill = Logger.GetSawmill("Guidebook");
} }