优化消息间距:使用 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
// 将 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');
}

View File

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