Skill · 内容目录约定
何时用:新建一篇文章 / 一个系列 / 一个独立页面,或者搞不清图片该放哪里的时候。
解决什么:把
sbraveyoung/blog/source/下的目录契约一次说清,配几个具体例子。
三个顶级目录,各有各的语义
source/
├── post/ 文章(递归扫描,子目录自动变 group)
├── pages/ 顶层独立页(pages/about.md → /about)
└── resource/image/ 图片 / 附件,最终被服务为 /image/...
仅此三个。source/ 下别加其他东西——不是说技术上不行,是 gobog 不认。
post/ 怎么组织
- 直接放在
post/下面的.md,是单篇文章。URL =/post/<slug-of-basename>。 post/<某某系列>/<chapter>.md,子目录自动被识别为 group:- group 自身有一个着陆页,URL =
/post/<某某系列>/,列出所有子文章。 - 子文章 URL =
/post/<某某系列>/<chapter-slug>。
- group 自身有一个着陆页,URL =
- 再深一层的目录也可以(
post/A/B/C.md),URL 跟着叠。
排序细节单独写在 Skill · publish-and-sync 里。简单说:默认按 create_time 倒序,文件名带数字前缀(
00-、01-)的 group 自动按数字升序。
pages/ 怎么用
pages/<name>.md 自动渲染到 /<name>。最常见的是 pages/about.md → /about,但完全可以扩展:
pages/
├── about.md → /about
├── contact.md → /contact
├── now.md → /now
└── projects.md → /projects
加新页面 = 加 markdown 文件,不需要改 gobog 代码、不需要改主题模板。pages 自动出现在站点的导航条里。
pages/ 下的子目录是被忽略的——可以放草稿、暂存版本而不会被发布。
resource/image/ 怎么用
所有图片附件都丢这里。引用方式两种都支持:
<!-- 标准 markdown -->


<!-- Obsidian 语法 -->
diagram.png
- 链接用
/image/<basename>是最干净的形式(部署后稳定)。 ./resource/image/...在 Obsidian 里能直接预览。name.png不需要写路径,gobog 会从基名反查到文件位置。
向后兼容:老布局 source/image/... 仍然能解析(fallback),但新文章请用 resource/image/。
命名规则
- 文件名用中文 OK,slug 化时会回退到稳定的 hex hash,URL 始终可寻址。
- 别用半角的特殊字符(
/、\、?、&、#),文件系统和 URL 都会闹脾气。 - 想做"系列",请在文件名前加
00-、01-这种数字前缀;或者在 front-matter 里写order: <n>。详见 Skill · ai-attribution 之前的 series 那一段。
不发布的东西放哪
- 草稿:front-matter 里写
draft: true,文件留在原地,不进发布列表。 - 暂时下线:
hidden: true,语义跟 draft 一样但暗示"以后会回来"。 - 私密:
private: true,列表里看得到,正文需要 HTTP Basic auth;静态导出会直接过滤掉(GitHub Pages 没法做 auth)。 - 完全不该公开的内容:别放进 source/,留在 vault 别的目录。