From 14306b18540e66e72355553f448dd99436fb453d Mon Sep 17 00:00:00 2001 From: Codex Date: Wed, 8 Jul 2026 10:07:10 +0000 Subject: [PATCH] Preserve KaTeX line rendering details --- src/capture.ts | 17 ++++++++++++++++- src/render.ts | 2 +- 2 files changed, 17 insertions(+), 2 deletions(-) diff --git a/src/capture.ts b/src/capture.ts index b4fa27c..b4d0f7f 100644 --- a/src/capture.ts +++ b/src/capture.ts @@ -120,7 +120,9 @@ function normalizeCopiedHtml(html: string): string { const $ = cheerio.load(html, {}, false); $("script, style, iframe, object, embed, form, button, textarea, input, nav").remove(); - $("svg").remove(); + $("svg") + .filter((_, element) => $(element).parents(".katex, .katex-display").length === 0) + .remove(); function escapeCode(value: string): string { return value.replace(/&/g, "&").replace(//g, ">"); @@ -451,8 +453,21 @@ async function extractConversation(sourceUrl: string): Promise math { display: block; max-width: 100%; margin: 0.95em 0; overflow-x: auto; overflow-y: hidden; } .content p math, .content li math { vertical-align: -0.08em; } -.content .katex-display { max-width: 100%; padding: 14px 16px; overflow-x: auto; overflow-y: hidden; border-radius: 8px; background: var(--soft); } +.content .katex-display { max-width: 100%; padding: 14px 16px; overflow-x: auto; overflow-y: visible; border-radius: 8px; background: var(--soft); } .content a[data-citation] { display: inline-flex; align-items: center; gap: 5px; max-width: min(100%, 260px); min-height: 24px; margin: 0 2px; padding: 2px 8px 2px 5px; border: 1px solid var(--border); border-radius: 999px; background: var(--soft); color: var(--text); font-size: 0.88em; line-height: 1.25; white-space: nowrap; text-decoration: none; vertical-align: -5px; } .content a[data-citation]:hover { background: color-mix(in srgb, var(--soft) 82%, var(--text) 18%); } .content a[data-citation] img { width: 16px; height: 16px; max-width: 16px; max-height: 16px; border-radius: 50%; object-fit: cover; flex: 0 0 auto; }