termrender 1.0.0__tar.gz → 1.0.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.
Files changed (48) hide show
  1. {termrender-1.0.0 → termrender-1.0.1}/.git +1 -1
  2. {termrender-1.0.0 → termrender-1.0.1}/CHANGELOG.md +12 -0
  3. {termrender-1.0.0 → termrender-1.0.1}/PKG-INFO +1 -1
  4. {termrender-1.0.0 → termrender-1.0.1}/src/termrender/parser.py +9 -2
  5. {termrender-1.0.0 → termrender-1.0.1}/.github/workflows/publish.yml +0 -0
  6. {termrender-1.0.0 → termrender-1.0.1}/.gitignore +0 -0
  7. {termrender-1.0.0 → termrender-1.0.1}/CLAUDE.md +0 -0
  8. {termrender-1.0.0 → termrender-1.0.1}/LICENSE +0 -0
  9. {termrender-1.0.0 → termrender-1.0.1}/README.md +0 -0
  10. {termrender-1.0.0 → termrender-1.0.1}/design.json +0 -0
  11. {termrender-1.0.0 → termrender-1.0.1}/pyproject.toml +0 -0
  12. {termrender-1.0.0 → termrender-1.0.1}/requirements.json +0 -0
  13. {termrender-1.0.0 → termrender-1.0.1}/src/termrender/CLAUDE.md +0 -0
  14. {termrender-1.0.0 → termrender-1.0.1}/src/termrender/__init__.py +0 -0
  15. {termrender-1.0.0 → termrender-1.0.1}/src/termrender/__main__.py +0 -0
  16. {termrender-1.0.0 → termrender-1.0.1}/src/termrender/blocks.py +0 -0
  17. {termrender-1.0.0 → termrender-1.0.1}/src/termrender/emit.py +0 -0
  18. {termrender-1.0.0 → termrender-1.0.1}/src/termrender/layout.py +0 -0
  19. {termrender-1.0.0 → termrender-1.0.1}/src/termrender/py.typed +0 -0
  20. {termrender-1.0.0 → termrender-1.0.1}/src/termrender/renderers/CLAUDE.md +0 -0
  21. {termrender-1.0.0 → termrender-1.0.1}/src/termrender/renderers/__init__.py +0 -0
  22. {termrender-1.0.0 → termrender-1.0.1}/src/termrender/renderers/borders.py +0 -0
  23. {termrender-1.0.0 → termrender-1.0.1}/src/termrender/renderers/charts.py +0 -0
  24. {termrender-1.0.0 → termrender-1.0.1}/src/termrender/renderers/code.py +0 -0
  25. {termrender-1.0.0 → termrender-1.0.1}/src/termrender/renderers/columns.py +0 -0
  26. {termrender-1.0.0 → termrender-1.0.1}/src/termrender/renderers/diff.py +0 -0
  27. {termrender-1.0.0 → termrender-1.0.1}/src/termrender/renderers/divider.py +0 -0
  28. {termrender-1.0.0 → termrender-1.0.1}/src/termrender/renderers/mermaid.py +0 -0
  29. {termrender-1.0.0 → termrender-1.0.1}/src/termrender/renderers/panel.py +0 -0
  30. {termrender-1.0.0 → termrender-1.0.1}/src/termrender/renderers/quote.py +0 -0
  31. {termrender-1.0.0 → termrender-1.0.1}/src/termrender/renderers/stat.py +0 -0
  32. {termrender-1.0.0 → termrender-1.0.1}/src/termrender/renderers/table.py +0 -0
  33. {termrender-1.0.0 → termrender-1.0.1}/src/termrender/renderers/text.py +0 -0
  34. {termrender-1.0.0 → termrender-1.0.1}/src/termrender/renderers/timeline.py +0 -0
  35. {termrender-1.0.0 → termrender-1.0.1}/src/termrender/renderers/tree.py +0 -0
  36. {termrender-1.0.0 → termrender-1.0.1}/src/termrender/style.py +0 -0
  37. {termrender-1.0.0 → termrender-1.0.1}/tests/__init__.py +0 -0
  38. {termrender-1.0.0 → termrender-1.0.1}/tests/test_charts.py +0 -0
  39. {termrender-1.0.0 → termrender-1.0.1}/tests/test_column_alignment.py +0 -0
  40. {termrender-1.0.0 → termrender-1.0.1}/tests/test_diff.py +0 -0
  41. {termrender-1.0.0 → termrender-1.0.1}/tests/test_inline_badge.py +0 -0
  42. {termrender-1.0.0 → termrender-1.0.1}/tests/test_linebreak.py +0 -0
  43. {termrender-1.0.0 → termrender-1.0.1}/tests/test_mermaid_compat.py +0 -0
  44. {termrender-1.0.0 → termrender-1.0.1}/tests/test_myst_gaps.py +0 -0
  45. {termrender-1.0.0 → termrender-1.0.1}/tests/test_stat.py +0 -0
  46. {termrender-1.0.0 → termrender-1.0.1}/tests/test_tasklist.py +0 -0
  47. {termrender-1.0.0 → termrender-1.0.1}/tests/test_timeline.py +0 -0
  48. {termrender-1.0.0 → termrender-1.0.1}/tests/test_variable_colons.py +0 -0
@@ -1 +1 @@
1
- gitdir: /Users/silasrhyneer/Code/cli/termrender/.git/worktrees/tr-v100
1
+ gitdir: /Users/silasrhyneer/Code/cli/termrender/.git/worktrees/tr-v101
@@ -1,6 +1,18 @@
1
1
  # CHANGELOG
2
2
 
3
3
 
4
+ ## v1.0.1 (2026-04-28)
5
+
6
+ ### Bug Fixes
7
+
8
+ - **parser**: Extract bullet text from paragraph children in loose lists
9
+ ([`95f389b`](https://github.com/crouton-labs/termrender/commit/95f389b808d89195a8b9dd957d7949328a8859e8))
10
+
11
+ Mistune wraps list_item content in block_text for tight lists and in paragraph for loose lists. Only
12
+ block_text was being extracted into item spans, so loose-list bullets rendered with empty text —
13
+ the renderer's `if not block.text` short-circuit dropped the paragraph child entirely.
14
+
15
+
4
16
  ## v1.0.0 (2026-04-27)
5
17
 
6
18
  ### Documentation
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: termrender
3
- Version: 1.0.0
3
+ Version: 1.0.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
@@ -314,12 +314,19 @@ def _convert_ast(nodes: list[dict], _depth: int = 0) -> list[Block]:
314
314
  for item_node in node.get("children", []):
315
315
  if item_node["type"] == "list_item":
316
316
  item_children = item_node.get("children", [])
317
- # list_item contains block_text nodes
317
+ # Tight lists wrap item content in block_text; loose lists
318
+ # (blank line between items) wrap it in paragraph. Either way,
319
+ # the first text-bearing child becomes the bullet's inline text.
318
320
  item_spans: list[InlineSpan] = []
319
321
  sub_blocks: list[Block] = []
322
+ bullet_text_taken = False
320
323
  for child in item_children:
321
- if child["type"] == "block_text":
324
+ ctype = child["type"]
325
+ if ctype == "block_text":
322
326
  item_spans.extend(_convert_inline(child.get("children", [])))
327
+ elif ctype == "paragraph" and not bullet_text_taken:
328
+ item_spans.extend(_convert_inline(child.get("children", [])))
329
+ bullet_text_taken = True
323
330
  else:
324
331
  sub_blocks.extend(_convert_ast([child], _depth=_depth))
325
332
  items.append(Block(
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes