|
| 1 | +# book/ — AI 编程实战三卷书脚手架 |
| 2 | + |
| 3 | +> 把 ai-coding-guide 仓库的现成内容重组成 **3 卷 + 1 别册** 的渐进式读本。 |
| 4 | +> 用 [mdBook](https://rust-lang.github.io/mdBook/) 编译成静态 HTML 网站 + PDF。 |
| 5 | +
|
| 6 | +## 结构 |
| 7 | + |
| 8 | +``` |
| 9 | +book/ |
| 10 | +├── README.md ← 你正在看 |
| 11 | +├── book.toml ← mdbook 配置 |
| 12 | +├── .gitignore ← 忽略 book/book/ 输出目录 |
| 13 | +└── src/ |
| 14 | + ├── SUMMARY.md ← 主目录(决定章节顺序) |
| 15 | + ├── intro.md ← 总序 |
| 16 | + ├── v1-intro.md ← 卷一·入门 序 |
| 17 | + ├── v2-intro.md ← 卷二·工作流 序 |
| 18 | + ├── v3-intro.md ← 卷三·架构 序 |
| 19 | + ├── about.md ← 关于本书 |
| 20 | + │ |
| 21 | + ├── cheatsheet.md ← 软链 → ../../cheatsheet.md |
| 22 | + ├── changelog.md ← 软链 → ../../CHANGELOG.md |
| 23 | + ├── resources.md ← 软链 → ../../resources.md |
| 24 | + ├── methods/ ← 软链 → ../../common/ (7 套方法论) |
| 25 | + ├── workflows-src/ ← 软链 → ../../workflows/ (协作 + 场景) |
| 26 | + ├── pitfalls-src/ ← 软链 → ../../pitfalls/ (踩坑合集) |
| 27 | + └── tools/ |
| 28 | + ├── claude-code/ ← 软链 → ../../../claude-code/ |
| 29 | + ├── codex/ ← 软链 → ../../../codex/ |
| 30 | + ├── cursor/ ← 软链 → ../../../cursor/ |
| 31 | + └── ...(10 工具全部) |
| 32 | +``` |
| 33 | + |
| 34 | +**关键设计**:所有内容都是 symlink 而不是复制。仓库主目录改了,重新 `mdbook build` 立刻同步。零内容重复维护。 |
| 35 | + |
| 36 | +## 怎么本地预览 |
| 37 | + |
| 38 | +```bash |
| 39 | +# 一次性装 mdbook |
| 40 | +brew install mdbook |
| 41 | +# 或 cargo install mdbook |
| 42 | + |
| 43 | +# 预览(实时热更新,浏览器自动打开) |
| 44 | +cd book |
| 45 | +mdbook serve --open |
| 46 | + |
| 47 | +# 编译成静态 HTML(输出在 book/book/) |
| 48 | +mdbook build |
| 49 | +``` |
| 50 | + |
| 51 | +## 怎么发布 |
| 52 | + |
| 53 | +### 选项 1:GitHub Pages(最简单) |
| 54 | + |
| 55 | +加一个 `.github/workflows/book.yml`,push 到 main 时自动 build + 推到 `gh-pages` 分支。 |
| 56 | + |
| 57 | +```yaml |
| 58 | +name: Build book |
| 59 | +on: |
| 60 | + push: |
| 61 | + branches: [main] |
| 62 | + paths: ['book/**', 'common/**', 'workflows/**', 'pitfalls/**', |
| 63 | + '*.md', 'cheatsheet.md', 'CHANGELOG.md', |
| 64 | + 'claude-code/**', 'codex/**', 'cursor/**', 'copilot/**', |
| 65 | + 'windsurf/**', 'trae/**', 'aider/**', 'gemini-cli/**', |
| 66 | + 'kiro/**', 'openclaw/**'] |
| 67 | + |
| 68 | +jobs: |
| 69 | + build: |
| 70 | + runs-on: ubuntu-latest |
| 71 | + steps: |
| 72 | + - uses: actions/checkout@v5 |
| 73 | + - run: cargo install mdbook |
| 74 | + - run: cd book && mdbook build |
| 75 | + - uses: peaceiris/actions-gh-pages@v4 |
| 76 | + with: |
| 77 | + github_token: ${{ secrets.GITHUB_TOKEN }} |
| 78 | + publish_dir: ./book/book |
| 79 | +``` |
| 80 | +
|
| 81 | +### 选项 2:Netlify / Vercel(PR preview 友好) |
| 82 | +
|
| 83 | +仓库根目录加 `netlify.toml`: |
| 84 | + |
| 85 | +```toml |
| 86 | +[build] |
| 87 | + command = "cd book && mdbook build" |
| 88 | + publish = "book/book" |
| 89 | +[build.environment] |
| 90 | + RUST_VERSION = "1.78" |
| 91 | +``` |
| 92 | + |
| 93 | +netlify 会自动装 mdbook(用 `cargo install mdbook` build 命令前面手动加一下)。 |
| 94 | + |
| 95 | +### 选项 3:Leanpub / GitBook 商业版 |
| 96 | + |
| 97 | +如果想出电子书赚钱:mdbook build 出 HTML 之后,用 [pandoc](https://pandoc.org/) 转成 epub / mobi / PDF: |
| 98 | + |
| 99 | +```bash |
| 100 | +mdbook build |
| 101 | +cd book/book |
| 102 | +# 把所有 HTML 串起来转 PDF |
| 103 | +pandoc -o ../../ai-coding-guide.pdf $(find . -name "*.html" | sort) \ |
| 104 | + --pdf-engine=xelatex \ |
| 105 | + -V mainfont="PingFang SC" -V CJKmainfont="PingFang SC" |
| 106 | +``` |
| 107 | + |
| 108 | +## 节奏 |
| 109 | + |
| 110 | +这是 **v0.1 脚手架**——目录结构、3 卷序、symlink 就位,可以 build 出能看的版本了,但内容主要靠的是仓库里既有的章节。后续要加的: |
| 111 | + |
| 112 | +- [ ] 各卷之间的"过渡章"(卷一末→卷二首的承上启下) |
| 113 | +- [ ] 卷三的「CI 集成 / 团队治理」实战章节(仓库里还没有,需要新写) |
| 114 | +- [ ] 端到端项目案例("用 Claude Code + Codex CLI 做完一个真实小项目") |
| 115 | +- [ ] 出版用的封面 / ISBN / 版式(如果要走出版社) |
| 116 | +- [ ] PDF 导出脚本调优(中文字体 / 代码块换行) |
| 117 | + |
| 118 | +每一项都可以独立 PR 进来。 |
| 119 | + |
| 120 | +## 上游 |
| 121 | + |
| 122 | +GitHub: [jnMetaCode/ai-coding-guide](https://github.com/jnMetaCode/ai-coding-guide) |
0 commit comments