[PR #578] ADD: Context to Renderer #1128

Closed
opened 2026-01-29 14:50:04 +00:00 by claunia · 0 comments
Owner

Original Pull Request: https://github.com/xoofx/markdig/pull/578

State: closed
Merged: No


Added MarkdownParserContext to Renderer.

I wrote my own LinkExtension render TryLinkInlineRenderer, and need context access from HtmlRenderer, that available only in parser.

    public void Setup(MarkdownPipeline pipeline, IMarkdownRenderer renderer)
    {
        if (renderer is HtmlRenderer htmlRenderer)
        {
            var inlineRenderer = htmlRenderer.ObjectRenderers.FindExact<LinkInlineRenderer>();
            if (inlineRenderer != null)
            {
                inlineRenderer.TryWriters.Remove(TryLinkInlineRenderer);
                inlineRenderer.TryWriters.Add(TryLinkInlineRenderer);
            }
        }
    }

    private bool TryLinkInlineRenderer(HtmlRenderer renderer, LinkInline link)
    {
        ...
       var propValue = (string?)renderer.Context?.Properties["PropName"];
        ...
    }

I think the context should be available both in the parser and in the render. This required minimal changes.
What do you think?

**Original Pull Request:** https://github.com/xoofx/markdig/pull/578 **State:** closed **Merged:** No --- Added MarkdownParserContext to Renderer. I wrote my own LinkExtension render `TryLinkInlineRenderer`, and need context access from `HtmlRenderer`, that available only in parser. ``` public void Setup(MarkdownPipeline pipeline, IMarkdownRenderer renderer) { if (renderer is HtmlRenderer htmlRenderer) { var inlineRenderer = htmlRenderer.ObjectRenderers.FindExact<LinkInlineRenderer>(); if (inlineRenderer != null) { inlineRenderer.TryWriters.Remove(TryLinkInlineRenderer); inlineRenderer.TryWriters.Add(TryLinkInlineRenderer); } } } private bool TryLinkInlineRenderer(HtmlRenderer renderer, LinkInline link) { ... var propValue = (string?)renderer.Context?.Properties["PropName"]; ... } ``` I think the context should be available both in the parser and in the render. This required minimal changes. What do you think?
claunia added the pull-request label 2026-01-29 14:50:04 +00:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/markdig#1128