feat(mira): 7B.3g wiki UI 樹狀渲染 + 跨 wiki 連結

對應 polaris/mira/.agents/specs/mira-app/design.md §5.2 + §3.5.12。

`/mira/wiki/[pageName]`:
- 抓 wiki-page 後平行撈所有 wiki-paragraph / triplet / wiki-page,client-side 用 parent_id filter
  (KBDB 沒 parent_id server filter,且 tag filter 還有 KI-3 bug)
- 按 facet 分區渲染:facet 標題 + paragraph markdown + 該段的 triplets
- facet 預設展開(看一篇要看內容)/ triplets 預設折疊(leo Logseq outliner 習慣)
- **triplet A/B 拆字串 「A >> 關係 >> B」**,若 A 或 B 對得上既有 wiki entity → render 成 <Link>
  跨 wiki 跳轉,是 Wikipedia-like 體驗的關鍵
- fallback:非 wiki-page block(schema/index/log 等)直接 render content

`/mira/wiki`:列表用 wiki-page 的 content (= entity 名稱) 當標題,不是 page_name slug。

mira.css 加 `.mira-wiki-detail` 不破版 + h2 底線,避免長 cypher 字串撐爆右邊界。

TS check pass。
This commit is contained in:
2026-05-14 13:35:54 +08:00
parent d6d2cecfb5
commit 933ae6cb13
3 changed files with 324 additions and 63 deletions
+20
View File
@@ -755,3 +755,23 @@
.mira-app .mira-rel-time {
cursor: default;
}
/* ── Wiki detail (7B.3g 樹狀渲染) ── */
/* .mira-md 已在 §190+ 定義整套 markdown 樣式(河道+wiki 共用),這裡只加 wiki 細節頁的「不破版」保護 */
.mira-app .mira-wiki-detail {
overflow-wrap: break-word;
word-break: break-word;
}
/* 防止長 cypher binding 字串 / URL 撐爆右邊界 */
.mira-app .mira-wiki-detail .mira-md li,
.mira-app .mira-wiki-detail .mira-md p {
overflow-wrap: break-word;
word-break: break-word;
}
/* wiki h2/h3 加底線分隔,更像文章 */
.mira-app .mira-wiki-detail .mira-md h2 {
border-bottom: 1px solid var(--mira-line-soft);
padding-bottom: 4px;
}