Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

技术口

基本技能

需要熟练使用的工具

  • github
  • Cloudflare
  • kaiser

mdbook网页部署

  1. 完成本地的mdbook架构, 如下
Repository
│   .git
│   .gitignore
└───.github
│   └───workflows
│       │   deploy-github.yaml
│   book.toml
│   wrangler.toml
└───src
│   │   SUMMARY.md
│   │   main.md
│   └───data
│       │   ***.md
│       │   ...
│       └───...
└───book

可以通git initmdbook init命令辅助初始化工作, 也可以直接参考已有的项目(如本项目).

具体的mdbook书写与应用再次不做赘述, 可以参考mdbook中文文档.

.github/workflows/deploy-github.yaml文件内容如下, 无需更改即可使用:

name: Deploy

on:
  push:
    branches:
      - master

jobs:
  deploy:
    runs-on: ubuntu-latest
    name: Deploy
    steps:
      - uses: actions/checkout@v4
      - name: Setup mdBook
        uses: peaceiris/actions-mdbook@v2
        with:
          mdbook-version: "latest"
      - uses: supplypike/setup-bin@v4
        with:
          uri: "https://github.com/lzanini/mdbook-katex/releases/download/0.9.2-binaries/mdbook-katex-v0.9.2-x86_64-unknown-linux-gnu.tar.gz"
          name: "mdbook-katex"
          version: "0.9.2"
      - name: Deploy
        uses: cloudflare/wrangler-action@v3
        with:
          preCommands: mdbook build
          apiToken: ${{ secrets.CLOUDFLARE_API_TOKEN }}
          accountId: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }}

book.toml文件内容如下, 需要部分修改:

[book]
title = "" #请在此补充mdbook的标题
description = "" #请在此补充mdbook的描述性文本
authors = ["", ""] #请在此补充作者
language = "zh-CN"
multilingual = false
src = "src"

[preprocessor.katex]
after = ["links"]
output = "htmlAndMathml"
pre-render = true
include-src = true

[preprocessor.toc]
command = "mdbook-toc"
renderer = ["html"]

[output.html]
git-repository-url = "" #请在此补充git仓库的链接(https://github.com/thudep/*)

[output.html.search]
boost-hierarchy = 2
boost-paragraph = 1
boost-title = 2
expand = true
heading-split-level = 2
limit-results = 20
use-boolean-and = true

wrangler.toml文件内容如下, 需要部分修改:

assets = { directory = "./book", not_found_handling = "404-page" }
compatibility_date = "" #请在此补充写作日期
name = "" #请在此补充网页名(不要使用大写字母)
workers_dev = false

.gitignore文件一般来说必须包含book, 本地mdbook构建出的book文件不需要上传至远程git仓库, 在workflows中会自动构建.

  1. 在Cloudflare上创建token并填入github的仓库中

CloudflareSAST of EPManage Account中选择Account API Tokens, 之后Create Token, 配置如下:

<Permisions>
Account - Workers Builds Configuration - Edit
Account - Cloudflare Pages - Resources
Account - Workers R2 Storage - Edit
Account - Workers Tail - Read
Account - Workers KV Storage - Edit
Account - Workers Scripts - Edit
Account - Account Settings - Read
Zone - Workers Routes - Edit

<Zone Resources>
Include - Specific zone - thudep.com

在创建完成后, 会显示Token, 请复制(不会再次显示), 在github的对应仓库中, 在SettingsSecuritySecrets and variablesActions中,点击New repository secret, 在Name处填入CLOUDFLARE_API_TOKEN, 在Secret处填入复制的Token。

  1. 在Cloudflare中填入网站链接

成功运行仓库的Actions后,在Cloudflare的中SAST of EPCompute(Workers)中选择Workers & Pages, 可以发现已经自动创建了对应的Worker, 进入该Worker后, 在SettingsDomains & Routes中点击+Add, 输入你的网站链接***.thudep.com.