美文网首页iOS开发极光Python 运维
MkDocs 文档生成逻辑浅析

MkDocs 文档生成逻辑浅析

作者: 磐创AI_聊天机器人 | 来源:发表于2016-06-27 16:31 被阅读2602次

Markdown 和 MkDocs 简介

Markdown 的语法简洁明了、学习容易,而且功能比纯文本更强,因此有很多人用它写博客。世界上最流行的博客平台 WordPress 和大型 CMS 如 Joomla 、Drupal 都能很好的支持 Markdown 。

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

MkDocs 处理的是一系列的 Markdown 文档,然后将 Markdown 文档的内容解析出来,保存在 Python 字典中,最后 Jinja2 模板把内容生成为 html 。

MkDocs 如何将 Markdown 内容解析出来?又是如何将文档内容结构化的?

Markdown 文档解析

使用 Python-Markdown 解析文件,然后返回 html_content ,table_of_contents ,meta 。对内容做了初步的处理,从 markdown 文件,转换为 Python 相关变量。

Python-Markdown 简介
This is a Python implementation of John Gruber’s Markdown. It is almost completely compliant with the reference implementation, though there are a few very minor differences. See John’s Syntax Documentation for the syntax rules.

Markdown 文档解析

YAML 配置文件

载入 YAML 的配置,将配置文件的内容读取为 Python 内容。

YAML是一种直观的能够被电脑识别的的数据序列化格式,容易被人类阅读,并且容易和脚本语言交互。YAML类似于XML,但是语法比XML简单得多,对于转化成数组或可以hash的数据时是很简单有效的。


YAML 配置文件

Python 字典

获取页面内容,从 markdown 中解析的内容,存入 Python 字典中,为后续 Jinja2 的调用做准备。

Python 字典

Jinja2 内容生成

载入 Jinja2 模板,结合之前抽取的内容生成 HTML 文件。
Jinja2 是一个现代的,设计者友好的,仿照 Django 模板的 Python 模板语言。 它速度快,被广泛使用,并且提供了可选的沙箱模板执行环境保证安全。

Jinja2 内容生成

Jinja2 模板文件

toc.html 的代码
模板文件中有之前的 Python 变量,比如 nav.item ,会被替换为对应的内容。


Jinja2 模板文件

MkDocs 比较巧妙的实现了内容和表现的分离,虽然没有数据库,但是使用了结构化的 markdown 文件,解析为 Python 内容,然后通过 Jinja2 模板,最后生成 HTML。

MkDocs http://www.mkdocs.org/

相关文章

  • MkDocs 文档生成逻辑浅析

    Markdown 和 MkDocs 简介 Markdown 的语法简洁明了、学习容易,而且功能比纯文本更强,因此有...

  • Python 文档生成器 mkdocs

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

  • 文档发布工具mkdocs

    mkdocs是Python的一个对 Markdown 友好的文档生成器。,小巧精美。 MkDocs is a fa...

  • mkdocs如何支持中文搜索

    mkdocs是一个很方便的文档网站生成器,文档使用Markdown格式来编写,luat的wiki就是用mkdocs...

  • 使用 mkdocs 创建文档

    什么是 mkdocs mkdocs是一个用来生成文档的工具,它可以用来将一组 markdown 格式的文件转换成 ...

  • Centos7 安装配置MKDOCS

    简介:mkdocs 是一个简单、快速 并且 完全静态的网站生成工具。用以构建项目文档页面。使用Markdown编写...

  • Python 文档生成器 mkdocs

    文:苏生不惑源:苏生不惑 mkdocs 是一个基于Python 对 Markdown 非常友好的文档生成器,中文文...

  • 文档神器mkdocs

    简介 官网:mkdoc.org mkdocs 基于Python,迅速生成基于Markdown和Yaml配置文件生成...

  • 使用mkdocs管理你的博客或者文档

    概述 其实我是想找一个文档管理的东西,无意间知道了mkdocs,感觉还不错,是使用python做的一个静态网站生成...

  • mkdocs注意事项

    文档目录配置 自带主题修改 修改mkdocs自带的主题 复制mkdocs的主题文件夹至自定义主题文件夹custom...

网友评论

本文标题:MkDocs 文档生成逻辑浅析

本文链接:https://www.haomeiwen.com/subject/ejbzdttx.html