Skip to content

chorography [ui]: wiki 面板把 Markdown 源码当纯文本渲染(表格露竖线 / CHORO 标记可见 / front matter status 不回写 / 树缩进按连字符算) #582

Closed

Description

@strange2000

现象

Windows,DSH NEXT 2.0.22-next(asar 内 [email protected]),@modusensus/dsh-mneme 0.11.0。仓库 dsh-orb-cordis(monorepo,165 文件 / 11 模块),先用 dsh-mneme-choro --apply 生成 T0,再对 11 个模块全部跑完 T1(207 条 claims,choro_pages 11 条全部 enriched)。

dsh-mneme-wiki 面板(sidebar.panellist 形态)打开任一模块页,看到的是 Markdown 源码,不是排版后的页面。

四个具体问题

1. 表格不渲染,竖线原样露出

面板自带手写迷你渲染器(lib/client.js:10185-10235),每行以 | 开头时只做成等宽 div:

// lib/client.js:10227
if (/^\s*\|/.test(line)) { out.push(h("div", { key: out.length, className: "mneme-wikitablerow" }, inline(line.trim()))); continue; }
/* lib/client.js:2310 */
.mneme-wikitablerow{font-family:ui-monospace,...;font-size:11.5px;line-height:19px;white-space:pre;overflow-x:auto}

结果页面上显示的是:

| 文件 | 行数 |
| --- | ---: |
| docs/01-analysis.md | 88 |

模块页里表格是主力(文件清单、外部依赖、分层说明),期望渲染成真正的 <table>(至少解析出表头/对齐行并隐藏 --- 那行)。

2. 机器标记 <!-- CHORO:T1:START --> / END 直接显示在正文里

T1 段落由一对 HTML 注释包裹(这是设计,用于 CHORO:HUMAN 逐字节保留),但渲染器不剥 HTML 注释,于是用户在架构段落前会看到一行裸文本:

<!-- CHORO:T1:START -->

期望:渲染时跳过 <!-- ... -->(或折叠成一个"AI 补写段落"的视觉分隔条)。注意纯文本导出(choro_read_page 返回的 content)应保持原样,只改 UI 渲染。

3. 文件 front matter 的 status 在 T1 之后没有回写

11 个模块页的 front matter 全部仍是 status: skeleton,而库里 choro_pages 对应行全是 enriched:

docs.md                      frontmatter=skeleton  T1=true
packages-host.md             frontmatter=skeleton  T1=true
...(11/11 相同)

也就是说页面文件自身与数据库状态不一致。建议 T1 成功写页时把 front matter 的 status 一并更新为 enriched(T0 重生成时再按当前状态写)。

4. 左侧模块树的缩进是"连字符个数",不是真实层级

// lib/client.js:10305
const depth = (mod.slug.match(/-/g) || []).length;

packages-computer-use-src 有 3 个连字符 → 缩进 42px;docs 没有连字符 → 顶格。于是 docs、root、packages-host 看起来是同一层,而 packages-computer-use-src 像是它们的子级——实际父子关系在 choro_modules.parent_id 里,UI 没用。

建议用 parent_id 建树(module_map 工具已经能用 parent 关系产出层级),或至少在缩进上区分"层级"与"名字长度"两件事。

复现

# 1) 生成 + 富化(T1 需绕开 #578,用注入 runner)
dsh-mneme-choro <repo> --apply
# 2) 面板 → dsh-mneme-wiki → 任一模块页

页面原文(可对照):.chorography/modules/docs.md,其 ## 文件清单(4 个) 下方 4 行表格 + 中部 <!-- CHORO:T1:START -->。

影响

只影响阅读体验,不影响生成、召回与 claims 核验(choro_read_page / choro_search 返回的都是原始 Markdown,正常)。但地志的价值主要在"人看",排版坏了会显著降低可用性。

Metadata

Metadata

Assignees

No one assigned

    Labels

    area:wiki地志与知识库渲染fixed已修并合并进 main

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions