diff --git a/src/Docfx.Dotnet/Parsers/XmlComment.cs b/src/Docfx.Dotnet/Parsers/XmlComment.cs
index 5e736979005..04730423d57 100644
--- a/src/Docfx.Dotnet/Parsers/XmlComment.cs
+++ b/src/Docfx.Dotnet/Parsers/XmlComment.cs
@@ -586,13 +586,23 @@ private static string TrimEachLine(string text, string indent = "")
private static string GetInnerXmlAsMarkdown(string xml)
{
- if (!xml.Contains('&'))
- return xml;
-
xml = HandleBlockQuote(xml);
- var pipeline = new MarkdownPipelineBuilder().UseMathematics().EnableTrackTrivia().Build();
+
+ // Configure the Markdown pipeline to properly handle lists
+ var pipeline = new MarkdownPipelineBuilder()
+ .UseMathematics()
+ .EnableTrackTrivia()
+ .Configure(extensions: "advanced-tasklists-noindentcodeblock") // Disable indented code blocks
+ .Build();
+
var markdown = Markdown.Parse(xml, pipeline);
- MarkdownXmlDecode(markdown);
+
+ // Only process XML entities if they exist in the content
+ if (xml.Contains('&'))
+ {
+ MarkdownXmlDecode(markdown);
+ }
+
var sw = new StringWriter();
var rr = new RoundtripRenderer(sw);
rr.ObjectRenderers.Add(new MathInlineRenderer());
diff --git a/test/Docfx.Dotnet.Tests/XmlCommentUnitTest.cs b/test/Docfx.Dotnet.Tests/XmlCommentUnitTest.cs
index 9906c514222..838ffc249d9 100644
--- a/test/Docfx.Dotnet.Tests/XmlCommentUnitTest.cs
+++ b/test/Docfx.Dotnet.Tests/XmlCommentUnitTest.cs
@@ -575,6 +575,42 @@ public sealed class Issue10385
""", comment.Remarks, ignoreLineEndingDifferences: true);
}
+ [Fact]
+ public void Issue10559()
+ {
+ var comment = XmlComment.Parse(
+ """
+
+
+ Test end list
+
+
Test para
+ + Test start list +