MkDocs 项目管理

基于 MkDocs 的项目管理工具,支持创建、构建和批量发布文档站点。

0x01. 功能特性

  • 创建项目: 快速初始化新的 MkDocs 文档项目
  • 构建项目: 将 MkDocs 项目构建为静态 HTML,输出到指定目录
  • 批量构建: 通过 TOML 配置文件,一次性构建并发布多个 MkDocs 项目

0x02. 快速开始

1. 创建新的 MkDocs 项目

zxtool mkdocs create <项目目录> [--name <站点名称>]
参数 说明
project_dir 项目目录路径(不存在则自动创建)
--name 站点名称(默认使用目录名)

示例:

# 创建名为 "My Docs" 的项目
zxtool mkdocs create ./my-docs --name "My Docs"

# 创建后目录结构:
# my-docs/
# ├── mkdocs.yml      # MkDocs 配置文件
# └── docs/
#     └── index.md    # 文档首页

2. 构建单个项目

2.1 按目录构建

zxtool mkdocs build <项目目录> [-o <输出目录>] [-c <配置文件>] [--strict]
参数 说明
project_dir MkDocs 项目目录(包含 mkdocs.yml)
-o, --output 输出目录(默认使用 mkdocs.yml 中的 site_dir)
-c, --config 配置文件路径(相对或绝对路径,默认 mkdocs.yml)
--strict 严格模式(警告视为错误)

示例:

# 构建到默认 site 目录
zxtool mkdocs build ./my-docs

# 构建到指定输出目录
zxtool mkdocs build ./my-docs -o ./output/html

# 使用自定义配置文件
zxtool mkdocs build ./my-docs -o ./output/html -c custom-mkdocs.yml

# 严格模式构建
zxtool mkdocs build ./my-docs -o ./output/html --strict

2.2 按项目名称构建

通过项目名称从 zxtool.toml 配置文件查找项目并构建。配置文件中的 output_dirconfig_filestrict 等参数会自动使用。

zxtool mkdocs build --name <项目名称> [-c <配置文件>] [-o <输出目录>] [--strict]
参数 说明
--name 项目名称(对应 zxtool.tomlprojectsname 字段)
-c, --config zxtool.toml 配置文件路径(默认 ~/.config/zxtool.toml
-o, --output 输出目录(覆盖配置文件中的 output_dir)
--strict 严格模式(与配置文件中的 strict 取或)

示例:

# 按名称构建项目
zxtool mkdocs build --name myblog

# 指定配置文件构建
zxtool mkdocs build --name myblog -c ./my-config.toml

# 覆盖输出目录
zxtool mkdocs build --name myblog -o ./custom-output

3. 批量构建多个项目

zxtool mkdocs batch [配置文件] [--dry-run]
参数 说明
config_file TOML 配置文件路径(可选,默认读取 ~/.config/zxtool.toml
--dry-run 仅打印构建计划,不实际执行

配置文件中项目字段说明:

字段 类型 必填 说明
name string 项目唯一名称,用于 mkdocs build --name 按名称构建
project_dir string MkDocs 项目目录
output_dir string 输出目录
config_file string 自定义配置文件
strict boolean 是否严格模式
git_repository string 远程 Git 仓库地址

配置文件路径优先级:

  1. 命令行指定:zxtool mkdocs batch ./my-config.toml
  2. 默认路径:~/.config/zxtool.toml(不指定配置文件时自动读取)

TOML 配置文件格式:

[[projects]]
name = "myblog"
project_dir = "/path/to/project1"
output_dir = "/path/to/output1"
git_repository = "https://github.com/user/myblog.git"

[[projects]]
name = "api-docs"
project_dir = "/path/to/project2"
output_dir = "/path/to/output2"

[[projects]]
project_dir = "/path/to/project3"
output_dir = "/path/to/output3"
config_file = "custom-mkdocs.yml"  # 可选,使用自定义配置文件
strict = true                       # 可选,启用严格模式
git_repository = "https://github.com/user/project3.git"

示例:

# 使用默认配置文件 (~/.config/zxtool.toml)
zxtool mkdocs batch

# 预览构建计划(使用默认配置)
zxtool mkdocs batch --dry-run

# 使用自定义配置文件
zxtool mkdocs batch ./batch-config.toml --dry-run

# 执行批量构建(自定义配置)
zxtool mkdocs batch ./batch-config.toml

输出示例:

加载配置文件: ./batch-config.toml
共 3 个项目待构建

--- [1/3] ---
构建项目: /path/to/project1
配置文件: /path/to/project1/mkdocs.yml
输出目录: /path/to/output1
[OK] 构建成功: /path/to/output1

--- [2/3] ---
...

========================================
批量构建完成: 3/3 成功
========================================
  [OK] /path/to/project1
  [OK] /path/to/project2
  [OK] /path/to/project3

0x03. 预览文档

1. 启动开发服务器

zxtool mkdocs serve <项目目录> [-a <地址:端口>] [-c <配置文件>] [--no-livereload]
参数 说明
project_dir MkDocs 项目目录(包含 mkdocs.yml)
-a, --dev-addr 开发服务器地址(格式: IP:PORT,默认 127.0.0.1:8000)
-c, --config 配置文件路径(相对或绝对路径,默认 mkdocs.yml)
--no-livereload 禁用热重载功能

示例:

# 在默认地址启动预览
zxtool mkdocs serve ./my-docs

# 指定地址和端口
zxtool mkdocs serve ./my-docs -a 0.0.0.0:8080

# 使用自定义配置文件
zxtool mkdocs serve ./my-docs -c custom-mkdocs.yml

# 禁用热重载
zxtool mkdocs serve ./my-docs --no-livereload

开发服务器启动后,在浏览器中访问指定地址即可实时预览文档。编辑源文件后,页面会自动刷新(热重载模式下)。按 Ctrl+C 停止服务器。

0x04. 注意事项

  • MkDocs 为核心依赖,安装 zxtoolbox 时自动安装(uv syncuv tool install zxtoolbox
  • MkDocs 主题(如 smzhbook)为可选依赖,需要额外安装:uv sync --extra docs
  • 输出目录不存在时会自动创建
  • 批量构建时,单个项目失败不影响其他项目的构建