# Slide 基于 [Slidev](https://sli.dev/) 的多演示文稿项目,通过 Gitea Actions 实现 Docker 自动部署。 ## 快速开始 ```bash pnpm install pnpm run dev # 启动开发服务器 http://localhost:3030 ``` ## 项目结构 ``` index.html # 首页(列出所有演示文稿) decks/ / slides.md # 幻灯片入口 pages/ # 额外幻灯片文件(通过 src: ./pages/xxx.md 导入) public/ # 静态资源(图片、字体) scripts/ build.sh # 构建所有演示文稿 .gitea/workflows/ # CI/CD 流水线 dist/ # 构建产物(已 gitignore) ``` ## 现有演示文稿 | 演示文稿 | 开发命令 | 构建命令 | |----------|---------|---------| | demo | `pnpm run dev:demo` | `pnpm run build:demo` | | showcase | `pnpm run dev:showcase` | `pnpm run build:showcase` | ## 命令 ```bash pnpm run dev # 开发模式(默认加载 demo 演示文稿) pnpm run dev: # 开发模式(加载指定演示文稿) pnpm run build # 构建所有演示文稿 → dist/ pnpm run build: # 构建单个演示文稿 pnpm run serve # 构建并在 http://localhost:3030 提供服务 pnpm run export # 导出为 PDF(需要 playwright-chromium) ``` ## 添加新演示文稿 1. 创建目录:`decks//` 2. 添加 `decks//slides.md`,写入 Slidev frontmatter 3. (可选)添加 `pages/` 和 `public/` 子目录 4. 在 `index.html` 的 `decks` 数组中注册名称 5. 在 `package.json` 中添加 `dev:` 和 `build:` 脚本 ## CI/CD 推送到 `main` 分支将触发 [Gitea Actions 流水线](.gitea/workflows/deploy.yaml): 1. 拉取代码 2. 安装依赖(`pnpm install`) 3. 构建所有演示文稿(`pnpm run build`) 4. 将 `dist/` 部署到 nginx 容器,对外端口 **8080** 运行器为自托管的 Gitea Act Runner(`aliyun` 标签),使用 Docker 模式。 ## 技术栈 - [Slidev](https://sli.dev/) — 基于 Markdown 的幻灯片框架 - [pnpm](https://pnpm.io/) — 包管理器 - Nginx — 生产环境服务 - Gitea Actions — CI/CD