对话笔记直发:8.11 apex-dashboard 磁贴化二次开发总结。分类:AI工程。
tags: [apex-dashboard, obsidian, 插件二次开发, 磁贴化, 对话总结] date: 2026-08-11
8.11 Apex Dashboard Pro 磁贴化二次开发总结
按 obsidian-summary-save 规则保存至对话笔记目录(
2026-08-11/) 主题:Obsidian 插件 apex-dashboard v1.6.2 首页「磁贴化多分区布局」二次开发全程
一、会话脉络
从 OpenCode 导出会话接手「首页左右分区」任务 → 方案评审 → 多轮实施 → 多轮 bug 排查修复 → 用户决定回滚 → 第一性原理重规划 → V1/V2/V3 迭代 → 最终打包推送 GitHub。全程遵循「子代理评审 → 实施 → 复核代码 → 测试验收 → 对抗式审查」。
二、关键阶段
1. 初始实施(后被回滚)
- 方案经历 6 轮评审(v1 FAIL 19 项 → v6 PASS)
- main.js 13 处手术式补丁(P1-P7 主线:span 写读闭环、b4w 横向拖拽+吸附;J1-J6 增强)
- 三轮 bug 排查修复:j5 丢 span 导致拖拽闪回、列移动失败、quicknote 错位、同行不等高、右侧溢出、折叠失效(P9 拖拽吞点击)
2. 回滚与重规划
- 用户反馈”一次性功能太多、一直改不好”,回滚到原始插件 + 已配首页(16 列含微信读书)
- 剃刀定律修剪功能清单;第一性原理:刚需 = 横向双/三卡片,最小实现 = 纯 CSS
3. V1(最小可行版)
apex-home-v1.css:桌面 3 列 grid + 大模块整行 + 防溢出- main.js 1 处补丁:顶部 2/3 列切换按钮 + localStorage
4. V2(磁贴化)
- 方案评审 3 轮 PASS 有条件
- 功能:1-5 列步进器、高度倍率命令、一键折叠/展开、1:1 正方形自适应(CSS 变量)、选择性多列 Modal
- bug 修复:折叠按钮调用不存在的方法、视图切换重置多列(MutationObserver 兜底)、多列选择放开 widget 列
5. V3(修复回单列 + 显示/隐藏)
- 方案评审 8 轮 PASS 有条件
- 核心:多列选中集从列下标改为列名身份(
dataset.column)+ 一次性迁移(兼容 number 0 列名) - 折叠/展开合并为单按钮;新增显示/隐藏分区(
apex-home-hidden+.apex-hidden) - 最新修复:手动折叠卡片被视图切换弹开(折叠集合 String 归一化,兼容
- name: 0裸写数字列名)
三、最终交付
- 插件复制至
D:\Program\dev\Apex-Dashboard-pro(main.js / styles.css / manifest.json / apex-home-v2.css / README.md) - git 提交
e1030cf,已推送 GitHubunixcs/Apex-Dashboard-pro(main 分支)
最终功能清单(基于原作者二次开发)
- 1~5 列自适应磁贴网格布局(列数 ± 按钮 + 记忆)
- 1:1 正方形卡片自适应(随列数与窗口宽度)
- 卡片高度倍率命令(±0.2,0.5~2.0,可绑快捷键)
- 选择性多列(Modal 勾选,未选保持单列整行,新增列自动出现)
- 显示/隐藏分区(Modal 勾选,跨端生效)
- 一键折叠/展开全部分区(合并按钮 + 命令)
- 修复:切换视图/移动列/调高后多列被重置(列名身份 + 迁移)
- 修复:手动折叠卡片被意外弹开(String 归一化)
四、技术教训
- 先读后写:用户给的路径可能是”规则来源”而非”保存目标”,必须 read_file 确认意图再操作
- 手术式补丁最小侵入、列名身份稳定、纯 CSS 优先、observer 兜底多渲染路径、集合比较统一 String 归一化
- 评审-实施-复核-验收-对抗审查闭环可有效拦截回归
五、待办
- 重启 Obsidian 验收 V3(折叠弹开修复、显示/隐藏分区、多列保持)
- 确认 GitHub 仓库
unixcs/Apex-Dashboard-pro可见性与 README 渲染 - (可选)将桌面 SKILL.md 恢复为原始 obsidian-summary-save 规则文件(副本在「SKILL - 副本.md」)