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; }