Python 文档生成器 mkdocs

文:苏生不惑

源:苏生不惑

mkdocs 是一个基于Python 对 Markdown 非常友好的文档生成器,中文文档地址

使用 mkdocs 我们可以用 md 编写自己的文档,而且可以免费部署到 GitHub 。

安装

pip install mkdocs

新建文档

λ mkdocs.exenewmydoc

INFO    -  Creating project directory: mydoc

INFO    -  Writing config file: mydocmkdocs.yml

INFO    -  Writing initial docs: mydocdocsindex.md

λ cd mydoc

d:codemydoc

λ ls

docs/  mkdocs.yml

d:codemydoc

λ mkdocs serve

INFO    -  Building documentation...

INFO    -  Cleaning site directory

[I19052820:32:49server:296] Serving on http://127.0.0.1:8000

[I19052820:32:49handlers:62] Start watching changes

[I19052820:32:49handlers:64] Start detecting changes

[I19052820:33:06handlers:135] Browser Connected: http://127.0.0.1:8000/


编辑文档

vi docs/index.md

把 command 改为中文 命令 记得把文件改为 utf8 编码,否则会出错

INFO    -  Building documentation...

ERROR   -  Encoding error reading file: index.md

ERROR   -Errorreading page'index.md':'utf-8'codec can't decode byte 0xc3 in position 92: invalid continuation byte

[E 190528 20:38:45 ioloop:801] Exception in callback 

livereload.handlers.LiveReloadHandler'>>

刷新看到效果

image.png


vi mkdocs.yml

把site_name 的 my docs 改为中文 我的文档

image.png


添加页面

vi about.md

vi mkdocs.yml

site_name: 文档

pages:

- [index.md, Home]

- [about.md, About]

然后报错了

INFO    -  Building documentation...

ERROR   -  Config value:'pages'. Error: Invalid pages config. {}{, }

[E190529 09:57:45ioloop:801]Exceptionincallback>

Traceback(mostrecentcalllast):

File"d:pythonlibsite-packagestornadoioloop.py",line1229,in_run

returnself.callback()

File"d:pythonlibsite-packageslivereloadhandlers.py",line69,inpoll_tasks

filepath,delay

= cls.watcher.examine()

File"d:pythonlibsite-packageslivereloadwatcher.py", line105,inexamine

func()

File"d:pythonlibsite-packagesmkdocscommandsserve.py", line107,inbuilder

site_dir=site_dir

File"d:pythonlibsite-packagesmkdocsconfigase.py", line210,inload_config

"Aborted with {0} Configuration Errors!".format(len(errors))

mkdocs.exceptions.ConfigurationError: Abortedwith1Configuration Errors!

λ mkdocs -V

mkdocs, version1.0.4fromd:pythonlibsite-packagesmkdocs (Python3.7)

image.png


Google 查找到issue https://github.com/mkdocs/mkdocs/issues/1770

https://www.mkdocs.org/user-guide/writing-your-docs/#configure-pages-and-navigation

改为

site_name: 我的文档

nav:

- 主页:'index.md'

- 关于:'about.md'

theme: readthedocs

image.png


https://markdown-docs-zh.readthedocs.io/zh_CN/latest/

原来是中文文档过时了。

站点生成

λ mkdocs build

INFO    -  Cleaning site directory

INFO    -  Building documentation to directory: d:codemydocsite

d:codemydoc

λ ls

docs/  mkdocs.yml  site/

一段时间后, 可能有文件被从源码中移除了, 但是相关的文档仍残留在 site 目录中. 在构建命令中添加  --clean 参数即可移除这些文档.

$ mkdocs build --clean

λ cd site

d:codemydocsite

λ ls

404.html  css/    img/        js/      search.html  sitemap.xml.gz

about/    fonts/  index.html  search/  sitemap.xml

d:codemydocsite

λ php -S localhost:8000

PHP7.1.13Development Server started at Wed May2910:17:192019

Listening on http://localhost:8000

部署到GitHub

部署之前先配置下GitHub秘钥

cd ~/.ssh

ssh-keygen -t rsa -C “mysusheng@gmail.com”

这里不要一路回车,我们自己手动填写保存路径

vi config

Host github.com

HostName github.com

User git

IdentityFile ~/.ssh/mysusheng

λ ssh -T git@github.com

Hi sushengbuhuo! You've successfully authenticated, but GitHub does not provide shell access.

然后将公钥上传到GitHub 配置。

λ git clone https://github.com/sushengbuhuo/markdown_doc

Cloning into'markdown_doc'...

remote: Enumerating objects:3, done.

remote: Counting objects:100% (3/3), done.

remote: Total3(delta0), reused0(delta0), pack-reused0

Unpacking objects:100% (3/3), done.

d:code

λ cd markdown_doc

d:codemarkdown_doc (master)

λ ls

README.md

d:codemarkdown_doc (master)

λ mkdir docs

d:codemarkdown_doc (master)

λ cd docs

d:codemarkdown_docdocs (master)

λ mkdocs.exenew.

INFO    -  Writing config file: .mkdocs.yml

INFO    -  Writing initial docs: .docsindex.md

d:codemarkdown_docdocs (master)

λ mkdocs build

INFO    -  Cleaning site directory

INFO    -  Building documentation to directory: d:codemarkdown_docdocssite

d:codemarkdown_docdocs (master)

λ echo"site/">> .gitignore

d:codemarkdown_docdocs (master)

λ mkdocs gh-deploy --clean

INFO    -  Cleaning site directory

INFO    -  Building documentation to directory: d:codemarkdown_docdocssite

WARNING -  Version check skipped: No version specificedinprevious deployment.

INFO    -  Copying'd:codemarkdown_docdocssite'to'gh-pages'branch and pushing to GitHub.

INFO    -  Your documentation should shortly be available at: https://sushengbuhuo.github.io/markdown_doc/

就是把site目录代码上传到github gh-pages分支了.

推送完成后浏览器访问 https://sushengbuhuo.github.io/markdown_doc/ 就可以看到效果了,接着修改md文件完善你的文档。

image.png 
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,222评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,455评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,720评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,568评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,696评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,879评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,028评论 3 409
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,773评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,220评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,550评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,697评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,360评论 4 332
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,002评论 3 315
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,782评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,010评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,433评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,587评论 2 350

推荐阅读更多精彩内容

  • # Python 资源大全中文版 我想很多程序员应该记得 GitHub 上有一个 Awesome - XXX 系列...
    小迈克阅读 2,965评论 1 3
  • # Awesome Python [![Awesome](https://cdn.rawgit.com/sindr...
    emily_007阅读 2,203评论 0 3
  • 《鹿鼎记》中韦小宝的“俏老婆”阿珂,和人过招最开始特别能唬住人,招式不按常理出牌,各门派功夫混着打。原来,“九难师...
    我是朱舟阅读 851评论 2 7
  • 木槿花 住在园里 安分地守在小亭旁 友好地向一只蝴蝶微笑 清风徐来 空气中徘徊 太阳掉下来 碎了情怀 我站在桥的一...
    龙青阅读 325评论 4 10
  • 随着随着Sirin Lads 在十二月高达1.5亿美元的众筹,Sirin Lads是目前出现在手机区块链技术领域的...
    水兔儿阅读 818评论 3 3