docs: add upage usage instructions document
This commit is contained in:
26
.github/workflows/docs.yaml
vendored
26
.github/workflows/docs.yaml
vendored
@@ -20,16 +20,20 @@ jobs:
|
|||||||
run: |
|
run: |
|
||||||
git config user.name github-actions[bot]
|
git config user.name github-actions[bot]
|
||||||
git config user.email 41898282+github-actions[bot]@users.noreply.github.com
|
git config user.email 41898282+github-actions[bot]@users.noreply.github.com
|
||||||
- uses: actions/setup-python@v5
|
- uses: actions/setup-node@v4
|
||||||
with:
|
with:
|
||||||
python-version: 3.x
|
node-version: 18
|
||||||
- run: echo "cache_id=$(date --utc '+%V')" >> $GITHUB_ENV
|
cache: npm
|
||||||
- uses: actions/cache@v4
|
cache-dependency-path: docs/package-lock.json
|
||||||
with:
|
|
||||||
key: mkdocs-material-${{ env.cache_id }}
|
|
||||||
path: .cache
|
|
||||||
restore-keys: |
|
|
||||||
mkdocs-material-
|
|
||||||
|
|
||||||
- run: pip install mkdocs-material
|
- name: Install dependencies
|
||||||
- run: mkdocs gh-deploy --force
|
run: npm ci
|
||||||
|
|
||||||
|
- name: Build website
|
||||||
|
run: npm run build
|
||||||
|
|
||||||
|
- name: Deploy to GitHub Pages
|
||||||
|
uses: peaceiris/actions-gh-pages@v3
|
||||||
|
with:
|
||||||
|
github_token: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
publish_dir: ./docs/build
|
||||||
|
|||||||
20
docs/.gitignore
vendored
Normal file
20
docs/.gitignore
vendored
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
# Dependencies
|
||||||
|
/node_modules
|
||||||
|
|
||||||
|
# Production
|
||||||
|
/build
|
||||||
|
|
||||||
|
# Generated files
|
||||||
|
.docusaurus
|
||||||
|
.cache-loader
|
||||||
|
|
||||||
|
# Misc
|
||||||
|
.DS_Store
|
||||||
|
.env.local
|
||||||
|
.env.development.local
|
||||||
|
.env.test.local
|
||||||
|
.env.production.local
|
||||||
|
|
||||||
|
npm-debug.log*
|
||||||
|
yarn-debug.log*
|
||||||
|
yarn-error.log*
|
||||||
64
docs/README.md
Normal file
64
docs/README.md
Normal file
@@ -0,0 +1,64 @@
|
|||||||
|
# UPage 文档
|
||||||
|
|
||||||
|
这是 UPage 的官方文档网站,基于 [Docusaurus 3](https://docusaurus.io/) 构建。
|
||||||
|
|
||||||
|
## 本地开发
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# 安装依赖
|
||||||
|
pnpm install
|
||||||
|
|
||||||
|
# 启动本地开发服务器
|
||||||
|
pnpm start
|
||||||
|
```
|
||||||
|
|
||||||
|
此命令会启动本地开发服务器并打开浏览器窗口。大多数更改都会实时反映,无需重新启动服务器。
|
||||||
|
|
||||||
|
## 构建
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# 构建静态网站
|
||||||
|
pnpm run build
|
||||||
|
```
|
||||||
|
|
||||||
|
此命令会在 `build` 目录中生成静态内容,可以使用任何静态内容托管服务进行部署。
|
||||||
|
|
||||||
|
## 部署
|
||||||
|
|
||||||
|
使用 GitHub Actions 自动部署到 GitHub Pages。每当 `docs` 目录中的文件发生变更并推送到 `main` 分支时,会自动触发部署流程。
|
||||||
|
|
||||||
|
## 目录结构
|
||||||
|
|
||||||
|
```
|
||||||
|
docs/
|
||||||
|
├── content/ # 文档 Markdown 文件
|
||||||
|
│ ├── index.md # 首页
|
||||||
|
│ ├── quick-start.md # 快速开始
|
||||||
|
│ ├── deployment/ # 部署指南
|
||||||
|
│ ├── user-guide/ # 用户指南
|
||||||
|
│ └── ...
|
||||||
|
├── src/ # 源代码
|
||||||
|
│ ├── css/ # CSS 文件
|
||||||
|
│ └── pages/ # 自定义页面
|
||||||
|
├── static/ # 静态文件
|
||||||
|
│ └── img/ # 图片
|
||||||
|
├── docusaurus.config.js # Docusaurus 配置
|
||||||
|
├── sidebars.js # 侧边栏配置
|
||||||
|
└── package.json # 项目依赖
|
||||||
|
```
|
||||||
|
|
||||||
|
## 添加新文档
|
||||||
|
|
||||||
|
1. 在 `docs` 目录中创建新的 Markdown 文件
|
||||||
|
2. 添加前置元数据:
|
||||||
|
|
||||||
|
```md
|
||||||
|
---
|
||||||
|
id: document-id
|
||||||
|
title: 文档标题
|
||||||
|
---
|
||||||
|
|
||||||
|
# 文档内容
|
||||||
|
```
|
||||||
|
|
||||||
|
3. 更新 `sidebars.js` 文件,将新文档添加到侧边栏中
|
||||||
22
docs/content/404.md
Normal file
22
docs/content/404.md
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
---
|
||||||
|
id: 404-page
|
||||||
|
title: 页面未找到
|
||||||
|
---
|
||||||
|
|
||||||
|
# 页面未找到
|
||||||
|
|
||||||
|
很抱歉,您访问的页面不存在。
|
||||||
|
|
||||||
|
## 可能的原因
|
||||||
|
|
||||||
|
- 链接已过期或被移除
|
||||||
|
- URL 输入错误
|
||||||
|
- 页面正在建设中
|
||||||
|
|
||||||
|
## 您可以尝试
|
||||||
|
|
||||||
|
- [返回首页](/)
|
||||||
|
- 使用顶部的搜索功能查找相关内容
|
||||||
|
- 查看[文档目录](/)浏览所有可用文档
|
||||||
|
|
||||||
|
如果您认为这是一个错误,请[提交问题](https://github.com/halo-dev/upage/issues)告诉我们。
|
||||||
115
docs/content/changelog.md
Normal file
115
docs/content/changelog.md
Normal file
@@ -0,0 +1,115 @@
|
|||||||
|
---
|
||||||
|
id: changelog
|
||||||
|
title: 更新日志
|
||||||
|
---
|
||||||
|
|
||||||
|
# 更新日志
|
||||||
|
|
||||||
|
本文档记录了 UPage 的版本更新历史,包括新功能、改进和修复的问题。
|
||||||
|
|
||||||
|
## 1.0.0 (2025-09-15)
|
||||||
|
|
||||||
|
### 🚀 新功能
|
||||||
|
|
||||||
|
- **AI 页面生成**:基于自然语言描述生成完整网页
|
||||||
|
- **多 AI 提供商支持**:
|
||||||
|
- OpenAI (GPT-3.5/GPT-4)
|
||||||
|
- Anthropic Claude
|
||||||
|
- Google Gemini
|
||||||
|
- 兼容 OpenAI 接口的服务
|
||||||
|
- Ollama (本地模型)
|
||||||
|
- **可视化编辑器**:拖拽式页面编辑器,实时预览
|
||||||
|
- **组件库**:丰富的预设组件,包括布局、表单、媒体等
|
||||||
|
- **响应式设计**:自动适应不同屏幕尺寸
|
||||||
|
- **主题系统**:内置多种主题,支持自定义
|
||||||
|
- **页面管理**:创建、编辑、复制、删除页面
|
||||||
|
- **版本历史**:自动保存页面版本,支持回滚
|
||||||
|
- **导出功能**:导出为 HTML/CSS/JS、ZIP、JSON 或 PDF
|
||||||
|
- **部署集成**:
|
||||||
|
- Vercel 部署支持
|
||||||
|
- Netlify 部署支持
|
||||||
|
- **用户认证**:通过 Logto 实现用户认证和权限管理
|
||||||
|
- **Docker 部署**:提供官方 Docker 镜像和 Docker Compose 配置
|
||||||
|
|
||||||
|
### 🔧 技术栈
|
||||||
|
|
||||||
|
- **前端**:React、TypeScript、Vite、UnoCSS
|
||||||
|
- **后端**:Node.js、Express、Remix
|
||||||
|
- **数据库**:SQLite
|
||||||
|
- **AI 集成**:AI SDK、各大 AI 提供商 API
|
||||||
|
- **部署**:Docker、GitHub Actions
|
||||||
|
|
||||||
|
## 0.9.0 (2025-08-20)
|
||||||
|
|
||||||
|
### 🚀 新功能
|
||||||
|
|
||||||
|
- **Beta 版本发布**:首个公开测试版本
|
||||||
|
- **核心功能实现**:
|
||||||
|
- AI 页面生成
|
||||||
|
- 可视化编辑器
|
||||||
|
- 页面管理
|
||||||
|
- 导出功能
|
||||||
|
- **Docker 部署支持**:提供 Docker 镜像和部署指南
|
||||||
|
- **文档系统**:基本使用文档和部署指南
|
||||||
|
|
||||||
|
### 🐛 修复
|
||||||
|
|
||||||
|
- 修复页面生成时的布局问题
|
||||||
|
- 修复组件拖拽在某些浏览器中的兼容性问题
|
||||||
|
- 修复导出功能中的资源路径问题
|
||||||
|
|
||||||
|
## 0.8.0 (2025-07-15)
|
||||||
|
|
||||||
|
### 🚀 新功能
|
||||||
|
|
||||||
|
- **Alpha 版本**:内部测试版本
|
||||||
|
- **概念验证**:
|
||||||
|
- AI 生成基本页面结构
|
||||||
|
- 简单的可视化编辑
|
||||||
|
- 基本的导出功能
|
||||||
|
- **技术选型确定**:
|
||||||
|
- 前端框架和库
|
||||||
|
- AI 集成方案
|
||||||
|
- 部署策略
|
||||||
|
|
||||||
|
### 📝 计划
|
||||||
|
|
||||||
|
- 完善 AI 生成功能
|
||||||
|
- 增强可视化编辑器
|
||||||
|
- 添加更多组件和模板
|
||||||
|
- 实现部署集成
|
||||||
|
- 准备公开测试版本
|
||||||
|
|
||||||
|
## 未来计划
|
||||||
|
|
||||||
|
以下是 UPage 计划在未来版本中实现的功能:
|
||||||
|
|
||||||
|
### 近期计划 (1.x)
|
||||||
|
|
||||||
|
- **协作功能**:多用户同时编辑页面
|
||||||
|
- **评论和反馈**:页面内评论和反馈系统
|
||||||
|
- **更多组件**:扩展组件库,添加更多高级组件
|
||||||
|
- **自定义主题编辑器**:可视化主题编辑工具
|
||||||
|
- **更多 AI 提供商支持**:增加对更多 AI 模型的支持
|
||||||
|
- **性能优化**:提升页面生成和编辑的性能
|
||||||
|
- **移动端编辑器**:支持在移动设备上编辑页面
|
||||||
|
|
||||||
|
### 中期计划 (2.x)
|
||||||
|
|
||||||
|
- **插件系统**:支持第三方插件扩展功能
|
||||||
|
- **高级动画**:更丰富的页面动画效果
|
||||||
|
- **数据集成**:与外部数据源集成
|
||||||
|
- **多语言支持**:界面和生成内容的多语言支持
|
||||||
|
- **AI 辅助编程**:生成自定义组件和交互逻辑
|
||||||
|
- **高级分析**:页面性能和访问分析
|
||||||
|
- **A/B 测试**:内置 A/B 测试功能
|
||||||
|
|
||||||
|
### 长期愿景
|
||||||
|
|
||||||
|
- **完整网站生成**:从描述生成完整多页面网站
|
||||||
|
- **智能内容管理**:AI 辅助的内容创建和管理
|
||||||
|
- **无代码应用构建**:扩展至应用程序构建
|
||||||
|
- **生态系统**:建立开发者和设计师社区
|
||||||
|
- **企业级功能**:满足大型组织的需求
|
||||||
|
|
||||||
|
我们欢迎社区参与和贡献,共同推动 UPage 的发展。如果您有功能建议或发现问题,请在 [GitHub Issues](https://github.com/halo-dev/upage/issues) 中提出。
|
||||||
201
docs/content/configuration.md
Normal file
201
docs/content/configuration.md
Normal file
@@ -0,0 +1,201 @@
|
|||||||
|
---
|
||||||
|
id: configuration
|
||||||
|
title: 配置参考
|
||||||
|
---
|
||||||
|
|
||||||
|
# 配置参考
|
||||||
|
|
||||||
|
本文档提供了 UPage 的完整配置参考,包括基础配置、AI 提供商配置、认证配置,帮助您根据自己的需求定制和优化 UPage。
|
||||||
|
|
||||||
|
UPage 使用环境变量进行配置。您可以通过以下方式设置环境变量:
|
||||||
|
|
||||||
|
- 在 Docker 运行命令中使用 `-e` 参数
|
||||||
|
- 在 Docker Compose 文件中使用 `environment` 部分
|
||||||
|
- 在源码部署中创建 `.env` 文件
|
||||||
|
|
||||||
|
## 基础配置
|
||||||
|
|
||||||
|
| 环境变量 | 描述 | 默认值 | 必填 |
|
||||||
|
| --- | --- | --- | --- |
|
||||||
|
| `PORT` | 服务监听端口 | `3000` | 否 |
|
||||||
|
| `NODE_ENV` | Node.js 环境 | `production` | 否 |
|
||||||
|
| `OPERATING_ENV` | 运行环境 | `production` | 否 |
|
||||||
|
| `LOG_LEVEL` | 日志级别(debug, info, warn, error) | `info` | 否 |
|
||||||
|
| `USAGE_LOG_FILE` | 是否开启文件日志 | `true` | 否 |
|
||||||
|
| `MAX_UPLOAD_SIZE_MB` | 附件上传的最大大小 (MB) | `5` | 否 |
|
||||||
|
| `STORAGE_DIR` | 资源文件存储位置 | `/app/storage` | 否 |
|
||||||
|
|
||||||
|
## AI 提供商配置
|
||||||
|
|
||||||
|
### AI 基础配置
|
||||||
|
|
||||||
|
| 环境变量 | 描述 | 默认值 | 必填 |
|
||||||
|
| --- | --- | --- | --- |
|
||||||
|
| `LLM_DEFAULT_PROVIDER` | LLM 提供商,根据需要配置一个 | - | 是 |
|
||||||
|
| `LLM_DEFAULT_MODEL` | 生成页面所使用的模型 | - | 是 |
|
||||||
|
| `LLM_MINOR_MODEL` | 辅助页面生成所使用的模型 | - | 是 |
|
||||||
|
| `LLM_ENABLED_PROVIDERS` | 启用的 LLM 提供商列表(逗号分隔) | 所有支持的提供商 | 否 |
|
||||||
|
|
||||||
|
### DeepSeek
|
||||||
|
|
||||||
|
| 环境变量 | 描述 | 默认值 | 必填 |
|
||||||
|
| --- | --- | --- | --- |
|
||||||
|
| `LLM_DEFAULT_PROVIDER` | DeepSeek 提供商名称 | Deepseek | 是 |
|
||||||
|
| `DEEPSEEK_API_KEY` | DeepSeek API 密钥 | - | 是(如果使用 DeepSeek) |
|
||||||
|
|
||||||
|
### OpenAI
|
||||||
|
|
||||||
|
| 环境变量 | 描述 | 默认值 | 必填 |
|
||||||
|
| --- | --- | --- | --- |
|
||||||
|
| `LLM_DEFAULT_PROVIDER` | OpenAI 提供商名称 | OpenAI | 是 |
|
||||||
|
| `OPENAI_API_KEY` | OpenAI API 密钥 | - | 是(如果使用 OpenAI) |
|
||||||
|
|
||||||
|
### Anthropic Claude
|
||||||
|
|
||||||
|
| 环境变量 | 描述 | 默认值 | 必填 |
|
||||||
|
| --- | --- | --- | --- |
|
||||||
|
| `LLM_DEFAULT_PROVIDER` | Anthropic 提供商 | Anthropic | 是 |
|
||||||
|
| `ANTHROPIC_API_KEY` | Anthropic API 密钥 | - | 是(如果使用 Anthropic) |
|
||||||
|
| `ANTHROPIC_API_BASE_URL` | Anthropic API 基础 URL | `https://api.anthropic.com` | 否 |
|
||||||
|
|
||||||
|
### 兼容 OpenAI 接口的服务
|
||||||
|
|
||||||
|
| 环境变量 | 描述 | 默认值 | 必填 |
|
||||||
|
| --- | --- | --- | --- |
|
||||||
|
| `OPENAI_LIKE_API_KEY` | API 密钥 | - | 是(如果使用 OpenAILike) |
|
||||||
|
| `OPENAI_LIKE_API_BASE_URL` | API 基础 URL | - | 是(如果使用 OpenAILike) |
|
||||||
|
| `OPENAI_LIKE_ORGANIZATION_ID` | 组织 ID | - | 否 |
|
||||||
|
|
||||||
|
### Ollama
|
||||||
|
|
||||||
|
| 环境变量 | 描述 | 默认值 | 必填 |
|
||||||
|
| --- | --- | --- | --- |
|
||||||
|
| `OLLAMA_API_BASE_URL` | Ollama API 基础 URL | `http://localhost:11434` | 是(如果使用 Ollama) |
|
||||||
|
|
||||||
|
### Groq
|
||||||
|
|
||||||
|
| 环境变量 | 描述 | 默认值 | 必填 |
|
||||||
|
| --- | --- | --- | --- |
|
||||||
|
| `GROQ_API_KEY` | Groq API 密钥 | - | 是(如果使用 Groq) |
|
||||||
|
|
||||||
|
### HuggingFace
|
||||||
|
|
||||||
|
| 环境变量 | 描述 | 默认值 | 必填 |
|
||||||
|
| --- | --- | --- | --- |
|
||||||
|
| `HuggingFace_API_KEY` | HuggingFace API 密钥 | - | 是(如果使用 HuggingFace) |
|
||||||
|
|
||||||
|
### OpenRouter
|
||||||
|
|
||||||
|
| 环境变量 | 描述 | 默认值 | 必填 |
|
||||||
|
| --- | --- | --- | --- |
|
||||||
|
| `OPEN_ROUTER_API_KEY` | OpenRouter API 密钥 | - | 是(如果使用 OpenRouter) |
|
||||||
|
|
||||||
|
### Google Gemini
|
||||||
|
|
||||||
|
| 环境变量 | 描述 | 默认值 | 必填 |
|
||||||
|
| --- | --- | --- | --- |
|
||||||
|
| `GOOGLE_API_KEY` | Google API 密钥 | - | 是(如果使用 Google) |
|
||||||
|
| `GOOGLE_API_BASE_URL` | Google API 基础 URL | `https://generativelanguage.googleapis.com` | 否 |
|
||||||
|
|
||||||
|
## 认证配置
|
||||||
|
|
||||||
|
### Logto 认证
|
||||||
|
|
||||||
|
| 环境变量 | 描述 | 默认值 | 必填 |
|
||||||
|
| --- | --- | --- | --- |
|
||||||
|
| `LOGTO_ENABLE` | 是否启用 Logto 认证 | `false` | 否 |
|
||||||
|
| `LOGTO_ENDPOINT` | Logto 服务的 URL | - | 是(如果使用 Logto) |
|
||||||
|
| `LOGTO_APP_ID` | Logto 应用程序 ID | - | 是(如果使用 Logto) |
|
||||||
|
| `LOGTO_APP_SECRET` | Logto 应用程序密钥 | - | 是(如果使用 Logto) |
|
||||||
|
| `LOGTO_COOKIE_SECRET` | 用于加密 cookie 的密钥 | - | 是(如果使用 Logto) |
|
||||||
|
| `LOGTO_BASE_URL` | UPage 地址 | - | 是(如果使用 Logto) |
|
||||||
|
|
||||||
|
:::info
|
||||||
|
Logto 集成请参阅 [Logto 认证集成](./deployment/logto)文档。
|
||||||
|
:::
|
||||||
|
|
||||||
|
## 配置示例
|
||||||
|
|
||||||
|
### 基本配置示例
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# 基础配置
|
||||||
|
PORT=3000
|
||||||
|
NODE_ENV=production
|
||||||
|
LOG_LEVEL=info
|
||||||
|
|
||||||
|
# AI 提供商配置
|
||||||
|
LLM_DEFAULT_PROVIDER=OpenAI
|
||||||
|
OPENAI_API_KEY=your-openai-api-key
|
||||||
|
LLM_DEFAULT_MODEL=gpt-4-turbo
|
||||||
|
LLM_MINOR_MODEL=gpt-3.5-turbo
|
||||||
|
```
|
||||||
|
|
||||||
|
### 完整的 Docker Compose 配置示例
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
version: "3.9"
|
||||||
|
services:
|
||||||
|
upage:
|
||||||
|
image: ghcr.io/halo-dev/upage:latest
|
||||||
|
container_name: upage
|
||||||
|
restart: unless-stopped
|
||||||
|
ports:
|
||||||
|
- "3000:3000"
|
||||||
|
environment:
|
||||||
|
# 基础配置
|
||||||
|
- PORT=3000
|
||||||
|
- NODE_ENV=production
|
||||||
|
- OPERATING_ENV=production
|
||||||
|
- LOG_LEVEL=info
|
||||||
|
- USAGE_LOG_FILE=true
|
||||||
|
- MAX_UPLOAD_SIZE_MB=10
|
||||||
|
- STORAGE_DIR=/app/storage
|
||||||
|
|
||||||
|
# AI 提供商配置
|
||||||
|
- LLM_DEFAULT_PROVIDER=OpenAI
|
||||||
|
- OPENAI_API_KEY=your-openai-api-key
|
||||||
|
- LLM_DEFAULT_MODEL=gpt-4-turbo
|
||||||
|
- LLM_MINOR_MODEL=gpt-3.5-turbo
|
||||||
|
|
||||||
|
# Logto 认证配置
|
||||||
|
- LOGTO_ENABLE=true
|
||||||
|
- LOGTO_ENDPOINT=http://logto:3001
|
||||||
|
- LOGTO_APP_ID=your-app-id
|
||||||
|
- LOGTO_APP_SECRET=your-app-secret
|
||||||
|
- LOGTO_COOKIE_SECRET=your-cookie-secret
|
||||||
|
- LOGTO_BASE_URL=https://api.upage.io
|
||||||
|
volumes:
|
||||||
|
- ./data:/app/data
|
||||||
|
- ./logs:/app/logs
|
||||||
|
- ./storage:/app/storage
|
||||||
|
```
|
||||||
|
|
||||||
|
## 多环境配置
|
||||||
|
|
||||||
|
### 开发环境
|
||||||
|
|
||||||
|
```bash
|
||||||
|
NODE_ENV=development
|
||||||
|
OPERATING_ENV=development
|
||||||
|
LOG_LEVEL=debug
|
||||||
|
PORT=3000
|
||||||
|
```
|
||||||
|
|
||||||
|
### 测试环境
|
||||||
|
|
||||||
|
```bash
|
||||||
|
NODE_ENV=production
|
||||||
|
OPERATING_ENV=testing
|
||||||
|
LOG_LEVEL=info
|
||||||
|
PORT=3000
|
||||||
|
```
|
||||||
|
|
||||||
|
### 生产环境
|
||||||
|
|
||||||
|
```bash
|
||||||
|
NODE_ENV=production
|
||||||
|
OPERATING_ENV=production
|
||||||
|
LOG_LEVEL=warn
|
||||||
|
PORT=3000
|
||||||
|
```
|
||||||
199
docs/content/contributing.md
Normal file
199
docs/content/contributing.md
Normal file
@@ -0,0 +1,199 @@
|
|||||||
|
---
|
||||||
|
id: contributing
|
||||||
|
title: 贡献指南
|
||||||
|
---
|
||||||
|
|
||||||
|
# 贡献指南
|
||||||
|
|
||||||
|
感谢您对 UPage 项目的关注!我们非常欢迎各种形式的贡献,无论是功能开发、bug 修复、文档改进还是使用反馈。本指南将帮助您了解如何参与 UPage 的开发和贡献。
|
||||||
|
|
||||||
|
## 行为准则
|
||||||
|
|
||||||
|
参与 UPage 项目的所有贡献者都应遵循以下行为准则:
|
||||||
|
|
||||||
|
- 尊重所有参与者,无论其背景、经验或观点
|
||||||
|
- 接受建设性的批评和反馈
|
||||||
|
- 专注于对社区最有利的事情
|
||||||
|
- 展现同理心和善意
|
||||||
|
|
||||||
|
## 贡献方式
|
||||||
|
|
||||||
|
您可以通过多种方式为 UPage 做出贡献:
|
||||||
|
|
||||||
|
### 报告问题
|
||||||
|
|
||||||
|
如果您发现了 bug 或有功能建议,请在 [GitHub Issues](https://github.com/halo-dev/upage/issues) 中提出。提交问题时,请尽可能提供以下信息:
|
||||||
|
|
||||||
|
- 清晰的问题描述
|
||||||
|
- 复现步骤
|
||||||
|
- 预期行为与实际行为
|
||||||
|
- 截图(如适用)
|
||||||
|
- 环境信息(浏览器、操作系统、UPage 版本等)
|
||||||
|
|
||||||
|
### 提交代码
|
||||||
|
|
||||||
|
如果您想直接贡献代码,请遵循以下步骤:
|
||||||
|
|
||||||
|
1. 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
|
||||||
|
|
||||||
|
### 改进文档
|
||||||
|
|
||||||
|
文档对于任何项目都至关重要。您可以通过以下方式改进 UPage 的文档:
|
||||||
|
|
||||||
|
- 修复文档中的错误或不准确之处
|
||||||
|
- 添加缺失的信息或示例
|
||||||
|
- 改进文档的结构和可读性
|
||||||
|
- 翻译文档到其他语言
|
||||||
|
|
||||||
|
### 分享和推广
|
||||||
|
|
||||||
|
您也可以通过以下方式支持 UPage:
|
||||||
|
|
||||||
|
- 在社交媒体上分享项目
|
||||||
|
- 撰写关于 UPage 的博客文章或教程
|
||||||
|
- 在相关论坛和社区中推荐 UPage
|
||||||
|
- 为项目加星标(Star)
|
||||||
|
|
||||||
|
## 开发环境设置
|
||||||
|
|
||||||
|
### 前置条件
|
||||||
|
|
||||||
|
开始开发 UPage 前,请确保您的系统满足以下要求:
|
||||||
|
|
||||||
|
- Node.js 18.18.0 或更高版本
|
||||||
|
- pnpm 9.4.0 或更高版本
|
||||||
|
- Git
|
||||||
|
|
||||||
|
### 克隆仓库
|
||||||
|
|
||||||
|
```bash
|
||||||
|
git clone https://github.com/halo-dev/upage.git
|
||||||
|
cd upage
|
||||||
|
```
|
||||||
|
|
||||||
|
### 安装依赖
|
||||||
|
|
||||||
|
```bash
|
||||||
|
pnpm install
|
||||||
|
```
|
||||||
|
|
||||||
|
### 启动开发服务器
|
||||||
|
|
||||||
|
```bash
|
||||||
|
pnpm dev
|
||||||
|
```
|
||||||
|
|
||||||
|
此命令会启动开发服务器,您可以通过 `http://localhost:3000` 访问。
|
||||||
|
|
||||||
|
### 构建项目
|
||||||
|
|
||||||
|
```bash
|
||||||
|
pnpm build
|
||||||
|
```
|
||||||
|
|
||||||
|
### 运行测试
|
||||||
|
|
||||||
|
```bash
|
||||||
|
pnpm test
|
||||||
|
```
|
||||||
|
|
||||||
|
## 代码规范
|
||||||
|
|
||||||
|
### JavaScript/TypeScript 规范
|
||||||
|
|
||||||
|
UPage 使用 [Biome](https://biomejs.dev/) 进行代码格式化和 linting。在提交代码前,请确保您的代码符合项目的代码规范:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
pnpm check
|
||||||
|
```
|
||||||
|
|
||||||
|
您也可以使用以下命令自动修复格式问题:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
pnpm check --write
|
||||||
|
```
|
||||||
|
|
||||||
|
### Git 提交规范
|
||||||
|
|
||||||
|
我们使用 [Conventional Commits](https://www.conventionalcommits.org/) 规范来格式化 Git 提交信息。提交信息应遵循以下格式:
|
||||||
|
|
||||||
|
```
|
||||||
|
<type>(<scope>): <description>
|
||||||
|
|
||||||
|
[optional body]
|
||||||
|
|
||||||
|
[optional footer(s)]
|
||||||
|
```
|
||||||
|
|
||||||
|
常用的 `type` 包括:
|
||||||
|
|
||||||
|
- `feat`: 新功能
|
||||||
|
- `fix`: 修复 bug
|
||||||
|
- `docs`: 文档更新
|
||||||
|
- `style`: 代码风格更改(不影响代码功能)
|
||||||
|
- `refactor`: 代码重构
|
||||||
|
- `perf`: 性能优化
|
||||||
|
- `test`: 添加或修改测试
|
||||||
|
- `chore`: 构建过程或辅助工具的变动
|
||||||
|
|
||||||
|
例如:
|
||||||
|
|
||||||
|
```
|
||||||
|
feat(editor): 添加拖拽调整组件大小功能
|
||||||
|
|
||||||
|
添加了一个新的拖拽句柄,允许用户直接调整组件的大小。
|
||||||
|
同时优化了调整过程中的性能。
|
||||||
|
|
||||||
|
Closes #123
|
||||||
|
```
|
||||||
|
|
||||||
|
## 分支策略
|
||||||
|
|
||||||
|
- `main`: 主分支,包含稳定的代码
|
||||||
|
- `develop`: 开发分支,包含最新的开发代码
|
||||||
|
- `feature/*`: 功能分支,用于开发新功能
|
||||||
|
- `fix/*`: 修复分支,用于修复 bug
|
||||||
|
- `release/*`: 发布分支,用于准备新版本发布
|
||||||
|
|
||||||
|
请基于 `develop` 分支创建您的功能或修复分支,并在完成后向 `develop` 分支提交 Pull Request。
|
||||||
|
|
||||||
|
## Pull Request 流程
|
||||||
|
|
||||||
|
1. 确保您的代码符合项目的代码规范
|
||||||
|
2. 更新相关文档(如适用)
|
||||||
|
3. 添加或更新测试(如适用)
|
||||||
|
4. 确保所有测试通过
|
||||||
|
5. 提交 Pull Request 到 `develop` 分支
|
||||||
|
6. 在 PR 描述中详细说明您的更改
|
||||||
|
|
||||||
|
## 版本发布流程
|
||||||
|
|
||||||
|
UPage 遵循 [语义化版本控制](https://semver.org/) 规范。版本号格式为 `X.Y.Z`:
|
||||||
|
|
||||||
|
- `X`: 主版本号,当进行不兼容的 API 更改时递增
|
||||||
|
- `Y`: 次版本号,当添加向后兼容的功能时递增
|
||||||
|
- `Z`: 修订号,当进行向后兼容的 bug 修复时递增
|
||||||
|
|
||||||
|
## 文档贡献
|
||||||
|
|
||||||
|
UPage 的文档使用 [Docusaurus](https://docusaurus.io/) 构建。如果您想贡献文档,请遵循以下步骤:
|
||||||
|
|
||||||
|
1. 在 `docs` 目录中找到相关的 Markdown 文件
|
||||||
|
2. 进行必要的更改
|
||||||
|
3. 在本地预览更改:`pnpm docs:start`
|
||||||
|
4. 提交 Pull Request
|
||||||
|
|
||||||
|
## 社区
|
||||||
|
|
||||||
|
加入 UPage 社区,与其他贡献者交流:
|
||||||
|
|
||||||
|
- [GitHub Discussions](https://github.com/halo-dev/upage/discussions)
|
||||||
|
- [GitHub Issues](https://github.com/halo-dev/upage/issues)
|
||||||
|
|
||||||
|
## 许可证
|
||||||
|
|
||||||
|
UPage 采用 [MIT 许可证](https://github.com/halo-dev/upage/blob/main/LICENSE)。通过贡献代码,您同意您的贡献将在相同的许可证下发布。
|
||||||
144
docs/content/deployment/docker-compose.md
Normal file
144
docs/content/deployment/docker-compose.md
Normal file
@@ -0,0 +1,144 @@
|
|||||||
|
---
|
||||||
|
id: docker-compose
|
||||||
|
title: Docker Compose 部署
|
||||||
|
---
|
||||||
|
|
||||||
|
# Docker Compose 部署
|
||||||
|
|
||||||
|
本文档详细介绍如何使用 Docker Compose 部署 UPage,这是一种更便捷的方式来管理 UPage 的部署。
|
||||||
|
|
||||||
|
## 前置条件
|
||||||
|
在开始之前,请确保您的系统满足以下要求:
|
||||||
|
- Docker 已安装(推荐 Docker 20.10.0 或更高版本)
|
||||||
|
- Docker Compose 已安装(推荐 Docker Compose 1.29.0 或更高版本)
|
||||||
|
- 至少 2GB 可用内存
|
||||||
|
- 至少 2GB 可用磁盘空间
|
||||||
|
- 互联网连接(用于拉取 Docker 镜像和访问大模型 API)
|
||||||
|
|
||||||
|
### 安装 Docker 和 Docker Compose
|
||||||
|
|
||||||
|
如果您的系统未安装 Docker,请参考[Docker 官方文档](https://docs.docker.com/engine/install/)进行安装。
|
||||||
|
如果您的系统未安装 Docker Compose,请参考[Docker Compose 官方文档](https://docs.docker.com/compose/install/)进行安装。
|
||||||
|
|
||||||
|
## 使用 Docker Compose 部署
|
||||||
|
|
||||||
|
### 准备目录
|
||||||
|
|
||||||
|
创建必要的目录用于持久化数据,例如 `~/upage`:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
mkdir -p ~/upage/data
|
||||||
|
mkdir -p ~/upage/logs
|
||||||
|
mkdir -p ~/upage/storage
|
||||||
|
cd ~/upage
|
||||||
|
```
|
||||||
|
:::tip
|
||||||
|
UPage 所有数据与日志均存储在此目录中,请妥善保管。
|
||||||
|
:::
|
||||||
|
|
||||||
|
### 创建配置文件
|
||||||
|
创建 `docker-compose.yml` 文件:
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
version: "3.9"
|
||||||
|
services:
|
||||||
|
upage:
|
||||||
|
image: upage-ai:production
|
||||||
|
restart: unless-stopped
|
||||||
|
ports:
|
||||||
|
- "${PORT:-3000}:3000"
|
||||||
|
environment:
|
||||||
|
- OPENAI_LIKE_API_BASE_URL=${OPENAI_LIKE_API_BASE_URL}
|
||||||
|
- OPENAI_LIKE_API_KEY=${OPENAI_LIKE_API_KEY}
|
||||||
|
- LLM_DEFAULT_PROVIDER=${LLM_DEFAULT_PROVIDER}
|
||||||
|
- LLM_DEFAULT_MODEL=${LLM_DEFAULT_MODEL}
|
||||||
|
- LLM_MINOR_MODEL=${LLM_MINOR_MODEL}
|
||||||
|
volumes:
|
||||||
|
- ./data:/app/data
|
||||||
|
- ./logs:/app/logs
|
||||||
|
- ./storage:/app/storage
|
||||||
|
|
||||||
|
volumes:
|
||||||
|
upage-db:
|
||||||
|
```
|
||||||
|
|
||||||
|
### 启动服务
|
||||||
|
|
||||||
|
在 `docker-compose.yml` 文件所在目录执行:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
docker-compose up -d
|
||||||
|
```
|
||||||
|
|
||||||
|
### 服务管理
|
||||||
|
|
||||||
|
使用 Docker Compose 管理服务的常用命令:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# 启动服务
|
||||||
|
docker-compose up -d
|
||||||
|
|
||||||
|
# 停止服务
|
||||||
|
docker-compose down
|
||||||
|
|
||||||
|
# 重启服务
|
||||||
|
docker-compose restart
|
||||||
|
|
||||||
|
# 查看服务日志
|
||||||
|
docker-compose logs
|
||||||
|
|
||||||
|
# 查看服务状态
|
||||||
|
docker-compose ps
|
||||||
|
```
|
||||||
|
|
||||||
|
## 环境变量配置
|
||||||
|
|
||||||
|
UPage 支持通过环境变量进行配置。以下是一些比较重要的环境变量:
|
||||||
|
|
||||||
|
:::tip
|
||||||
|
完整的配置请参考[配置参考](../configuration)。
|
||||||
|
:::
|
||||||
|
|
||||||
|
### 基础配置
|
||||||
|
|
||||||
|
| 环境变量 | 描述 | 默认值 |
|
||||||
|
| --- | --- | --- |
|
||||||
|
| `PORT` | 服务监听端口 | `3000` |
|
||||||
|
| `NODE_ENV` | Node.js 环境 | `production` |
|
||||||
|
| `OPERATING_ENV` | 运行环境 | `production` |
|
||||||
|
| `LOG_LEVEL` | 日志级别 | `debug` |
|
||||||
|
| `USAGE_LOG_FILE` | 是否开启文件日志 | `true` |
|
||||||
|
| `MAX_UPLOAD_SIZE_MB` | 附件上传的最大大小 (MB) | `5` |
|
||||||
|
| `STORAGE_DIR` | 资源文件存储位置 | `/app/storage` |
|
||||||
|
|
||||||
|
### 模型提供商配置
|
||||||
|
根据您选择的 AI 提供商,您还需要配置相应的 API 密钥和基础 URL,例如:
|
||||||
|
|
||||||
|
| 环境变量 | 描述 | 必填 | 示例 |
|
||||||
|
| --- | --- | --- | --- |
|
||||||
|
| `LLM_DEFAULT_PROVIDER` | 默认 LLM 提供商 | 是 | `OpenAILike` |
|
||||||
|
| `OPENAI_LIKE_API_BASE_URL` | OpenAI 兼容 API 基础 URL | 是 | `https://your-api-base-url` |
|
||||||
|
| `OPENAI_LIKE_API_KEY` | OpenAI 兼容 API 密钥 | 是 | `your-openai-like-api-key` |
|
||||||
|
|
||||||
|
### 大模型配置
|
||||||
|
|
||||||
|
| 环境变量 | 描述 | 必填 | 示例 |
|
||||||
|
| --- | --- | --- | --- |
|
||||||
|
| `LLM_DEFAULT_MODEL` | 生成页面所使用的主要模型 | 是 | `gpt-4-turbo` |
|
||||||
|
| `LLM_MINOR_MODEL` | 辅助页面生成所使用的次级模型 | 是 | `gpt-3.5-turbo` |
|
||||||
|
|
||||||
|
## 升级 UPage
|
||||||
|
|
||||||
|
当有新版本发布时,您可以按照以下步骤升级 UPage:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
docker-compose pull
|
||||||
|
docker-compose down
|
||||||
|
docker-compose up -d
|
||||||
|
```
|
||||||
|
|
||||||
|
## 下一步
|
||||||
|
|
||||||
|
- 阅读[用户指南](user-guide/basics)学习如何使用 UPage 创建网页
|
||||||
|
- 探索[配置参考](configuration)了解所有可用的配置选项
|
||||||
|
- 探索[Logto 认证集成](logto)了解如何集成 Logto 实现用户认证
|
||||||
160
docs/content/deployment/docker.md
Normal file
160
docs/content/deployment/docker.md
Normal file
@@ -0,0 +1,160 @@
|
|||||||
|
---
|
||||||
|
id: docker
|
||||||
|
title: Docker 部署
|
||||||
|
---
|
||||||
|
|
||||||
|
# Docker 部署
|
||||||
|
|
||||||
|
本文档详细介绍如何使用 Docker 部署 UPage。
|
||||||
|
|
||||||
|
## 前置条件
|
||||||
|
在开始之前,请确保您的系统满足以下要求:
|
||||||
|
- Docker 已安装(推荐 Docker 20.10.0 或更高版本)
|
||||||
|
- 至少 2GB 可用内存
|
||||||
|
- 至少 2GB 可用磁盘空间
|
||||||
|
- 互联网连接(用于拉取 Docker 镜像和访问大模型 API)
|
||||||
|
|
||||||
|
### 安装 Docker
|
||||||
|
|
||||||
|
如果您的系统未安装 Docker,请参考[Docker 官方文档](https://docs.docker.com/engine/install/)进行安装。
|
||||||
|
|
||||||
|
## 使用 Docker 部署
|
||||||
|
|
||||||
|
### 拉取镜像
|
||||||
|
|
||||||
|
首先,拉取 UPage 的最新 Docker 镜像:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
docker pull halohub/upage:latest
|
||||||
|
```
|
||||||
|
|
||||||
|
您也可以使用特定版本的镜像,例如:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
docker pull halohub/upage:1.0.0
|
||||||
|
```
|
||||||
|
|
||||||
|
### 准备目录
|
||||||
|
|
||||||
|
创建必要的目录用于持久化数据,例如 `~/upage`:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
mkdir -p ~/upage/data
|
||||||
|
mkdir -p ~/upage/logs
|
||||||
|
mkdir -p ~/upage/storage
|
||||||
|
```
|
||||||
|
:::tip
|
||||||
|
UPage 所有数据与日志均存储在此目录中,请妥善保管。
|
||||||
|
:::
|
||||||
|
|
||||||
|
### 启动容器
|
||||||
|
|
||||||
|
使用以下命令启动 UPage 容器:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
docker run -d \
|
||||||
|
--name upage \
|
||||||
|
--restart unless-stopped \
|
||||||
|
-p 3000:3000 \
|
||||||
|
-e LLM_DEFAULT_PROVIDER=OpenAILike \
|
||||||
|
-e OPENAI_LIKE_API_BASE_URL=your-openai-like-api-base-url \
|
||||||
|
-e OPENAI_LIKE_API_KEY=your-openai-like-api-key \
|
||||||
|
-e LLM_DEFAULT_MODEL=your-default-model \
|
||||||
|
-e LLM_MINOR_MODEL=your-minor-model \
|
||||||
|
-v ~/upage/data:/app/data \
|
||||||
|
-v ~/upage/logs:/app/logs \
|
||||||
|
-v ~/upage/storage:/app/storage \
|
||||||
|
halohub/upage:latest
|
||||||
|
```
|
||||||
|
|
||||||
|
### 容器管理
|
||||||
|
|
||||||
|
常用的容器管理命令:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# 停止容器
|
||||||
|
docker stop upage
|
||||||
|
|
||||||
|
# 启动容器
|
||||||
|
docker start upage
|
||||||
|
|
||||||
|
# 重启容器
|
||||||
|
docker restart upage
|
||||||
|
|
||||||
|
# 查看容器日志
|
||||||
|
docker logs upage
|
||||||
|
|
||||||
|
# 查看容器状态
|
||||||
|
docker ps -a | grep upage
|
||||||
|
```
|
||||||
|
|
||||||
|
## 环境变量配置
|
||||||
|
|
||||||
|
UPage 支持通过环境变量进行配置。以下是一些比较重要的环境变量,均可以使用 `-e` 参数在启动容器时设置:
|
||||||
|
|
||||||
|
:::tip
|
||||||
|
完整的配置请参考[配置参考](../configuration)。
|
||||||
|
:::
|
||||||
|
|
||||||
|
### 基础配置
|
||||||
|
|
||||||
|
| 环境变量 | 描述 | 默认值 |
|
||||||
|
| --- | --- | --- |
|
||||||
|
| `PORT` | 服务监听端口 | `3000` |
|
||||||
|
| `NODE_ENV` | Node.js 环境 | `production` |
|
||||||
|
| `OPERATING_ENV` | 运行环境 | `production` |
|
||||||
|
| `LOG_LEVEL` | 日志级别 | `debug` |
|
||||||
|
| `USAGE_LOG_FILE` | 是否开启文件日志 | `true` |
|
||||||
|
| `MAX_UPLOAD_SIZE_MB` | 附件上传的最大大小 (MB) | `5` |
|
||||||
|
| `STORAGE_DIR` | 资源文件存储位置 | `/app/storage` |
|
||||||
|
|
||||||
|
### 模型提供商配置
|
||||||
|
根据您选择的 AI 提供商,您还需要配置相应的 API 密钥和基础 URL,例如:
|
||||||
|
|
||||||
|
| 环境变量 | 描述 | 必填 | 示例 |
|
||||||
|
| --- | --- | --- | --- |
|
||||||
|
| `LLM_DEFAULT_PROVIDER` | 默认 LLM 提供商 | 是 | `OpenAILike` |
|
||||||
|
| `OPENAI_LIKE_API_BASE_URL` | OpenAI 兼容 API 基础 URL | 是 | `https://your-api-base-url` |
|
||||||
|
| `OPENAI_LIKE_API_KEY` | OpenAI 兼容 API 密钥 | 是 | `your-openai-like-api-key` |
|
||||||
|
|
||||||
|
### 大模型配置
|
||||||
|
|
||||||
|
| 环境变量 | 描述 | 必填 | 示例 |
|
||||||
|
| --- | --- | --- | --- |
|
||||||
|
| `LLM_DEFAULT_MODEL` | 生成页面所使用的主要模型 | 是 | `gpt-4-turbo` |
|
||||||
|
| `LLM_MINOR_MODEL` | 辅助页面生成所使用的次级模型 | 是 | `gpt-3.5-turbo` |
|
||||||
|
|
||||||
|
## 升级 UPage
|
||||||
|
|
||||||
|
当有新版本发布时,您可以按照以下步骤升级 UPage:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# 拉取最新镜像
|
||||||
|
docker pull halohub/upage:latest
|
||||||
|
|
||||||
|
# 停止并删除旧容器
|
||||||
|
docker stop upage
|
||||||
|
docker rm upage
|
||||||
|
|
||||||
|
# 使用新镜像启动容器(使用与之前相同的环境变量和挂载)
|
||||||
|
docker run -d \
|
||||||
|
--name upage \
|
||||||
|
--restart unless-stopped \
|
||||||
|
-p 3000:3000 \
|
||||||
|
-e LLM_DEFAULT_PROVIDER=OpenAILike \
|
||||||
|
-e OPENAI_LIKE_API_BASE_URL=your-openai-like-api-base-url \
|
||||||
|
-e OPENAI_LIKE_API_KEY=your-openai-like-api-key \
|
||||||
|
-e LLM_DEFAULT_MODEL=your-default-model \
|
||||||
|
-e LLM_MINOR_MODEL=your-minor-model \
|
||||||
|
-v ~/upage/data:/app/data \
|
||||||
|
-v ~/upage/logs:/app/logs \
|
||||||
|
-v ~/upage/storage:/app/storage \
|
||||||
|
halohub/upage:latest
|
||||||
|
```
|
||||||
|
|
||||||
|
## 下一步
|
||||||
|
|
||||||
|
- 阅读[用户指南](../user-guide/basics)学习如何使用 UPage 创建网页
|
||||||
|
- 探索[配置参考](../configuration)了解所有可用的配置选项
|
||||||
|
- 探索[Logto 认证集成](./logto)了解如何集成 Logto 实现用户认证
|
||||||
|
|
||||||
138
docs/content/deployment/logto.md
Normal file
138
docs/content/deployment/logto.md
Normal file
@@ -0,0 +1,138 @@
|
|||||||
|
---
|
||||||
|
id: logto
|
||||||
|
title: Logto 认证集成
|
||||||
|
---
|
||||||
|
|
||||||
|
# Logto 认证集成
|
||||||
|
|
||||||
|
:::info
|
||||||
|
UPage 默认仅支持单一匿名用户访问,但您可以通过集成 Logto 实现用户认证,支持多用户登录
|
||||||
|
:::
|
||||||
|
|
||||||
|
UPage 支持与 [Logto](https://logto.io/) 集成,提供完整的用户认证体系。本文档将指导您如何配置 UPage 与 Logto 的集成。
|
||||||
|
|
||||||
|
## 什么是 Logto?
|
||||||
|
|
||||||
|
Logto 是一个开源的身份验证和授权解决方案,提供了完整的用户管理、身份验证和授权功能。通过与 Logto 集成,UPage 可以支持用户注册、登录、密码重置等功能,同时提供基于角色的访问控制。
|
||||||
|
|
||||||
|
## Logto 接入方式
|
||||||
|
|
||||||
|
Logto 支持两种接入方式,您可以根据自己的需求选择合适的方式。
|
||||||
|
|
||||||
|
1. 使用 Logto 官方提供的托管服务 - Logto Cloud。
|
||||||
|
2. 本地部署开源版 Logto 服务。
|
||||||
|
|
||||||
|
:::info
|
||||||
|
两种方式仅在接入方式上有所区别,在配置上完全一致。
|
||||||
|
:::
|
||||||
|
|
||||||
|
### 使用官方托管服务
|
||||||
|
|
||||||
|
访问 [Logto 官方网站](https://logto.io/),注册一个账号即可进行下一步操作。
|
||||||
|
|
||||||
|
### 本地部署 Logto
|
||||||
|
|
||||||
|
UPage 提供了一个简化的 Logto 部署配置。在 UPage 项目目录下,您可以找到 `logto/docker-compose.yaml` 文件以及 `.env` 文件。
|
||||||
|
|
||||||
|
```bash
|
||||||
|
curl -L https://raw.githubusercontent.com/halo-dev/upage/refs/heads/main/logto/docker-compose.yaml -o ~/upage/logto/docker-compose.yaml
|
||||||
|
curl -L https://raw.githubusercontent.com/halo-dev/upage/refs/heads/main/logto/.env -o ~/upage/logto/.env
|
||||||
|
cd ~/upage/logto
|
||||||
|
docker-compose up -d
|
||||||
|
```
|
||||||
|
|
||||||
|
这将启动 Logto 服务,默认情况下可以通过 `http://localhost:3002` 访问 Logto 管理控制台。
|
||||||
|
|
||||||
|
:::caution
|
||||||
|
在生产环境部署时,请务必修改 `.env` 文件中的 `LOGTO_ENDPOINT` 、 `LOGTO_ADMIN_ENDPOINT` 以及 `LOGTO_POSTGRES_PASSWORD` 配置。
|
||||||
|
:::
|
||||||
|
|
||||||
|
## 配置 Logto
|
||||||
|
|
||||||
|
1. 访问 Logto 管理控制台,
|
||||||
|
2. 创建一个新的应用程序:
|
||||||
|
- 应用类型:传统网页应用
|
||||||
|
- 应用名称:UPage
|
||||||
|
- 重定向 URIs:`http://${UPAGE_URL}/api/auth/callback`
|
||||||
|
- 退出登录后重定向 URIs:`http://${UPAGE_URL}`
|
||||||
|
- CORS 允许的来源:`http://${UPAGE_URL}`
|
||||||
|
- 其他配置根据实际情况填写
|
||||||
|
3. 记录应用程序的 ID 和密钥,这些将用于配置 UPage
|
||||||
|
|
||||||
|
## 配置 UPage 与 Logto 集成
|
||||||
|
|
||||||
|
### 环境变量配置
|
||||||
|
|
||||||
|
在 UPage 的环境变量中配置 Logto 相关参数:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# 启用 Logto 认证
|
||||||
|
LOGTO_ENABLE=true
|
||||||
|
# Logto LOGTO_ENDPOINT 地址
|
||||||
|
LOGTO_ENDPOINT=http://localhost:3001
|
||||||
|
# Logto 应用程序 ID
|
||||||
|
LOGTO_APP_ID=your-app-id
|
||||||
|
# Logto 应用程序密钥
|
||||||
|
LOGTO_APP_SECRET=your-app-secret
|
||||||
|
# Logto 用于加密 cookie 的密钥,随机生成一个 32 位密钥即可
|
||||||
|
LOGTO_COOKIE_SECRET=your-cookie-secret
|
||||||
|
# 填写 UPage 地址,根据实际部署地址修改
|
||||||
|
LOGTO_BASE_URL=http://localhost:3000
|
||||||
|
```
|
||||||
|
|
||||||
|
如果使用 Docker compose 部署 UPage,在 `docker-compose.yml` 文件中添加这些环境变量:
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
services:
|
||||||
|
upage:
|
||||||
|
# ... 其他配置
|
||||||
|
environment:
|
||||||
|
# ... 其他环境变量
|
||||||
|
- LOGTO_ENABLE=true
|
||||||
|
- LOGTO_ENDPOINT=http://logto:3001
|
||||||
|
- LOGTO_APP_ID=your-app-id
|
||||||
|
- LOGTO_APP_SECRET=your-app-secret
|
||||||
|
- LOGTO_COOKIE_SECRET=your-cookie-secret
|
||||||
|
- LOGTO_BASE_URL=http://localhost:3000
|
||||||
|
```
|
||||||
|
|
||||||
|
### 配置说明
|
||||||
|
|
||||||
|
| 环境变量 | 描述 | 示例 |
|
||||||
|
| --- | --- | --- |
|
||||||
|
| `LOGTO_ENABLE` | 是否启用 Logto 认证 | `true` |
|
||||||
|
| `LOGTO_ENDPOINT` | Logto 服务的 URL | `http://localhost:3001` |
|
||||||
|
| `LOGTO_APP_ID` | Logto 应用程序 ID | `your-app-id` |
|
||||||
|
| `LOGTO_APP_SECRET` | Logto 应用程序密钥 | `your-app-secret` |
|
||||||
|
| `LOGTO_COOKIE_SECRET` | 用于加密 cookie 的密钥 | `00bf44b6ceaa648eca6ad172f0cd8c8c` |
|
||||||
|
| `LOGTO_BASE_URL` | UPage 地址 | `http://localhost:3000` |
|
||||||
|
|
||||||
|
## Logto 使用技巧
|
||||||
|
|
||||||
|
:::tip
|
||||||
|
UPage 集成 Logto 步骤已完成,以下内容是 Logto 的特殊使用技巧,供扩展阅读,如无定制化需求可忽略。
|
||||||
|
:::
|
||||||
|
|
||||||
|
### 自定义登录界面
|
||||||
|
|
||||||
|
Logto 提供了自定义登录界面的功能:
|
||||||
|
|
||||||
|
1. 在 Logto 管理控制台中,导航到"外观"
|
||||||
|
2. 自定义登录页面的样式、颜色和品牌元素
|
||||||
|
3. 预览并保存更改
|
||||||
|
|
||||||
|
### 配置社交登录
|
||||||
|
|
||||||
|
Logto 支持多种社交登录方式:
|
||||||
|
|
||||||
|
1. 在 Logto 管理控制台中,导航到"连接器"
|
||||||
|
2. 添加社交登录连接器(如 Google、GitHub、微信等)
|
||||||
|
3. 按照向导完成配置
|
||||||
|
|
||||||
|
### 配置多因素认证
|
||||||
|
|
||||||
|
启用多因素认证以提高安全性:
|
||||||
|
|
||||||
|
1. 在 Logto 管理控制台中,导航到"安全"
|
||||||
|
2. 启用多因素认证
|
||||||
|
3. 配置多因素认证方式(如 TOTP、短信等)
|
||||||
40
docs/content/deployment/others.md
Normal file
40
docs/content/deployment/others.md
Normal file
@@ -0,0 +1,40 @@
|
|||||||
|
---
|
||||||
|
id: others
|
||||||
|
title: 其他配置
|
||||||
|
---
|
||||||
|
|
||||||
|
# 其他配置
|
||||||
|
|
||||||
|
本文档提供了部署 UPage 时的一些其他配置选项和最佳实践。
|
||||||
|
|
||||||
|
## 使用 Nginx 反向代理
|
||||||
|
|
||||||
|
如果您需要使用 Nginx 作为反向代理,可以参考以下配置:
|
||||||
|
|
||||||
|
```nginx
|
||||||
|
server {
|
||||||
|
listen 80;
|
||||||
|
server_name your-domain.com;
|
||||||
|
|
||||||
|
location / {
|
||||||
|
proxy_pass http://localhost:3000;
|
||||||
|
proxy_set_header Host $host;
|
||||||
|
proxy_set_header X-Real-IP $remote_addr;
|
||||||
|
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||||
|
proxy_set_header X-Forwarded-Proto $scheme;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
## 配置 HTTPS
|
||||||
|
|
||||||
|
建议使用 Nginx 或其他反向代理来处理 HTTPS 请求。您可以使用 Let's Encrypt 获取免费的 SSL 证书。
|
||||||
|
|
||||||
|
## 数据备份
|
||||||
|
|
||||||
|
UPage 的数据存储在挂载的 `data` 目录中,您可以定期备份该目录来保护您的数据:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# 备份数据目录
|
||||||
|
tar -czf upage-data-backup-$(date +%Y%m%d).tar.gz ./upage/data
|
||||||
|
```
|
||||||
229
docs/content/deployment/source.md
Normal file
229
docs/content/deployment/source.md
Normal file
@@ -0,0 +1,229 @@
|
|||||||
|
---
|
||||||
|
id: source
|
||||||
|
title: 源码部署
|
||||||
|
---
|
||||||
|
|
||||||
|
# 源码部署
|
||||||
|
|
||||||
|
本文档详细介绍如何从源码构建和部署 UPage。如果您希望自定义 UPage 或者参与开发,这是最合适的部署方式。
|
||||||
|
|
||||||
|
## 前置条件
|
||||||
|
|
||||||
|
在开始之前,请确保您的系统满足以下要求:
|
||||||
|
|
||||||
|
- Node.js 18.18.0 或更高版本
|
||||||
|
- pnpm 9.4.0 或更高版本
|
||||||
|
- Git
|
||||||
|
|
||||||
|
## 下载并构建代码
|
||||||
|
|
||||||
|
### 克隆代码库
|
||||||
|
|
||||||
|
首先,克隆 UPage 的代码库:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
git clone https://github.com/halo-dev/upage.git
|
||||||
|
cd upage
|
||||||
|
```
|
||||||
|
|
||||||
|
### 安装依赖
|
||||||
|
|
||||||
|
使用 pnpm 安装项目依赖:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
pnpm install
|
||||||
|
```
|
||||||
|
|
||||||
|
### 配置环境变量
|
||||||
|
|
||||||
|
拷贝 `.env.example` 文件,创建 `.env` 文件:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
cp .env.example .env
|
||||||
|
```
|
||||||
|
|
||||||
|
配置必要的环境变量:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# 基础配置
|
||||||
|
PORT=3000
|
||||||
|
NODE_ENV=production
|
||||||
|
OPERATING_ENV=production
|
||||||
|
LOG_LEVEL=info
|
||||||
|
USAGE_LOG_FILE=true
|
||||||
|
MAX_UPLOAD_SIZE_MB=5
|
||||||
|
STORAGE_DIR=./storage
|
||||||
|
|
||||||
|
# AI 提供商配置
|
||||||
|
LLM_DEFAULT_PROVIDER=OpenAILike
|
||||||
|
OPENAI_LIKE_API_BASE_URL=your-openai-like-api-base-url
|
||||||
|
OPENAI_LIKE_API_KEY=your-openai-like-api-key
|
||||||
|
LLM_DEFAULT_MODEL=your-default-model
|
||||||
|
LLM_MINOR_MODEL=your-minor-model
|
||||||
|
```
|
||||||
|
|
||||||
|
您可以根据需要配置不同的 AI 提供商,详细配置请参考[配置参考](../configuration)。
|
||||||
|
|
||||||
|
### 生成 Prisma 客户端
|
||||||
|
|
||||||
|
```bash
|
||||||
|
pnpm setup
|
||||||
|
```
|
||||||
|
|
||||||
|
## 开发模式使用
|
||||||
|
|
||||||
|
如果您想在开发模式下运行 UPage,可以使用以下命令:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
pnpm dev
|
||||||
|
```
|
||||||
|
|
||||||
|
开发服务器启动后,您可以通过浏览器访问:
|
||||||
|
|
||||||
|
```
|
||||||
|
http://localhost:5173
|
||||||
|
```
|
||||||
|
|
||||||
|
这将启动开发服务器,支持热重载,方便您进行开发和调试。
|
||||||
|
|
||||||
|
## 生产模式使用
|
||||||
|
|
||||||
|
构建 UPage 项目:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
pnpm build
|
||||||
|
```
|
||||||
|
|
||||||
|
### 启动服务
|
||||||
|
|
||||||
|
启动 UPage 服务:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
pnpm preview
|
||||||
|
```
|
||||||
|
|
||||||
|
服务启动后,您可以通过浏览器访问:
|
||||||
|
|
||||||
|
```
|
||||||
|
http://localhost:3000
|
||||||
|
```
|
||||||
|
|
||||||
|
## 使用 PM2 管理服务(可选)
|
||||||
|
|
||||||
|
在生产环境中,可以使用 PM2 来管理 Node.js 应用程序:
|
||||||
|
|
||||||
|
### 全局安装 PM2
|
||||||
|
|
||||||
|
```bash
|
||||||
|
npm install -g pm2
|
||||||
|
```
|
||||||
|
|
||||||
|
### 创建 PM2 配置文件
|
||||||
|
|
||||||
|
创建 `ecosystem.config.js` 文件:
|
||||||
|
|
||||||
|
```javascript
|
||||||
|
module.exports = {
|
||||||
|
apps: [{
|
||||||
|
name: 'upage',
|
||||||
|
script: './server.mjs',
|
||||||
|
instances: 1,
|
||||||
|
autorestart: true,
|
||||||
|
watch: false,
|
||||||
|
max_memory_restart: '1G',
|
||||||
|
env: {
|
||||||
|
NODE_ENV: 'production',
|
||||||
|
OPERATING_ENV: 'production',
|
||||||
|
PORT: 3000,
|
||||||
|
LLM_DEFAULT_PROVIDER: 'OpenAILike',
|
||||||
|
OPENAI_LIKE_API_BASE_URL: 'your-openai-like-api-base-url',
|
||||||
|
OPENAI_LIKE_API_KEY: 'your-openai-like-api-key',
|
||||||
|
LLM_DEFAULT_MODEL: 'your-default-model',
|
||||||
|
LLM_MINOR_MODEL: 'your-minor-model',
|
||||||
|
}
|
||||||
|
}]
|
||||||
|
};
|
||||||
|
```
|
||||||
|
|
||||||
|
### 启动服务
|
||||||
|
|
||||||
|
```bash
|
||||||
|
pm2 start ecosystem.config.js
|
||||||
|
```
|
||||||
|
|
||||||
|
### 查看日志
|
||||||
|
|
||||||
|
```bash
|
||||||
|
pm2 logs upage
|
||||||
|
```
|
||||||
|
|
||||||
|
### 监控服务
|
||||||
|
|
||||||
|
```bash
|
||||||
|
pm2 monit
|
||||||
|
```
|
||||||
|
|
||||||
|
## 升级 UPage
|
||||||
|
|
||||||
|
当有新版本发布时,您可以按照以下步骤升级 UPage:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# 拉取最新代码
|
||||||
|
git pull origin main
|
||||||
|
|
||||||
|
# 安装依赖
|
||||||
|
pnpm install
|
||||||
|
|
||||||
|
# 构建项目
|
||||||
|
pnpm build
|
||||||
|
|
||||||
|
# 开发环境使用
|
||||||
|
pnpm dev
|
||||||
|
|
||||||
|
# 生产环境使用
|
||||||
|
pnpm preview
|
||||||
|
|
||||||
|
# 或者如果使用 PM2
|
||||||
|
pm2 restart upage
|
||||||
|
```
|
||||||
|
|
||||||
|
## 故障排除
|
||||||
|
|
||||||
|
### 依赖安装失败
|
||||||
|
|
||||||
|
如果依赖安装失败,可以尝试清除 pnpm 缓存:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
pnpm store prune
|
||||||
|
pnpm install
|
||||||
|
```
|
||||||
|
|
||||||
|
### 构建失败
|
||||||
|
|
||||||
|
如果构建失败,可以尝试清除构建缓存:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
pnpm clean
|
||||||
|
pnpm build
|
||||||
|
```
|
||||||
|
|
||||||
|
### 数据库错误
|
||||||
|
|
||||||
|
如果遇到数据库相关错误,可以尝试重新初始化数据库
|
||||||
|
|
||||||
|
```bash
|
||||||
|
pnpm prisma migrate reset
|
||||||
|
```
|
||||||
|
|
||||||
|
:::danger
|
||||||
|
请注意,这将清空所有数据并重置数据库,切勿在生产环境中使用。
|
||||||
|
:::
|
||||||
|
|
||||||
|
### 日志查看
|
||||||
|
|
||||||
|
检查日志文件以获取更多错误信息:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
cat logs/combined-*.log
|
||||||
|
cat logs/error-*.log
|
||||||
|
```
|
||||||
286
docs/content/faq.md
Normal file
286
docs/content/faq.md
Normal file
@@ -0,0 +1,286 @@
|
|||||||
|
---
|
||||||
|
id: faq
|
||||||
|
title: 常见问题
|
||||||
|
---
|
||||||
|
|
||||||
|
# 常见问题
|
||||||
|
|
||||||
|
本文档整理了使用 UPage 时的常见问题和解答,帮助您快速解决可能遇到的问题。
|
||||||
|
|
||||||
|
## 基本问题
|
||||||
|
|
||||||
|
### UPage 是什么?
|
||||||
|
|
||||||
|
UPage 是一款基于人工智能的可视化网页构建平台,支持多种 AI 提供商集成,基于自然语言快速实现定制化网页。它允许用户通过简单的文字描述生成完整的网页,并提供可视化编辑工具进行进一步定制。
|
||||||
|
|
||||||
|
### UPage 适合哪些用户?
|
||||||
|
|
||||||
|
UPage 适合各类需要快速创建网页的用户,包括但不限于:
|
||||||
|
|
||||||
|
- 开发者:快速创建原型和演示页面
|
||||||
|
- 设计师:将设计理念转化为实际网页
|
||||||
|
- 内容创作者:创建展示内容的网页
|
||||||
|
- 营销人员:制作营销着陆页
|
||||||
|
- 小企业主:创建企业网站和产品展示页面
|
||||||
|
- 教育工作者:制作教学资源和课程页面
|
||||||
|
|
||||||
|
### UPage 是开源的吗?
|
||||||
|
|
||||||
|
是的,UPage 是一个开源项目,采用 MIT 许可证。您可以在 [GitHub](https://github.com/halo-dev/upage) 上查看源代码,也可以参与项目开发和改进。
|
||||||
|
|
||||||
|
## 安装和部署
|
||||||
|
|
||||||
|
### 如何安装 UPage?
|
||||||
|
|
||||||
|
UPage 提供多种安装方式,最简单的方法是使用 Docker:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
docker run -d \
|
||||||
|
--name upage \
|
||||||
|
--restart unless-stopped \
|
||||||
|
-p 3000:3000 \
|
||||||
|
-e LLM_DEFAULT_PROVIDER=OpenAILike \
|
||||||
|
-e OPENAI_LIKE_API_KEY=your-openai-like-api-key \
|
||||||
|
-e LLM_DEFAULT_MODEL=your-default-model \
|
||||||
|
-e LLM_MINOR_MODEL=your-minor-model \
|
||||||
|
-v ./data:/app/data \
|
||||||
|
-v ./logs:/app/logs \
|
||||||
|
-v ./storage:/app/storage \
|
||||||
|
ghcr.io/halo-dev/upage
|
||||||
|
```
|
||||||
|
|
||||||
|
详细的安装说明请参考[快速开始](quick-start)文档。
|
||||||
|
|
||||||
|
### UPage 的系统要求是什么?
|
||||||
|
|
||||||
|
UPage 的最低系统要求:
|
||||||
|
|
||||||
|
- Docker 20.10.0 或更高版本(如果使用 Docker 部署)
|
||||||
|
- Node.js 18.18.0 或更高版本(如果源码部署)
|
||||||
|
- 至少 2GB 可用内存
|
||||||
|
- 至少 1GB 可用磁盘空间
|
||||||
|
- 互联网连接(用于访问 AI API)
|
||||||
|
|
||||||
|
### 如何更新 UPage?
|
||||||
|
|
||||||
|
如果使用 Docker 部署,可以按照以下步骤更新 UPage:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# 拉取最新镜像
|
||||||
|
docker pull ghcr.io/halo-dev/upage:latest
|
||||||
|
|
||||||
|
# 停止并删除旧容器
|
||||||
|
docker stop upage
|
||||||
|
docker rm upage
|
||||||
|
|
||||||
|
# 使用新镜像启动容器(使用与之前相同的环境变量和挂载)
|
||||||
|
docker run -d \
|
||||||
|
--name upage \
|
||||||
|
--restart unless-stopped \
|
||||||
|
-p 3000:3000 \
|
||||||
|
... # 其他环境变量和挂载
|
||||||
|
ghcr.io/halo-dev/upage:latest
|
||||||
|
```
|
||||||
|
|
||||||
|
如果使用 Docker Compose,则可以执行:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
docker-compose pull
|
||||||
|
docker-compose down
|
||||||
|
docker-compose up -d
|
||||||
|
```
|
||||||
|
|
||||||
|
## AI 集成
|
||||||
|
|
||||||
|
### UPage 支持哪些 AI 提供商?
|
||||||
|
|
||||||
|
UPage 支持多种 AI 提供商,包括:
|
||||||
|
|
||||||
|
- OpenAI(GPT-3.5、GPT-4 等)
|
||||||
|
- Anthropic Claude
|
||||||
|
- Google Gemini
|
||||||
|
- 兼容 OpenAI 接口的服务(如 Azure OpenAI、智谱 AI 等)
|
||||||
|
- Ollama(本地部署的开源模型)
|
||||||
|
|
||||||
|
### 如何配置 AI 提供商?
|
||||||
|
|
||||||
|
通过环境变量配置 AI 提供商,例如:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# OpenAI
|
||||||
|
-e LLM_DEFAULT_PROVIDER=OpenAI \
|
||||||
|
-e OPENAI_API_KEY=your-openai-api-key \
|
||||||
|
-e LLM_DEFAULT_MODEL=gpt-4-turbo \
|
||||||
|
-e LLM_MINOR_MODEL=gpt-3.5-turbo
|
||||||
|
|
||||||
|
# Anthropic Claude
|
||||||
|
-e LLM_DEFAULT_PROVIDER=Anthropic \
|
||||||
|
-e ANTHROPIC_API_KEY=your-anthropic-api-key \
|
||||||
|
-e LLM_DEFAULT_MODEL=claude-3-opus-20240229 \
|
||||||
|
-e LLM_MINOR_MODEL=claude-3-haiku-20240307
|
||||||
|
```
|
||||||
|
|
||||||
|
详细的配置选项请参考[配置参考](configuration)文档。
|
||||||
|
|
||||||
|
### 使用 AI 生成页面需要多少 token?
|
||||||
|
|
||||||
|
生成一个标准页面通常需要 2,000-10,000 个 token,具体取决于页面的复杂度和内容量。复杂的页面可能需要更多 token。UPage 会优化 prompt,尽量减少 token 消耗。
|
||||||
|
|
||||||
|
### 如何优化 AI 提示以获得更好的结果?
|
||||||
|
|
||||||
|
有效的 AI 提示应该:
|
||||||
|
|
||||||
|
- 明确指定页面类型和目的
|
||||||
|
- 列出所需的主要组件和内容
|
||||||
|
- 描述设计风格和布局偏好
|
||||||
|
- 提供具体的内容示例或要求
|
||||||
|
- 使用清晰、具体的语言
|
||||||
|
|
||||||
|
例如:
|
||||||
|
```
|
||||||
|
创建一个现代风格的产品登录页面,用于展示我们的智能手表产品。页面应包含:
|
||||||
|
1. 顶部导航栏,带有品牌标志和菜单
|
||||||
|
2. 醒目的标题和副标题,强调产品的主要卖点
|
||||||
|
3. 产品图片展示区,包含至少3张不同角度的产品图
|
||||||
|
...
|
||||||
|
```
|
||||||
|
|
||||||
|
## 使用问题
|
||||||
|
|
||||||
|
### 如何创建第一个页面?
|
||||||
|
|
||||||
|
1. 登录 UPage
|
||||||
|
2. 点击侧边栏中的"新建页面"按钮
|
||||||
|
3. 选择"AI 创建"、"从模板创建"或"空白页面"
|
||||||
|
4. 如果选择 AI 创建,输入页面描述并点击"生成"
|
||||||
|
5. 等待 AI 生成页面,然后进行进一步编辑
|
||||||
|
|
||||||
|
### 如何编辑 AI 生成的页面?
|
||||||
|
|
||||||
|
1. 在页面列表中选择要编辑的页面
|
||||||
|
2. 使用可视化编辑器修改页面元素
|
||||||
|
3. 可以拖拽组件、调整布局、编辑文本和图片
|
||||||
|
4. 使用右侧属性面板修改组件属性和样式
|
||||||
|
5. 也可以使用 AI 辅助功能进行局部或整体调整
|
||||||
|
|
||||||
|
### 如何导出页面?
|
||||||
|
|
||||||
|
1. 在页面列表中选择要导出的页面
|
||||||
|
2. 点击操作菜单中的"导出"选项
|
||||||
|
3. 选择导出格式(HTML/CSS/JS、ZIP、JSON 或 PDF)
|
||||||
|
4. 配置导出选项
|
||||||
|
5. 点击"导出"开始下载
|
||||||
|
|
||||||
|
### UPage 支持响应式设计吗?
|
||||||
|
|
||||||
|
是的,UPage 生成的页面默认支持响应式设计,可以自动适应不同屏幕尺寸。您可以在编辑器中预览页面在不同设备上的显示效果,并进行针对性调整。
|
||||||
|
|
||||||
|
## 数据和安全
|
||||||
|
|
||||||
|
### UPage 如何存储数据?
|
||||||
|
|
||||||
|
UPage 使用 SQLite 数据库存储页面数据和用户配置,存储在挂载的 `data` 目录中。上传的文件和资源存储在挂载的 `storage` 目录中。日志文件存储在挂载的 `logs` 目录中。
|
||||||
|
|
||||||
|
### 如何备份 UPage 数据?
|
||||||
|
|
||||||
|
备份 UPage 数据的最简单方法是备份挂载的数据目录:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# 备份数据目录
|
||||||
|
tar -czf upage-data-backup-$(date +%Y%m%d).tar.gz ./data
|
||||||
|
|
||||||
|
# 备份存储目录
|
||||||
|
tar -czf upage-storage-backup-$(date +%Y%m%d).tar.gz ./storage
|
||||||
|
```
|
||||||
|
|
||||||
|
### UPage 如何处理用户隐私?
|
||||||
|
|
||||||
|
UPage 本身不会收集或传输用户数据,除非明确配置。当使用 AI 功能时,页面内容会发送到配置的 AI 提供商进行处理。请确保您使用的 AI 提供商符合您的隐私要求。
|
||||||
|
|
||||||
|
### 如何配置 UPage 的访问控制?
|
||||||
|
|
||||||
|
UPage 支持通过 Logto 进行用户认证和访问控制。配置 Logto 后,您可以创建用户账户、分配角色和权限,实现细粒度的访问控制。详细配置请参考[Logto 认证集成](deployment/logto)文档。
|
||||||
|
|
||||||
|
## 故障排除
|
||||||
|
|
||||||
|
### 页面生成失败怎么办?
|
||||||
|
|
||||||
|
如果页面生成失败,可能的原因和解决方法:
|
||||||
|
|
||||||
|
1. **AI API 连接问题**:检查网络连接和 API 密钥是否正确
|
||||||
|
2. **提示过于复杂**:尝试简化页面描述,分步骤生成
|
||||||
|
3. **token 限制**:检查是否达到 AI 提供商的 token 限制
|
||||||
|
4. **模型不支持**:尝试使用更强大的模型或不同的 AI 提供商
|
||||||
|
|
||||||
|
### 如何查看系统日志?
|
||||||
|
|
||||||
|
可以通过以下方式查看系统日志:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# 查看容器日志
|
||||||
|
docker logs upage
|
||||||
|
|
||||||
|
# 查看错误日志文件
|
||||||
|
cat logs/error-*.log
|
||||||
|
|
||||||
|
# 查看所有日志文件
|
||||||
|
cat logs/combined-*.log
|
||||||
|
```
|
||||||
|
|
||||||
|
### 如何解决数据库错误?
|
||||||
|
|
||||||
|
如果遇到数据库相关错误,可以尝试:
|
||||||
|
|
||||||
|
1. 检查数据目录的权限:`chmod -R 755 ./data`
|
||||||
|
2. 备份并重新初始化数据库:
|
||||||
|
```bash
|
||||||
|
# 备份当前数据库
|
||||||
|
cp ./data/upage.db ./data/upage.db.bak
|
||||||
|
|
||||||
|
# 删除并重新初始化
|
||||||
|
rm ./data/upage.db
|
||||||
|
docker restart upage
|
||||||
|
```
|
||||||
|
|
||||||
|
### 容器无法启动怎么办?
|
||||||
|
|
||||||
|
如果 Docker 容器无法启动,可以尝试:
|
||||||
|
|
||||||
|
1. 检查日志:`docker logs upage`
|
||||||
|
2. 验证环境变量:确保所有必需的环境变量都已正确设置
|
||||||
|
3. 检查磁盘空间:确保有足够的磁盘空间
|
||||||
|
4. 检查端口冲突:确保端口 3000 没有被其他服务占用
|
||||||
|
5. 检查文件权限:确保挂载的目录具有正确的权限
|
||||||
|
|
||||||
|
## 高级问题
|
||||||
|
|
||||||
|
### 如何自定义 UPage 的主题?
|
||||||
|
|
||||||
|
目前 UPage 不支持完全自定义主题,但您可以通过以下方式调整外观:
|
||||||
|
|
||||||
|
1. 在页面编辑器中使用自定义 CSS
|
||||||
|
2. 使用 AI 生成符合特定设计风格的页面
|
||||||
|
3. 在导出的代码中进行进一步自定义
|
||||||
|
|
||||||
|
### UPage 支持插件系统吗?
|
||||||
|
|
||||||
|
目前 UPage 不提供正式的插件系统,但作为开源项目,您可以通过 fork 代码库并进行修改来扩展功能。
|
||||||
|
|
||||||
|
### 如何与现有系统集成?
|
||||||
|
|
||||||
|
UPage 提供多种集成方式:
|
||||||
|
|
||||||
|
1. **API 集成**:使用 UPage API 与其他系统交互
|
||||||
|
2. **导出集成**:导出页面代码并集成到现有系统
|
||||||
|
3. **部署集成**:使用 Vercel 或 Netlify 集成直接部署页面
|
||||||
|
4. **认证集成**:通过 Logto 与现有认证系统集成
|
||||||
|
|
||||||
|
### UPage 与其他页面构建器的区别是什么?
|
||||||
|
|
||||||
|
UPage 的主要区别在于:
|
||||||
|
|
||||||
|
1. **AI 驱动**:基于自然语言描述生成页面
|
||||||
|
2. **开源**:完全开源,可自由定制和扩展
|
||||||
|
3. **多 AI 提供商支持**:支持多种 AI 模型和提供商
|
||||||
|
4. **本地部署**:可在本地或私有云部署,保护数据安全
|
||||||
|
5. **轻量级**:资源占用较低,易于部署和维护
|
||||||
34
docs/content/index.md
Normal file
34
docs/content/index.md
Normal file
@@ -0,0 +1,34 @@
|
|||||||
|
---
|
||||||
|
id: index
|
||||||
|
title: UPage 文档
|
||||||
|
slug: /
|
||||||
|
---
|
||||||
|
|
||||||
|
# UPage
|
||||||
|
|
||||||
|
UPage 是一款基于大模型的可视化网页构建平台,支持多种 AI 提供商集成,基于自然语言快速实现定制化网页。
|
||||||
|
|
||||||
|
## 什么是 UPage?
|
||||||
|
|
||||||
|
UPage 是一个开源的网页构建工具,它利用大语言模型,让用户能够通过自然语言描述来创建和定制网页。无论您是开发者、设计师还是内容创作者,UPage 都能帮助您快速将想法转化为可视化的网页。
|
||||||
|
|
||||||
|
## 核心特性
|
||||||
|
|
||||||
|
- **基于 AI 的页面生成**:通过自然语言描述生成完整的网页
|
||||||
|
- **多种 AI 提供商支持**:兼容 OpenAI、Anthropic Claude、Google Gemini 等多种 AI 模型
|
||||||
|
- **可视化编辑器**:简洁直观的可视化编辑器界面,实时预览
|
||||||
|
- **代码导出**:生成标准的 HTML/CSS/JS 代码,方便集成到现有项目
|
||||||
|
- **响应式设计**:自动适应不同屏幕尺寸
|
||||||
|
- **部署集成**:支持一键部署到常见托管平台
|
||||||
|
|
||||||
|
## 快速开始
|
||||||
|
|
||||||
|
请查看[快速开始](quick-start.md)指南,了解如何安装和使用 UPage。
|
||||||
|
|
||||||
|
## 贡献
|
||||||
|
|
||||||
|
UPage 是一个开源项目,我们欢迎任何形式的贡献。请查看[贡献指南](contributing.md)了解如何参与项目开发。
|
||||||
|
|
||||||
|
## 许可证
|
||||||
|
|
||||||
|
UPage 采用 [基于 GPLv3 的补充协议许可证](https://github.com/halo-dev/upage/blob/main/LICENSE)。
|
||||||
121
docs/content/quick-start.md
Normal file
121
docs/content/quick-start.md
Normal file
@@ -0,0 +1,121 @@
|
|||||||
|
---
|
||||||
|
id: quick-start
|
||||||
|
title: 快速开始
|
||||||
|
---
|
||||||
|
|
||||||
|
# 快速开始
|
||||||
|
|
||||||
|
本指南将帮助您快速部署和启动 UPage,让您在几分钟内体验基于大模型的网页构建平台。
|
||||||
|
|
||||||
|
:::caution 注意
|
||||||
|
此快速启动方式仅适用于体验和测试目的,如需在生产环境中完整部署,请参考[Docker 部署指南](deployment/docker)。
|
||||||
|
:::
|
||||||
|
|
||||||
|
## 前置条件
|
||||||
|
|
||||||
|
在开始之前,请确保您的系统满足以下要求:
|
||||||
|
|
||||||
|
- Docker 已安装(推荐 Docker 20.10.0 或更高版本)
|
||||||
|
- 至少 2GB 可用内存
|
||||||
|
- 至少 2GB 可用磁盘空间
|
||||||
|
- 互联网连接(用于拉取 Docker 镜像和访问大模型 API)
|
||||||
|
|
||||||
|
## 使用 Docker 快速部署
|
||||||
|
|
||||||
|
UPage 提供了官方 Docker 镜像,可以通过以下命令快速启动:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
docker run -d \
|
||||||
|
--name upage \
|
||||||
|
--restart unless-stopped \
|
||||||
|
-p 3000:3000 \
|
||||||
|
-e LLM_DEFAULT_PROVIDER=OpenAILike \
|
||||||
|
-e OPENAI_LIKE_API_BASE_URL=your-openai-like-api-base-url \
|
||||||
|
-e OPENAI_LIKE_API_KEY=your-openai-like-api-key \
|
||||||
|
-e LLM_DEFAULT_MODEL=your-default-model \
|
||||||
|
-e LLM_MINOR_MODEL=your-minor-model \
|
||||||
|
-v ./data:/app/data \
|
||||||
|
-v ./logs:/app/logs \
|
||||||
|
-v ./storage:/app/storage \
|
||||||
|
halo-dev/upage:latest
|
||||||
|
```
|
||||||
|
|
||||||
|
### 参数说明
|
||||||
|
|
||||||
|
- `-e LLM_DEFAULT_PROVIDER=OpenAILike`:设置默认的 LLM 提供商
|
||||||
|
- `-e OPENAI_LIKE_API_BASE_URL=your-openai-like-api-base-url`:设置 API 基础 URL
|
||||||
|
- `-e OPENAI_LIKE_API_KEY=your-openai-like-api-key`:设置 API 密钥
|
||||||
|
- `-e LLM_DEFAULT_MODEL=your-default-model`:设置用于页面生成的默认 AI 模型
|
||||||
|
- `-e LLM_MINOR_MODEL=your-minor-model`:设置用于辅助任务的 AI 模型
|
||||||
|
- `-v ./data:/app/data`:挂载数据目录,用于存储数据库文件
|
||||||
|
- `-v ./logs:/app/logs`:挂载日志目录
|
||||||
|
- `-v ./storage:/app/storage`:挂载存储目录,用于存储上传的文件
|
||||||
|
|
||||||
|
|
||||||
|
## 访问 UPage
|
||||||
|
|
||||||
|
服务启动后,您可以通过浏览器访问:
|
||||||
|
|
||||||
|
```
|
||||||
|
http://localhost:3000
|
||||||
|
```
|
||||||
|
|
||||||
|
## 配置 AI 提供商
|
||||||
|
|
||||||
|
UPage 支持多种 AI 提供商,您需要至少配置一个 AI 提供商才能使用页面生成功能。以下是常见的 AI 提供商配置示例:
|
||||||
|
|
||||||
|
### DeepSeek
|
||||||
|
|
||||||
|
```bash
|
||||||
|
-e LLM_DEFAULT_PROVIDER=Deepseek \
|
||||||
|
-e DEEPSEEK_API_KEY=your-deepseek-api-key \
|
||||||
|
-e LLM_DEFAULT_MODEL=deepseek-chat \
|
||||||
|
-e LLM_MINOR_MODEL=deepseek-reasoner
|
||||||
|
```
|
||||||
|
|
||||||
|
### 兼容 OpenAI 接口的服务
|
||||||
|
|
||||||
|
```bash
|
||||||
|
-e LLM_DEFAULT_PROVIDER=OpenAILike \
|
||||||
|
-e OPENAI_LIKE_API_BASE_URL=https://your-api-base-url \
|
||||||
|
-e OPENAI_LIKE_API_KEY=your-api-key \
|
||||||
|
-e LLM_DEFAULT_MODEL=your-model-name \
|
||||||
|
-e LLM_MINOR_MODEL=your-minor-model-name
|
||||||
|
```
|
||||||
|
|
||||||
|
### OpenAI
|
||||||
|
|
||||||
|
```bash
|
||||||
|
-e LLM_DEFAULT_PROVIDER=OpenAI \
|
||||||
|
-e OPENAI_API_KEY=your-openai-api-key \
|
||||||
|
-e LLM_DEFAULT_MODEL=gpt-4-turbo \
|
||||||
|
-e LLM_MINOR_MODEL=gpt-3.5-turbo
|
||||||
|
```
|
||||||
|
|
||||||
|
### Anthropic Claude
|
||||||
|
|
||||||
|
```bash
|
||||||
|
-e LLM_DEFAULT_PROVIDER=Anthropic \
|
||||||
|
-e ANTHROPIC_API_KEY=your-anthropic-api-key \
|
||||||
|
-e LLM_DEFAULT_MODEL=claude-3-opus-20240229 \
|
||||||
|
-e LLM_MINOR_MODEL=claude-3-haiku-20240307
|
||||||
|
```
|
||||||
|
|
||||||
|
### Ollama
|
||||||
|
|
||||||
|
```bash
|
||||||
|
-e LLM_DEFAULT_PROVIDER=Ollama \
|
||||||
|
-e OLLAMA_API_BASE_URL=http://127.0.0.1:11434 \
|
||||||
|
-e LLM_DEFAULT_MODEL=llama3 \
|
||||||
|
-e LLM_MINOR_MODEL=llama3
|
||||||
|
```
|
||||||
|
|
||||||
|
:::info
|
||||||
|
详细的 AI 提供商配置请阅读[配置参考](configuration#ai-提供商配置)。
|
||||||
|
:::
|
||||||
|
|
||||||
|
## 下一步
|
||||||
|
|
||||||
|
- 探索[Docker 部署指南](deployment/docker)了解生产环境部署方案,包括使用 Docker Compose、数据备份、HTTPS 配置等
|
||||||
|
- 查看[配置参考](configuration)了解所有可用的配置选项
|
||||||
|
- 阅读[用户指南](user-guide/basics)学习如何使用 UPage 创建网页
|
||||||
159
docs/content/user-guide/ai-page-generation.md
Normal file
159
docs/content/user-guide/ai-page-generation.md
Normal file
@@ -0,0 +1,159 @@
|
|||||||
|
---
|
||||||
|
id: ai-page-generation
|
||||||
|
title: AI 页面生成
|
||||||
|
---
|
||||||
|
|
||||||
|
# AI 页面生成
|
||||||
|
|
||||||
|
UPage 的核心功能是通过人工智能生成网页。本文档将指导您如何使用 AI 功能快速创建和定制网页。
|
||||||
|
|
||||||
|
## 基于自然语言创建页面
|
||||||
|
|
||||||
|
### 创建新页面
|
||||||
|
|
||||||
|
1. 在 UPage 主界面,点击侧边栏中的"新建页面"按钮
|
||||||
|
2. 选择"AI 创建"选项
|
||||||
|
3. 在对话框中输入您的页面需求描述
|
||||||
|
4. 点击"生成"按钮
|
||||||
|
|
||||||
|
### 编写有效的页面描述
|
||||||
|
|
||||||
|
为了获得最佳结果,建议按照以下方式编写页面描述:
|
||||||
|
|
||||||
|
- **明确页面类型**:例如"产品展示页面"、"博客文章"、"联系表单"等
|
||||||
|
- **指定关键元素**:列出页面应包含的主要组件和内容
|
||||||
|
- **描述风格和布局**:说明您期望的设计风格和布局结构
|
||||||
|
- **提供具体内容**:如果有特定文本或图片要求,请明确说明
|
||||||
|
|
||||||
|
示例描述:
|
||||||
|
|
||||||
|
```
|
||||||
|
创建一个现代风格的产品登录页面,用于展示我们的智能手表产品。页面应包含:
|
||||||
|
1. 顶部导航栏,带有品牌标志和菜单
|
||||||
|
2. 醒目的标题和副标题,强调产品的主要卖点
|
||||||
|
3. 产品图片展示区,包含至少3张不同角度的产品图
|
||||||
|
4. 产品特点列表,使用图标和简短描述
|
||||||
|
5. 价格信息和"立即购买"按钮
|
||||||
|
6. 客户评价部分
|
||||||
|
7. 常见问题解答
|
||||||
|
8. 页脚,包含联系信息和社交媒体链接
|
||||||
|
整体配色应使用深蓝色和白色为主,符合科技产品的定位
|
||||||
|
```
|
||||||
|
|
||||||
|
## 迭代优化页面
|
||||||
|
|
||||||
|
### 修改现有页面
|
||||||
|
|
||||||
|
1. 选择要修改的页面
|
||||||
|
2. 点击工具栏中的"AI 辅助"按钮
|
||||||
|
3. 描述您想要进行的修改
|
||||||
|
4. AI 将生成修改建议并应用到页面
|
||||||
|
|
||||||
|
### 局部调整
|
||||||
|
|
||||||
|
您也可以针对页面的特定部分进行 AI 辅助调整:
|
||||||
|
|
||||||
|
1. 选择页面中的特定组件或区域
|
||||||
|
2. 点击右键菜单中的"AI 辅助"选项
|
||||||
|
3. 描述您希望对该部分进行的修改
|
||||||
|
4. 确认 AI 生成的调整
|
||||||
|
|
||||||
|
## AI 提示技巧
|
||||||
|
|
||||||
|
### 有效的提示模式
|
||||||
|
|
||||||
|
以下是一些有效的 AI 提示模式:
|
||||||
|
|
||||||
|
- **添加内容**:"在页面顶部添加一个公告栏,显示最新促销信息"
|
||||||
|
- **修改样式**:"将按钮颜色改为蓝色,并增加圆角效果"
|
||||||
|
- **调整布局**:"将产品展示区改为两列网格布局,每个产品卡片包含图片、标题和价格"
|
||||||
|
- **优化文案**:"将页面标题改为更吸引人的营销语言,强调产品的独特卖点"
|
||||||
|
- **增强功能**:"在产品图片区添加轮播效果,允许用户浏览多张产品图片"
|
||||||
|
|
||||||
|
### 提示示例
|
||||||
|
|
||||||
|
以下是一些实际的提示示例:
|
||||||
|
|
||||||
|
```
|
||||||
|
将页面背景改为浅灰色,增加视觉层次感
|
||||||
|
```
|
||||||
|
|
||||||
|
```
|
||||||
|
优化页面的移动端显示效果,确保在小屏幕上也能良好展示
|
||||||
|
```
|
||||||
|
|
||||||
|
```
|
||||||
|
添加一个简单的联系表单,包含姓名、邮箱和留言字段
|
||||||
|
```
|
||||||
|
|
||||||
|
```
|
||||||
|
将产品描述文本改为更简洁有力的表达,突出产品解决的问题
|
||||||
|
```
|
||||||
|
|
||||||
|
## 高级 AI 功能
|
||||||
|
|
||||||
|
### 风格迁移
|
||||||
|
|
||||||
|
您可以使用 AI 将一个页面的设计风格应用到另一个页面:
|
||||||
|
|
||||||
|
1. 在 AI 提示中引用现有页面
|
||||||
|
2. 描述您希望迁移的风格元素
|
||||||
|
3. AI 将分析并应用相似的设计风格
|
||||||
|
|
||||||
|
示例:
|
||||||
|
```
|
||||||
|
将我的"关于我们"页面的设计风格应用到这个"联系我们"页面,保持一致的视觉语言
|
||||||
|
```
|
||||||
|
|
||||||
|
### 多语言支持
|
||||||
|
|
||||||
|
UPage 支持使用 AI 生成多语言内容:
|
||||||
|
|
||||||
|
1. 创建基础页面
|
||||||
|
2. 使用 AI 辅助功能,指定目标语言
|
||||||
|
3. AI 将翻译页面内容并保持布局结构
|
||||||
|
|
||||||
|
示例:
|
||||||
|
```
|
||||||
|
将此页面内容翻译成英文,保持相同的布局和设计
|
||||||
|
```
|
||||||
|
|
||||||
|
## 最佳实践
|
||||||
|
|
||||||
|
### 审查和编辑
|
||||||
|
|
||||||
|
AI 生成的内容通常需要人工审查和编辑:
|
||||||
|
|
||||||
|
1. 检查生成的文本是否准确、相关
|
||||||
|
2. 调整布局和样式以符合品牌要求
|
||||||
|
3. 确保所有链接和功能正常工作
|
||||||
|
4. 优化图片和媒体内容
|
||||||
|
|
||||||
|
### 渐进式生成
|
||||||
|
|
||||||
|
对于复杂页面,采用渐进式生成方法:
|
||||||
|
|
||||||
|
1. 首先生成基本页面结构
|
||||||
|
2. 逐步添加和完善各个部分
|
||||||
|
3. 使用 AI 辅助进行细节优化
|
||||||
|
4. 最后进行整体协调和统一
|
||||||
|
|
||||||
|
## 故障排除
|
||||||
|
|
||||||
|
### 生成结果不理想
|
||||||
|
|
||||||
|
如果 AI 生成的页面不符合预期:
|
||||||
|
|
||||||
|
1. 尝试提供更具体、更详细的描述
|
||||||
|
2. 分解复杂需求为多个简单步骤
|
||||||
|
3. 提供参考示例或链接
|
||||||
|
4. 调整使用的 AI 模型(如果可用)
|
||||||
|
|
||||||
|
### 性能问题
|
||||||
|
|
||||||
|
如果遇到性能问题:
|
||||||
|
|
||||||
|
1. 减少单次生成的页面复杂度
|
||||||
|
2. 分步骤生成复杂页面
|
||||||
|
3. 检查网络连接和 API 状态
|
||||||
|
4. 确认 AI 提供商配置正确
|
||||||
142
docs/content/user-guide/basics.md
Normal file
142
docs/content/user-guide/basics.md
Normal file
@@ -0,0 +1,142 @@
|
|||||||
|
---
|
||||||
|
id: basics
|
||||||
|
title: 基础使用
|
||||||
|
---
|
||||||
|
|
||||||
|
# 基础使用
|
||||||
|
|
||||||
|
本文档介绍 UPage 的基本使用方法,帮助您快速上手这款基于 AI 的网页构建平台。
|
||||||
|
|
||||||
|
## 登录系统
|
||||||
|
|
||||||
|
1. 打开浏览器,访问 UPage 的地址(例如 `http://localhost:3000`)
|
||||||
|
2. 如果已配置 Logto 认证,您将被重定向到登录页面
|
||||||
|
3. 输入用户名和密码登录系统
|
||||||
|
4. 如果未配置认证系统,您将直接进入 UPage 主界面
|
||||||
|
|
||||||
|
## 界面概览
|
||||||
|
|
||||||
|
UPage 的界面主要分为以下几个部分:
|
||||||
|
|
||||||
|
- **顶部导航栏**:包含项目切换、用户信息和全局设置
|
||||||
|
- **侧边栏**:包含页面列表和创建新页面的入口
|
||||||
|
- **主内容区**:显示当前编辑的页面或预览
|
||||||
|
- **工具栏**:提供各种编辑工具和操作按钮
|
||||||
|
|
||||||
|
## 创建新页面
|
||||||
|
|
||||||
|
### 使用 AI 创建页面
|
||||||
|
|
||||||
|
1. 点击侧边栏中的"新建页面"按钮
|
||||||
|
2. 选择"AI 创建"选项
|
||||||
|
3. 在对话框中描述您想要创建的页面,例如:
|
||||||
|
```
|
||||||
|
创建一个产品展示页面,包含标题、产品图片、详细描述和购买按钮
|
||||||
|
```
|
||||||
|
4. 点击"生成"按钮,系统将基于您的描述生成页面
|
||||||
|
5. 生成完成后,您可以进一步编辑和调整页面内容
|
||||||
|
|
||||||
|
### 从模板创建页面
|
||||||
|
|
||||||
|
1. 点击侧边栏中的"新建页面"按钮
|
||||||
|
2. 选择"从模板创建"选项
|
||||||
|
3. 浏览可用的模板并选择一个适合您需求的模板
|
||||||
|
4. 点击"使用此模板"按钮
|
||||||
|
5. 根据需要编辑和自定义模板内容
|
||||||
|
|
||||||
|
### 从空白页面开始
|
||||||
|
|
||||||
|
1. 点击侧边栏中的"新建页面"按钮
|
||||||
|
2. 选择"空白页面"选项
|
||||||
|
3. 使用拖拽方式添加组件到页面
|
||||||
|
4. 配置组件属性和样式
|
||||||
|
|
||||||
|
## 编辑页面
|
||||||
|
|
||||||
|
### 添加组件
|
||||||
|
|
||||||
|
1. 在编辑模式下,点击工具栏中的"组件"按钮
|
||||||
|
2. 从组件库中选择所需组件
|
||||||
|
3. 将组件拖拽到页面中的目标位置
|
||||||
|
4. 调整组件大小和位置
|
||||||
|
|
||||||
|
### 编辑组件属性
|
||||||
|
|
||||||
|
1. 在页面中点击选择要编辑的组件
|
||||||
|
2. 在右侧属性面板中编辑组件的属性
|
||||||
|
3. 修改文本内容、图片、链接等
|
||||||
|
4. 调整组件的样式、颜色、字体等
|
||||||
|
|
||||||
|
### 使用 AI 辅助编辑
|
||||||
|
|
||||||
|
1. 选择要编辑的组件或页面区域
|
||||||
|
2. 点击工具栏中的"AI 辅助"按钮
|
||||||
|
3. 描述您想要进行的修改,例如:
|
||||||
|
```
|
||||||
|
将这段文本改为更吸引人的营销语言,强调产品的优势
|
||||||
|
```
|
||||||
|
4. AI 将根据您的描述生成修改建议
|
||||||
|
5. 确认修改或进行进一步调整
|
||||||
|
|
||||||
|
## 预览和发布
|
||||||
|
|
||||||
|
### 预览页面
|
||||||
|
|
||||||
|
1. 点击工具栏中的"预览"按钮
|
||||||
|
2. 在预览模式下查看页面在不同设备上的显示效果
|
||||||
|
3. 使用设备切换按钮查看响应式效果
|
||||||
|
|
||||||
|
### 发布页面
|
||||||
|
|
||||||
|
1. 完成页面编辑后,点击工具栏中的"发布"按钮
|
||||||
|
2. 选择发布选项(如发布到网站、导出代码等)
|
||||||
|
3. 根据提示完成发布流程
|
||||||
|
|
||||||
|
## 管理页面
|
||||||
|
|
||||||
|
### 页面列表
|
||||||
|
|
||||||
|
1. 在侧边栏中查看所有已创建的页面
|
||||||
|
2. 点击页面名称打开并编辑页面
|
||||||
|
3. 使用搜索框查找特定页面
|
||||||
|
|
||||||
|
### 页面操作
|
||||||
|
|
||||||
|
1. 在页面列表中,每个页面右侧有操作菜单
|
||||||
|
2. 点击操作菜单可以进行复制、重命名、删除等操作
|
||||||
|
3. 使用拖拽调整页面顺序
|
||||||
|
|
||||||
|
## 系统设置
|
||||||
|
|
||||||
|
### 用户设置
|
||||||
|
|
||||||
|
1. 点击顶部导航栏中的用户头像
|
||||||
|
2. 选择"个人设置"
|
||||||
|
3. 修改个人信息、密码等
|
||||||
|
|
||||||
|
### 系统配置
|
||||||
|
|
||||||
|
1. 点击顶部导航栏中的设置图标
|
||||||
|
2. 配置系统参数、AI 提供商等
|
||||||
|
3. 管理用户权限和角色(需要管理员权限)
|
||||||
|
|
||||||
|
## 键盘快捷键
|
||||||
|
|
||||||
|
UPage 提供了一系列键盘快捷键,帮助您提高工作效率:
|
||||||
|
|
||||||
|
| 快捷键 | 功能 |
|
||||||
|
| --- | --- |
|
||||||
|
| Ctrl+S | 保存当前页面 |
|
||||||
|
| Ctrl+Z | 撤销操作 |
|
||||||
|
| Ctrl+Y | 重做操作 |
|
||||||
|
| Ctrl+C | 复制选中的组件 |
|
||||||
|
| Ctrl+V | 粘贴组件 |
|
||||||
|
| Delete | 删除选中的组件 |
|
||||||
|
| Ctrl+P | 预览页面 |
|
||||||
|
| Esc | 退出当前模式或取消选择 |
|
||||||
|
|
||||||
|
## 下一步
|
||||||
|
|
||||||
|
- 了解如何[使用 AI 生成页面](ai-page-generation)
|
||||||
|
- 学习[页面管理](page-management)的高级技巧
|
||||||
|
- 探索更多[配置选项](../configuration)
|
||||||
192
docs/content/user-guide/page-management.md
Normal file
192
docs/content/user-guide/page-management.md
Normal file
@@ -0,0 +1,192 @@
|
|||||||
|
---
|
||||||
|
id: page-management
|
||||||
|
title: 页面管理
|
||||||
|
---
|
||||||
|
|
||||||
|
# 页面管理
|
||||||
|
|
||||||
|
本文档介绍如何在 UPage 中管理、组织和维护您的页面,帮助您有效地管理网站内容。
|
||||||
|
|
||||||
|
## 页面列表
|
||||||
|
|
||||||
|
### 查看页面列表
|
||||||
|
|
||||||
|
1. 在 UPage 主界面,侧边栏显示了所有已创建的页面
|
||||||
|
2. 页面按创建时间或自定义顺序排列
|
||||||
|
3. 每个页面条目显示页面名称和最后修改时间
|
||||||
|
|
||||||
|
### 搜索和筛选
|
||||||
|
|
||||||
|
1. 使用侧边栏顶部的搜索框搜索特定页面
|
||||||
|
2. 可以按页面名称、标签或内容进行搜索
|
||||||
|
3. 使用筛选选项按页面类型、创建日期或状态筛选
|
||||||
|
|
||||||
|
## 页面操作
|
||||||
|
|
||||||
|
### 基本操作
|
||||||
|
|
||||||
|
在页面列表中,每个页面右侧有操作菜单,提供以下功能:
|
||||||
|
|
||||||
|
- **编辑**:打开页面编辑器
|
||||||
|
- **预览**:在新标签页中预览页面
|
||||||
|
- **复制**:创建页面的副本
|
||||||
|
- **重命名**:修改页面名称
|
||||||
|
- **删除**:删除页面(可恢复)
|
||||||
|
- **导出**:导出页面代码或资源
|
||||||
|
|
||||||
|
### 批量操作
|
||||||
|
|
||||||
|
选择多个页面可以执行批量操作:
|
||||||
|
|
||||||
|
1. 使用复选框选择多个页面
|
||||||
|
2. 点击批量操作按钮
|
||||||
|
3. 选择要执行的操作(如删除、导出、应用标签等)
|
||||||
|
|
||||||
|
## 页面组织
|
||||||
|
|
||||||
|
### 使用标签
|
||||||
|
|
||||||
|
标签是组织页面的有效方式:
|
||||||
|
|
||||||
|
1. 在页面设置中添加标签
|
||||||
|
2. 使用侧边栏中的标签筛选器查看特定标签的页面
|
||||||
|
3. 标签可以用于分类页面(如"产品"、"博客"、"着陆页"等)
|
||||||
|
|
||||||
|
### 创建文件夹
|
||||||
|
|
||||||
|
对于大型项目,可以使用文件夹组织页面:
|
||||||
|
|
||||||
|
1. 点击侧边栏中的"新建文件夹"按钮
|
||||||
|
2. 输入文件夹名称
|
||||||
|
3. 将页面拖放到文件夹中
|
||||||
|
4. 点击文件夹可以展开或折叠其内容
|
||||||
|
|
||||||
|
## 页面版本控制
|
||||||
|
|
||||||
|
### 版本历史
|
||||||
|
|
||||||
|
UPage 自动保存页面的版本历史:
|
||||||
|
|
||||||
|
1. 在页面编辑器中,点击"版本历史"按钮
|
||||||
|
2. 查看页面的所有历史版本
|
||||||
|
3. 点击任何版本可以预览该版本的页面状态
|
||||||
|
|
||||||
|
### 恢复版本
|
||||||
|
|
||||||
|
如果需要恢复到之前的版本:
|
||||||
|
|
||||||
|
1. 在版本历史中找到要恢复的版本
|
||||||
|
2. 点击"恢复此版本"按钮
|
||||||
|
3. 确认恢复操作
|
||||||
|
4. 系统将创建一个新版本,内容与选定的历史版本相同
|
||||||
|
|
||||||
|
### 比较版本
|
||||||
|
|
||||||
|
比较不同版本之间的差异:
|
||||||
|
|
||||||
|
1. 在版本历史中选择两个版本
|
||||||
|
2. 点击"比较"按钮
|
||||||
|
3. 系统将显示两个版本之间的差异,包括添加、删除和修改的内容
|
||||||
|
|
||||||
|
## 页面设置
|
||||||
|
|
||||||
|
### 基本设置
|
||||||
|
|
||||||
|
每个页面都有以下基本设置:
|
||||||
|
|
||||||
|
1. **页面名称**:显示在侧边栏和浏览器标签中
|
||||||
|
2. **页面描述**:用于 SEO 和社交媒体分享
|
||||||
|
3. **URL 路径**:页面的访问路径
|
||||||
|
4. **标签**:用于组织和分类页面
|
||||||
|
5. **状态**:草稿、已发布或已归档
|
||||||
|
|
||||||
|
### SEO 设置
|
||||||
|
|
||||||
|
优化页面的搜索引擎表现:
|
||||||
|
|
||||||
|
1. **Meta 标题**:搜索结果中显示的标题
|
||||||
|
2. **Meta 描述**:搜索结果中显示的描述
|
||||||
|
3. **关键词**:与页面内容相关的关键词
|
||||||
|
4. **规范 URL**:指定页面的规范 URL
|
||||||
|
5. **索引设置**:控制搜索引擎是否索引页面
|
||||||
|
|
||||||
|
### 社交媒体设置
|
||||||
|
|
||||||
|
自定义页面在社交媒体上的显示方式:
|
||||||
|
|
||||||
|
1. **社交图片**:在社交媒体分享时显示的图片
|
||||||
|
2. **社交标题**:在社交媒体分享时显示的标题
|
||||||
|
3. **社交描述**:在社交媒体分享时显示的描述
|
||||||
|
|
||||||
|
## 页面导出和导入
|
||||||
|
|
||||||
|
### 导出页面
|
||||||
|
|
||||||
|
UPage 支持多种导出格式:
|
||||||
|
|
||||||
|
1. **HTML/CSS/JS**:导出标准 Web 文件
|
||||||
|
2. **ZIP 归档**:包含所有页面资源的压缩包
|
||||||
|
3. **JSON**:页面数据的 JSON 表示
|
||||||
|
4. **PDF**:页面的 PDF 版本(适用于文档)
|
||||||
|
|
||||||
|
导出步骤:
|
||||||
|
|
||||||
|
1. 在页面列表中选择要导出的页面
|
||||||
|
2. 点击"导出"按钮
|
||||||
|
3. 选择导出格式
|
||||||
|
4. 配置导出选项
|
||||||
|
5. 点击"导出"开始下载
|
||||||
|
|
||||||
|
### 导入页面
|
||||||
|
|
||||||
|
导入现有页面:
|
||||||
|
|
||||||
|
1. 点击"导入"按钮
|
||||||
|
2. 选择导入源(文件、URL 或代码)
|
||||||
|
3. 上传文件或输入 URL/代码
|
||||||
|
4. 配置导入选项
|
||||||
|
5. 点击"导入"开始处理
|
||||||
|
|
||||||
|
## 页面备份
|
||||||
|
|
||||||
|
### 创建备份
|
||||||
|
|
||||||
|
定期备份您的页面:
|
||||||
|
|
||||||
|
1. 在设置中找到"备份"选项
|
||||||
|
2. 点击"创建备份"按钮
|
||||||
|
3. 输入备份描述(可选)
|
||||||
|
4. 选择要包含的页面
|
||||||
|
5. 点击"开始备份"
|
||||||
|
|
||||||
|
### 恢复备份
|
||||||
|
|
||||||
|
从备份中恢复页面:
|
||||||
|
|
||||||
|
1. 在设置中找到"备份"选项
|
||||||
|
2. 找到要恢复的备份
|
||||||
|
3. 点击"恢复"按钮
|
||||||
|
4. 选择要恢复的页面
|
||||||
|
5. 选择恢复模式(覆盖或创建新页面)
|
||||||
|
6. 点击"开始恢复"
|
||||||
|
|
||||||
|
## 协作功能
|
||||||
|
|
||||||
|
### 共享页面
|
||||||
|
|
||||||
|
与团队成员共享页面:
|
||||||
|
|
||||||
|
1. 在页面操作菜单中选择"共享"
|
||||||
|
2. 输入团队成员的电子邮件地址
|
||||||
|
3. 选择权限级别(查看、编辑或管理)
|
||||||
|
4. 点击"发送邀请"
|
||||||
|
|
||||||
|
### 评论和反馈
|
||||||
|
|
||||||
|
在页面上添加评论和反馈:
|
||||||
|
|
||||||
|
1. 在预览模式下,点击"评论"按钮
|
||||||
|
2. 点击页面任何位置添加评论
|
||||||
|
3. 输入评论内容
|
||||||
|
4. 可以@提及团队成员
|
||||||
|
5. 评论可以标记为已解决
|
||||||
133
docs/docusaurus.config.js
Normal file
133
docs/docusaurus.config.js
Normal file
@@ -0,0 +1,133 @@
|
|||||||
|
// @ts-check
|
||||||
|
// Note: type annotations allow type checking and IDEs autocompletion
|
||||||
|
|
||||||
|
/** @type {import('@docusaurus/types').Config} */
|
||||||
|
const config = {
|
||||||
|
title: 'UPage 文档',
|
||||||
|
tagline: 'UPage 是一款基于人工智能的可视化网页构建平台',
|
||||||
|
favicon: '../public/favicon.svg',
|
||||||
|
|
||||||
|
// Set the production url of your site here
|
||||||
|
url: 'https://halo-dev.github.io',
|
||||||
|
// Set the /<baseUrl>/ pathname under which your site is served
|
||||||
|
// For GitHub pages deployment, it is often '/<projectName>/'
|
||||||
|
baseUrl: '/upage/',
|
||||||
|
|
||||||
|
// GitHub pages deployment config.
|
||||||
|
// If you aren't using GitHub pages, you don't need these.
|
||||||
|
organizationName: 'halo-dev', // Usually your GitHub org/user name.
|
||||||
|
projectName: 'upage', // Usually your repo name.
|
||||||
|
trailingSlash: false,
|
||||||
|
|
||||||
|
onBrokenLinks: 'warn',
|
||||||
|
onBrokenMarkdownLinks: 'warn',
|
||||||
|
|
||||||
|
// Even if you don't use internalization, you can use this field to set useful
|
||||||
|
// metadata like html lang. For example, if your site is Chinese, you may want
|
||||||
|
// to replace "en" with "zh-Hans".
|
||||||
|
i18n: {
|
||||||
|
defaultLocale: 'zh-Hans',
|
||||||
|
locales: ['zh-Hans'],
|
||||||
|
},
|
||||||
|
|
||||||
|
presets: [
|
||||||
|
[
|
||||||
|
'classic',
|
||||||
|
/** @type {import('@docusaurus/preset-classic').Options} */
|
||||||
|
({
|
||||||
|
docs: {
|
||||||
|
path: 'content',
|
||||||
|
routeBasePath: '/',
|
||||||
|
sidebarPath: require.resolve('./sidebars.js'),
|
||||||
|
// Please change this to your repo.
|
||||||
|
// Remove this to remove the "edit this page" links.
|
||||||
|
editUrl:
|
||||||
|
'https://github.com/halo-dev/upage/edit/main/docs/content/',
|
||||||
|
},
|
||||||
|
blog: false,
|
||||||
|
theme: {
|
||||||
|
customCss: require.resolve('./src/css/custom.css'),
|
||||||
|
},
|
||||||
|
}),
|
||||||
|
],
|
||||||
|
],
|
||||||
|
|
||||||
|
themeConfig:
|
||||||
|
/** @type {import('@docusaurus/preset-classic').ThemeConfig} */
|
||||||
|
({
|
||||||
|
// Replace with your project's social card
|
||||||
|
image: 'img/social-card.png',
|
||||||
|
navbar: {
|
||||||
|
title: 'UPage',
|
||||||
|
logo: {
|
||||||
|
alt: 'UPage Logo',
|
||||||
|
src: 'img/logo.svg',
|
||||||
|
},
|
||||||
|
items: [
|
||||||
|
{
|
||||||
|
type: 'docSidebar',
|
||||||
|
sidebarId: 'tutorialSidebar',
|
||||||
|
position: 'left',
|
||||||
|
label: '文档',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
href: 'https://github.com/halo-dev/upage',
|
||||||
|
label: 'GitHub',
|
||||||
|
position: 'right',
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
footer: {
|
||||||
|
style: 'dark',
|
||||||
|
links: [
|
||||||
|
{
|
||||||
|
title: '文档',
|
||||||
|
items: [
|
||||||
|
{
|
||||||
|
label: '快速开始',
|
||||||
|
to: '/quick-start',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: '部署指南',
|
||||||
|
to: '/category/deployment-guide',
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '社区',
|
||||||
|
items: [
|
||||||
|
{
|
||||||
|
label: 'GitHub Issues',
|
||||||
|
href: 'https://github.com/halo-dev/upage/issues',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: 'GitHub Discussions',
|
||||||
|
href: 'https://github.com/halo-dev/upage/discussions',
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '更多',
|
||||||
|
items: [
|
||||||
|
{
|
||||||
|
label: 'GitHub',
|
||||||
|
href: 'https://github.com/halo-dev/upage',
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
],
|
||||||
|
copyright: `Copyright © ${new Date().getFullYear()} Halo 社区`,
|
||||||
|
},
|
||||||
|
prism: {
|
||||||
|
theme: require('prism-react-renderer').themes.github,
|
||||||
|
darkTheme: require('prism-react-renderer').themes.dracula,
|
||||||
|
},
|
||||||
|
colorMode: {
|
||||||
|
defaultMode: 'light',
|
||||||
|
disableSwitch: false,
|
||||||
|
respectPrefersColorScheme: true,
|
||||||
|
},
|
||||||
|
}),
|
||||||
|
};
|
||||||
|
|
||||||
|
module.exports = config;
|
||||||
@@ -1,14 +0,0 @@
|
|||||||
# 简介
|
|
||||||
|
|
||||||
欢迎阅读 UPage 文档。UPage 是一个基于人工智能的可视化网页构建平台,支持多种 AI 提供商集成,能够轻松创建和定制网页内容。
|
|
||||||
|
|
||||||
## 目录
|
|
||||||
|
|
||||||
- [简介](#简介)
|
|
||||||
- [目录](#目录)
|
|
||||||
- [快速开始](#快速开始)
|
|
||||||
- [部署指南](#部署指南)
|
|
||||||
- [常见问题](#常见问题)
|
|
||||||
- [贡献指南](#贡献指南)
|
|
||||||
- [开发指南](#开发指南)
|
|
||||||
- [更新日志](#更新日志)
|
|
||||||
45
docs/package.json
Normal file
45
docs/package.json
Normal file
@@ -0,0 +1,45 @@
|
|||||||
|
{
|
||||||
|
"name": "upage-docs",
|
||||||
|
"version": "0.0.0",
|
||||||
|
"private": true,
|
||||||
|
"workspaces": [".."],
|
||||||
|
"scripts": {
|
||||||
|
"docusaurus": "docusaurus",
|
||||||
|
"start": "docusaurus start",
|
||||||
|
"build": "docusaurus build",
|
||||||
|
"swizzle": "docusaurus swizzle",
|
||||||
|
"deploy": "docusaurus deploy",
|
||||||
|
"clear": "docusaurus clear",
|
||||||
|
"serve": "docusaurus serve",
|
||||||
|
"write-translations": "docusaurus write-translations",
|
||||||
|
"write-heading-ids": "docusaurus write-heading-ids"
|
||||||
|
},
|
||||||
|
"dependencies": {
|
||||||
|
"@docusaurus/core": "3.9.0",
|
||||||
|
"@docusaurus/preset-classic": "3.9.0",
|
||||||
|
"@mdx-js/react": "^3.0.0",
|
||||||
|
"clsx": "^2.0.0",
|
||||||
|
"prism-react-renderer": "^2.3.0",
|
||||||
|
"react": "^18.0.0",
|
||||||
|
"react-dom": "^18.0.0"
|
||||||
|
},
|
||||||
|
"devDependencies": {
|
||||||
|
"@docusaurus/module-type-aliases": "3.9.0",
|
||||||
|
"@docusaurus/types": "3.9.0"
|
||||||
|
},
|
||||||
|
"browserslist": {
|
||||||
|
"production": [
|
||||||
|
">0.5%",
|
||||||
|
"not dead",
|
||||||
|
"not op_mini all"
|
||||||
|
],
|
||||||
|
"development": [
|
||||||
|
"last 1 chrome version",
|
||||||
|
"last 1 firefox version",
|
||||||
|
"last 1 safari version"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">=18.0"
|
||||||
|
}
|
||||||
|
}
|
||||||
73
docs/sidebars.js
Normal file
73
docs/sidebars.js
Normal file
@@ -0,0 +1,73 @@
|
|||||||
|
/**
|
||||||
|
* Creating a sidebar enables you to:
|
||||||
|
- create an ordered group of docs
|
||||||
|
- render a sidebar for each doc of that group
|
||||||
|
- provide next/previous navigation
|
||||||
|
|
||||||
|
The sidebars can be generated from the filesystem, or explicitly defined here.
|
||||||
|
|
||||||
|
Create as many sidebars as you want.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/** @type {import('@docusaurus/plugin-content-docs').SidebarsConfig} */
|
||||||
|
const sidebars = {
|
||||||
|
tutorialSidebar: [
|
||||||
|
{
|
||||||
|
type: 'doc',
|
||||||
|
id: 'index',
|
||||||
|
label: '首页',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
type: 'doc',
|
||||||
|
id: 'quick-start',
|
||||||
|
label: '快速开始',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
type: 'category',
|
||||||
|
label: '部署指南',
|
||||||
|
link: {
|
||||||
|
type: 'generated-index',
|
||||||
|
title: '部署指南',
|
||||||
|
slug: 'deployment-guide',
|
||||||
|
},
|
||||||
|
items: [
|
||||||
|
'deployment/docker',
|
||||||
|
'deployment/docker-compose',
|
||||||
|
'deployment/source',
|
||||||
|
'deployment/logto',
|
||||||
|
'deployment/others',
|
||||||
|
],
|
||||||
|
},
|
||||||
|
{
|
||||||
|
type: 'doc',
|
||||||
|
id: 'configuration',
|
||||||
|
label: '配置参考',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
type: 'category',
|
||||||
|
label: '用户指南',
|
||||||
|
items: [
|
||||||
|
'user-guide/basics',
|
||||||
|
'user-guide/ai-page-generation',
|
||||||
|
'user-guide/page-management',
|
||||||
|
],
|
||||||
|
},
|
||||||
|
{
|
||||||
|
type: 'doc',
|
||||||
|
id: 'faq',
|
||||||
|
label: '常见问题',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
type: 'doc',
|
||||||
|
id: 'changelog',
|
||||||
|
label: '更新日志',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
type: 'doc',
|
||||||
|
id: 'contributing',
|
||||||
|
label: '贡献指南',
|
||||||
|
},
|
||||||
|
],
|
||||||
|
};
|
||||||
|
|
||||||
|
module.exports = sidebars;
|
||||||
30
docs/src/css/custom.css
Normal file
30
docs/src/css/custom.css
Normal file
@@ -0,0 +1,30 @@
|
|||||||
|
/**
|
||||||
|
* Any CSS included here will be global. The classic template
|
||||||
|
* bundles Infima by default. Infima is a CSS framework designed to
|
||||||
|
* work well for content-centric websites.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* You can override the default Infima variables here. */
|
||||||
|
:root {
|
||||||
|
--ifm-color-primary: #3f51b5;
|
||||||
|
--ifm-color-primary-dark: #3949a3;
|
||||||
|
--ifm-color-primary-darker: #36459a;
|
||||||
|
--ifm-color-primary-darkest: #2c397f;
|
||||||
|
--ifm-color-primary-light: #4c5ec1;
|
||||||
|
--ifm-color-primary-lighter: #5566c4;
|
||||||
|
--ifm-color-primary-lightest: #707ecd;
|
||||||
|
--ifm-code-font-size: 95%;
|
||||||
|
--docusaurus-highlighted-code-line-bg: rgba(0, 0, 0, 0.1);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* For readability concerns, you should choose a lighter palette in dark mode. */
|
||||||
|
[data-theme='dark'] {
|
||||||
|
--ifm-color-primary: #7986cb;
|
||||||
|
--ifm-color-primary-dark: #6271c2;
|
||||||
|
--ifm-color-primary-darker: #5767be;
|
||||||
|
--ifm-color-primary-darkest: #3f50a8;
|
||||||
|
--ifm-color-primary-light: #909bd4;
|
||||||
|
--ifm-color-primary-lighter: #9ba5d8;
|
||||||
|
--ifm-color-primary-lightest: #bcc2e5;
|
||||||
|
--docusaurus-highlighted-code-line-bg: rgba(0, 0, 0, 0.3);
|
||||||
|
}
|
||||||
4
docs/static/img/logo.svg
vendored
Normal file
4
docs/static/img/logo.svg
vendored
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" width="16" height="16">
|
||||||
|
<rect width="16" height="16" rx="2" fill="#1389fd" />
|
||||||
|
<path d="M7.398 9.091h-3.58L10.364 2 8.602 6.909h3.58L5.636 14l1.762-4.909Z" fill="#fff" />
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 241 B |
8113
pnpm-lock.yaml
generated
8113
pnpm-lock.yaml
generated
File diff suppressed because it is too large
Load Diff
3
pnpm-workspace.yaml
Normal file
3
pnpm-workspace.yaml
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
packages:
|
||||||
|
- "."
|
||||||
|
- "docs"
|
||||||
Reference in New Issue
Block a user