113 lines
2.3 KiB
Markdown
113 lines
2.3 KiB
Markdown
# VitePress-CMS
|
||
|
||
VitePress-CMS 是一个面向 VitePress 的可视化内容管理后台。它的目标是让用户通过网页界面管理 Markdown 页面、站点结构、主题配置与 GitHub 发布流程。
|
||
|
||
## 当前版本
|
||
|
||
当前项目已经从静态原型升级为 Vue 3 + TypeScript + Vite 工程。
|
||
|
||
已完成的原型能力:
|
||
|
||
- 页面目录、搜索与新建页面
|
||
- Markdown 编辑与预览切换
|
||
- Frontmatter 标题和描述编辑
|
||
- 导航栏与侧边栏管理界面
|
||
- 站点基础配置界面
|
||
- 发布中心与部署状态模拟
|
||
|
||
## 本地运行
|
||
|
||
```bash
|
||
npm install
|
||
npm run dev
|
||
```
|
||
|
||
Windows PowerShell 如果拦截 `npm.ps1`,可以使用:
|
||
|
||
```bash
|
||
npm.cmd install
|
||
npm.cmd run dev
|
||
```
|
||
|
||
## 初始账户
|
||
|
||
项目启动时会自动创建 SQLite 数据库:
|
||
|
||
```text
|
||
data/vitepress-cms.sqlite
|
||
```
|
||
|
||
如果数据库里还没有系统管理员,会自动创建初始账户:
|
||
|
||
```text
|
||
邮箱:admin@example.com
|
||
密码:admin123456
|
||
角色:system_admin
|
||
```
|
||
|
||
可以通过环境变量修改初始账户:
|
||
|
||
```bash
|
||
CMS_ADMIN_EMAIL=admin@your-domain.com
|
||
CMS_ADMIN_PASSWORD=change-me
|
||
```
|
||
|
||
## 构建验证
|
||
|
||
```bash
|
||
npm run build
|
||
```
|
||
|
||
## 测试站点
|
||
|
||
VitePress 测试站点放在项目内的独立子目录:
|
||
|
||
```text
|
||
test-vitepress/
|
||
```
|
||
|
||
它有自己的 `package.json` 和依赖,不会让 VitePress 成为 CMS 主项目的一部分。这样既方便开发测试,也能保持主项目依赖干净。
|
||
|
||
运行测试站点:
|
||
|
||
```bash
|
||
cd test-vitepress
|
||
npm install
|
||
npm run dev
|
||
```
|
||
|
||
## GitHub 连接
|
||
|
||
当前版本支持两种 GitHub 连接方式:
|
||
|
||
1. GitHub OAuth 登录后选择仓库。
|
||
2. 手动输入 token、owner、repo、branch 和站点目录。
|
||
|
||
使用 OAuth 登录前,需要创建 GitHub OAuth App,并配置环境变量:
|
||
|
||
```bash
|
||
GITHUB_CLIENT_ID=xxx
|
||
GITHUB_CLIENT_SECRET=xxx
|
||
```
|
||
|
||
开发环境 callback URL:
|
||
|
||
```text
|
||
http://localhost:5173/api/github/callback
|
||
```
|
||
|
||
Token 或 OAuth 授权至少需要仓库内容读写权限。保存页面或配置时,CMS 会通过 GitHub Contents API 创建 commit。
|
||
|
||
站点目录示例:
|
||
|
||
- VitePress 在仓库根目录:留空
|
||
- VitePress 在 `docs/`:填写 `docs`
|
||
|
||
## 下一步
|
||
|
||
1. 建立 GitHub OAuth 登录流程。
|
||
2. 读取仓库中的 `docs/` 页面文件。
|
||
3. 解析 `.vitepress/config.ts` 中的常用配置。
|
||
4. 将页面和配置修改提交为 GitHub commit。
|
||
5. 显示 GitHub Pages 或 Actions 部署状态。
|