From 9173267e09b4d9adaf7832e3c1c76dde787dc6a0 Mon Sep 17 00:00:00 2001 From: Nelson <1475262689@qq.com> Date: Fri, 17 Jul 2026 14:33:26 +0800 Subject: [PATCH] fix(chat): refine markdown typography --- .../components/StreamingMarkdownMessage.vue | 10 ++++- .../apps/admin-web/src/styles.css | 33 +++++++++++------ .../src/components/ChatMessage.vue | 10 ++++- .../apps/user-client/src/styles.css | 32 ++++++++++------ ai_knowledge_base_v2/design-qa.md | 35 ++++++++++++++++++ .../screenshots/Markdown排版_修复后.png | Bin 0 -> 47751 bytes 6 files changed, 96 insertions(+), 24 deletions(-) create mode 100644 ai_knowledge_base_v2/test_records/screenshots/Markdown排版_修复后.png diff --git a/ai_knowledge_base_v2/apps/admin-web/src/components/StreamingMarkdownMessage.vue b/ai_knowledge_base_v2/apps/admin-web/src/components/StreamingMarkdownMessage.vue index 18ce47d..b466758 100644 --- a/ai_knowledge_base_v2/apps/admin-web/src/components/StreamingMarkdownMessage.vue +++ b/ai_knowledge_base_v2/apps/admin-web/src/components/StreamingMarkdownMessage.vue @@ -13,7 +13,15 @@ const markdown = new MarkdownIt({ breaks: true, html: false, linkify: true }); const parsed = computed(() => splitReasoning(props.content)); const answer = computed(() => parsed.value.answer.replace(/^\s+/, "")); const reasoning = computed(() => props.reasoning || parsed.value.reasoning); -const renderedContent = computed(() => answer.value.trim() ? markdown.render(answer.value) : ""); +const renderedContent = computed(() => answer.value.trim() ? markdown.render(normalizeStandaloneHeadings(answer.value)) : ""); + +function normalizeStandaloneHeadings(content: string) { + return content.replace(/^([ \t]*)\*\*(.+)\*\*[ \t]*$/gm, (line, indent: string, title: string) => { + const normalizedTitle = title.trim(); + if (!normalizedTitle || normalizedTitle.length > 48 || normalizedTitle.includes("**")) return line; + return `${indent}### ${normalizedTitle}`; + }); +} function splitReasoning(content: string) { const lower = content.toLowerCase(); diff --git a/ai_knowledge_base_v2/apps/admin-web/src/styles.css b/ai_knowledge_base_v2/apps/admin-web/src/styles.css index d094ebf..a0bac47 100644 --- a/ai_knowledge_base_v2/apps/admin-web/src/styles.css +++ b/ai_knowledge_base_v2/apps/admin-web/src/styles.css @@ -1384,38 +1384,43 @@ textarea { overflow-wrap: anywhere; color: #263832; font-size: 14px; - line-height: 1.75; + line-height: 1.68; } .agent-preview-markdown > :first-child { margin-top: 0; } .agent-preview-markdown > :last-child { margin-bottom: 0; } -.agent-preview-markdown p { margin: 0 0 10px; } +.agent-preview-markdown p { margin: 0 0 8px; } .agent-preview-markdown h1, .agent-preview-markdown h2, .agent-preview-markdown h3, -.agent-preview-markdown h4 { - margin: 16px 0 8px; +.agent-preview-markdown h4, +.agent-preview-markdown h5, +.agent-preview-markdown h6 { + margin: 13px 0 5px; color: #1f352e; - line-height: 1.45; + line-height: 1.42; + font-weight: 700; } -.agent-preview-markdown h1 { font-size: 19px; } +.agent-preview-markdown h1 { font-size: 18px; } .agent-preview-markdown h2 { font-size: 17px; } -.agent-preview-markdown h3, +.agent-preview-markdown h3 { font-size: 16px; } .agent-preview-markdown h4 { font-size: 15px; } +.agent-preview-markdown h5, +.agent-preview-markdown h6 { font-size: 14px; } .agent-preview-markdown ul, .agent-preview-markdown ol { - margin: 8px 0 10px; - padding-left: 22px; + margin: 6px 0 8px; + padding-left: 21px; } -.agent-preview-markdown li + li { margin-top: 5px; } +.agent-preview-markdown li + li { margin-top: 3px; } .agent-preview-markdown strong { color: #1f352e; font-weight: 700; } .agent-preview-markdown blockquote { - margin: 10px 0; + margin: 8px 0; padding: 7px 10px; border-left: 3px solid #8cc7b6; background: #eef7f4; @@ -1464,6 +1469,12 @@ textarea { .agent-preview-markdown a { color: #0f735d; font-weight: 700; } +.agent-preview-markdown hr { + margin: 12px 0; + border: 0; + border-top: 1px solid #dbe7e3; +} + .agent-preview-generation-state { display: flex; align-items: center; diff --git a/ai_knowledge_base_v2/apps/user-client/src/components/ChatMessage.vue b/ai_knowledge_base_v2/apps/user-client/src/components/ChatMessage.vue index f986afc..7e8dd84 100644 --- a/ai_knowledge_base_v2/apps/user-client/src/components/ChatMessage.vue +++ b/ai_knowledge_base_v2/apps/user-client/src/components/ChatMessage.vue @@ -23,9 +23,17 @@ const reasoning = computed(() => props.reasoning || parsed.value.reasoning); const hasAnswer = computed(() => answer.value.trim().length > 0); const renderedContent = computed(() => { if (props.role !== "assistant") return answer.value; - return hasAnswer.value ? markdown.render(answer.value) : ""; + return hasAnswer.value ? markdown.render(normalizeStandaloneHeadings(answer.value)) : ""; }); +function normalizeStandaloneHeadings(content: string) { + return content.replace(/^([ \t]*)\*\*(.+)\*\*[ \t]*$/gm, (line, indent: string, title: string) => { + const normalizedTitle = title.trim(); + if (!normalizedTitle || normalizedTitle.length > 48 || normalizedTitle.includes("**")) return line; + return `${indent}### ${normalizedTitle}`; + }); +} + function splitReasoning(content: string) { const lower = content.toLowerCase(); let answer = ""; diff --git a/ai_knowledge_base_v2/apps/user-client/src/styles.css b/ai_knowledge_base_v2/apps/user-client/src/styles.css index 86b69ad..32a01b3 100644 --- a/ai_knowledge_base_v2/apps/user-client/src/styles.css +++ b/ai_knowledge_base_v2/apps/user-client/src/styles.css @@ -1321,7 +1321,7 @@ textarea:focus-visible { white-space: pre-wrap; color: inherit; font-size: 15px; - line-height: 1.78; + line-height: 1.7; letter-spacing: 0; } @@ -1369,35 +1369,39 @@ textarea:focus-visible { .markdown-content > :first-child { margin-top: 0; } .markdown-content > :last-child { margin-bottom: 0; } -.markdown-content p { margin: 0 0 12px; } +.markdown-content p { margin: 0 0 8px; } .markdown-content h1, .markdown-content h2, .markdown-content h3, -.markdown-content h4 { - margin: 20px 0 9px; +.markdown-content h4, +.markdown-content h5, +.markdown-content h6 { + margin: 15px 0 6px; color: var(--chat-text); - line-height: 1.45; + line-height: 1.42; font-weight: 700; } .markdown-content h1 { font-size: 20px; } .markdown-content h2 { font-size: 18px; } -.markdown-content h3, +.markdown-content h3 { font-size: 17px; } .markdown-content h4 { font-size: 16px; } +.markdown-content h5, +.markdown-content h6 { font-size: 15px; } .markdown-content ul, .markdown-content ol { - margin: 8px 0 13px; - padding-left: 22px; + margin: 6px 0 9px; + padding-left: 21px; } -.markdown-content li + li { margin-top: 6px; } +.markdown-content li + li { margin-top: 3px; } .markdown-content strong { color: var(--chat-text); font-weight: 700; } .markdown-content blockquote { - margin: 12px 0; - padding: 8px 12px; + margin: 9px 0; + padding: 7px 11px; border-left: 3px solid #8cc7b6; background: var(--chat-brand-soft); color: #526b63; @@ -1405,6 +1409,12 @@ textarea:focus-visible { .markdown-content blockquote p { margin: 0; } +.markdown-content hr { + margin: 14px 0; + border: 0; + border-top: 1px solid var(--chat-border); +} + .chat-composer { position: relative; z-index: 6; diff --git a/ai_knowledge_base_v2/design-qa.md b/ai_knowledge_base_v2/design-qa.md index e98ad77..eee85f4 100644 --- a/ai_knowledge_base_v2/design-qa.md +++ b/ai_knowledge_base_v2/design-qa.md @@ -51,6 +51,41 @@ final result: passed --- +# Markdown 长回答排版修复验收(2026-07-17) + +## 对照范围 + +- 问题截图:`/var/folders/hn/vg5lxj0j60d2cp0k6vv_k0mw0000gn/T/codex-clipboard-dc66a8a3-c423-4661-b29a-9c917754b888.png` +- 修复后完整页面:`test_records/screenshots/Markdown排版_修复后.png` +- 视口:1135 × 874,用户端 430px 固定聊天容器。 +- 状态:真实历史消息接口,包含 H1、H2、独立加粗小标题、正文、列表和引用块。 + +## 比较历史 + +- [P1] 修复前:模型常用的独立 `**加粗文本**` 只显示为加粗正文,没有标题字号和上下间距层级。 +- [P1] 修复前:正文行高、段落底部间距、列表条目间距和引用块上下间距叠加,长回答出现过大断层。 +- 修复:独立且不超过 48 字的加粗行按 H3 小标题渲染;普通行内加粗保持原语义。 +- 修复:用户端与后台预览统一收紧段落、列表、引用和标题间距,并补齐 H5、H6 和分隔线样式。 + +## 必查视觉面 + +- 字体与排版:用户端实测 H1/H2/H3/正文为 20/18/17/15px,标题层级清楚;正文行高 25.5px。 +- 间距与布局:标题上下间距为 15/6px,段落底部 8px,列表条目 3px,引用块顶部 9px;没有大块空白或水平溢出。 +- 颜色与令牌:继续使用现有深墨绿正文、雾绿引用背景和边框令牌,未引入新色系。 +- 图像与资源:本次为文本排版修复,无新增图像、图标或外部资源。 +- 文案与内容:Markdown 原文未被更改,只在展示层识别独立加粗小标题。 + +## 交互与工程检查 + +- DOM 实测确认独立加粗行已渲染为 H3,H1、H2、列表和引用均为正确语义节点。 +- 完整视图已能清晰判断字号、间距、列表和引用块,无需额外放大局部截图。 +- 用户端与后台预览 `npm run build`:通过。 +- 未发现剩余 P0、P1、P2 级问题。 + +final result: passed + +--- + # 后台登录页视觉重构验收(2026-07-13) ## 对照范围 diff --git a/ai_knowledge_base_v2/test_records/screenshots/Markdown排版_修复后.png b/ai_knowledge_base_v2/test_records/screenshots/Markdown排版_修复后.png new file mode 100644 index 0000000000000000000000000000000000000000..7b4f29d6563c3d58963213b76edc6e7eda4f5ec4 GIT binary patch literal 47751 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