style(web): kb 已入库条目精简为标题+单行摘要

- 行内去掉关键词、摘要 CSS 单行省略(原 .sk-desc 省略规则只覆盖左栏
  .sk-item,右栏 kb-entry 整段换行铺开导致每条过高)
- 完整摘要+关键词挪进悬停 title,信息不丢

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
caoqianming 2026-07-24 15:45:05 +08:00
parent 0ceb4c5bd9
commit 0c74a44224
2 changed files with 8 additions and 2 deletions

View File

@ -508,6 +508,10 @@
.kb-pending { padding: 3px 0; font-size: 12px; color: var(--muted); } .kb-pending { padding: 3px 0; font-size: 12px; color: var(--muted); }
.kb-entry { display: flex; align-items: flex-start; gap: 6px; padding: 6px 0; border-bottom: 1px dashed var(--border); } .kb-entry { display: flex; align-items: flex-start; gap: 6px; padding: 6px 0; border-bottom: 1px dashed var(--border); }
.kb-entry-main { flex: 1; min-width: 0; cursor: pointer; } .kb-entry-main { flex: 1; min-width: 0; cursor: pointer; }
/* 标题/摘要各压一行省略(sk-item 的省略规则只覆盖左栏,这里单列);全文在悬停 title */
.kb-entry-main .sk-name, .kb-entry-main .sk-desc {
overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.kb-entry-main:hover .sk-name { text-decoration: underline; } .kb-entry-main:hover .sk-name { text-decoration: underline; }
.kb-entry .kb-doc-del, .kb-entry .kb-src-dl { flex-shrink: 0; opacity: .55; } .kb-entry .kb-doc-del, .kb-entry .kb-src-dl { flex-shrink: 0; opacity: .55; }
.kb-entry:hover .kb-doc-del, .kb-entry:hover .kb-src-dl { opacity: 1; } .kb-entry:hover .kb-doc-del, .kb-entry:hover .kb-src-dl { opacity: 1; }

View File

@ -135,10 +135,12 @@ function renderDetail(d) {
const doc = e.doc.replace(/^docs\//, ""); const doc = e.doc.replace(/^docs\//, "");
const src = (e.source || "").replace(/^sources\//, ""); const src = (e.source || "").replace(/^sources\//, "");
if (src) _docSources[doc] = src; if (src) _docSources[doc] = src;
// 行内只留标题 + 单行摘要(CSS 省略);完整摘要/关键词进 title 悬停提示,不占行高
const tip = e.summary + (e.keywords ? "\n关键词: " + e.keywords : "");
return `<div class="kb-entry"> return `<div class="kb-entry">
<div class="kb-entry-main" data-doc="${escapeHtml(doc)}"> <div class="kb-entry-main" data-doc="${escapeHtml(doc)}" title="${escapeHtml(tip)}">
<div class="sk-name">${escapeHtml(e.title)}</div> <div class="sk-name">${escapeHtml(e.title)}</div>
<div class="sk-desc">${escapeHtml(e.summary)}${e.keywords ? " " + escapeHtml(e.keywords) : ""}</div> <div class="sk-desc">${escapeHtml(e.summary)}</div>
</div> </div>
${src ? `<button class="small kb-src-view" data-src="${escapeHtml(src)}" title="查看原件">👁</button> ${src ? `<button class="small kb-src-view" data-src="${escapeHtml(src)}" title="查看原件">👁</button>
<button class="small kb-src-dl" data-src="${escapeHtml(src)}" title="下载原件"></button>` : ""} <button class="small kb-src-dl" data-src="${escapeHtml(src)}" title="下载原件"></button>` : ""}