项目结构与约定(Kecare)
无论任何技术栈或者框架,无论是 vue 还是 react 还是 svelte 还是传统的服务端渲染的框架, 任何一个老项目,或者你使用自己喜欢的技术栈所创建的新项目,只要新建一个 .kecare 目录,就能变成一个博客了, 它会会根据你定义的规则,替你生成博客页面。
1. 目录结构
Kecare-theme/ # 主题根目录(themeDir)
├─ .kecare/ # Kecare 约定目录()
│ ├─ articles/ # 文章源文件(Markdown)
│ │ ├─ hello-kecare.md
│ │ └─ ...
│ └─ menus/ # 菜单源文件(TypeScript)
│ │ ├─ kecare-docs.menu.source.ts
│ │ └─ ...
│ └─ en-US.trans.ts # 英文翻译配置文件
│
...
.kecare/ 是 Kecare 体系里最关键的部分:写作者的内容放这里,菜单放这里,主题作者默认也从这里取内容,捏~
2. .kecare/ 目录的约定
2.1 .kecare/articles/:文章目录
- 位置固定:主题目录/.kecare/articles/
- 文件类型:目前仅支持
*.md - 推荐命名:使用稳定、可读的英文文件名(例如
getting-started.md),避免频繁改名捏
为什么不建议乱改文件名?
因为在 Kecare 的常见实现中,文章的 id 往往由文件名哈希得到,从而形成稳定链接
文件名变了 → id 可能变化 → 旧链接可能失效,喵~
2.2 .kecare/menus/:菜单目录
- 位置固定:主题目录/.kecare/menus/
- 文件命名固定:
*.menu.source.ts - 文件内容约定:导出 navItems: NavItem[]
3. 主题层如何消费数据(面向主题作者捏)
Kecare 的生成器通常会把文章解析成结构化对象数组(例如 articles: Article[])