Skip to Main Content
404Back to Top
22 June 2026, 10:00 (CST)

22 June 2026, 03:30 (CST)

2026年06月21日(东八区)

功能调试:Edit Post 提交后看板明细空白

背景

v1.0 发布说明「下次更新计划」第 1 项,测试 解锁 → 拖拽 → Edit Post → Codeberg 粘贴提交 → ReDeplog 重建 全流程。

触发变更:Codeberg commit c02b75a(更新 kanban/2026-06-16.md)。


现象

页面提交前提交后
列表页 /kanban/正常:stats、进度条、星级正常:待办 3 / 进行中 3 / 进度 60% 已更新
明细页 /kanban/2026-06-16/五列 + 卡片 + 拖拽空白:仅标题与「已锁定」,无列无卡片

初看像「映射规则解析失败」,因为明细区完全无 DOM 输出。


问题定位

  1. 排除解析层
    kanban-rules.js 对提交后的 kanban/2026-06-16.mdparseMarkdown:仍得到 5 列、12 张卡片,映射规则本身无异常。

  2. 对比 commit diff
    用户粘贴的 Markdown 在 front matter 中删掉了

    styles = ["kanban/style.css"]
    scripts = ["js/kanban-rules.js", "js/kanban-board.js"]

    根因是 serializeMarkdown() 序列化时不会写回这两项,Edit Post 往返必然丢失。

  3. 脚本加载链
    明细页看板 100% 客户端渲染kanban-board.js fetch /kanban/<slug>.mdparseMarkdown → 写 DOM。
    脚本来源(themes/ametrinehead.html):

    • page.extra.scripts → 用页面级
    • 否则 → 回退 section.extra.scripts
    配置实际加载
    页面 FM 含 scriptskanban-rules.js + kanban-board.js
    页面 FM scriptssection 仅 kanban-rules.js + kanban-list.js缺 board.js

    列表页只需 kanban-list.js,故列表正常;明细页缺 kanban-board.js,故空白。


解决思路

原则:明细页核心脚本不应依赖 front matter 是否被 Edit Post 保留。

  1. templates/kanban.html
    模板内固定注入 kanban-rules.js + kanban-board.js(与已有 inline kanban/style.css 一致),脱离 page.extra.scripts

  2. static/js/kanban-board.js
    解析结果 columns 为空时,在 #kanban-status 输出明确错误,便于与「脚本未加载」区分。

  3. 正反映射
    parseMarkdownserializeMarkdownparseMarkdown 往返:列/卡片/stats 保持一致;FM 的 styles/scripts 非看板数据,不写入序列化输出,避免与模板重复加载。


修改文件

文件变更
templates/kanban.html文末 <script defer> 加载 rules + board
static/js/kanban-board.js空解析结果时 status 报错

验证


经验

相关链接:映射说明 · 示例看板 · 问题 commit

21 June 2026, 16:30 (CST)