Appearance
为什么选择这个主题?
vitepress-theme-components 是一个专为组件库文档设计的 VitePress 主题。它在保持 VitePress 原有简洁性的基础上,增加了组件库开发所需的核心功能。
核心特性
✨ 实时代码编辑
- LiveEditor: 支持 React 代码的实时编辑和预览
- Monaco Editor: 提供专业的代码编辑体验
- 即时编译: 代码修改后立即看到效果
- 错误提示: 友好的编译错误显示
📚 自动化文档生成
- API 文档: 基于 TypeScript 类型自动生成 API 文档
- 类型推导: 支持复杂类型的智能解析
- Markdown 渲染: 生成标准的文档表格
📊 开发辅助功能
- 测试覆盖率: 集成单测覆盖率展示
- 变更记录: 自动解析和展示 Changelog
- 移动端预览: 内置移动端预览框架
- 图表支持: 集成 Mermaid 图表渲染
🎨 现代化体验
- 响应式设计: 完美适配各种设备
- 暗色主题: 内置明暗主题切换
- 组件化架构: 高度可定制和扩展
- 性能优化: 代码分割和懒加载
设计理念
轻量级优先
我们坚持"最轻最干净"的设计理念:
- 最小侵入: 不对 VitePress 原有功能进行破坏性修改
- 按需加载: 只加载必要的功能和依赖
- 渐进增强: 功能可选,不影响基础使用
开发者友好
专为组件库开发者设计:
- 零配置: 开箱即用的默认配置
- 类型安全: 完整的 TypeScript 支持
- 插件化: 易于扩展和定制
现代化技术栈
采用最新的前端技术:
- Vue 3: 响应式组件系统
- React 18: 支持最新的 React 特性
- Vite: 快速的构建工具
- TypeScript: 类型安全保障
为什么要开发这个主题?
背景
在组件库开发过程中,我们调研了市面上主流的文档解决方案,发现各有不足:
- 复杂度高: 配置繁琐,学习成本大
- 功能冗余: 包含大量不必要的功能
- 技术栈限制: 只支持特定的技术栈
- 定制困难: 难以满足个性化需求
目标
我们希望创建一个:
- 简单易用: 最少的配置,最快的上手
- 功能完整: 覆盖组件库文档的核心需求
- 技术中立: 支持多种前端框架
- 高度可定制: 易于扩展和个性化
调研过程
分别调研 tdesign / antd/arcod/semid/dumi/histories 建站方案及相关源码。
tdesign: 基于vite+markdown-it 完成 md 渲染,内部包含大量腾讯内部冗余处理,且部分依赖库闭源。
antd: 与 dumi 同渲染方案,内部通过 webpack 构建remark 进行渲染
semid:storybook+gatsby+webpack 极其复杂, 但他的实时编译让我眼前一亮
arcod:storybook+ 闭源
histories: 只支持 vue / svelte
对比后组件库建站方案提取:选择最轻量级方案 vite+markdown-it 方案渲染 markdown,这与vitepress/tdesign同方案
既然 vitepress 已经帮我们把渲染层的问题搞定了, 那就再添加一些组件库的能力即可,因此就有了这个项目。
技术选型对比
主流方案对比
| 方案 | 优势 | 劣势 | 适用场景 |
|---|---|---|---|
| Storybook | 功能强大,生态丰富 | 配置复杂,包体积大 | 大型项目,设计系统 |
| Dumi | React 生态完善 | 仅支持 React,学习成本高 | React 组件库 |
| VuePress | Vue 生态,插件丰富 | 构建较慢,配置复杂 | Vue 项目文档 |
| Docusaurus | Facebook 出品,功能完整 | 配置复杂,定制困难 | 大型文档站点 |
| VitePress | 构建快速,配置简单 | 功能相对简单 | 轻量级文档 |
我们的选择
基于以上对比,我们选择 VitePress 作为基础,原因如下:
- 性能优异: Vite 提供的极速构建体验
- 配置简单: 最少的配置即可开始使用
- 扩展性好: 易于添加自定义功能
- 生态兼容: 可以集成 React 和 Vue 生态
核心优势
🚀 开发效率
- 热更新: 代码修改后即时预览
- 零配置: 开箱即用的默认设置
- 类型提示: 完整的 TypeScript 支持
- 错误提示: 友好的错误信息和调试体验
🎯 功能完整
- 代码演示: 支持实时编辑的代码示例
- API 文档: 自动生成的组件 API 文档
- 测试集成: 单测覆盖率展示
- 版本管理: Changelog 解析和展示
🔧 易于定制
- 主题系统: 基于 CSS 变量的主题定制
- 插件架构: 易于扩展的插件系统
- 组件化: 高度模块化的组件设计
- 配置灵活: 丰富的配置选项
📱 现代化体验
- 响应式: 完美的移动端适配
- 无障碍: 遵循 WCAG 无障碍标准
- SEO 友好: 优秀的搜索引擎优化
- PWA 支持: 可配置的离线访问
适用场景
✅ 适合使用的场景
- 组件库文档: React/Vue 组件库的文档站点
- 设计系统: 企业级设计系统文档
- API 文档: 需要展示代码示例的 API 文档
- 教程文档: 包含交互式代码示例的教程
❌ 不适合的场景
- 纯内容网站: 不需要代码演示的内容站点
- 复杂应用: 需要复杂交互的 Web 应用
- 多语言站点: 需要复杂国际化的站点(虽然支持,但可能过于简单)
社区与生态
开源协议
本项目采用 MIT 协议,完全开源免费。
贡献指南
我们欢迎社区贡献:
- Bug 报告: 通过 GitHub Issues 报告问题
- 功能建议: 在 Discussions 中讨论新功能
- 代码贡献: 提交 Pull Request 参与开发
- 文档完善: 帮助改进文档质量
路线图
短期目标:
- 完善 API 文档生成功能
- 优化移动端体验
- 增加更多图表类型支持
长期目标:
- 支持 Vue 组件演示
- 集成 AI 辅助文档生成
- 支持多语言文档
- 构建插件生态
通过选择 vitepress-theme-components,你将获得一个现代化、高效率、易定制的组件库文档解决方案。