refactor: adjust markdown line wrapping
This commit is contained in:
parent
5e733a4e14
commit
b9610663a6
1 changed files with 17 additions and 16 deletions
|
|
@ -49,16 +49,18 @@ export async function renderMarkdown(
|
||||||
return Bun.wrapAnsi(
|
return Bun.wrapAnsi(
|
||||||
color.bold(`${"#".repeat(level)} ${children}\n\n`),
|
color.bold(`${"#".repeat(level)} ${children}\n\n`),
|
||||||
columns,
|
columns,
|
||||||
|
{ trim: false },
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
paragraph: (children) => Bun.wrapAnsi(`${children}\n\n`, columns),
|
paragraph: (children) =>
|
||||||
|
Bun.wrapAnsi(`${children}\n\n`, columns - 2, { trim: false }),
|
||||||
blockquote: (children) => {
|
blockquote: (children) => {
|
||||||
const lines = children.split("\n");
|
const lines = Bun.wrapAnsi(children, columns).split("\n");
|
||||||
const toRender = lines
|
const toRender = lines
|
||||||
.map((line) => `${chalk.dim("> ")}${line}`)
|
.map((line) => `${chalk.dim("> ")}${line}`)
|
||||||
.join("\n")
|
.join("\n")
|
||||||
.replace(/\n$/, "\n\n");
|
.concat("\n\n");
|
||||||
return Bun.wrapAnsi(toRender, columns);
|
return toRender;
|
||||||
},
|
},
|
||||||
code: (children, meta) => {
|
code: (children, meta) => {
|
||||||
let toRender = children;
|
let toRender = children;
|
||||||
|
|
@ -77,10 +79,7 @@ export async function renderMarkdown(
|
||||||
return `\`\`\`${chalk.blue(meta?.language ?? "")}\n${toRender}\`\`\`\n`;
|
return `\`\`\`${chalk.blue(meta?.language ?? "")}\n${toRender}\`\`\`\n`;
|
||||||
},
|
},
|
||||||
list: (children, { depth }) =>
|
list: (children, { depth }) =>
|
||||||
Bun.wrapAnsi(
|
`${depth > 0 ? "\n" : ""}${children.trimEnd()}${depth === 0 ? "\n\n" : ""}`,
|
||||||
`${depth > 0 ? "\n" : ""}${children.trimEnd()}${depth === 0 ? "\n\n" : ""}`,
|
|
||||||
columns,
|
|
||||||
),
|
|
||||||
listItem: (children, { index, depth, ordered, start, checked }) => {
|
listItem: (children, { index, depth, ordered, start, checked }) => {
|
||||||
const indent = " ".repeat(depth);
|
const indent = " ".repeat(depth);
|
||||||
let marker = "";
|
let marker = "";
|
||||||
|
|
@ -92,19 +91,21 @@ export async function renderMarkdown(
|
||||||
} else {
|
} else {
|
||||||
marker = "•";
|
marker = "•";
|
||||||
}
|
}
|
||||||
return `${indent} ${marker} ${children}\n`;
|
return Bun.wrapAnsi(`${indent} ${marker} ${children}\n`, columns, {
|
||||||
|
trim: false,
|
||||||
|
});
|
||||||
},
|
},
|
||||||
hr: () => `${chalk.dim("─".repeat(columns))}\n\n`,
|
hr: () => `${chalk.dim("─".repeat(columns))}\n\n`,
|
||||||
table: (_children) => {
|
table: (_children) => {
|
||||||
const table = new Table();
|
const table = new Table()
|
||||||
table.header(header);
|
.header(header)
|
||||||
table.body(body);
|
.body(body)
|
||||||
table.border();
|
.border()
|
||||||
table.maxColWidth(Math.floor(columns / header.length));
|
.maxColWidth(Math.floor(columns / header.length) - 2)
|
||||||
const toRender = table.toString();
|
.toString();
|
||||||
header = [];
|
header = [];
|
||||||
body = [];
|
body = [];
|
||||||
return `${toRender}\n\n`;
|
return `${table}\n\n`;
|
||||||
},
|
},
|
||||||
tr: (children) => {
|
tr: (children) => {
|
||||||
if (children) body.push(children.split(":tablesep:").slice(1));
|
if (children) body.push(children.split(":tablesep:").slice(1));
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue