Skip to content

发布方式

推荐发布位置

MonopolyFun 手册发布到 Cloudflare Pages,并以本仓库的 docs/book 作为唯一内容源。

推荐结构:

text
Source of truth
  -> GitHub repo: docs/book

Public docs
  -> Cloudflare Pages
  -> docs.monopolyfun.app

Fallback mirror
  -> GitHub source
  -> github.com/whenrealizing/monopolyfun/tree/master/docs/book

为什么用 Cloudflare Pages

Cloudflare Pages 最适合这个项目当前阶段:

  1. 免费额度适合开源文档站。
  2. 可以直接绑定 docs.monopolyfun.app
  3. GitHub push 后自动构建发布。
  4. docs/book 保留 GitBook 风格目录,同时由 VitePress 生成现代文档站。
  5. 本仓库提供 VitePress 配置、主题样式、搜索和中英文 locale。

建议域名

text
Primary:
docs.monopolyfun.app

Cloudflare Pages fallback:
monopolyfun-docs.pages.dev

GitHub source:
github.com/whenrealizing/monopolyfun/tree/master/docs/book

发布策略

text
GitHub repo
  docs/book
    .vitepress
    SUMMARY.md
    index.md
    *.md
    public
    en/index.md
    en/*.md

Cloudflare Pages
  Project = monopolyfun-docs
  Production branch = master
  Output directory = dist/docs-book

GitHub Actions
  Workflow = .github/workflows/cloudflare-pages-docs.yml
  Trigger = push to master when docs/book or scripts/docs changes
  Build command = pnpm docs:book:build
  Deploy command = npx wrangler pages deploy dist/docs-book --project-name monopolyfun-docs --branch master

Domain
  docs.monopolyfun.app CNAME -> Cloudflare Pages

GitHub 自动部署

master 分支更新文档后,GitHub Actions 会构建 dist/docs-book 并发布到 Cloudflare Pages。

仓库 Secrets 需要配置:

text
CLOUDFLARE_API_TOKEN
CLOUDFLARE_ACCOUNT_ID=2abef8abbf59b22a6fb235f2c13cf9ce

CLOUDFLARE_API_TOKEN 需要具备 Cloudflare Pages 发布权限。

如果 CLOUDFLARE_API_TOKEN 还没配置,workflow 会完成构建并跳过发布步骤;配置后,下一次文档 push 会自动发布。

本地构建

bash
pnpm docs:book:build

输出目录:

text
dist/docs-book

本地预览

bash
pnpm docs:book:dev

本机直传发布

bash
pnpm docs:book:deploy

这个命令会先构建 dist/docs-book,再执行:

bash
npx wrangler pages deploy dist/docs-book --project-name monopolyfun-docs --branch master

Cloudflare Pages 设置

text
Project name:
monopolyfun-docs

Production branch:
master

Framework preset:
None

Build command:
pnpm docs:book:build

Build output directory:
dist/docs-book

Root directory:
/

Custom domain:
docs.monopolyfun.app

Released under the MIT License.