使用mkdocs撰写技术文档并免费部署上线

摘要:
本地调试进入pythonGuide项目目录,在与mkdocs.yml同级的目录下执行命令mkdocsserve即可:cdpythonGuidemkdocsserve启动后默认在本地8000端口可以看到文档的在线呈现的内容。将项目部署上线激动人心的时刻来了!还是在之前的目录下,直接执行命令:mkdocsgh-deploy你会看到下面这个提示:执行完这行命令后,访问https://Wanghongw.github.io/pythonGuide/即可在线看到我们写的技术文档页面了!所有的一切都是mkdocsgh-deploy一键生成的!!!!!!

提示

本文演示使用的Python解释器版本为3.6.8;操作系统为MacOS。

另外本人在实际使用中出现过一个问题:如果同一个Github项目既在Mac端又在Windows端编写本地文档与yml配置文件的话展示出来的页面会有问题!所以强烈建议大家同一个在线文档项目使用相同的操作系统平台编写,避免不必要的bug出现。

安装mkdocs模块

pip3 install mkdocs

安装完后查看一下版本:

mkdocs --version
'''mkdocs, version 1.0.4 from /Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/mkdocs (Python 3.6)
'''

在本地创建一个项目

# 这里项目名是pythonGuide
mkdocs new pythonGuide

执行完上面命令后我们会看到在当前目录下自动生成了一个pythonGuide项目目录,我们看看里面的东西:

ls pythonGuide
'''docs        mkdocs.yml
'''

pythonGuide这个项目目录有一个docs目录,主要存放我们文档的源文件以及图片的资源;mkdocs.yml是配置文件,文档页面的目录结构以及主题等等都是在这里配置的。

本地调试

进入pythonGuide项目目录,在与mkdocs.yml同级的目录下执行命令 mkdocs serve即可:

cd pythonGuide

mkdocs serve

启动后默认在 本地8000端口 可以看到文档的在线呈现的内容。

项目的本地配置

这里我把项目的目录结构配置成了下面这样:

.
├── docs
│ ├── imgs
│ │ └── egg.jpeg
│ ├── index.md
│ └── python基础
│     └── python基础1.md
└── mkdocs.yml

截图如下:

使用mkdocs撰写技术文档并免费部署上线第1张

注意:里面的index.md文件不可以删除!我们可以在index.md中配置一下主页展示的内容。

mkdocs.yml中的内容

site_name: Python入门与进阶指南
theme: readthedocs

nav: 
  -Python基础:
    - 01 基础1: python基础/基础1.md

index.md中的内容

### Python入门与进阶指南
这是我的Python入门与进阶指南。
![egg](imgs/egg.jpeg)

注意这里引入图片的路径

python基础目录下基础1.md的内容

这是python基础1.md的内容

运行serve命令在本地查看一下效果

进入网站主页是这样的:

使用mkdocs撰写技术文档并免费部署上线第2张

点击 01 基础1 就可以看到我们在 基础1.md 中编辑的内容:

使用mkdocs撰写技术文档并免费部署上线第3张

将项目放在Github上进行版本管理

在GitHub上创建一个仓库,建议与本地项目重名便于管理:

使用mkdocs撰写技术文档并免费部署上线第4张

接下来根据提示将我们的项目放在Github上即可:

使用mkdocs撰写技术文档并免费部署上线第5张

最后我们可以看到本地项目放在Github上了:

使用mkdocs撰写技术文档并免费部署上线第6张

关于gitignore的说明

大家可以看一下我的.gitignore文件:

*~
/benchmarks/
/spell/
/.vault.vim
/.local.vimrc
/.stignore
/.stfolder
/.stversions
.vim
.DS_Store
site
docs

注意最后那两个 site 与 docs。

site是执行了 mkdocs build命令后的存放静态文件的目录,没有必要放进去;

docs目录是我们编写文档的源文件,后面我要介绍如何将项目托管到gitpages上,用不到这个docs目录,为了安全起见不建议将我们本地文档的源文件也上传到Github上。

将项目部署上线

激动人心的时刻来了!

还是在之前的目录下,直接执行命令:

mkdocs gh-deploy

你会看到下面这个提示:

使用mkdocs撰写技术文档并免费部署上线第7张

执行完这行命令后,访问 https://Wanghongw.github.io/pythonGuide/ 即可在线看到我们写的技术文档页面了!

授人以鱼不如授人以渔 ***

项目部署上线的过程实在是太简单了!接下来我给大家详细介绍一下执行完mkdocs gh-deploy 这个命令究竟发生了哪些事情

在本地生成网站

执行完mkdocs gh-deploy命令后我们可以看到在本地多了一个 site 目录:

使用mkdocs撰写技术文档并免费部署上线第8张

这个site目录其实就是build命令生成的网站资源。

关于build命令的使用大家可以参考这里:https://mkdocs.zimoapps.com/#_12

自动生成gh-pages分支并将网站的静态资源放在这个分支中

在执行gh-deploy之前我一直是在master分支上操作的。

执行完之后我们看看分支情况:

git branch
'''gh-pages
* master
'''

大家可以看到它帮我们自动创建了一个分支:gh-pages。

然后我们切换到这个分支下看一下里面的东西:

git checkout gh-pages

使用mkdocs撰写技术文档并免费部署上线第9张

可以看到,这个分支里面是根据docs目录与mkdocs.yml这两个生成的网站的静态资源!

将网站访问指向这个分支

这一步我们在Github中看。

找到我们的项目,点击settings:

使用mkdocs撰写技术文档并免费部署上线第10张

在settings看一下GithubPages这个设置项:

使用mkdocs撰写技术文档并免费部署上线第11张

是的!所有的一切都是mkdocs gh-deploy 一键生成的!!!!!!

个人作品

本人之前也使用mkdocs搭建了一个Django与Python的使用指南,欢迎大家访问:

https://huoyingwhw.com/djangoGuide/

https://huoyingwhw.com/pythonGuide/

https://huoyingwhw.com/pythonUpper/

mkdocs的使用文档

https://mkdocs.zimoapps.com/

https://www.mkdocs.org/

免责声明:文章转载自《使用mkdocs撰写技术文档并免费部署上线》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇android中使用toolbarJS 滚动条滚动到指定元素触发下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Docker实践:基于python:3.7.1-stretch制作python镜像

搭建一个简单的Python环境 获取镜像 从docker hub获取最新的python镜像,例如我这次准备用的是3.7.1-stretch 接着新建Dockerfile文件,意思是从这个基础镜像进行搭建,这个文件是用来构建一个镜像 FROM python:3.7.1-stretch 获取插件 本次搭建python环境需要一些python的包,则需要...

python笔记19-获取当前运行函数名称和类方法名称

前言 写完代码之后,一般为了方便查看日志,可以在日志输出中加入当前运行的函数名称或类和方法名称,以便于代码报错的时候能快速找到报错的是哪个函数或方法。 那么如何获取当前运行函数(或方法)的名称呢? 获取函数名称 1.在函数外部获取函数名称,用.__name__获取 2.函数内部获取当前函数名称,用sys._getframe().f_code.co_nam...

python基础-6 字典相关练习题

写代码:有如下字典按照要求实现每一个功能dict = {"k1":"v1","k2":"v2","k3":"v3"} 1、请循环遍历出所有的key 1 dict = {"k1":"v1","k2":"v2","k3":"v3"} 2 3 #1、请循环遍历出所有的key 4 for k in dict: 5 print(k) View Code...

python 环境-----项目的包,打包方法

一. 将本地开发环境的依赖项目生成清单文件 1.在本地的开发环境中,env下执行: >pip3 freeze >requirements.txt 清单文件将会生成在当前项目目录下,内容如下所示将生成后的文件上传到linux服务器, requirements.txt 清单中的包 certifi==2018.4.16chardet==3.0.4i...

Python中调用Linux命令并获取返回值

方法一、使用os模块的system方法:os.system(cmd),其返回值是shell指令运行后返回的状态码,int类型,0表示shell指令成功执行,256/512表示未找到,该方法适用于shell命令不需要输出内容的场景。 os.system(cmd)会启动子进程,在子进程中执行cmd,如果cmd有执行内容,会在标准输出显示。 举例说明: 1. 列...

python基础练习题(题目 递归输出)

day19 --------------------------------------------------------------- 实例027:递归输出 题目 利用递归函数调用方式,将所输入的5个字符,以相反顺序打印出来。 分析:相反顺序可以用列表来,直接pop方法。 1 def reverseprint(a): 2 lit = list(...