目录

Sphinx

Sphinx 是一个工具,它使得创建一个智能而美丽的文档变得简单。作者是 Georg Brandl,基于 BSD 许可证。起初为写 Python 文档而诞生的 Sphinx,现在已经支持为各种语言生成软件开发文档。Sphinx 使用 reStructuredText 作为编写语言,也可以使用 Markdown+拓展库 的方式进行文档的编写。

官方网站:https://www.sphinx.org.cn/

它具有以下突出特性:

  • 输出格式:HTML(包括 Windows 的 HTML 帮助文件)、LaTex(可以打印为 PDF)、epub(流行的电子书格式)、Texinfo、manual pages(man 手册)、plain Text(纯文本)。
  • 广泛的交叉引用:语义标记和函数,类,引用,词汇表术语和类似信息的自动链接。
  • 分层架构:轻松定义文档树,自动链接到平级,上级和下级。
  • 自动索引:一般索引以及特定于语言的模块索引。
  • 代码高亮:使用Pygments荧光笔自动突出显示。
  • 扩展:自动测试代码片段,包含 Python 模块(API 文档)中的文档字符串等。
  • 丰富的拓展:用户在第二个存储库中贡献了 50 多个扩展,其中大多数可以从 PyPI 安装。

入门

  • 安装:Sphinx 依赖 Python2.4 及以上版本。
pip3 install -U sphinx
  • 创建文档项目:在项目的根目录下创建 doc 子目录,并执行文档创建指令,期间你需要交互输入一些配置。
$ sphinx-quickstart 

mickeyfan$ sphinx-quickstart
欢迎使用 Sphinx 2.4.3 快速配置工具。 请输入接下来各项设置的值(如果方括号中指定了默认值,直接
按回车即可使用默认值)。 已选择根路径:. 布置用于保存 Sphinx 输出的构建目录,有两种选择。
一是在根路径下创建“_build”目录,二是在根路径下创建“source”
和“build”两个独立的目录。
> 独立的源文件和构建目录(y/n) [n]: y 项目名称会出现在文档的许多地方。
> 项目名称: 5G Provider
> 作者名称: fanguiju
> 项目发行版本 []: v1.0 If the documents are to be written in a language other than English,
you can select a language here by its language code. Sphinx will then
translate text that it generates into that language. For a list of supported codes, see
https://www.sphinx-doc.org/en/master/usage/configuration.html#confval-language.
> 项目语种 [en]: zh_CN 创建文件 ./source/conf.py。
创建文件 ./source/index.rst。
创建文件 ./Makefile。
创建文件 ./make.bat。 完成:已创建初始目录结构。 你现在可以填写主文档文件 ./source/index.rst 并创建其他文档源文件了。 用 Makefile 构建文档,像这样:
make builder
此处的“builder”是支持的构建器名,比如 html、latex 或 linkcheck。
  • 配置:创建好文档项目之后,可以看见一下文件或子目录:

    • Makefile:在使用 make 命令时,可以使用这些指令(e.g. sphinx-build)来构建文档输出。
    • _build:这是触发特定输出后用来存放所生成的文件的目录。
    • _static:所有不属于源代码(e.g. 图片)一部分的文件均存放于此处,稍后会在构建目录中将它们链接在一起。
    • conf.py:用于存放 Sphinx 的配置值,包括在终端执行 sphinx-quickstart时选中的那些值。
    • index.rst:文档项目的 root 目录。如果将文档划分为其他文件,该目录会连接这些文件。
  • 编写文档:在 index.rst 文件中的主标题之后,有一个内容清单,其中包括 toctree 声明,它将所有文档链接都汇集到 Index。例如:

# 我们想将一个新文件添加到文档中,并打算将其命名为 example.rst。

Contents:

.. toctree::
:maxdepth: 2 example

注:example.rst 的内容如下

This is a Title
===============
That has a paragraph about a main subject and is set when the '='
is at least the same length of the title itself. Subject Subtitle
----------------
Subtitles are set with '-' and are required to have the same length
of the subtitle itself, just like titles. Lists can be unnumbered like: * Item Foo
* Item Bar Or automatically numbered: #. Item 1
#. Item 2 Inline Markup
-------------
Words can have *emphasis in italics* or be **bold** and you can define
code samples with back quotes, like when you talk about a command: ``sudo``
gives you super user powers!
  • 生成文档:运行 make 命运,并将 HTML 指定为输出格式。可直接将该输出用作网站,因为它包含了生成的所有内容,包括 JavaScript 和 CSS 文件。
$ make html

docs run-test: commands[0] | sphinx-build -W -b html doc/source doc/build/html
正在运行 Sphinx v2.4.3
正在加载翻译 [zh_CN]... 完成
制作输出目录... 完成
构建 [mo]: 0 个 po 文件的目标文件已过期
构建 [html]: 1 个源文件的目标文件已过期
更新环境: [新配置] 已添加 1,0 已更改,0 已移除
阅读源... [100%] index 查找当前已过期的文件... 没有找到
pickling环境... 完成
检查一致性... 完成
准备文件... 完成
写入输出... [100%] index generating indices... genindex完成
writing additional pages... search完成
复制静态文件... ... 完成
copying extra files... 完成
dumping search index in Chinese (code: zh)... 完成
dumping object inventory... 完成
构建 成功. HTML 页面保存在 doc/build/html 目录。
  • 生成静态网页:随着我们完成前面的操作,从两个文件中生成 HTML 之后,我们就拥有一个完整的静态页面网站。使用浏览器访问 build/html 目录下的 index.html 文件

  • 添加图片等静态文件:只要将静态文件放置 _static 目录(Sphinx 在创建文档布局时创建了该目录)中,就可以轻松地对其进行引用。。example.rst 的静态清单如下:
.. image:: _static/system_activity.jpg
  • 修改皮肤:sphinx 默认提供了好多可选的皮肤,我们可以通过修改 conf.py 调整,比如:
html_theme = "classic"
  • 使用 sphinx_rtd_theme 皮肤

    • 安装
pip3 install sphinx_rtd_theme
- 配置
# conf.py

html_theme = 'sphinx_rtd_theme'
- 重新构建
make html

reStructuredText 语法格式

标题、列表、正文、要点

This is a Title
===============
That has a paragraph about a main subject and is set when the '='
is at least the same length of the title itself. Subject Subtitle
----------------
Subtitles are set with '-' and are required to have the same length
of the subtitle itself, just like titles. Lists can be unnumbered like: * Item Foo
* Item Bar Or automatically numbered: #. Item 1
#. Item 2 Inline Markup
-------------
Words can have *emphasis in italics* or be **bold** and you can define
code samples with back quotes, like when you talk about a command: ``sudo``
gives you super user powers!

表格

.. csv-table::
:header:参数,类型,含义
:widths:2,2,5 test1,String,这里是测试的第一行
test2,int,这里是测试的第二行

代码块

.. code-block:: xml

    public void test(){
throws new Exception("this is a test");
}

引用其他模块文件

.. toctree::
:macdepth: 3 module one
module two

点击跳转

调用 :ref:`点击这里跳转<file.key>`

引用静态图片

.. image:: _static/system_activity.jpg

Sphinx 自动化文档的更多相关文章

  1. Javascript自动化文档工具JSDuck在Windows下的使用心得

    作者: zyl910 一.工具比较 为了让前端JavaScript程序更具可维护性,更利于团队开发,文档非常重要.此时便需要使用自动化文档工具了. 我对比了各种JavaScript自动化文档工具,发现 ...

  2. 使用Sphinx编写文档

    操作系统 : Windows7_x64 Python 版本 : 2.7.10 Sphinx 版本 : 官方网址:http://sphinx-doc.org github地址: https://gith ...

  3. golang学习笔记7 使用beego swagger 实现API自动化文档

    golang学习笔记7 使用beego swagger 实现API自动化文档 API 自动化文档 - beego: 简约 & 强大并存的 Go 应用框架https://beego.me/doc ...

  4. 利用Sphinx编写文档

    利用Sphinx编写文档 1.Sphinx简介和使用理由 ================= Sphinx是一个用Python语言编写而成的文档编写工具.用Sphinx编写文档的时候,用户只需要编写符 ...

  5. 使用Swagger实现webapi接口自动化文档生成

    这里是实现自动化api稳当的生成,在网上看了很多swagger的文档,可能都是在为实现接口时直接使用的swagger,其实步骤差不多,但是更加详细的我还没看到,又或者说,我看着文档来的时候还是出错啦, ...

  6. beego 实现API自动化文档

    安装beego和bee工具 1.beego安装 go get -u github.com/astaxie/beego 2.安装bee工具 go get -u github.com/beego/bee ...

  7. 使用readthedocs 发布 sphinx doc文档

    readthedocs 是由社区驱动的开源sphinx doc 托管服务,我们可以用来方便的构建以及发布文档 这是一个简单的demo 项目,使用了用的比较多的sphinx_rtd_theme 主题,主 ...

  8. sphinx doc 文档生成脚手架工具

    sphinx 在python 语言开发中,是一个使用的比较多文档生成脚手架工具,我们帮助我们生成 专业的帮助文档,同时也有远端的免费saas 托管服务,方便分发 安装 sphinx 的安装好多方便,m ...

  9. Hapi+MySql项目实战自动化文档生成(四)

    自动化生成swagger文档 使用hapi插件hapi-swagger,简单配置下插件,先修改下plugin_config.js文件: //plugin_config.js const Swagger ...

  10. appium python andiroid自动化文档整理笔记。

    利用一天时间去整理appium for android文档.传送门 利用业余时间自己翻阅资料,google.百度等去查找,费劲一番功夫,最后终于成行了这篇文档. 也是作者对最近自己的学习的一个总结吧, ...

随机推荐

  1. #DP#CF9D How many trees?

    题目 用\(n\)个点组成二叉树,问高度\(\geq h\)的有多少个. 分析 首先前缀和相减就能得到答案,做dp 设\(dp[n][h]\)表示节点数为\(n\),高度不超过\(h\)的树的个数 那 ...

  2. Jetty的工作参数

    Jetty加载参数的优先级: 命令行. $JETTY_BASE下的文件. 使用--include-jetty-dir指定的目录下的文件. $JETTY_HOME下的文件. 查看当前的配置参数,执行如下 ...

  3. (建议收藏)OpenHarmony系统能力SystemCapability列表

    SysCap,全称SystemCapability,即系统能力,指操作系统中每一个相对独立的特性. 开发者使用某个接口进行开发前,建议先阅读,了解Syscap的定义和使用指导.再结合下文中的表格判断具 ...

  4. 开放原子开源基金会OpenHarmony工作委员会主席侯培新寄语OpenAtom OpenHarmony分论坛

    2022开放原子全球开源峰会 OpenAtom OpenHarmony分论坛 万物互联,使能千行百业 7月27日 14:00  与您相约 OpenHarmony 工作委员会主席侯培新 寄语 OpenA ...

  5. HarmonyOS Codelab 优秀样例——溪村小镇(ArkTS)

    一.  介绍 溪村小镇是一款展示溪流背坡村园区风貌的应用,包括园区内的导航功能,小火车行车状态查看,以及各区域的风景展览介绍,主要用于展示HarmonyOS的ArkUI能力和动画效果.具体包括如下功能 ...

  6. GAN的实现和一些问题

    GAN的学习是一个二人博弈问题,最终目标是达到纳什平衡.对抗指的是生成网络和判别网络的互相对抗.生成网络尽可能生成逼真样本,判别网络则尽可能去判别该样本是真实样本,还是生成的假样本.示意图如下: 生成 ...

  7. DM 传统行业SQL优化案例

    来OB这么久还没有接触啥金融的SQL,只能发点其他行业的数据库SQL优化案例. 今天拿到手的这个案例SQL 传统行业的,很奇葩的SQL,表设计三范式都没弄好. 什么医疗,交通,能源这些传统行业的业务设 ...

  8. 第11課-Channel Study For Create Custom Restful Service

    这节课我们一起学习利用Mirth Connect的HTTP Listener源通道与JavaScript Writer目的通道搭建自定义Restful风格webapi服务. 1.新建名为'Custom ...

  9. 力扣66(java)-加一(简单)

    题目: 给定一个由 整数 组成的 非空 数组所表示的非负整数,在该数的基础上加一. 最高位数字存放在数组的首位, 数组中每个元素只存储单个数字. 你可以假设除了整数 0 之外,这个整数不会以零开头. ...

  10. 容器环境自建数据库、中间件一键接入阿里云 Prometheus 监控

    ------------恢复内容开始------------ 阿里云Prometheus服务4月9日发布重大升级,支持容器环境下一键接入MySQL.Redis.MangoDB.ElasticSearc ...