优化消息间距:使用 pre-line 并重置块元素边距,平衡紧凑度与可读性

main
sp mac bookpro 2605 2026-07-22 17:48:53 +08:00
parent 9c208cd8e1
commit fe3eb1c697
2 changed files with 15 additions and 35 deletions

View File

@ -8,11 +8,5 @@ export function formatMessageContent(content: string): string {
return content return content
// 将 3 个及以上的换行替换为 2 个 // 将 3 个及以上的换行替换为 2 个
.replace(/\n{3,}/g, '\n\n') .replace(/\n{3,}/g, '\n\n');
// 针对 Markdown 块元素,将双换行缩小为单换行
// 匹配 \n\n 后面跟着 #, -, *, >, --- 等
.replace(/\n\n(?=[#\-*>]|---)/g, '\n')
// 匹配 #, -, *, >, --- 后面跟着 \n\n
// 由于 JavaScript 不支持所有环境下的 lookbehind我们先处理上面的
.replace(/([#\-*>]|---)\n\n/g, '$1\n');
} }

View File

@ -762,7 +762,7 @@ body {
display: inline-block; display: inline-block;
padding: 8px; padding: 8px;
border-radius: 14px; border-radius: 14px;
white-space: pre-wrap; white-space: pre-line;
word-wrap: break-word; word-wrap: break-word;
line-height: 1.5; line-height: 1.5;
font-size: 14.5px; font-size: 14.5px;
@ -785,61 +785,47 @@ body {
border: 0; border: 0;
border-bottom-left-radius: 5px; border-bottom-left-radius: 5px;
box-shadow: none; 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 h1,
.bubble.assistant h2, .bubble.assistant h2,
.bubble.assistant h3, .bubble.assistant h3,
.bubble.assistant h4, .bubble.assistant h4,
.bubble.assistant h5, .bubble.assistant h5,
.bubble.assistant h6 { .bubble.assistant h6,
margin: 0.2em 0 0.1em;
line-height: 1.3;
}
.bubble.assistant ol, .bubble.assistant ol,
.bubble.assistant ul { .bubble.assistant ul {
margin: 0.15em 0; margin: 0;
padding-left: 1.25em; padding-left: 1.5em;
} }
.bubble.assistant li { .bubble.assistant li {
margin: 0.05em 0; margin: 0;
} }
.bubble.assistant hr { .bubble.assistant hr {
margin: 0.4em 0; margin: 12px 0;
} border: 0;
border-top: 1px solid rgba(0, 0, 0, 0.1);
.bubble.assistant li > p {
margin: 0.15em 0;
} }
.bubble.assistant blockquote { .bubble.assistant blockquote {
margin: 0.2em 0; margin: 8px 0;
padding: 0.2em 0.6em; padding: 4px 12px;
border-left: 3px solid var(--color-border); border-left: 3px solid var(--color-border);
background: rgba(15, 23, 42, 0.03); background: rgba(15, 23, 42, 0.03);
border-radius: 8px; border-radius: 4px;
} }
.bubble.assistant blockquote p { .bubble.assistant blockquote p {
margin: 0.2em 0; margin: 0;
} }
.bubble.assistant table { .bubble.assistant table {
border-collapse: collapse; border-collapse: collapse;
width: 100%; width: 100%;
margin: 0.35em 0; margin: 12px 0;
font-size: 13.5px; font-size: 13.5px;
} }