MkDocs 文档站点快速搭建

FreeGuideOnline 最新 2026-07-11

欢迎来到我的文档

这是使用 MkDocs 构建的第一个站点。

快速开始

请浏览左侧导航查看各章节。


你可以继续在 `docs/` 下创建更多 `.md` 文件,如 `about.md`、`guide/getting-started.md` 等。

### 配置导航结构

编辑 `mkdocs.yml`,定义站点名称和页面导航:

```yaml
site_name: 我的文档
site_description: 使用 MkDocs 构建的技术文档站点
theme: material

nav:
  - 首页: index.md
  - 关于: about.md
  - 使用指南:
    - 快速入门: guide/getting-started.md
    - 配置详解: guide/configuration.md

保存后,所有在 nav 中定义的页面都会自动生成导航菜单。

实时预览与写作

MkDocs 内建开发服务器,支持内容变更后自动刷新浏览器。

在项目根目录(包含 mkdocs.yml 的目录)运行:

mkdocs serve

打开浏览器访问 http://127.0.0.1:8000,即可看到你的站点。编辑任何 Markdown 文件并保存,浏览器会自动刷新显示最新内容。

若要停止服务器,在终端按下 Ctrl + C

配置与自定义

更换主题

mkdocs.yml 中修改 theme 字段即可切换主题。内置主题有 mkdocsreadthedocs。若使用 Material 主题,设置如下:

theme:
  name: material

Material 主题支持颜色、字体、语言、特性开关等高级配置,例如:

theme:
  name: material
  palette:
    primary: indigo
    accent: pink
  language: zh
  features:
    - navigation.tabs
    - search.highlight

启用常用扩展

MkDocs 通过 Python-Markdown 扩展增强写作能力。在 mkdocs.yml 中添加 markdown_extensions

markdown_extensions:
  - admonition
  - codehilite:
      guess_lang: false
  - toc:
      permalink: true
  - pymdownx.superfences
  - pymdownx.details
  • admonition:可以添加提示框、警告等区块。
  • codehilite:代码语法高亮。
  • toc:自动生成目录,并可添加段落锚点。
  • superfences:支持更复杂的代码块嵌套。
  • details:实现 HTML 折叠块。

添加插件

MkDocs 支持插件系统。例如,安装并启用搜索插件、RSS 插件等。在 mkdocs.yml 中配置 plugins

plugins:
  - search
  - minify:
      minify_html: true

插件需提前安装,search 已内置无需额外安装。

构建静态文件

站点开发完成后,执行构建命令生成纯静态 HTML、CSS、JS 文件:

mkdocs build

构建结果默认输出到 site/ 目录。你可以将该目录部署到任何静态文件托管服务,如 GitHub Pages、Netlify、Vercel 等。

注意:构建前确保没有错误链接,可以在开发服务器中检查所有页面。

部署到 GitHub Pages

MkDocs 提供了便捷的部署命令,将 site/ 目录推送到 GitHub 仓库的 gh-pages 分支。

前提条件

  • 已创建 GitHub 仓库,并关联本地仓库。
  • 所有修改已提交到远程 main 分支。

一键部署

在项目根目录执行:

mkdocs gh-deploy

MkDocs 会自动构建站点,并将构建后的文件推送到远程 gh-pages 分支。几分钟后,你的站点即可通过 https://<用户名>.github.io/<仓库名> 访问。

你可以在 mkdocs.yml 中指定自定义域名等 GitHub Pages 配置,或通过 CNAME 文件实现。

常见问题与技巧

如何让链接在新标签页打开?

在 Markdown 中无法直接控制,但可以通过 MkDocs-Material 主题的配置实现打开外部链接为新窗口,在 mkdocs.yml 中设置:

theme:
  name: material
  features:
    - navigation.tabs
extra:
  consent:
    actions:
      - accept

或通过自定义 JavaScript 实现。

如何处理图片和附件?

将图片或其他资源文件放在 docs/ 下的某个子目录,例如 docs/assets/images/,然后在 Markdown 中使用相对路径引用:

![架构图](../assets/images/architecture.png)

构建时会自动复制这些文件。

如何使用相对链接?

MkDocs 会自动将 .md 文件扩展名转换为 .html,所以页面间的链接只需使用 .md 扩展名即可:

请参考 [配置详解](guide/configuration.md)