Skip to Main Content
404Back to Top
20 October 2026, 20:00 (GMT+8)

13 October 2026, 22:07 (GMT+8)

2026年10月13日 22:07(东八区 / 北京时间)

看板命名与 URL 唯一化:多天 / 全天 / 上午 / 下午 / 晚上 五类各自独立可达 · 修复 path collisions

概述

本轮处理新建看板后构建直接失败的问题,并一次把它根治:

  1. 报错:新建 2026-10-13 晚上看板后,构建报 Found path collisions,两块不同日期的看板抢同一条 URL;
  2. 根因:Zola 会把文件名开头的 YYYY-MM-DD 当成页面日期剥离,只剩「晚上」参与 slug,于是 2026-08-11_晚上.md 与 2026-10-13_晚上.md 都会变成 /kanban/wan-shang/;编辑器此前只保证文件名唯一,没管 URL 唯一;
  3. 修复(URL):每块看板都由编辑器自动写入 slug(= URL 安全化的文件名),让五类看板各有唯一可达的 URL;
  4. 修复(命名与锁定):多天看板改用 周开始-周结束-打开编辑器时的时分 命名(如 2026-06-16-06-22-2236.md),从文件名上就和单日「全天」区分开;同时收紧编辑锁定 —— 单日看板的周开始、周结束都锁定,多天看板只锁定周开始;新建时还会提示「该时间段已有看板」;
  5. 收尾:把 2026-06/07 创建的 4 块多天看板也统一迁移到新命名,并用 aliases 保住旧 URL。

一、报错现象

在 GUI 里新建单日看板,按提示在仓库里创建文件、粘贴生成的 Markdown 并保存后,本地 zola serve 与 zola build 同时失败:

ERROR Failed to build the site
ERROR Found path collisions:
- `/kanban/wan-shang/` from files
  {content/kanban/2026-08-11_晚上.md, content/kanban/2026-10-13_晚上.md}

粘贴的 Markdown 本身没有语法问题:front matter 合法、栏目与卡片规则也正确。问题出在文件名 → URL 这一层。

二、根因:文件名的日期段被剥离成页面日期

Zola 会把页面文件名开头的 YYYY-MM-DD 当作页面日期,并从 slug 里去掉,只让剩下的部分参与 URL:

文件生成的 URL
2026-06-16.md/kanban/2026-06-16/
2026-08-11_晚上.md/kanban/wan-shang/ ← 只剩「晚上」被转写成拼音
2026-10-13_晚上.md/kanban/wan-shang/ ← 与上一行撞车

结论:只要两块单日看板的时段相同(上午 / 下午 / 晚上),无论日期差多远,都会落到同一条输出路径。命名规则 week_start_时段 只保证了文件名唯一,而 Zola 恰好把日期前缀吃掉了。

复现方式:在最小 Zola 工程里放两个不同日期、同一时段的文件,得到一字不差的同一条报错;给其中一块补上 slug 后立刻构建通过。

三、修复方案

3.1 编辑器自动写入 slug

3.2 文件名与 URL 方案

看板类型文件名生成的 URL
多天(跨天周计划)2026-06-16-06-22-2236.md(周开始 - 周结束的月-日 - 打开编辑器时的时分)/kanban/2026-06-16-06-22-2236/
单日「全天」(不选时段)2026-10-13.md/kanban/2026-10-13/
单日 上午2026-10-13_上午.md/kanban/2026-10-13-shang-wu/
单日 下午2026-10-13_下午.md/kanban/2026-10-13-xia-wu/
单日 晚上2026-10-13_晚上.md/kanban/2026-10-13-wan-shang/

3.3 编辑锁定规则

看板类型周开始周结束时段
单日(含「全天」)锁定锁定(起止同一天)锁定
多天(跨天)锁定可改(开始 +13 天以内)不适用

3.4 现有文件与文档

3.5 新建时的重复看板提示

3.6 让 aliases 在 GUI 修改后仍然保留

四、验证

五、注意事项

相关链接:周计划看板 · 映射说明 · Ametrine 主题

26 September 2026, 16:30 (GMT+8)