From 430e99a972c231d35c57235417934ab9a7dc1eb5 Mon Sep 17 00:00:00 2001 From: mitchell Date: Mon, 20 Apr 2026 03:01:22 -0400 Subject: [PATCH] style: markdown render improvements --- .gitignore | 3 +++ src/render/index.ts | 4 ++-- src/render/markdown.ts | 12 +++++++----- 3 files changed, 12 insertions(+), 7 deletions(-) diff --git a/.gitignore b/.gitignore index a14702c..a1af8c1 100644 --- a/.gitignore +++ b/.gitignore @@ -32,3 +32,6 @@ report.[0-9]_.[0-9]_.[0-9]_.[0-9]_.json # Finder (MacOS) folder config .DS_Store + +# test markdown file +test.md diff --git a/src/render/index.ts b/src/render/index.ts index cbc38f4..0e78648 100644 --- a/src/render/index.ts +++ b/src/render/index.ts @@ -81,7 +81,7 @@ export default class Renderer { const [columns] = pipe.getWindowSize(); const rendered = await renderMarkdown(str, columns); - pipe.write(rendered.replace(/\n\n$/, "\n")); + this.write(rendered); } async renderStream(stream: AsyncIterableStream>) { @@ -157,6 +157,6 @@ export default class Renderer { const output = (outputTokens ?? 0) / 1000; const time = (stop - start) / 1000; const template = `Context: ${context.toFixed(1)}k, Output: ${output.toFixed(1)}k, Time: ${time.toFixed(2)}s\n`; - process.stderr.write(chalkStderr.dim(template)); + this.write(chalkStderr.dim(template), process.stderr); } } diff --git a/src/render/markdown.ts b/src/render/markdown.ts index ed38dc0..cbe3d09 100644 --- a/src/render/markdown.ts +++ b/src/render/markdown.ts @@ -34,7 +34,7 @@ export async function renderMarkdown( let currentTable = new CliTable3(); - return Bun.markdown.render(md, { + const rendered = Bun.markdown.render(md, { heading: (children, { level }) => { const colors = [ chalk.cyan.underline, @@ -69,7 +69,7 @@ export async function renderMarkdown( } catch {} } - return `\`\`\`${chalk.blue(meta?.language)}\n${toRender}\n\`\`\`\n`; + return `\`\`\`${chalk.blue(meta?.language ?? "")}\n${toRender}\`\`\`\n`; }, list: (children, { depth }) => `${depth > 0 ? "\n" : ""}${children.trimEnd()}${depth === 0 ? "\n\n" : ""}`, @@ -77,14 +77,14 @@ export async function renderMarkdown( const indent = " ".repeat(depth); let marker = ""; if (checked !== undefined) { - marker = checked ? "[x]" : "[ ]"; + marker = checked ? "[✓]" : "[ ]"; } else if (ordered) { const n = (start ?? 1) + index; marker = `${n}.`; } else { - marker = "-"; + marker = "•"; } - return `${indent}${marker} ${children}\n`; + return `${indent} ${marker} ${children}\n`; }, hr: () => `${chalk.dim("─".repeat(columns))}\n\n`, table: (_children) => { @@ -111,4 +111,6 @@ export async function renderMarkdown( text: (children) => children, html: () => "", }); + + return rendered.replace(/\n\n$/, "\n"); }