网站开发指南
本文档为基于VitePress构建的Swit项目GitHub Pages网站的开发和维护提供全面指导。
概述
Swit项目网站使用以下技术构建:
- VitePress - 静态站点生成器
- Vue 3 - 组件框架
- TypeScript - 类型安全
- Tailwind CSS - 样式框架
- GitHub Actions - CI/CD 流水线
项目结构
docs/pages/
├── .vitepress/ # VitePress 配置
│ ├── config/ # 多语言配置
│ └── theme/ # 自定义主题组件
├── en/ # 英文内容
├── zh/ # 中文内容
├── public/ # 静态资源
├── scripts/ # 构建和自动化脚本
└── tests/ # 测试套件
开发环境设置
环境要求
- Node.js 18+
- npm 或 yarn
- Git
安装步骤
bash
cd docs/pages
npm install
开发命令
bash
# 启动开发服务器
npm run dev
# 构建生产版本
npm run build
# 预览生产构建
npm run preview
# 运行测试
npm test
# 运行代码检查
npm run lint
# 类型检查
npm run type-check
网站架构
VitePress 配置
网站采用多语言设置,包含共享配置:
config/index.mjs
- 主配置入口config/shared.mjs
- 共享设置config/en.mjs
- 英文特定配置config/zh.mjs
- 中文特定配置
主题自定义
自定义主题组件位于 .vitepress/theme/
:
index.js
- 主题入口点components/
- Vue 组件styles/
- CSS 样式和变量
内容结构
内容按语言和类别组织:
├── en/zh/
│ ├── index.md # 首页
│ ├── guide/ # 用户指南
│ ├── api/ # API文档
│ ├── examples/ # 代码示例
│ └── community/ # 社区资源
组件开发
创建新组件
- 在
.vitepress/theme/components/
中创建Vue组件 - 在主题
index.js
中导入和注册 - 在Markdown文件中使用,传递适当的属性
组件结构示例:
vue
<template>
<div class="my-component">
<!-- 组件内容 -->
</div>
</template>
<script setup lang="ts">
// TypeScript 设置
</script>
<style scoped>
/* 组件样式 */
</style>
核心组件
- HomePage.vue - 首页英雄区和特性展示
- FeatureCard.vue - 特性展示卡片
- CodeExample.vue - 语法高亮代码示例
- ApiDocViewer.vue - API文档显示
- SearchBox.vue - 增强搜索功能
样式指南
- 使用Tailwind CSS类保持一致性
- 遵循响应式设计原则
- 支持浅色和深色主题
- 维护无障碍访问标准
内容管理
编写文档
- 使用带VitePress扩展的Markdown
- 在frontmatter中包含标题和描述
- 遵循既定的内容结构
- 添加适当的导航链接
多语言支持
- 保持语言间内容结构一致
- 使用相同的文件名和路径
- 同时更新两种语言版本
- 测试语言切换功能
内容自动化
网站包含自动化内容管理脚本:
sync-docs.js
- 从主项目同步内容api-docs-generator.js
- 生成API文档content-validator.js
- 验证内容一致性
API文档集成
自动生成
API文档从以下来源自动生成:
- OpenAPI/Swagger规范
- Protocol Buffer定义
- 代码注释和注解
手动更新
手动更新API文档:
- 编辑主项目中的源文件
- 运行
npm run sync:api
重新生成 - 审查并提交更改
性能优化
构建优化
- 自动配置代码分割
- 构建时优化静态资源
- CSS清理和最小化
运行时性能
- 图片使用懒加载
- 关键资源预加载
- Service Worker提供离线缓存
监控
性能监控使用:
- GitHub Actions中的Lighthouse CI
- Core Web Vitals跟踪
- 包大小分析
测试策略
单元测试
bash
# 运行组件测试
npm run test:unit
# 监视模式
npm run test:unit:watch
# 覆盖率报告
npm run test:coverage
端到端测试
bash
# 运行端到端测试
npm run test:e2e
# 无头模式运行
npm run test:e2e:headless
无障碍访问测试
bash
# 运行无障碍访问审计
npm run test:a11y
性能测试
bash
# 运行性能审计
npm run test:performance
部署
GitHub Actions
网站通过GitHub Actions自动部署:
- 构建阶段 - 编译VitePress站点
- 测试阶段 - 运行所有测试套件
- 部署阶段 - 发布到GitHub Pages
手动部署
手动部署:
bash
# 构建生产站点
npm run build
# 部署到GitHub Pages
npm run deploy
维护任务
定期更新
- 每月更新依赖项
- 每季度审查和更新内容
- 每周监控性能指标
- 每月检查断链
内容同步
bash
# 与主项目文档同步
npm run sync:docs
# 更新API文档
npm run sync:api
# 验证内容一致性
npm run validate:content
安全更新
- 监控安全公告
- 及时更新依赖项
- 定期运行安全审计
故障排除
常见问题
构建失败
- 检查Node.js版本兼容性
- 清除node_modules并重新安装
- 验证配置文件语法
开发服务器问题
- 检查端口可用性(默认5173)
- 清除VitePress缓存
- 验证文件权限
内容显示问题
- 检查Markdown语法
- 验证frontmatter格式
- 测试组件导入
性能问题
- 分析包大小
- 检查图片优化
- 审查懒加载实现
调试模式
启用调试模式获取详细日志:
bash
DEBUG=vitepress:* npm run dev
贡献指南
代码风格
- 遵循TypeScript最佳实践
- 使用ESLint和Prettier配置
- 编写有意义的提交信息
- 为新功能包含测试
拉取请求流程
- 创建功能分支
- 进行更改并编写测试
- 运行完整测试套件
- 提交带描述的PR
- 处理审查反馈
文档标准
- 编写清晰、简洁的文档
- 包含代码示例
- 保持两种语言版本更新
- 遵循既定模式
版本控制
分支策略
master
- 主分支docs/development
- 活跃开发docs/gh-pages
- 部署分支- 特定更改的功能分支
发布流程
- 更新版本号
- 运行完整测试套件
- 构建生产站点
- 标记发布
- 部署到生产环境
支持和资源
获取帮助
- 查看现有文档
- 搜索GitHub问题
- 创建详细错误报告
- 参与社区讨论
有用资源
联系方式
- 为错误创建GitHub问题
- 使用讨论区提问
- 遵循贡献指南
- 尊重社区标准