ci(文档): 添加多语言文档构建配置
Some checks failed
Build and Deploy mdBook / build-and-deploy (push) Failing after 9s

添加英文和中文的文档配置文件,并修改CI流程以支持多语言独立构建
将构建输出分别放入book/en和book/zh目录
保留语言自动跳转功能
This commit is contained in:
李东云
2025-06-10 04:24:21 +08:00
parent 0e56e68853
commit 951e28f27c
4 changed files with 30 additions and 25 deletions

View File

@@ -1,41 +1,48 @@
name: Build and Deploy mdBook to Pages Branch
name: Build and Deploy mdBook
on:
push:
branches:
# 只有 main 分支的变更才会触发部署
- main
jobs:
build-and-deploy:
runs-on: ubuntu-latest # 现在我们可以用通用的 Runner不再需要挂载数据卷
runs-on: ubuntu-latest # 我们使用 GitOps 模式,不再需要特殊 Runner
steps:
- name: Checkout repository
uses: actions/checkout@v2
with:
# 获取所有历史记录,以便 peaceiris/actions-gh-pages 操作
fetch-depth: 0
- name: Install mdBook
uses: peaceiris/actions-mdbook@v1
- name: Build mdBook
run: mdbook build
# --- ↓↓↓ 核心变更:分两次独立构建 ↓↓↓ ---
- name: Build English & Chinese Books Separately
run: |
echo "Building English book..."
# 使用 en 的配置,构建英文版,并指定输出到 book/en 目录
mdbook build -d book/en --config book.en.toml .
echo "Building Chinese book..."
# 使用 zh 的配置,构建中文版,并指定输出到 book/zh 目录
mdbook build -d book/zh --config book.zh.toml .
- name: Create Language Redirect Index
run: |
# 这个步骤依然需要,用于创建根目录的语言跳转页
echo '<!DOCTYPE html><html><head><meta charset="utf-8"><title>Redirecting...</title><script>var lang = navigator.language || navigator.userLanguage; if (lang.toLowerCase().startsWith("zh")) { window.location.replace("./zh/"); } else { window.location.replace("./en/"); }</script><meta http-equiv="refresh" content="0; url=./en/"></head><body><p>Redirecting to your preferred language... If you are not redirected, please select a language:</p><p><a href="./en/">English</a> | <a href="./zh/">简体中文</a></p></body></html>' > book/index.html
echo "Created language redirect page."
# --- ↓↓↓ 部署步骤保持不变 ↓↓↓ ---
- name: Deploy to 'pages' branch
uses: peaceiris/actions-gh-pages@v3
with:
# 我们用 personal_token 替代默认的 github_token
personal_token: d58a2e62b51446633a0c87df1591ba34db1ecacb
# 指定 Gitea 服务器的地址
personal_token: ${{ secrets.DEPLOY_TOKEN }}
external_repository: Dao-OS/dao-os-docs
# 要推送到哪个分支
publish_branch: pages
# 推送哪个目录下的内容
publish_dir: ./book
# 提交代码的用户信息
publish_dir: ./book # 推送整个 book 目录(现在包含了 en 和 zh
user_name: "Gitea Actions"
user_email: "actions@gitea.example.com"
# Gitea 需要这个设置
gitea_server: nest.doylee.cn