v0.2.0
v0.2.0 (2026-04-05)
This release is published under the MIT License.
Bug Fixes
- Handle zero-width and emoji presentation chars in visual width calculation (
d0bb8dc)
_char_width now returns 0 for combining marks and format characters (ZWJ, variation selectors). visual_len handles VS16 emoji presentation sequences by promoting the preceding character to width 2. Fixes panel border misalignment when content contains emoji or special Unicode.
- docs: Update README output examples to match actual rendered output (
de6d0cc)
Chores
-
Add README, design specs, and project CLAUDE.md files (
93ac358) -
Derive version from git tags via hatch-vcs (
33595a0)
Continuous Integration
- Auto-release and publish via conventional commits (
80a456b)
Replace manual GitHub release trigger with python-semantic-release. On push to main, conventional commits are analyzed to determine version bumps (feat→minor, fix→patch) and publish to PyPI automatically.
Documentation
- Update README token count and expand CLAUDE.md implementation notes (
1f70a53)
Features
-
Add CJK ambiguous-width support, strict directive parsing, and rendering fixes (
c000883) -
Add emoji presentation and East Asian ambiguous-width character handling
with --cjk flag and TERMRENDER_CJK env var -
All renderers (borders, divider, quote, tree) now compute box-drawing
character widths dynamically via visual_len -
Parser raises DirectiveError on unclosed or stray ::: directives instead
of silently degrading -
Fix column width distribution to correctly account for inter-column gaps
-
Support 'author' as alias for 'by' attribute on quote blocks
-
Add GFM table rendering with box-drawing borders (
c3b61cd)
Enable mistune table plugin, parse table AST into TABLE blocks, and render with box-drawing characters. Supports left/center/right column alignment, bold headers, auto-sized columns, and proportional overflow distribution.
-
cli: Add --tmux pane output, --check validation, and structured error handling (
36b52ee) -
--tmux renders in a new tmux side pane via split-window, piped through less -R
-
--check validates directive syntax without rendering (exit 0/2)
-
Structured _error() helper with fix/hint guidance on stderr
-
Named exit codes (EXIT_OK, EXIT_INPUT, EXIT_SYNTAX, EXIT_TERMINAL)
-
Expanded epilog with full directive reference, nesting examples, and env docs
-
Dynamic version from importlib.metadata (hatch-vcs)
-
Updated CLAUDE.md to document --check behavior and fix recursion depth note
-
cli: Improve help output with examples, version flag, and tty detection (
cb3e7e2)
Testing
- Add column alignment and visual width tests (
f8b6099)
Covers showpiece rendering, column line width consistency, status marker visual widths (text vs emoji presentation), and panel border alignment.
Detailed Changes: v0.1.0...v0.2.0