11 August 2026, 22:00 (CST) 11 August 2026, 20:00 (CST)
2026年08月11日 20:00(东八区 / 北京时间)
看板微调:卡片拖拽修复 · 热力图弹层滚动修复 · 各板块 ASCII 电子屏图
概述
本轮三项工作:
- 卡片拖拽恢复:详情页解锁模式与 GUI 编辑器画布均改用指针拖拽(mousedown/mousemove/mouseup + 拖拽幽灵),规避 macOS Chrome 上 HTML5 DnD 不触发的问题;列头拖拽仍走原生 DnD;
- 热力图同日多篇弹层滚动修复:弹层内部滚动不再触发“关闭弹层”,滚动条常驻可点;
- ASCII 电子屏图:参照英语板块的
{% crt %} 效果,为每个板块生成主题横幅。
1. 卡片拖拽修复
详情页(解锁管理员模式)
- 新增
setupDragDrop 指针拖拽:按下卡片移动 ≥6px 生成 kanban-drag-ghost 幽灵,高亮目标列,松手跨列移动并写入脏状态; - 不再依赖 HTML5 卡片 DnD(macOS Chrome 偶发不触发 dragstart),列头拖拽保留原生 DnD;
- 拖拽期间卡片
cursor: grabbing,结束自动清理幽灵/高亮。
GUI 编辑器(画布)
- 画布卡片带
data-col-idx / data-card-idx,新增 setupCanvasCardDrag(): - 同列拖拽:插入到目标卡片前(源卡索引位移已修正);
- 跨列拖拽:移入目标列末尾或目标卡片前;
- 松手后更新
selection 并 renderAll() 重绘。
2. 热力图同日多篇弹层滚动修复
| 问题 | 修复 |
|---|
| 弹层内部滚动立即关闭弹层 | scroll 捕获监听改为忽略 popoverState.el.contains(event.target) 的滚动,仅外层滚动关闭 |
| 滚动条控件消失、无法滚选 | .heatmap-popover-list 增加 overscroll-behavior: contain、scrollbar-width: thin、WebKit 滚动条样式,max-height: min(190px, 45vh) |
| 翻转到底部后可能超出视口 | positionPopover 增加视口下限钳制 |
3. 各板块 ASCII 电子屏图
参照英语板块 {% crt(label=...) %} 短代码(CRT 扫描线 + 闪烁 + 发光),用 figlet banner3-D 像素风字体生成主题横幅,插入各板块 _index.md:
| 板块 | 横幅 | 主题标签 |
|---|
| 数学 | MATH | ∫ ∑ √ π · 导数 微积分 线性代数 概率论 离散数学 |
| CMake | CMAKE | 构建 · 安装 · 打包 · 导出 |
| CXX20 | CXX20 | 现代 C++ · 模块 · 协程 · 范围 |
| Jai | JAI | 语言规范 · 编译器 · 极致性能 |
| 论文精读 | PAPER | 精读 · 核心思想 · 实验 · 复现 |
| 算法设计 | ALGO | 字符串 · 树 · 图 · 排序 · 408 |
| 读后感 | READING | 书籍 · 文档 · 笔记 · 感想 |
| 随笔 | ESSAY | 随想 · 杂记 · 短思考 |
| Debug | DEBUG | 追踪 · 剖析 · 修复(替换原房屋图) |
| 分享 | SHARE | 工具 · 技巧 · 收藏(替换原房屋图) |
4. 涉及文件
| 文件 | 作用 |
|---|
static/js/kanban-board.js | 详情页指针拖拽 |
static/js/kanban-editor.js | 画布卡片拖拽 |
static/js/heatmap-init.js | 弹层滚动关闭条件、视口钳制 |
static/css/heatmap.css | 弹层列表滚动条与 overscroll |
sass/kanban/style.scss | 拖拽幽灵 / 高亮 / 抓取光标 |
各板块 content/**/_index.md | CRT ASCII 横幅 |
5. 验证
node --check 四个 JS 通过;zola build 无错误,verify-kanban-build OK;- 构建产物中 10 个板块页面均含
class="crt" 与对应横幅文本。
相关链接:映射说明 · 周计划列表
11 August 2026, 18:00 (CST)