项目结构与约定(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[]

文章作者:
文章链接:kecare.me/articles/
版权声明: 博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源