此sphinx可不是彼sphinx,此篇是指生成文档的工具,是python下最流行的文档生成工具,python官方文档即是它生成,官方网站是http://www.sphinx-doc.org,这里是一个中文翻译站:https://zh-sphinx-doc.readthedocs.io

readthedocs.org(下文简称rtd)是一个基于sphinx、mkdocs的在线文档托管网站,支持git、subversion等版本控制系统,并提供多版本、翻译、下载文档等,颇受欢迎。

此篇文章记录了本人使用sphinx和rtd的经验,以Flask-PluginKit为例,文档地址是https://flask-pluginkit.readthedocs.io

一、新项目整体流程

0. 说在前面

$project - 项目名可见名,比如Flask-PluginKit,$package - 项目包名,比如flask_pluginkit

$author - 作者

$src - reStructuredText源文档目录

1. 安装依赖

pip install sphinx

2. 初始化项目文档

使用sphinx-quickstart,网上很多例子,这里说一个无交互,按例子:

sphinx-quickstart -q -p $project -a $author --ext-autodoc --ext-viewcode --no-makefile --no-batchfile $src

3. 从项目中提取接口文档

sphinx-apidoc -d 2 -f --ext-autodoc --ext-viewcode --private -o $src $package

4. 生成html文件

第三步中,根据包中函数、类等注释会生成.rst文件,你可以编写组织它们,然后生成html文件:

cd $src && sphinx-build -b html . _build/html

5. 说在后面

修改过rst文件后可以多次生成html文件,默认只有更新过的文件才会重新生成html。生成的html静态文件可以放到github pages或任何支持静态访问的web服务器中。

二、翻译

sphinx支持你给文档添加翻译以支持国际化功能,使用工具sphinx-intl,安装它:pip install sphinx-intl

详细使用可以参考这篇文章,以下简单流程是将中文翻译成英文的。

1. gettext-初始化翻译

cd $src && sphinx-build -b gettext . _build/locale

2. 更新翻译

cd $src && sphinx-intl update -p _build/locale/ -l en

3. 生成翻译文档

cd $src && sphinx-build -D language=en -b html . _build/html_en

三、托管

sphinx生成接口文档+github托管源代码+rtd在线托管文档,简单爽的不要不要的,提交后自动构建并生成文档,美滋滋。

使用github登录可以选择项目导入,自动添加webhook,使用不介绍,这里提一个翻译的经验。

1. rtd同一个项目同时支持多种翻译

rtd的支持翻译,但是需要添加某个项目为翻译版本,比如著名的requests,就有很多翻译,每个翻译是一个git仓库,都需要维护。

但是有时候我们就一个项目不想那么麻烦,而且一个项目使用sphinx-intl添加了翻译支持,那么怎么处理呢?

其实简单,rtb导入一个项目,选择手动导入,设置不同名称、相同代码库地址,然后文档主项目设置此项目为翻译版本即可,嗯,点到即止,参考上面Flask-PluginKit的文档地址。

使用sphinx制作接口文档并托管到readthedocs的更多相关文章

  1. 在.Net Core中使用Swagger制作接口文档

    在实际开发过程中后台开发人员与前端(移动端)接口的交流会很频繁.所以需要一个简单的接口文档让双方可以快速定位到问题所在. Swagger可以当接口调试工具也可以作为简单的接口文档使用. 在传统的asp ...

  2. 使用sphinx自动提取python中的注释成为接口文档

    写好了代码,交付给他人使用的时候,查看代码固然可以了解各类和函数的功能细节,但接口文档能更方便的查找和说明功能.所以,一价与代码同步的接口文档是很有必要的.sphinx可以根据python中的注释,自 ...

  3. 前后端分离之【接口文档管理及数据模拟工具docdoc与dochelper】

    前后端分离的常见开发方式是: 后端:接收http请求->根据请求url及params处理对应业务逻辑->将处理结果序列化为json返回 前端:发起http请求并传递相关参数->获取返 ...

  4. 【文档】使用Sphinx + reST编写文档

    0 前言 写文档是开发人员日常工作中的一项重要内容,除了word之外,我更偏爱使用标记语言(Markup Language).使用标记语言,可以利用简单.免费的文本编辑器(记事本,vim, emacs ...

  5. 几款常用的在线API管理工具(是时候抛弃office编写接口文档了)

    在项目开发过程中,总会涉及到接口文档的设计编写,之前使用的都是ms office工具,不够漂亮也不直观,变更频繁的话维护成本也更高,及时性也是大问题.基于这个背景,下面介绍几个常用的API管理工具,方 ...

  6. Java | Spring Boot Swagger2 集成REST ful API 生成接口文档

      Spring Boot Swagger2 集成REST ful API 生成接口文档 原文 简介 由于Spring Boot 的特性,用来开发 REST ful 变得非常容易,并且结合 Swagg ...

  7. 【开源】.Net Api开放接口文档网站

    开源地址:http://git.oschina.net/chejiangyi/ApiView 开源QQ群: .net 开源基础服务  238543768 ApiView .net api的接口文档查看 ...

  8. 用Swagger生成接口文档

    Swagger简介 在系统设计的时候,各个应用之间往往是通过接口进行交互的.因此接口的定义在整个团队中就变得尤为重要.我们可以把接口的规范用接口描述语言进行描述,然后Swagger可以根据我们定义的接 ...

  9. Swagger+Spring mvc生成Restful接口文档

    简介 Swagger 是一个规范和完整的框架,用于生成.描述.调用和可视化 RESTful 风格的 Web 服务.总体目标是使客户端和文件系统作为服务器以同样的速度来更新.文件的方法,参数和模型紧密集 ...

随机推荐

  1. mac配置自带vim高亮显示

    查找/etc/.vimrc的内容,如果没有的话 新建~/vimrc文件,在文件中写入如下内容即可 set ai " auto indenting set history=100 " ...

  2. [ROS]激光驱动安装

    参考资料: https://blog.csdn.net/hongliang2009/article/details/73302986 https://blog.csdn.net/bohaijun_12 ...

  3. minikube windows hyperx填坑记

    minikube windows hyperx填坑记 安装了一天半,还是没行,先放弃 开始 minikube start --vm-driver=hyperv --hyperv-virtual-swi ...

  4. kali在vbox上运行设置共享文件夹

    mount -t vboxsf VBoxShared /root/Desktop/vbox 0x00 使用共享文件夹的前提 需要自行安装增强功能:https://jingyan.baidu.com/a ...

  5. 做一个有产品思维的研发:Scrapy安装

    每天10分钟,解决一个研发问题. 如果你想了解我在做什么,请看<做一个有产品思维的研发:课程大纲>传送门:https://www.cnblogs.com/hunttown/p/104909 ...

  6. 交叉编译7zip过程

    https://github.com/Distrotech/p7zip.git 从这里下载,不要从sourceforge.net上下载,那上面的缺makefile文件. 我主要把文件 makefile ...

  7. eclipse myeclipse中的一些配置

    1.显示.setting 点击三角号 选择customsize view 取消.*resources myeclipse如何更改项目名 点击项目名->alt+enter(properties)

  8. #WEB安全基础 : HTTP协议 | 0x10 扩展HTTP报文结构概念和内容编码

    #以后的知识都是HTTP协议的扩展,如果精力有限可以选择暂时忽略,注意只是暂时忽略,以后的东西同样重要 HTTP传输数据时可以直接传输也可以对数据进行编码,由于编码在计算机内运行,所以会占用一些CPU ...

  9. 第一次安装myeclipse+tomcat经验

    在网上找了很多资料,这里记录一下验证有用的资料,避免以后走弯路 1.安装myeclipse 参考如下URL,亲测有用 https://blog.csdn.net/qingjianduoyun/arti ...

  10. oracle中 sql%rowcount 用法

    sql%rowcount用于记录修改的条数,必须放在一个更新或者删除等修改类语句后面执行,select语句用于查询的话无法使用, 当你执行多条修改语句时,按照sql%rowcount 之前执行的最后一 ...