termrender 4.1.0__tar.gz → 4.1.1__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-4.1.0 → termrender-4.1.1}/CHANGELOG.md +8 -0
- {termrender-4.1.0 → termrender-4.1.1}/PKG-INFO +1 -1
- {termrender-4.1.0 → termrender-4.1.1}/src/termrender/renderers/mermaid_pie.py +8 -2
- {termrender-4.1.0 → termrender-4.1.1}/tests/test_mermaid_pie.py +10 -0
- {termrender-4.1.0 → termrender-4.1.1}/.github/workflows/publish.yml +0 -0
- {termrender-4.1.0 → termrender-4.1.1}/.gitignore +0 -0
- {termrender-4.1.0 → termrender-4.1.1}/CLAUDE.md +0 -0
- {termrender-4.1.0 → termrender-4.1.1}/LICENSE +0 -0
- {termrender-4.1.0 → termrender-4.1.1}/README.md +0 -0
- {termrender-4.1.0 → termrender-4.1.1}/design.json +0 -0
- {termrender-4.1.0 → termrender-4.1.1}/pyproject.toml +0 -0
- {termrender-4.1.0 → termrender-4.1.1}/requirements.json +0 -0
- {termrender-4.1.0 → termrender-4.1.1}/scripts/build-mermaid-ascii.sh +0 -0
- {termrender-4.1.0 → termrender-4.1.1}/src/termrender/CLAUDE.md +0 -0
- {termrender-4.1.0 → termrender-4.1.1}/src/termrender/__init__.py +0 -0
- {termrender-4.1.0 → termrender-4.1.1}/src/termrender/__main__.py +0 -0
- {termrender-4.1.0 → termrender-4.1.1}/src/termrender/_bin/mermaid-ascii-darwin-arm64 +0 -0
- {termrender-4.1.0 → termrender-4.1.1}/src/termrender/_mermaid_bin.py +0 -0
- {termrender-4.1.0 → termrender-4.1.1}/src/termrender/blocks.py +0 -0
- {termrender-4.1.0 → termrender-4.1.1}/src/termrender/emit.py +0 -0
- {termrender-4.1.0 → termrender-4.1.1}/src/termrender/layout.py +0 -0
- {termrender-4.1.0 → termrender-4.1.1}/src/termrender/parser.py +0 -0
- {termrender-4.1.0 → termrender-4.1.1}/src/termrender/py.typed +0 -0
- {termrender-4.1.0 → termrender-4.1.1}/src/termrender/renderers/CLAUDE.md +0 -0
- {termrender-4.1.0 → termrender-4.1.1}/src/termrender/renderers/__init__.py +0 -0
- {termrender-4.1.0 → termrender-4.1.1}/src/termrender/renderers/borders.py +0 -0
- {termrender-4.1.0 → termrender-4.1.1}/src/termrender/renderers/charts.py +0 -0
- {termrender-4.1.0 → termrender-4.1.1}/src/termrender/renderers/code.py +0 -0
- {termrender-4.1.0 → termrender-4.1.1}/src/termrender/renderers/columns.py +0 -0
- {termrender-4.1.0 → termrender-4.1.1}/src/termrender/renderers/diff.py +0 -0
- {termrender-4.1.0 → termrender-4.1.1}/src/termrender/renderers/divider.py +0 -0
- {termrender-4.1.0 → termrender-4.1.1}/src/termrender/renderers/mermaid.py +0 -0
- {termrender-4.1.0 → termrender-4.1.1}/src/termrender/renderers/mermaid_gantt.py +0 -0
- {termrender-4.1.0 → termrender-4.1.1}/src/termrender/renderers/panel.py +0 -0
- {termrender-4.1.0 → termrender-4.1.1}/src/termrender/renderers/quote.py +0 -0
- {termrender-4.1.0 → termrender-4.1.1}/src/termrender/renderers/stat.py +0 -0
- {termrender-4.1.0 → termrender-4.1.1}/src/termrender/renderers/table.py +0 -0
- {termrender-4.1.0 → termrender-4.1.1}/src/termrender/renderers/text.py +0 -0
- {termrender-4.1.0 → termrender-4.1.1}/src/termrender/renderers/timeline.py +0 -0
- {termrender-4.1.0 → termrender-4.1.1}/src/termrender/renderers/tree.py +0 -0
- {termrender-4.1.0 → termrender-4.1.1}/src/termrender/style.py +0 -0
- {termrender-4.1.0 → termrender-4.1.1}/tests/__init__.py +0 -0
- {termrender-4.1.0 → termrender-4.1.1}/tests/test_charts.py +0 -0
- {termrender-4.1.0 → termrender-4.1.1}/tests/test_cli_contract.py +0 -0
- {termrender-4.1.0 → termrender-4.1.1}/tests/test_column_alignment.py +0 -0
- {termrender-4.1.0 → termrender-4.1.1}/tests/test_diff.py +0 -0
- {termrender-4.1.0 → termrender-4.1.1}/tests/test_inline_badge.py +0 -0
- {termrender-4.1.0 → termrender-4.1.1}/tests/test_linebreak.py +0 -0
- {termrender-4.1.0 → termrender-4.1.1}/tests/test_mermaid_compat.py +0 -0
- {termrender-4.1.0 → termrender-4.1.1}/tests/test_mermaid_dispatch.py +0 -0
- {termrender-4.1.0 → termrender-4.1.1}/tests/test_mermaid_gantt.py +0 -0
- {termrender-4.1.0 → termrender-4.1.1}/tests/test_myst_gaps.py +0 -0
- {termrender-4.1.0 → termrender-4.1.1}/tests/test_stat.py +0 -0
- {termrender-4.1.0 → termrender-4.1.1}/tests/test_tasklist.py +0 -0
- {termrender-4.1.0 → termrender-4.1.1}/tests/test_timeline.py +0 -0
- {termrender-4.1.0 → termrender-4.1.1}/tests/test_variable_colons.py +0 -0
- {termrender-4.1.0 → termrender-4.1.1}/uv.lock +0 -0
|
@@ -1,6 +1,14 @@
|
|
|
1
1
|
# CHANGELOG
|
|
2
2
|
|
|
3
3
|
|
|
4
|
+
## v4.1.1 (2026-07-06)
|
|
5
|
+
|
|
6
|
+
### Bug Fixes
|
|
7
|
+
|
|
8
|
+
- **mermaid**: Honor inline title on pie header line
|
|
9
|
+
([`37b4c37`](https://github.com/crouton-labs/termrender/commit/37b4c37581046d7a9b327f0e06f3ea5a5ca921d3))
|
|
10
|
+
|
|
11
|
+
|
|
4
12
|
## v4.1.0 (2026-07-06)
|
|
5
13
|
|
|
6
14
|
### Features
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: termrender
|
|
3
|
-
Version: 4.1.
|
|
3
|
+
Version: 4.1.1
|
|
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
|
|
@@ -22,7 +22,7 @@ from termrender.renderers.charts import render_bar
|
|
|
22
22
|
|
|
23
23
|
_TITLE_RE = re.compile(r"^\s*title\s+(.*\S)\s*$", re.IGNORECASE)
|
|
24
24
|
_DATA_RE = re.compile(r'^\s*"([^"]*)"\s*:\s*(-?\d+(?:\.\d+)?)\s*$')
|
|
25
|
-
_HEADER_RE = re.compile(r"^\s*pie\b", re.IGNORECASE)
|
|
25
|
+
_HEADER_RE = re.compile(r"^\s*pie\b(?:\s+showData\b)?\s*(.*)$", re.IGNORECASE)
|
|
26
26
|
|
|
27
27
|
|
|
28
28
|
def parse_pie(source: str) -> tuple[str | None, list[dict]]:
|
|
@@ -38,7 +38,13 @@ def parse_pie(source: str) -> tuple[str | None, list[dict]]:
|
|
|
38
38
|
for line in source.splitlines():
|
|
39
39
|
if not line.strip():
|
|
40
40
|
continue
|
|
41
|
-
|
|
41
|
+
m = _HEADER_RE.match(line)
|
|
42
|
+
if m:
|
|
43
|
+
# Mermaid allows the title inline on the header line:
|
|
44
|
+
# ``pie title X`` / ``pie showData title X``.
|
|
45
|
+
tm = _TITLE_RE.match(m.group(1))
|
|
46
|
+
if tm:
|
|
47
|
+
title = tm.group(1)
|
|
42
48
|
continue
|
|
43
49
|
m = _TITLE_RE.match(line)
|
|
44
50
|
if m:
|
|
@@ -40,6 +40,15 @@ class TestParsePie(unittest.TestCase):
|
|
|
40
40
|
_, items = parse_pie("pie\n")
|
|
41
41
|
self.assertEqual(items, [])
|
|
42
42
|
|
|
43
|
+
def test_title_inline_on_header_line(self):
|
|
44
|
+
title, items = parse_pie('pie title Pets\n "Dogs": 42\n')
|
|
45
|
+
self.assertEqual(title, "Pets")
|
|
46
|
+
self.assertEqual(items, [{"label": "Dogs", "value": 42.0}])
|
|
47
|
+
|
|
48
|
+
def test_title_inline_after_showdata(self):
|
|
49
|
+
title, _ = parse_pie('pie showData title Pets\n "Dogs": 1\n')
|
|
50
|
+
self.assertEqual(title, "Pets")
|
|
51
|
+
|
|
43
52
|
|
|
44
53
|
class TestRenderPie(unittest.TestCase):
|
|
45
54
|
|
|
@@ -90,3 +99,4 @@ class TestRenderPie(unittest.TestCase):
|
|
|
90
99
|
|
|
91
100
|
if __name__ == "__main__":
|
|
92
101
|
unittest.main()
|
|
102
|
+
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|