refactor(render): extract the four largest renderers from BuiltinRenderers#39
Merged
Merged
Conversation
This was referenced Jul 1, 2026
…erers ListRenderer, TableRenderer, FootnotesRenderer and TocRenderer move from nested classes to top-level classes in the same package (io.github.demchaav.markdown.render); BuiltinRenderers keeps the registration and the smaller renderers and drops ~750 -> ~440 lines, back under the 500-line guideline. Zero behaviour delta: registration is unchanged (same simple names resolve to the new top-level classes) and the full suite is green unmodified (166 tests). Orphaned imports pruned; class Javadoc updated.
ce1c6bc to
f2f8f73
Compare
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.
Why
BuiltinRenderers.javahad grown to ~750 lines — past the 500-line guideline — flagged by two senior reviews as carried debt. Hygiene before the next feature ([TOC] page numbers will touchTocRenderer).What changed
ListRenderer,TableRenderer,FootnotesRenderer,TocRenderermove from nested classes to top-level classes in the same package.BuiltinRendererskeepsregisterDefaults(...)and the smaller renderers (~440 lines). Zero behaviour delta — registration unchanged (same simple names now resolve to the top-level classes), no test modified. Orphaned imports pruned; CHANGELOG notes the FQN move for anyone referencing the nested names.Verification
./mvnw clean verify javadoc:javadoc→ BUILD SUCCESS, 166 tests, 0 failures — the entire suite passes unmodified, which is the zero-delta proof.