[PR #769] [MERGED] Eliminate various string allocations #1213

Open
opened 2026-01-29 14:51:28 +00:00 by claunia · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/xoofx/markdig/pull/769
Author: @iamcarbon
Created: 2/9/2024
Status: Merged
Merged: 2/13/2024
Merged by: @xoofx

Base: masterHead: cq3


📝 Commits (3)

  • 0446959 Add TextRendererBase.Write(char c, int count) method, and eliminate various string allocations
  • 6a15c80 Add test coverage for headlines with > 6 # characters
  • 2ca05cc Eliminate string allocation in CodeInlineRenderer

📊 Changes

10 files changed (+70 additions, -37 deletions)

View changed files

📝 src/Markdig.Tests/TestNormalize.cs (+10 -0)
📝 src/Markdig/Renderers/Normalize/CodeBlockRenderer.cs (+4 -4)
📝 src/Markdig/Renderers/Normalize/HeadingRenderer.cs (+12 -7)
📝 src/Markdig/Renderers/Normalize/Inlines/CodeInlineRenderer.cs (+3 -3)
📝 src/Markdig/Renderers/Normalize/Inlines/EmphasisInlineRenderer.cs (+2 -3)
📝 src/Markdig/Renderers/Roundtrip/CodeBlockRenderer.cs (+3 -5)
📝 src/Markdig/Renderers/Roundtrip/HeadingRenderer.cs (+13 -9)
📝 src/Markdig/Renderers/Roundtrip/Inlines/CodeInlineRenderer.cs (+2 -3)
📝 src/Markdig/Renderers/Roundtrip/Inlines/EmphasisInlineRenderer.cs (+2 -3)
📝 src/Markdig/Renderers/TextRendererBase.cs (+19 -0)

📄 Description

This PR introduces an overload on TextRendererBase that writes a character a specific number of times, and utilizes it to eliminate various string allocations.


🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/xoofx/markdig/pull/769 **Author:** [@iamcarbon](https://github.com/iamcarbon) **Created:** 2/9/2024 **Status:** ✅ Merged **Merged:** 2/13/2024 **Merged by:** [@xoofx](https://github.com/xoofx) **Base:** `master` ← **Head:** `cq3` --- ### 📝 Commits (3) - [`0446959`](https://github.com/xoofx/markdig/commit/0446959623380d14a028bcdf0160eb8bf93b49d9) Add TextRendererBase.Write(char c, int count) method, and eliminate various string allocations - [`6a15c80`](https://github.com/xoofx/markdig/commit/6a15c804bc62330a3949e7a61bf275bb422b675e) Add test coverage for headlines with > 6 # characters - [`2ca05cc`](https://github.com/xoofx/markdig/commit/2ca05ccad7a1db91a6631f8df44bd1f4a8228e84) Eliminate string allocation in CodeInlineRenderer ### 📊 Changes **10 files changed** (+70 additions, -37 deletions) <details> <summary>View changed files</summary> 📝 `src/Markdig.Tests/TestNormalize.cs` (+10 -0) 📝 `src/Markdig/Renderers/Normalize/CodeBlockRenderer.cs` (+4 -4) 📝 `src/Markdig/Renderers/Normalize/HeadingRenderer.cs` (+12 -7) 📝 `src/Markdig/Renderers/Normalize/Inlines/CodeInlineRenderer.cs` (+3 -3) 📝 `src/Markdig/Renderers/Normalize/Inlines/EmphasisInlineRenderer.cs` (+2 -3) 📝 `src/Markdig/Renderers/Roundtrip/CodeBlockRenderer.cs` (+3 -5) 📝 `src/Markdig/Renderers/Roundtrip/HeadingRenderer.cs` (+13 -9) 📝 `src/Markdig/Renderers/Roundtrip/Inlines/CodeInlineRenderer.cs` (+2 -3) 📝 `src/Markdig/Renderers/Roundtrip/Inlines/EmphasisInlineRenderer.cs` (+2 -3) 📝 `src/Markdig/Renderers/TextRendererBase.cs` (+19 -0) </details> ### 📄 Description This PR introduces an overload on TextRendererBase that writes a character a specific number of times, and utilizes it to eliminate various string allocations. --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
claunia added the pull-request label 2026-01-29 14:51:28 +00:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/markdig#1213