一键导入
docs-deploy
部署 MyST 文档站点到 GitHub Pages。涵盖 myst.yml 配置、本地验证、GitHub Actions 工作流配置。
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
部署 MyST 文档站点到 GitHub Pages。涵盖 myst.yml 配置、本地验证、GitHub Actions 工作流配置。
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
发布 Git 仓库 Release。使用 qtcloud-devops release publish 自动完成创建 tag、推送、GitHub Release。
规范提交 Git 仓库变更,遵循 Conventional Commits 格式(feat/fix/docs/test/refactor/chore)。自动识别变更类型、生成提交信息、确认并推送。
管理 Git 子模块的完整生命周期:添加、移除、更新、修复冲突、查看状态。处理 detached HEAD、合并冲突等边缘情况。
| name | docs-deploy |
| description | 部署 MyST 文档站点到 GitHub Pages。涵盖 myst.yml 配置、本地验证、GitHub Actions 工作流配置。 |
MyST 文档站点发布到 GitHub Pages 的标准流程。
myst.yml 放在文档项目根目录_build/ 必须加入 .gitignoremain 分支自动触发部署gh):启用 Pages、管理 Releasemyst):本地验证构建myst.yml在文档项目根目录创建 myst.yml:
version: 1
project:
title: 文档标题
description: 文档描述
keywords: []
authors:
- name: 作者名
license: CC-BY-4.0
toc:
- file: README.md
- title: 章节一
children:
- file: section1/index.md
site:
template: book-theme
关键字段:
| 字段 | 说明 |
|---|---|
project.toc | 目录结构,明确列出所有页面 |
project.exclude | 排除非文档文件(可选) |
site.template | 网站模板,默认 book-theme |
# 构建静态 HTML 站点
myst build --html
构建成功后 _build/html/ 下生成 HTML 静态文件。可用 npx serve _build/html 本地预览。
myst build --site生成的是 MyST 服务器运行时数据(输出到_build/site/),不包含 HTML,不能用于静态托管。
.gitignore_build/
# 使用 GitHub Actions 构建模式
gh api repos/<owner>/<repo>/pages -X POST -f build_type=workflow
或在仓库 Settings → Pages → Source 选择 GitHub Actions。
# 也可用 MyST 官方命令自动生成
myst init --gh-pages
或手动创建 .github/workflows/deploy.yml,参考 MyST 官方模板:
# This file was created automatically with `myst init --gh-pages` 🪄 💚
name: MyST GitHub Pages Deploy
on:
push:
branches: [main]
env:
BASE_URL: /${{ github.event.repository.name }}
permissions:
contents: read
pages: write
id-token: write
concurrency:
group: pages
cancel-in-progress: false
jobs:
deploy:
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Setup Pages
uses: actions/configure-pages@v3
- uses: actions/setup-node@v4
with:
node-version: 18.x
- name: Install MyST Markdown
run: npm install -g mystmd
- name: Build HTML Assets
run: myst build --html
- name: Upload artifact
uses: actions/upload-pages-artifact@v3
with:
path: ./_build/html
- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@v4
关键区别:
| 部署方式 | 命令 | 产物路径 |
|---|---|---|
| 静态站点(GitHub Pages) | myst build --html | _build/html |
| MyST 服务器(Curvenote) | myst build --site | _build/site |
git add -A && git commit -m "ci: 配置 MyST 文档站点部署"
git push
推送后 GitHub Actions 自动执行:安装 mystmd → myst build --html 构建静态 HTML → 部署到 Pages。
# 查看 Pages 状态
gh api repos/<owner>/<repo>/pages --jq '{html_url, build_type, source}'
# 等待 Actions 完成
gh run list --repo <owner>/<repo> --workflow deploy.yml --limit 1
| 错误 | 原因 | 解决方案 |
|---|---|---|
myst: command not found | Node.js 未安装 | 确保 workflow 中安装 Node.js |
| Pages 返回 404 | 用了 myst build --site 而非 --html | --site 输出服务器数据(无 HTML),改用 --html 输出到 _build/html |
| Pages 返回 404 | upload-pages-artifact 路径错误 | 路径必须指向 ./_build/html |
路径 /repo-name 不匹配 | 缺少 BASE_URL | workflow 中设置 BASE_URL: /${{ github.event.repository.name }} |
| 子模块未构建 | 未 checkout 子模块 | 在 checkout 步骤加 submodules: true |
✓ 站点部署成功
URL: https://<owner>.github.io/<repo>/
工作流: https://github.com/<owner>/<repo>/actions
✗ 部署失败
错误码: <ERROR_CODE>
原因: <错误描述>
建议: <解决方案>