My MkDocs | 大专栏

简介

介绍

项目文档生成器,生成静态站点,管理MarkDown文档;

官网

英文官网 中文官网 建议直接看最新的英文官方文档

特点

  • 一个用于创建项目文档的快速、简单、华丽的静态站点生成器,文档源码使用 Markdown 来撰写,用一个 YAML 文件作为配置文档。

  • 构建完全静态的 HTML 站点,可以将它托管到 GitHub pages、Amazon S3 等任意地方。

  • 默认包含大量美观的主题,可以在内置主题:mkdocs和readthedocs之间进行选择,也可以在MkDocs wiki中选择任一第三方主题,或者构建自己的主题。

  • 即时预览。

内建服务器允许我们在编写文档时预览文档。  每当我们保存更改时,其甚至会自动重新加载并刷新我们的浏览器。
  • 易于配置。

通过自定义主题,让我们的项目文档以我们希望的方式查找。
  • 交叉索引。

安装(MacOS)

  • brew search mkdocs 搜索Homebrew Cask中是否存在mkdocs
  • brew install mkdocs 安装MkDocs
  • mkdocs --version 验证安装

使用

初步试用

根据官方文档的步骤创建和使用MkDocs 建议先看中文文档了解过程,然后根据官方文档操作,因为官方文档总是最新的。

常用命令

  • mkdocs --help 帮助

mkdocs 指定命令 --help - 查看给定命令上可用的选项列表。  eg.mkdocs new --help - 查看新建工程命令上可用的选项列表。
  • mkdocs new '工程名' 创建新的MkDocs工程

  • mkdocs serve 运行内建的开发服务器

  • mkdocs build 构建MkDocs文档

  • mkdocs gh-deploy 将文档部署到GitHub页面上

  • mkdocs json 将MkDocs文档构建成JSON文件

注*以上命令除创建新的MkDocs命令外,均须在工程目录下执行。

操作流程

1.创建工程 - mkdocs new MkDocs

花一点时间来回顾一下我们创建的初始项目:有一个名为mkdocs.yml的配置文件,以及一个名为docs的文件夹,里面是我们文档的源文件。现在,该docs文件夹只包含一个名为index.md的文档页面。MkDocs附带一个内建服务器,可以让我们在处理文档时预览文档。确保我们与mkdocs.yml配置文件位于同一目录中,然后启用内建服务器:

2.启用内建服务器 - mkdocs serve

➜  MkDocs git:(master) ✗ mkdocs serveINFO    -  Building documentation...WARNING -  Config value: 'pages'. Warning: The 'pages' configuration option has been deprecated and will be removed in a future release of MkDocs. Use 'nav' instead.INFO    -  Cleaning site directory[I 190725 14:56:46 server:292] Serving on http://127.0.0.1:8000[I 190725 14:56:46 handlers:59] Start watching changes[I 190725 14:56:46 handlers:61] Start detecting changes[I 190725 14:56:46 handlers:132] Browser Connected: http://127.0.0.1:8000/[I 190725 14:56:47 handlers:92] Reload 1 waiters: None[I 190725 14:56:47 handlers:132] Browser Connected: http://127.0.0.1:8000/[I 190725 14:56:48 handlers:79] Ignore: /usr/local/Cellar/mkdocs/1.0.4_1/libexec/lib/python3.7/site-packages/mkdocs/contrib/search/templates/search/lunr.js

3.在浏览器中打开我们将看到显示的默认主页:

内建服务支持自动重新加载,只要配置文件、文档目录或主题目录中的任何内容发生更改,都将重建文档。现在尝试编辑mkdocs.yml配置文件:将site_name值更改为MyMkdocs并保存。我们的浏览器将自动重新加载,我们应该立即看到更新过的文档 - 新的站点名称生效。

4.添加页面

  • 现在在文档中添加第二页(about.md):

  • 由于我们的文档站点将包含一些导航标题,因此可能需要编辑配置文件,并通过添加pages设置在导航标题中添加有关每个页面的顺序、标题和嵌套的一些信息:

site_name: My MkDocs  pages:  - 首页: index.md  - 关于: about.md
  • 保存更改,现在我们会看到位于导航栏左侧的主页关于 菜单项左侧以及位于导航栏右侧的SearchPreviousNext菜单项。

  • 尝试菜单项并在页面之间来回导航。然后点击 Search。将出现一个搜索对话框,允许我们搜索任何页面上的任何文本。

请注意,搜索结果包括网站上每次出现的搜索字词,并直接链接到搜索字词所在页面的部分。我们无需付出任何努力或配置即可完成所有这些工作!

5.配置主题

  • 现在在配置文件中更改主题以更改文档的显示方式。编辑mkdocs.yml文件并添加theme设置:

site_name: My MkDocs  pages:  - 主页: index.md  - 关于: about.md  theme: readthedocs
  • 保存更改,我们将看到正在使用的readthedocs主题

6.更改favicon图标

默认情况下,MkDocs使用MkDocs favicon图标。要使用其他图标,须在我们的docs目录下创建img子目录,然后将自定义favicon.ico文件复制到该目录。MkDocs将自动检测并使用该文件作为我们的的favicon图标。

7.生成站点 - mkdocs build

至此,我们已经准备好部署My MkDocs文档的第一个过程。

  • 首先构建文档

mkdocs build
  • 这将创建一个名为site的新目录。看一下目录:

➜  site git:(master) ✗ tree -L 2  .  ├── 404.html  ├── about  │   └── index.html  ├── css  │   ├── base.css  │   ├── bootstrap-custom.min.css  │   └── font-awesome.min.css  ├── fonts  │   ├── fontawesome-webfont.eot  │   ├── fontawesome-webfont.svg  │   ├── fontawesome-webfont.ttf  │   ├── fontawesome-webfont.woff  │   ├── fontawesome-webfont.woff2  │   ├── glyphicons-halflings-regular.eot  │   ├── glyphicons-halflings-regular.svg  │   ├── glyphicons-halflings-regular.ttf  │   ├── glyphicons-halflings-regular.woff  │   └── glyphicons-halflings-regular.woff2  ├── img  │   ├── favicon.ico  │   ├── grid.png  │   └── index  ├── index.html  ├── js  │   ├── base.js  │   ├── bootstrap-3.0.3.min.js  │   └── jquery-1.10.2.min.js  ├── search  │   ├── lunr.js  │   ├── main.js  │   ├── search_index.json  │   └── worker.js  ├── sitemap.xml  └── sitemap.xml.gz  请注意,我们的源文档已输出为两个名为index.html和about/index.html的HTML文件。  我们还有各种其他媒体已作为文档主题的部分复制到site了目录中。  我们甚至有一个sitemap.xml文件和mkdocs/search_index.json。
  • 如果我们正在使用源代码控制,例如git;我们可能不希望将文档构建检查添加到存储库中。因此添加包含 site/的行在我们的.gitignore文件中。

echo "site/" >> .gitignore
  • 一段时间后,文件可能会从文档中删除,但它们仍将驻留在site目录中。要删除这些陈旧文件,只需mkdocs 使用--clean开关运行即可。

mkdocs build --clean

8.其它命令和选项

  • 还有其他各种命令和选项。有关命令的完整列表,请使用--help标志:

mkdocs --help
  • 要查看给定命令上可用的选项列表,请使用带该命令标志的--help。例如,要获取该build命令可用的所有选项的列表,请运行以下命令:

mkdocs build --help

9.部署

  • 我们刚刚构建的文档站点仅使用静态文件,因此我们几乎可以在任何地方托管它。

  • GitHub项目页面Amazon S3可能是很好的托管选项(具体取决于我们的需求)。

  • 将整个site目录的内容上传到您托管网站的任何地方,然后我们就完成了(有关许多常见主机的具体说明,请参阅部署您的文档页面)。

注*:1. 如果是公司的项目,项目文档不能对外开放,我们可以上传到公司的GitLab上。2. 如果是个人的项目,我们可以上传到GitHub上

注意

  • 如果创建站点的话,将图片和文档放在同一个文件夹中即可。
  • 如果是图片的话,需要重启本地内置的服务器。
  • 内建服务器支持在配置文件、文档目录或主题发生改变时自动载入并重新生成文档。

MkDocs项目文档生成器(二)

前言

前面一篇讲了如果搭建自己的MkDocs来管理自己的文档,在搭建完成后既可以使用内设的小型服务器来生成一个静态的站点、又可以将我们的site文件夹直接放到服务器上;

eg.放在本地的Tomcat: apacht-comcat-8.0.36webapps路径下,启用自己的Tomcat,就能够直接访问:http://ipaddress:8080/site/,就会默认打开site目录下的index.html。同理,我们也可以将其放到自己公司的服务器或者托管到GithubPages上;

项目发布到GitHub Pages

  1. 创建名为username.github.io的空repository

  2. 将仓库clone到本地

  3. 将mkdocs文档生成的site文件夹下的所有内容复制到本地的仓库中并push到github上

  4. 访问username.github.io,默认就会打开仓库的根目录下的index.html这个网页 - 恭喜你,大功告成!

编辑

  • 配置页面和导航栏(在mkdocs.yml配置文件中定义的页面才会被mkdocs创建,然后显示在导航栏上)

简单的配置页面:    pages:    - 首页: index.md    - 关于: about.md
  • 多级导航栏(按照下面的代码创建的子选项会被以列表的形式,显示在所属的导航条下)

pages:    - 首页: index.md    - 用户指南:        - 编辑你的文档: user-guide/writing-your-docs.md        - 设计你的文档: user-guide/styling-your-docs.md    - 关于:        - 许可证: about/license.md        - 发行说明: about/release-notes.md
  • 文件的路径(如果MarkDown文件是在一个site中,那么文档的URL就是文档的路径)

docs/        index.md        user-guide/getting-started.md        user-guide/configuration-options.md        license.md        getting-started.md这个文档的路径就是user-guide/getting-started.md,默认根目录就是docs        这样的话,就可以在一个文档中链接另外一个文档了,即可以从文档A中打开文档B,见下面的内容。
  • 内部链接(从一个文档中打开另外一个文档)

[如何开始构建文档](user-guide/getting-started.md)    其实最后会被转化成从一个网页打开另外一个网页
  • 显示图片(路径如下:)

mkdocs.yml    docs/        CNAME        index.md        about.md        license.md        img/            screenshot.png    在MarkDown中写法如下,其实这个就是markdown的标准语法,圆括号中的就是图片的地址,可以是本地的地址,也可以是网络的地址:    ![Screenshot](img/screenshot.png)
  • MarkDown语法扩展

推荐一个十分不错的MarkDown软件Typora

样式

MkDocs包含许多不同的内置的样式和扩展的样式,也可以很容易的实现个性定制

  • 想要使用内置的样式,只要在配置文件中写入下列代码:
theme: readthedocs    即 theme: 样式的名称
  • 目前可用的样式包括mkdocs和readthedocs两种
其它几个主题需要安装,因为不会附带,但是安装的时候提示升级,升级的时候提示错误,所以我就忽略了,重点在文档的内容,主题什么的以后再说吧!

配置

下面给出部分主要的配置信息:

项目信息

  • site_name 站点的名称,这个配置是必须的,并且会显示在网页的顶部
site_name: The Library of Development
  • site_description 站点的描述
配置信息太多了,可以查看中文文档的翻译,然后从官方网站上复制代码
(0)

相关推荐

  • Markdown数学公式简要

    Markdown的语法简洁明了.学习容易,而且功能比纯文本更强,因此用它写文档非常方便,还可以轻松的导出PDF或者HTML的文件.github上的wiki,各个project 中的readme,以及国 ...

  • 在网络世界上安一个家

    一.前言 记录带新人的那些事,主要是一些工作技巧上的分享 最近因为忙于项目,所以都没时间更新文章了,正好也在带几个实习小妹.所以也建议他们要善于思考,学会总结,多写写笔记,便于记忆与查阅. 授人以鱼不 ...

  • 不会写文档,叫什么高级程序员!

    来源:Python 技术「ID: pythonall」 文档的重要性无容置疑,而且文档编写能力是程序员最重要的软实力之一.不过编写文档不仅枯燥,而且后期制作难度高,谁都不愿意做. 今天我们来聊一聊,如 ...

  • markdown在线编辑与软件

    markdown在线编辑 作业部落 https://www.zybuluo.com/mdeditor 马克飞象 https://maxiang.io/ 菜鸟工具 http://c.runoob.com ...

  • 基于Vue搭建自己的组件库(1)

    本项目地址:https://github.com/husilang/vue-ui-demo 项目参考文章:从零开始搭建Vue组件库 VV-UI 项目的初衷是学习怎么封装一个基于Vue的UI组件库,顺便 ...

  • ubuntu下conda+pytorch+opencv环境配置 | 大专栏

    在ubuntu系统上利用安装conda,pytorch,opencv,并结合rfb-net在voc2007和voc2012上完成测试.核心内容还是环境的配置,特别是解决环境配置中遇到的各种问题. 安装 ...

  • iOS10富文本推送通知 | 大专栏

    Table of Contents 1. Xcode推送开关 2. APNs推送格式定义 2.1. 普通推送的格式 2.2. iOS10富文本推送扩展字段 3. 推送消息处理 3.3.1. 暂存处理资 ...

  • 联通华为HG8347R设置桥接模式 | 大专栏

    前面的笔记中有提到如何通过外网访问家里的服务.在某些场景下可能会用到,比如想要在单位ssh家里的电脑,或者访问家里的NAS等设备等等.之前用的电信的宽带,是通过自己的路由器拨号上网,并且外网IP也是直 ...

  • 比值比(odds ratio)与相对风险(relative risk) · 大专栏

    人工智能 比值比(odds ratio)与相对风险(relative risk) zhongqingmin · 2020年03月10日 · 76 次阅读 首先来看几个概念: 概率(probabilit ...

  • 无人驾驶都在哪些场景实现了落地 | 大专栏

    自动驾驶正在你意想不到的各个领域快速落地,并开始服务大众.下面,就一起来盘点一下无人驾驶都在哪些场景实现了落地 1.无人快递车 无人快递车,这可能是最早为你服务的无人车.电商与快递市场的急速增长,快递 ...

  • 「笔记」许岑:有效训练你的研究能力 | 大专栏

    研究和学习的区别 依靠模仿而进行的学习或者说练习,最高境界也就是达到跟你的学习对象一样好,而要超越它,就需要研究能力了. 有时候是获取更扎实的知识,有时候是掌握更先进的技能. 与学习相比,研究不包含练 ...

  • 汪宝荣自译专栏 || 第一章 初识港大

    初识港大 My First Few Days at HKU 原文与译文 by汪宝荣 作者简介 汪宝荣,香港大学翻译系哲学硕士及哲学博士,浙江财经大学翻译研究所所长,浙江财经大学外国语学院教授.曾为英国 ...

  • 海外专栏 | 不容错过的年度展览大合辑(内含元宵节彩蛋)

    小伙伴们,大家好~今天是正月十五元宵节,过了今天,2019年的春节假期就正式和大家说再见啦,又要开始新一年的学习和工作了. 新的一年里,LAC studio海外团队希望为大家提供更丰富的海外留学视角, ...

  • 大咖专栏|领导力提升系列(一):自大是对领导力的严重破坏

    大咖介绍 陈斌 NETSTARS首席技术官(CTO) 互联网技术百人会理事长.CTO联盟执行主席.陈斌一直专注于互联网技术领域的探索和创新,拥有丰富的海外经历.多年的架构经验,深谙移动互联网对传统行业 ...