termrender 2.1.0__tar.gz → 3.0.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {termrender-2.1.0 → termrender-3.0.0}/CHANGELOG.md +27 -0
- {termrender-2.1.0 → termrender-3.0.0}/CLAUDE.md +3 -5
- {termrender-2.1.0 → termrender-3.0.0}/PKG-INFO +22 -7
- {termrender-2.1.0 → termrender-3.0.0}/README.md +21 -6
- {termrender-2.1.0 → termrender-3.0.0}/src/termrender/__main__.py +351 -397
- termrender-3.0.0/tests/test_cli_contract.py +334 -0
- termrender-3.0.0/uv.lock +71 -0
- termrender-2.1.0/tests/test_cli_contract.py +0 -209
- {termrender-2.1.0 → termrender-3.0.0}/.github/workflows/publish.yml +0 -0
- {termrender-2.1.0 → termrender-3.0.0}/.gitignore +0 -0
- {termrender-2.1.0 → termrender-3.0.0}/LICENSE +0 -0
- {termrender-2.1.0 → termrender-3.0.0}/design.json +0 -0
- {termrender-2.1.0 → termrender-3.0.0}/pyproject.toml +0 -0
- {termrender-2.1.0 → termrender-3.0.0}/requirements.json +0 -0
- {termrender-2.1.0 → termrender-3.0.0}/scripts/build-mermaid-ascii.sh +0 -0
- {termrender-2.1.0 → termrender-3.0.0}/src/termrender/CLAUDE.md +0 -0
- {termrender-2.1.0 → termrender-3.0.0}/src/termrender/__init__.py +0 -0
- {termrender-2.1.0 → termrender-3.0.0}/src/termrender/_bin/mermaid-ascii-darwin-arm64 +0 -0
- {termrender-2.1.0 → termrender-3.0.0}/src/termrender/_mermaid_bin.py +0 -0
- {termrender-2.1.0 → termrender-3.0.0}/src/termrender/blocks.py +0 -0
- {termrender-2.1.0 → termrender-3.0.0}/src/termrender/emit.py +0 -0
- {termrender-2.1.0 → termrender-3.0.0}/src/termrender/layout.py +0 -0
- {termrender-2.1.0 → termrender-3.0.0}/src/termrender/parser.py +0 -0
- {termrender-2.1.0 → termrender-3.0.0}/src/termrender/py.typed +0 -0
- {termrender-2.1.0 → termrender-3.0.0}/src/termrender/renderers/CLAUDE.md +0 -0
- {termrender-2.1.0 → termrender-3.0.0}/src/termrender/renderers/__init__.py +0 -0
- {termrender-2.1.0 → termrender-3.0.0}/src/termrender/renderers/borders.py +0 -0
- {termrender-2.1.0 → termrender-3.0.0}/src/termrender/renderers/charts.py +0 -0
- {termrender-2.1.0 → termrender-3.0.0}/src/termrender/renderers/code.py +0 -0
- {termrender-2.1.0 → termrender-3.0.0}/src/termrender/renderers/columns.py +0 -0
- {termrender-2.1.0 → termrender-3.0.0}/src/termrender/renderers/diff.py +0 -0
- {termrender-2.1.0 → termrender-3.0.0}/src/termrender/renderers/divider.py +0 -0
- {termrender-2.1.0 → termrender-3.0.0}/src/termrender/renderers/mermaid.py +0 -0
- {termrender-2.1.0 → termrender-3.0.0}/src/termrender/renderers/panel.py +0 -0
- {termrender-2.1.0 → termrender-3.0.0}/src/termrender/renderers/quote.py +0 -0
- {termrender-2.1.0 → termrender-3.0.0}/src/termrender/renderers/stat.py +0 -0
- {termrender-2.1.0 → termrender-3.0.0}/src/termrender/renderers/table.py +0 -0
- {termrender-2.1.0 → termrender-3.0.0}/src/termrender/renderers/text.py +0 -0
- {termrender-2.1.0 → termrender-3.0.0}/src/termrender/renderers/timeline.py +0 -0
- {termrender-2.1.0 → termrender-3.0.0}/src/termrender/renderers/tree.py +0 -0
- {termrender-2.1.0 → termrender-3.0.0}/src/termrender/style.py +0 -0
- {termrender-2.1.0 → termrender-3.0.0}/tests/__init__.py +0 -0
- {termrender-2.1.0 → termrender-3.0.0}/tests/test_charts.py +0 -0
- {termrender-2.1.0 → termrender-3.0.0}/tests/test_column_alignment.py +0 -0
- {termrender-2.1.0 → termrender-3.0.0}/tests/test_diff.py +0 -0
- {termrender-2.1.0 → termrender-3.0.0}/tests/test_inline_badge.py +0 -0
- {termrender-2.1.0 → termrender-3.0.0}/tests/test_linebreak.py +0 -0
- {termrender-2.1.0 → termrender-3.0.0}/tests/test_mermaid_compat.py +0 -0
- {termrender-2.1.0 → termrender-3.0.0}/tests/test_myst_gaps.py +0 -0
- {termrender-2.1.0 → termrender-3.0.0}/tests/test_stat.py +0 -0
- {termrender-2.1.0 → termrender-3.0.0}/tests/test_tasklist.py +0 -0
- {termrender-2.1.0 → termrender-3.0.0}/tests/test_timeline.py +0 -0
- {termrender-2.1.0 → termrender-3.0.0}/tests/test_variable_colons.py +0 -0
|
@@ -1,6 +1,33 @@
|
|
|
1
1
|
# CHANGELOG
|
|
2
2
|
|
|
3
3
|
|
|
4
|
+
## v3.0.0 (2026-05-18)
|
|
5
|
+
|
|
6
|
+
### Chores
|
|
7
|
+
|
|
8
|
+
- Re-trigger release publish for v3.0.0
|
|
9
|
+
([`467c583`](https://github.com/crouton-labs/termrender/commit/467c58338de217a417530e0bc32ad0a6973012eb))
|
|
10
|
+
|
|
11
|
+
### Documentation
|
|
12
|
+
|
|
13
|
+
- **claude-md**: Update CLI invocations to v3 flag form, prune stale notes
|
|
14
|
+
([`1276bf8`](https://github.com/crouton-labs/termrender/commit/1276bf86261528a725f8a012e2105b359f085eca))
|
|
15
|
+
|
|
16
|
+
### Features
|
|
17
|
+
|
|
18
|
+
- **cli**: Switch input contract to flags + positional + stdin
|
|
19
|
+
([`38df421`](https://github.com/crouton-labs/termrender/commit/38df4218af8c26d469a442b87090ad268ae47b0e))
|
|
20
|
+
|
|
21
|
+
Drops JSON-on-stdin in favor of long-form flags, at most one positional, stdin for the markdown
|
|
22
|
+
content blob, per cli-design v2. Output (ANSI for render, JSON elsewhere), errors, and exit codes
|
|
23
|
+
are unchanged.
|
|
24
|
+
|
|
25
|
+
- doc render / doc check now read source from stdin - doc watch / pane open / pane update take path
|
|
26
|
+
as positional - pane update gains --pane-id flag - --color is an enum (auto|on|off) replacing the
|
|
27
|
+
prior bool|null - --watch is presence-only and defaults to false on pane open/update - Internal
|
|
28
|
+
pane self-pipe rebuilds the new flag-form invocations
|
|
29
|
+
|
|
30
|
+
|
|
4
31
|
## v2.1.0 (2026-05-16)
|
|
5
32
|
|
|
6
33
|
### Documentation
|
|
@@ -4,18 +4,16 @@
|
|
|
4
4
|
```bash
|
|
5
5
|
pip install -e .
|
|
6
6
|
pytest tests/
|
|
7
|
-
|
|
7
|
+
cat file.md | termrender doc render # render markdown
|
|
8
|
+
cat file.md | termrender doc check # validate syntax
|
|
9
|
+
termrender doc watch /path/to/file.md # live-render
|
|
8
10
|
python -m build
|
|
9
11
|
```
|
|
10
12
|
|
|
11
|
-
No linter or formatter is configured.
|
|
12
|
-
|
|
13
13
|
## Constraints
|
|
14
14
|
- **Layout pass order is load-bearing**: `resolve_width()` top-down must complete before `resolve_height()` bottom-up — height calls `wrap_text(text, width)`, which requires width already set.
|
|
15
|
-
- **`borders.py` `render_box` width**: takes **total** width including borders, not content width. Passing content width silently overflows.
|
|
16
15
|
- **`wrap_text()` CJK bug**: uses `len()` internally, not `visual_len()` — silently overflows for CJK content.
|
|
17
16
|
- **`_ambiguous_width` is global mutable state** with no reset path — `set_ambiguous_width()` or `TERMRENDER_CJK` env var changes persist for the process lifetime.
|
|
18
|
-
- **Version**: derived from git tags via hatch-vcs — no version in `pyproject.toml`. Adding one will conflict.
|
|
19
17
|
- **Commits**: conventional commits. `feat` → minor, `fix`/`perf` → patch. Auto-released via python-semantic-release on main.
|
|
20
18
|
|
|
21
19
|
## Supplementary CLAUDE.md files
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: termrender
|
|
3
|
-
Version:
|
|
3
|
+
Version: 3.0.0
|
|
4
4
|
Summary: Rich terminal rendering of directive-flavored markdown
|
|
5
5
|
Project-URL: Homepage, https://github.com/CaptainCrouton89/termrender
|
|
6
6
|
Project-URL: Repository, https://github.com/CaptainCrouton89/termrender
|
|
@@ -170,14 +170,29 @@ Python 3.10+. Three dependencies: [mistune](https://github.com/lepture/mistune)
|
|
|
170
170
|
### CLI
|
|
171
171
|
|
|
172
172
|
```bash
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
cat doc.md | termrender
|
|
177
|
-
echo '# Hello' | termrender
|
|
173
|
+
cat doc.md | termrender doc render # render a file
|
|
174
|
+
cat doc.md | termrender doc render --width 100 # fixed width
|
|
175
|
+
cat doc.md | termrender doc render --color off # strip ANSI codes
|
|
176
|
+
cat doc.md | termrender doc render --color on --cjk # force color + CJK mode
|
|
177
|
+
echo '# Hello' | termrender doc render # inline
|
|
178
|
+
|
|
179
|
+
cat doc.md | termrender doc check # validate syntax
|
|
180
|
+
termrender doc watch /path/to/doc.md # live-render (interactive)
|
|
181
|
+
termrender doc watch --color on /path/to/doc.md # live-render with color
|
|
178
182
|
```
|
|
179
183
|
|
|
180
|
-
|
|
184
|
+
`doc render` and `doc check` read markdown from stdin. `doc watch` takes the file path as a positional argument. Auto-detects terminal width unless you specify `--width`. Respects `NO_COLOR` with `--color auto` (the default).
|
|
185
|
+
|
|
186
|
+
For tmux pane management:
|
|
187
|
+
|
|
188
|
+
```bash
|
|
189
|
+
termrender pane open /path/to/doc.md # spawn a side pane
|
|
190
|
+
termrender pane open --watch /path/to/doc.md # spawn with live-update
|
|
191
|
+
termrender pane open --width 80 --window new /path/to/doc.md
|
|
192
|
+
|
|
193
|
+
termrender pane update /path/to/new.md --pane-id %23 # update existing pane
|
|
194
|
+
termrender pane update --watch /path/to/doc.md --pane-id %23
|
|
195
|
+
```
|
|
181
196
|
|
|
182
197
|
### Python
|
|
183
198
|
|
|
@@ -142,14 +142,29 @@ Python 3.10+. Three dependencies: [mistune](https://github.com/lepture/mistune)
|
|
|
142
142
|
### CLI
|
|
143
143
|
|
|
144
144
|
```bash
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
cat doc.md | termrender
|
|
149
|
-
echo '# Hello' | termrender
|
|
145
|
+
cat doc.md | termrender doc render # render a file
|
|
146
|
+
cat doc.md | termrender doc render --width 100 # fixed width
|
|
147
|
+
cat doc.md | termrender doc render --color off # strip ANSI codes
|
|
148
|
+
cat doc.md | termrender doc render --color on --cjk # force color + CJK mode
|
|
149
|
+
echo '# Hello' | termrender doc render # inline
|
|
150
|
+
|
|
151
|
+
cat doc.md | termrender doc check # validate syntax
|
|
152
|
+
termrender doc watch /path/to/doc.md # live-render (interactive)
|
|
153
|
+
termrender doc watch --color on /path/to/doc.md # live-render with color
|
|
150
154
|
```
|
|
151
155
|
|
|
152
|
-
|
|
156
|
+
`doc render` and `doc check` read markdown from stdin. `doc watch` takes the file path as a positional argument. Auto-detects terminal width unless you specify `--width`. Respects `NO_COLOR` with `--color auto` (the default).
|
|
157
|
+
|
|
158
|
+
For tmux pane management:
|
|
159
|
+
|
|
160
|
+
```bash
|
|
161
|
+
termrender pane open /path/to/doc.md # spawn a side pane
|
|
162
|
+
termrender pane open --watch /path/to/doc.md # spawn with live-update
|
|
163
|
+
termrender pane open --width 80 --window new /path/to/doc.md
|
|
164
|
+
|
|
165
|
+
termrender pane update /path/to/new.md --pane-id %23 # update existing pane
|
|
166
|
+
termrender pane update --watch /path/to/doc.md --pane-id %23
|
|
167
|
+
```
|
|
153
168
|
|
|
154
169
|
### Python
|
|
155
170
|
|