惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Engineering at Meta
Engineering at Meta
雷峰网
雷峰网
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
B
Blog
Y
Y Combinator Blog
WordPress大学
WordPress大学
Microsoft Azure Blog
Microsoft Azure Blog
小众软件
小众软件
G
Google Developers Blog
云风的 BLOG
云风的 BLOG
罗磊的独立博客
博客园 - 三生石上(FineUI控件)
博客园 - 叶小钗
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
量子位
The Cloudflare Blog
T
The Blog of Author Tim Ferriss
博客园_首页
B
Blog RSS Feed
Hugging Face - Blog
Hugging Face - Blog
IT之家
IT之家
阮一峰的网络日志
阮一峰的网络日志
L
LangChain Blog
宝玉的分享
宝玉的分享

顾宇的博客

用 AI 重启生活 初始化 MacOS 关于我 再次见面,期待相遇 演讲和分享 如何通过政策红利获利?——海南发展(SZ.002163)交易复盘 2025年的总结 2024年的总结 2023年的总结 2022年的总结 《敏捷测试价值观、方法与实践》序 【翻译】函数式编程中的领域驱动设计 【翻译】通过跟踪技术债来改进你的开发实践 【翻译】不要把测试用例自动化 【翻译】持续部署 vs 持续交付 【翻译】测试替身 【翻译】做多少测试才足够 【翻译】蓝绿部署的起源 【翻译】持续部署 【翻译】作为演进式架构的微服务架构 【翻译】gRPC 的动机和设计原则 【翻译】分布式计算谬误 【翻译】微服务和分布式对象第一法则 采用 Multipass 管理本机虚拟 K8S 集群 博客主题升级到 Congo 2.0 【翻译】Terraform 最佳实践:模块组合 【翻译】Kubernetes 部署语言(Kubernetes Deployment Language) 通过 Vagrant 一键初始化 K8S 集群 2021年的总结 博客迁移到了新的 Hugo 主题
通过 Github Actions 部署 Mkdocs 文档
顾宇 · 2021-12-17 · via 顾宇的博客
  1. 顾宇的博客/
  2. Blogs/
  3. 通过 Github Actions 部署 Mkdocs 文档/

Mkdocs 是一个采用 Python 构建轻量级的静态 HTML 在线文档框架,内置部署到 Github Pages 的功能。我用来创建实践指南,用来做个人的知识积累。

安装 Mkdocs 以及 Mkdocs 主题 #

Mkdocs 以及主题都通过pip安装,例如我采用的mkdocs-material主题,如下所示:

1
pip install --user mkdocs mkdocs-material

值得一说的是,如果你安装主题,mkdocs 会作为依赖被安装。

更多的主题请参考 Wiki 页:https://github.com/mkdocs/mkdocs/wiki/MkDocs-Themes

创建并测试站点 #

通过mkdocs new <目录>就可以快速创建文档站点。目录里会生成mkdocs.yml文件和docs目录,目录内有默认的index.md文件,你可以修改和增加文件。

在所在目录执行mkserve,你就可以在http://localhost:8000看到初始化的文档。Mkdocs 会监测目录的改动并重新生成站点更新浏览器。

但如果你修改了配置,比如主题。就有可能出错中断进程。

这时站点还没有加载主题,你要修改mkdocs.yml,增加theme配置:

1
2
3
4
theme: 
  name: material
  language: zh
  highlightjs: true

不同的主题有不同的参数配置,详情可以参考对应主题的文档。

HTML 生成和部署 #

执行mkdocs build会新建site目录,并将 markdown 文件构建为 html 文件。

执行mkdocs gh-deploy就可以site中的 html 内容提交到代码仓库的gh-pages分支上,你要在 Github 上 代码库的配置中起用 Pages 才可以看见站点,地址是 https://<你的用户名>.github.io/<你的代码仓库>

通过 Github Actions 部署到 Github Pages #

我们可以用 Github Actions 把上述的构建和发布工作自动化,只需要在代码库上新建.github/workflow/gh-deploy.yml文件,内容如下:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
name: Deploy to Github Pages
  on:
    push:
      branches:
        - master
        - main
  jobs:
    deploy:
      runs-on: ubuntu-latest
      steps:
        - uses: actions/checkout@v2
        - uses: actions/setup-python@v2
          with:
            python-version: 3.x
        - uses: actions/cache@v2
          with:
            key: ${{ github.ref }}
            path: .cache
        - run: pip install mkdocs-material
        - run: mkdocs gh-deploy --force

提交后,你就可以看到自己的站点自动部署到 Github Pages。未来的提交也会出发这个流程。