mirror of
https://github.com/earendil-works/pi.git
synced 2026-06-18 15:54:04 +08:00
Merge pull request #4379 from Perlence/fix-tui-todo-checkboxes
fix(tui): render the checkboxes in the to-do list items
This commit is contained in:
@@ -556,8 +556,10 @@ export class Markdown implements Component {
|
||||
for (let i = 0; i < token.items.length; i++) {
|
||||
const item = token.items[i];
|
||||
const bullet = token.ordered ? `${startNumber + i}. ` : "- ";
|
||||
const firstPrefix = indent + this.theme.listBullet(bullet);
|
||||
const continuationPrefix = indent + " ".repeat(visibleWidth(bullet));
|
||||
const taskMarker = item.task ? `[${item.checked ? "x" : " "}] ` : "";
|
||||
const marker = bullet + taskMarker;
|
||||
const firstPrefix = indent + this.theme.listBullet(marker);
|
||||
const continuationPrefix = indent + " ".repeat(visibleWidth(marker));
|
||||
const itemWidth = Math.max(1, width - visibleWidth(firstPrefix));
|
||||
let renderedAnyLine = false;
|
||||
|
||||
|
||||
@@ -124,6 +124,14 @@ describe("Markdown component", () => {
|
||||
assert.ok(plainLines.some((line) => line.includes("2. Second ordered")));
|
||||
});
|
||||
|
||||
it("should render task list markers", () => {
|
||||
const markdown = new Markdown("- [ ] beep\n- [x] boop", 0, 0, defaultMarkdownTheme);
|
||||
|
||||
const lines = markdown.render(80).map((line) => stripAnsi(line).trimEnd());
|
||||
|
||||
assert.deepStrictEqual(lines, ["- [ ] beep", "- [x] boop"]);
|
||||
});
|
||||
|
||||
it("should maintain numbering when code blocks are not indented (LLM output)", () => {
|
||||
// When code blocks aren't indented, marked parses each item as a separate list.
|
||||
// We use token.start to preserve the original numbering.
|
||||
|
||||
Reference in New Issue
Block a user