docs: add upage usage instructions document

This commit is contained in:
LIlGG
2025-09-28 15:26:44 +08:00
parent f4d6e383ce
commit e6747664c2
17 changed files with 720 additions and 412 deletions

View File

@@ -0,0 +1,47 @@
---
id: code-of-conduct
title: 行为准则
---
# 行为准则
UPage 项目致力于为所有贡献者和参与者提供一个友好、安全和包容的环境。我们希望每个人都能够在没有骚扰和歧视的情况下参与项目。
## 我们的标准
参与 UPage 项目的所有贡献者都应遵循以下行为准则:
- **尊重所有参与者**,无论其背景、经验或观点
- **接受建设性的批评和反馈**,并以专业和尊重的方式回应
- **专注于对社区最有利的事情**,考虑项目和用户的长期利益
- **展现同理心和善意**,理解他人的观点和立场
## 不可接受的行为
以下行为被视为不可接受:
- 使用性暗示的语言或图像
- 人身攻击、侮辱或贬低性评论
- 公开或私下的骚扰
- 未经明确许可发布他人的私人信息
- 任何其他可能被合理认为不适当或冒犯的行为
## 责任
项目维护者有责任明确行为标准,并对任何不可接受行为采取适当和公正的纠正措施。
项目维护者有权和责任删除、编辑或拒绝与本行为准则不符的评论、提交、代码、问题和其他贡献,并在适当时暂时或永久禁止任何贡献者参与项目。
## 范围
本行为准则适用于所有项目空间,包括但不限于 GitHub 仓库、问题跟踪器、讨论区、社交媒体和公共活动。它也适用于个人在代表项目或其社区时的行为。
## 反馈
如果您遇到滥用、骚扰或其他不可接受的行为,请通过 [GitHub Issues](https://github.com/halo-dev/upage/issues) 或直接联系项目维护者报告。
所有投诉将被审查和调查,并将导致被认为必要和适当的回应。项目维护者有义务对报告事件的人保密。
## 参考
本行为准则改编自 [Contributor Covenant](https://www.contributor-covenant.org),版本 2.0,可在 [https://www.contributor-covenant.org/version/2/0/code_of_conduct.html](https://www.contributor-covenant.org/version/2/0/code_of_conduct.html) 查阅。

View File

@@ -0,0 +1,156 @@
---
id: code-standards
title: 代码规范
---
# 代码规范
UPage 项目遵循严格的代码规范和最佳实践,以确保代码质量和一致性。本文档概述了这些规范,所有贡献者在提交代码前应确保遵循这些规范。
## JavaScript/TypeScript 规范
UPage 使用 [Biome](https://biomejs.dev/) 进行代码格式化和 linting。Biome 是一个快速的代码格式化工具和 linter可以帮助我们保持代码风格的一致性。
### 代码检查
在提交代码前,请确保您的代码符合项目的代码规范:
```bash
pnpm check
```
### 自动修复
您也可以使用以下命令自动修复格式问题:
```bash
pnpm check --write
```
### 主要规范
- **缩进**: 使用 2 个空格
- **分号**: 必须使用分号
- **引号**: 使用单引号
- **命名约定**:
- 变量和函数使用 camelCase
- 类和接口使用 PascalCase
- 常量使用 UPPER_SNAKE_CASE
- **类型注解**: 尽可能使用类型注解提高代码可读性和类型安全性
- **注释**: 对复杂逻辑和公共 API 添加适当的注释
## Git 提交规范
我们使用 [Conventional Commits](https://www.conventionalcommits.org/) 规范来格式化 Git 提交信息。提交信息应遵循以下格式:
```
<type>(<scope>): <description>
[optional body]
[optional footer(s)]
```
### 类型 (Type)
提交类型必须是以下之一:
- `feat`: 新功能
- `fix`: 修复 bug
- `docs`: 文档更新
- `style`: 代码风格更改(不影响代码功能)
- `refactor`: 代码重构(既不是新功能,也不是修复 bug
- `perf`: 性能优化
- `test`: 添加或修改测试
- `chore`: 构建过程或辅助工具的变动
- `ci`: CI 配置文件和脚本的更改
- `revert`: 回滚之前的提交
### 范围 (Scope)
范围是可选的,用于指定更改的范围(例如组件或文件名)。
### 描述 (Description)
描述是对更改的简短摘要:
- 使用现在时态("change",而不是"changed"或"changes"
- 不要首字母大写
- 不要以句号结尾
### 示例
```
feat(editor): 添加拖拽调整组件大小功能
添加了一个新的拖拽句柄,允许用户直接调整组件的大小。
同时优化了调整过程中的性能。
Closes #123
```
```
fix: 修复用户认证失败问题
修复了当用户凭证包含特殊字符时认证失败的问题。
Fixes #456
```
## CSS/SCSS 规范
UPage 使用 SCSS 和 CSS Modules 来组织样式代码。
### 命名约定
- 使用 kebab-case 命名 CSS 类和 ID
- 使用有意义的名称,避免过于简短或抽象的名称
- 使用 BEMBlock Element Modifier命名方法论
### 组织结构
- 将全局样式放在 `app/styles` 目录下
- 将组件特定样式放在组件同级目录下的 `.scss``.module.scss` 文件中
## 可访问性标准
UPage 致力于创建可访问的 Web 应用程序。所有贡献的代码应遵循 [WCAG 2.1 AA](https://www.w3.org/WAI/WCAG21/quickref/) 标准。
- 确保适当的颜色对比度
- 提供替代文本和 ARIA 标签
- 确保键盘导航功能
- 支持屏幕阅读器
## 测试规范
所有新功能和 bug 修复应包含适当的测试:
- **单元测试**: 测试单个函数和组件
- **集成测试**: 测试多个组件或功能的交互
- **端到端测试**: 测试完整的用户流程
测试应该:
- 覆盖正常和边缘情况
- 清晰描述测试的目的
- 保持独立性,不依赖于其他测试的状态
## 性能考虑
贡献的代码应考虑性能影响:
- 避免不必要的重新渲染
- 优化大型列表和表格
- 懒加载大型资源
- 减少网络请求
- 优化打包大小
## 安全最佳实践
所有代码应遵循安全最佳实践:
- 防止 XSS 攻击
- 避免 SQL 注入
- 正确处理用户输入
- 保护敏感数据
- 实施适当的访问控制

View File

@@ -0,0 +1,161 @@
---
id: development-setup
title: 开发环境设置
---
# 开发环境设置
本指南将帮助您设置 UPage 的本地开发环境,以便您可以开始贡献代码。
## 前置条件
开始开发 UPage 前,请确保您的系统满足以下要求:
- **Node.js**: 18.18.0 或更高版本
- **pnpm**: 9.4.0 或更高版本
- **Git**: 最新版本
### 安装 Node.js
您可以从 [Node.js 官网](https://nodejs.org/) 下载并安装 Node.js或使用版本管理工具如 [nvm](https://github.com/nvm-sh/nvm)
```bash
# 使用 nvm 安装 Node.js
nvm install 18.18.0
nvm use 18.18.0
```
### 安装 pnpm
安装 pnpm 的最简单方法是通过 npm
```bash
npm install -g pnpm@9.4.0
```
或者按照 [pnpm 官方文档](https://pnpm.io/installation) 的说明进行安装。
## 克隆仓库
首先,[fork UPage 仓库](https://github.com/halo-dev/upage/fork)到您的 GitHub 账户,然后将其克隆到本地:
```bash
# 克隆您 fork 的仓库
git clone https://github.com/YOUR-USERNAME/upage.git
# 进入项目目录
cd upage
# 添加上游仓库
git remote add upstream https://github.com/halo-dev/upage.git
```
## 安装依赖
使用 pnpm 安装项目依赖:
```bash
pnpm install
```
## 生成 Prisma 客户端
UPage 使用 Prisma 作为数据库 ORM因此需要生成 Prisma 客户端。
```bash
pnpm setup
```
## 配置环境变量
拷贝 `.env.example` 文件,创建 `.env` 文件:
```bash
cp .env.example .env
```
按照[配置参考](../configuration)的说明修改 `.env` 文件进行配置。
## 启用 Logto 认证(可选)
UPage 默认仅支持单一用户匿名访问,如果您想要开发用户认证功能,可以按照[Logto 认证集成](../deployment/logto)的说明配置 Logto 认证。
## 启动开发服务器
启动开发服务器,这将允许您在本地预览和测试您的更改:
```bash
pnpm dev
```
此命令会启动开发服务器,您可以通过 `http://localhost:5173` 访问。
## 构建项目
要构建生产版本的项目,运行:
```bash
pnpm build
```
构建完成后,您可以通过以下命令预览生产版本:
```bash
pnpm preview
```
预生产版本项目运行在 `http://localhost:3000`
## 运行测试
运行项目的测试套件:
```bash
pnpm test
```
## 文档开发
如果您想要修改或预览文档,可以使用以下命令:
```bash
# 启动文档开发服务器
pnpm docs:start
# 构建文档
pnpm docs:build
```
文档开发服务器默认在 `http://localhost:3000` 运行。
## 常见问题解决
### 依赖安装失败
如果您在安装依赖时遇到问题,可以尝试以下解决方案:
```bash
# 清除 pnpm 缓存
pnpm store prune
# 重新安装依赖
pnpm install --force
```
### 开发服务器启动失败
如果开发服务器无法启动,请检查:
1. 端口 5173 是否被其他应用占用
2. Node.js 版本是否符合要求
3. 是否所有依赖都已正确安装
您可以尝试使用不同的端口启动:
```bash
pnpm dev --port 5174
```
### 其他问题
如果您遇到其他问题,请查看项目的 [常见问题](../faq.md) 或在 [GitHub Issues](https://github.com/halo-dev/upage/issues) 中搜索相关问题。如果没有找到解决方案,请创建新的 issue。

View File

@@ -0,0 +1,28 @@
---
id: contributing
title: 贡献指南
slug: /contributing
---
# 贡献指南
感谢您对 UPage 项目的关注我们非常欢迎各种形式的贡献无论是功能开发、bug 修复、文档改进还是使用反馈。本指南将帮助您了解如何参与 UPage 的开发和贡献。
## 目录
- [行为准则](./code-of-conduct.md) - 参与 UPage 项目的行为准则
- [贡献方式](./ways-to-contribute.md) - 如何为 UPage 项目做出贡献
- [开发环境设置](./development-setup.md) - 如何设置本地开发环境
- [代码规范](./code-standards.md) - 代码风格和提交规范
- [工作流程](./workflow.md) - 分支策略、PR流程和版本发布
## 社区
加入 UPage 社区,与其他贡献者交流:
- [GitHub Discussions](https://github.com/halo-dev/upage/discussions)
- [GitHub Issues](https://github.com/halo-dev/upage/issues)
## 许可证
UPage 采用 [基于 GPLv3 的补充协议许可证](https://github.com/halo-dev/upage/blob/main/LICENSE.txt)。通过贡献代码,您同意您的贡献将在相同的许可证下发布。

View File

@@ -0,0 +1,91 @@
---
id: ways-to-contribute
title: 贡献方式
---
# 贡献方式
您可以通过多种方式为 UPage 做出贡献,无论您是开发者、设计师、文档撰写者还是用户,都能找到适合您的贡献方式。
## 报告问题
如果您发现了 bug 或有功能建议,请在 [GitHub Issues](https://github.com/halo-dev/upage/issues) 中提出。提交问题时,请尽可能提供以下信息:
- 清晰的问题描述
- 复现步骤
- 预期行为与实际行为
- 截图(如适用)
- 环境信息浏览器、操作系统、UPage 版本等)
## 提交代码
如果您想直接贡献代码,请遵循以下步骤:
1. [Fork](https://github.com/halo-dev/upage/fork) 项目仓库
2. 创建您的功能分支 (`git checkout -b feature/amazing-feature`)
3. 提交您的更改 (`git commit -m 'Add some amazing feature'`)
4. 推送到分支 (`git push origin feature/amazing-feature`)
5. 创建 Pull Request
### 代码贡献指南
- 确保您的代码符合项目的[代码规范](./code-standards.md)
- 为新功能编写测试
- 更新相关文档
- 确保所有测试通过
- 遵循[工作流程](./workflow.md)中的分支策略和 PR 流程
## 改进文档
文档对于任何项目都至关重要。您可以通过以下方式改进 UPage 的文档:
- 修复文档中的错误或不准确之处
- 添加缺失的信息或示例
- 改进文档的结构和可读性
- 翻译文档到其他语言
### 文档贡献步骤
1.`docs/content` 目录中找到相关的 Markdown 文件
2. 进行必要的更改
3. 在本地预览更改:`pnpm docs:start`
4. 提交 Pull Request
## 设计贡献
如果您是设计师,您可以通过以下方式贡献:
- 改进用户界面设计
- 创建图标和插图
- 设计宣传材料
- 提供用户体验建议
## 测试和反馈
即使您不是开发者,您也可以通过以下方式做出重要贡献:
- 测试新功能和版本
- 提供详细的反馈
- 报告使用过程中遇到的问题
- 提出改进建议
## 分享和推广
您也可以通过以下方式支持 UPage
- 在社交媒体上分享项目
- 撰写关于 UPage 的博客文章或教程
- 在相关论坛和社区中推荐 UPage
- 为项目加星标Star
## 社区支持
帮助其他用户解决问题也是一种重要的贡献方式:
- 回答 [GitHub Discussions](https://github.com/halo-dev/upage/discussions) 中的问题
- 帮助新用户入门
- 分享您的使用经验和最佳实践
## 感谢您的贡献
无论您以何种方式支持和参与 UPage 项目我们都由衷地感谢您的每一份贡献。正是因为有诸多像您这样的社区成员的支持和参与UPage 才能不断成长和进步。每一个问题报告、每一行代码、每一份文档改进以及每一次分享都是宝贵的。

View File

@@ -0,0 +1,143 @@
---
id: workflow
title: 工作流程
---
# 工作流程
本文档描述了 UPage 项目的开发工作流程包括分支策略、Pull Request 流程和版本发布流程。
## 分支策略
UPage 项目使用以下分支策略:
### 主要分支
- **`main`**: 主分支,包含最新的开发代码,用于集成功能和修复,同时也对应最新的发布版本
### 功能分支
开发新功能时,应从 `main` 分支创建功能分支:
- **`feature/*`**: 功能分支,用于开发新功能
- 例如:`feature/drag-and-drop``feature/user-authentication`
### 修复分支
修复 bug 时,应从 `main` 分支创建修复分支:
- **`fix/*`**: 修复分支,用于修复 bug
- 例如:`fix/login-error``fix/memory-leak`
### 发布分支
准备新版本发布时,从 `main` 分支创建发布分支:
- **`release/*`**: 发布分支,用于准备新版本发布
- 例如:`release/v1.0.0``release/v1.1.0`
### 热修复分支
对已发布版本的紧急修复,从 `main` 分支创建热修复分支:
- **`hotfix/*`**: 热修复分支,用于对已发布版本的紧急修复
- 例如:`hotfix/v1.0.1``hotfix/v1.1.2`
## 工作流程图
```
main ─────┬───────────────┬─────────────────────────────────
│ │ ↑ ↑
↓ ↓ │ │
feature feature/A feature/B │ │
│ │
fix fix/bug-1 fix/bug-2
│ │ │
│ │ │
release └─────────────────────────────────┴───────────┘
release/v1.0.0
```
## Pull Request 流程
### 准备 Pull Request
1. 确保您的代码符合项目的[代码规范](./code-standards.md)
2. 更新相关文档(如适用)
3. 添加或更新测试(如适用)
4. 确保所有测试通过
5. 将您的分支与目标分支(通常是 `main`)同步
### 创建 Pull Request
1. 在 GitHub 上创建一个新的 Pull Request
2. 选择正确的目标分支(通常是 `main`
3. 填写 Pull Request 模板,提供以下信息:
- 清晰的标题,简要描述更改
- 详细的描述,解释更改的目的和实现方式
- 相关的 issue 链接(如适用)
- 截图或视频(如适用)
- 任何需要审核者特别注意的事项
### Pull Request 审核
1. 至少需要一个项目维护者的批准才能合并 PR
2. 审核者可能会要求进行更改
3. 根据反馈进行必要的更改
4. 确保 CI 检查通过
### 合并 Pull Request
1. 一旦 PR 获得批准并且所有检查通过,它将被合并
2. 通常使用 "Squash and merge" 策略,将所有提交合并为一个
3. 合并后,相关的分支可以被删除
## 版本发布流程
UPage 遵循 [语义化版本控制](https://semver.org/) 规范。版本号格式为 `X.Y.Z`
- **X**: 主版本号,当进行不兼容的 API 更改时递增
- **Y**: 次版本号,当添加向后兼容的功能时递增
- **Z**: 修订号,当进行向后兼容的 bug 修复时递增
### 发布准备
1.`main` 分支创建发布分支,例如 `release/v1.0.0`
2. 在发布分支上进行最终测试和修复
3. 更新版本号和更新日志
4. 创建 Pull Request 将发布分支合并回 `main`
### 发布步骤
1. 合并发布分支到 `main`
2.`main` 分支上创建版本标签,例如 `v1.0.0`
3. 发布 GitHub Release包含详细的更新日志
### 热修复发布
1.`main` 分支创建热修复分支,例如 `hotfix/v1.0.1`
2. 实现必要的修复
3. 更新版本号和更新日志
4. 创建 Pull Request 将热修复分支合并到 `main`
5. 必要时创建 cherry-pick PR 将热修复分支合并到对应的发布分支
## 持续集成和部署
UPage 使用 GitHub Actions 进行持续集成和部署:
### CI 工作流程
- 每个 PR 会触发构建和测试
- 代码质量检查linting、类型检查
- 单元测试和集成测试
- 构建检查
### CD 工作流程
- 合并到 `main` 分支会触发开发构建和部署
- 自动生成和发布 Docker 镜像
- 更新文档网站
## 问题跟踪
UPage 使用 GitHub [Issues](https://github.com/halo-dev/upage/issues) 进行问题跟踪使用标签对问题进行分类bug、feature、documentation 等)