Add comprehensive margin and alignment support#448
Open
zach-is-my-name wants to merge 2 commits intocharmbracelet:masterfrom
Open
Add comprehensive margin and alignment support#448zach-is-my-name wants to merge 2 commits intocharmbracelet:masterfrom
zach-is-my-name wants to merge 2 commits intocharmbracelet:masterfrom
Conversation
This commit adds robust margin and text alignment capabilities to Glamour: ## Core Features - New WithMargins(left, right) option for configurable left/right margins - WithCenterAlignment() for centered text with margins - WithJustifiedAlignment() for justified text with margins ## Key Changes - Enhanced MarginWriter with center/justify alignment support - Fixed Width() calculation to account for MarginLeft/MarginRight styles - Added WordwrapWithIndent for proper continuation line indentation - Comprehensive test suite for all margin/alignment combinations ## Technical Details - blockstack.go: Width() now includes MarginLeft/MarginRight in calculations - margin.go: Enhanced with writeCentered() and writeJustified() methods - New wordwrap.go: Custom word wrapping that preserves indentation - Full backwards compatibility maintained Resolves margin application issues where paragraphs weren't respecting configured margins due to incorrect width calculations during text wrapping. π€ Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
- Leverages glamour's proven native margin mechanism - Provides clean API for zen-mode functionality - Uses Document.Margin for consistent rendering across all elements
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.
Summary
This PR adds zen-mode functionality to Glamour using the proven native Document margin system, providing a clean and consistent reading experience.
Key Features
Technical Implementation
Final Approach (Latest Commit)
The implementation now uses Glamour's native
Document.Marginsystem:This approach:
Evolution
Example Usage
Cross-Terminal Compatibility
Works seamlessly across all terminal sizes by leveraging Glamour's proven margin system that's already used in default styles.
Ready for zen-mode integration in Glow! π§ββοΈ
π€ Generated with Claude Code