Rspress 是一个性能卓越、功能强大的静态站点生成器 (SSG)。它为我们提供了构建文档站、产品官网等多种类型网站的坚实基础。然而,当我尝试用它来搭建一个功能完备的个人博客时,我发现社区中缺少一个真正“开箱即用”的解决方案。
虽然 Rspress 本身足够灵活,但要从零开始配置一个现代化的博客,开发者仍然需要手动完成大量工作:
这个过程不仅繁琐,而且对于只想专注于内容创作的开发者来说,门槛也相对较高。
Cogita 的诞生就是为了解决这个问题。它的核心目标是:成为一个基于 Rspress、无需繁琐配置、真正开箱即用的静态博客框架。 你只需要安装它,选择一个喜欢的主题,然后就可以立即开始写作。
Cogita 的设计哲学是“约定优于配置”,它通过一套精心设计的架构,将博客系统的复杂性封装起来,为用户提供最简洁的接口。
其核心由以下几个部分组成:
@cogita/core
: 这是框架的大脑。它作为 Rspress 的一层封装,负责加载用户的 cogita.config.ts
配置文件,并智能地协调主题与插件的工作。它会自动生成最终的 Rspress 配置,让用户无需关心底层细节。
主题系统 (@cogita/theme-*
): Cogita 的主题不仅仅是 UI 皮肤。每个主题都是一个独立的 NPM 包,它包含了预设的布局组件(如首页、文章页)和样式。更重要的是,主题可以声明自己的插件依赖。例如,默认的 @cogita/theme-lucid
主题就依赖了 posts-frontmatter
插件来获取文章列表,而这一切对于终端用户是完全透明的。
插件系统 (@cogita/plugin-*
): 插件负责为框架提供特定的功能。例如,@cogita/plugin-posts-frontmatter
插件会自动扫描你的 posts
目录,提取所有文章的元数据(frontmatter),并通过一个虚拟模块(virtual-posts-data
)提供给主题组件使用。这种机制使得主题和功能可以被灵活地组合与扩展。
通过这套架构,Cogita 将主题和功能内聚在一起,实现了真正意义上的“开箱即用”。
使用 Cogita 非常简单,你只需要:
安装依赖:pnpm add @cogita/core @cogita/theme-lucid
创建配置文件 cogita.config.ts
:
在 posts
目录下开始撰写你的 Markdown 文章。
就是这样!运行 cogita dev
,一个漂亮的博客网站就已经在本地运行起来了。
Cogita 目前还处于非常早期的“蛮荒阶段”,许多功能仍在探索和开发之中。但这同样也意味着它拥有无限的可能性。在未来的路线图中,我们计划实现以下功能:
Cogita 的愿景是成为 Rspress 生态中最简单、最强大的博客解决方案。如果你对这个项目感兴趣,欢迎关注我们的进展,甚至参与到贡献中来!
敬请期待!