From fe3eb1c6973554a50f0e78c31cd539d874e1a2e5 Mon Sep 17 00:00:00 2001 From: sp mac bookpro 2605 Date: Wed, 22 Jul 2026 17:48:53 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E6=B6=88=E6=81=AF=E9=97=B4?= =?UTF-8?q?=E8=B7=9D=EF=BC=9A=E4=BD=BF=E7=94=A8=20pre-line=20=E5=B9=B6?= =?UTF-8?q?=E9=87=8D=E7=BD=AE=E5=9D=97=E5=85=83=E7=B4=A0=E8=BE=B9=E8=B7=9D?= =?UTF-8?q?=EF=BC=8C=E5=B9=B3=E8=A1=A1=E7=B4=A7=E5=87=91=E5=BA=A6=E4=B8=8E?= =?UTF-8?q?=E5=8F=AF=E8=AF=BB=E6=80=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/pages/chat/utils/format.ts | 8 +------ src/styles.css | 42 ++++++++++++---------------------- 2 files changed, 15 insertions(+), 35 deletions(-) diff --git a/src/pages/chat/utils/format.ts b/src/pages/chat/utils/format.ts index 45e6d22..3baed1b 100644 --- a/src/pages/chat/utils/format.ts +++ b/src/pages/chat/utils/format.ts @@ -8,11 +8,5 @@ export function formatMessageContent(content: string): string { return content // 将 3 个及以上的换行替换为 2 个 - .replace(/\n{3,}/g, '\n\n') - // 针对 Markdown 块元素,将双换行缩小为单换行 - // 匹配 \n\n 后面跟着 #, -, *, >, --- 等 - .replace(/\n\n(?=[#\-*>]|---)/g, '\n') - // 匹配 #, -, *, >, --- 后面跟着 \n\n - // 由于 JavaScript 不支持所有环境下的 lookbehind,我们先处理上面的 - .replace(/([#\-*>]|---)\n\n/g, '$1\n'); + .replace(/\n{3,}/g, '\n\n'); } diff --git a/src/styles.css b/src/styles.css index 84c9e51..93a96fd 100644 --- a/src/styles.css +++ b/src/styles.css @@ -762,7 +762,7 @@ body { display: inline-block; padding: 8px; border-radius: 14px; - white-space: pre-wrap; + white-space: pre-line; word-wrap: break-word; line-height: 1.5; font-size: 14.5px; @@ -785,61 +785,47 @@ body { border: 0; border-bottom-left-radius: 5px; box-shadow: none; - white-space: normal; -} - -.bubble.assistant p { - margin: 0 0 5px; -} - -.bubble.assistant p:last-child { - margin-bottom: 0; } +.bubble.assistant p, .bubble.assistant h1, .bubble.assistant h2, .bubble.assistant h3, .bubble.assistant h4, .bubble.assistant h5, -.bubble.assistant h6 { - margin: 0.2em 0 0.1em; - line-height: 1.3; -} - +.bubble.assistant h6, .bubble.assistant ol, .bubble.assistant ul { - margin: 0.15em 0; - padding-left: 1.25em; + margin: 0; + padding-left: 1.5em; } .bubble.assistant li { - margin: 0.05em 0; + margin: 0; } .bubble.assistant hr { - margin: 0.4em 0; -} - -.bubble.assistant li > p { - margin: 0.15em 0; + margin: 12px 0; + border: 0; + border-top: 1px solid rgba(0, 0, 0, 0.1); } .bubble.assistant blockquote { - margin: 0.2em 0; - padding: 0.2em 0.6em; + margin: 8px 0; + padding: 4px 12px; border-left: 3px solid var(--color-border); background: rgba(15, 23, 42, 0.03); - border-radius: 8px; + border-radius: 4px; } .bubble.assistant blockquote p { - margin: 0.2em 0; + margin: 0; } .bubble.assistant table { border-collapse: collapse; width: 100%; - margin: 0.35em 0; + margin: 12px 0; font-size: 13.5px; }