Skip to content

fix: preserve indentation around XML comment code blocks - #11143

Merged
vicancy merged 1 commit into
dotnet:mainfrom
vicancy:fix-xml-block-indentation
Sep 18, 2026
Merged

vicancy merged 1 commit into
dotnet:mainfrom
vicancy:fix-xml-block-indentation

Conversation

@vicancy

@vicancy vicancy commented Sep 17, 2026

Copy link
Copy Markdown
Contributor

Summary

Follow-up to #10966. Keep the indentation when inserting blank lines between adjacent block elements and around inline child elements. Reuse the existing indentation helper, extending its search to the enclosing element when the child has no preceding newline of its own.

The separators previously inserted as bare \n\n created a zero-indented line. Common-indent removal then left the surrounding XML documentation indentation in place, so Markdown paragraphs became indented code blocks. Compact nested examples and lists had the same problem.

Reproduction

<summary>
    <para>Before</para><code>var x = 1;</code>
    After **bold**.
</summary>

After #10966, the last line renders as <pre><code>After **bold**...</code></pre> instead of <p>After <strong>bold</strong>.</p>. The follow-up preserves the intended paragraph and the actual code block.

Validation

  • Five regression cases failed before the fix and pass afterward. They exercise both sibling directions, compact nested examples (including leading text), and nested lists, with no indentation, four/eight spaces, and tabs.
  • Tests call the real XML comment parser and Markdig HTML renderer in memory and assert paragraphs, emphasis, and the code block, rather than only comparing intermediate Markdown whitespace.
  • All 186 Docfx.Dotnet.Tests tests pass on .NET 10, including the original fix: XML comment parse logics for block element that is adjacent to markdown content #10966 cases, with zero skips.
  • Changed-file formatting and git diff --check pass.
  • Based on merged main 8cddf17d90e4cfd8b9f2288662cd3142810eebc4; only these two files differ. No dependency or workflow changes.

Keep newly inserted separators aligned with adjacent siblings and enclosing elements so normal Markdown is not parsed as indented code. Add rendered HTML regressions for compact block tags, nested examples and lists.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: bf666f99-8d30-4763-878d-b566c0ac2f2d
@vicancy
vicancy merged commit 06e68ac into dotnet:main Sep 18, 2026
9 checks passed
@vicancy
vicancy deleted the fix-xml-block-indentation branch September 18, 2026 05:35
This was referenced Sep 25, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants