registry: route legacy text/* media types to their application/* renderer - #47
Merged
Conversation
…erer Servers frequently label XML as "text/xml" (RFC 7303 §B.2 makes it equivalent to application/xml) — e.g. blog.firetiger.com/sitemap.xml is served as "text/xml; charset=utf-8". A server-supplied content-type is passed straight to Func, bypassing Detect's existing text/xml special case, so the XML renderer (registered only under application/xml) was never selected and the sitemap rendered as flat plain text. Func now falls back from an unregistered text/foo to a registered application/foo, mirroring the existing application/x- legacy-alias handling. Genuinely unknown text/* types still fall back to Text. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Problem
https://blog.firetiger.com/sitemap.xmlrenders as a flat, unstyled gray line instead of indented, syntax-highlighted XML.The server labels it
Content-Type: text/xml; charset=utf-8. The CLI trusts a server-supplied content-type and passes it straight tostripes.Func, which only had the XML renderer registered underapplication/xml.text/xmldidn't match, so it fell through to the generictext/→ plain-text fallback.Detectalready special-casedtext/xml→application/xml, but that path is bypassed when the server provides the type directly.Fix
In
Func, when atext/foomedia type isn't registered but itsapplication/foocounterpart is, route to that renderer. This mirrors the existingapplication/x-legacy-alias handling.text/xml→application/xmlis the RFC 7303 §B.2 case that fixes the sitemap; genuinely unknowntext/*types still fall back toText.Testing
TestFuncTextAliasregression test.go test ./...).🤖 Generated with Claude Code