使用sphinx制作接口文档并托管到readthedocs
此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的更多相关文章
- 在.Net Core中使用Swagger制作接口文档
在实际开发过程中后台开发人员与前端(移动端)接口的交流会很频繁.所以需要一个简单的接口文档让双方可以快速定位到问题所在. Swagger可以当接口调试工具也可以作为简单的接口文档使用. 在传统的asp ...
- 使用sphinx自动提取python中的注释成为接口文档
写好了代码,交付给他人使用的时候,查看代码固然可以了解各类和函数的功能细节,但接口文档能更方便的查找和说明功能.所以,一价与代码同步的接口文档是很有必要的.sphinx可以根据python中的注释,自 ...
- 前后端分离之【接口文档管理及数据模拟工具docdoc与dochelper】
前后端分离的常见开发方式是: 后端:接收http请求->根据请求url及params处理对应业务逻辑->将处理结果序列化为json返回 前端:发起http请求并传递相关参数->获取返 ...
- 【文档】使用Sphinx + reST编写文档
0 前言 写文档是开发人员日常工作中的一项重要内容,除了word之外,我更偏爱使用标记语言(Markup Language).使用标记语言,可以利用简单.免费的文本编辑器(记事本,vim, emacs ...
- 几款常用的在线API管理工具(是时候抛弃office编写接口文档了)
在项目开发过程中,总会涉及到接口文档的设计编写,之前使用的都是ms office工具,不够漂亮也不直观,变更频繁的话维护成本也更高,及时性也是大问题.基于这个背景,下面介绍几个常用的API管理工具,方 ...
- Java | Spring Boot Swagger2 集成REST ful API 生成接口文档
Spring Boot Swagger2 集成REST ful API 生成接口文档 原文 简介 由于Spring Boot 的特性,用来开发 REST ful 变得非常容易,并且结合 Swagg ...
- 【开源】.Net Api开放接口文档网站
开源地址:http://git.oschina.net/chejiangyi/ApiView 开源QQ群: .net 开源基础服务 238543768 ApiView .net api的接口文档查看 ...
- 用Swagger生成接口文档
Swagger简介 在系统设计的时候,各个应用之间往往是通过接口进行交互的.因此接口的定义在整个团队中就变得尤为重要.我们可以把接口的规范用接口描述语言进行描述,然后Swagger可以根据我们定义的接 ...
- Swagger+Spring mvc生成Restful接口文档
简介 Swagger 是一个规范和完整的框架,用于生成.描述.调用和可视化 RESTful 风格的 Web 服务.总体目标是使客户端和文件系统作为服务器以同样的速度来更新.文件的方法,参数和模型紧密集 ...
随机推荐
- 如何创建自己的composer包
composer中文网 :https://www.phpcomposer.com/ 一.前期准备: composer 安装 Windows安装: 1.下载安装包,https://getcomposer ...
- spring batch (四) Job的配置及配置文件说明介绍
内容来自<Spring Batch 批处理框架>,作者:刘相.我只是个搬运工. 一.Spring Batch提供了独立的标签用来顶一个Job配置,分别是job.step.tasklet.c ...
- C++ MFC万能的类向导
MFC的类向导 只要你掌握了类向导,你基本就已经掌握了MFC了,毕竟布局和代码都是自动生成,再加上C++基础上手还是挺快的,剩下的就是多多练习了. 转自: https://blog.csdn.net/ ...
- Python操作MongoDB看这一篇就够了
MongoDB是由C++语言编写的非关系型数据库,是一个基于分布式文件存储的开源数据库系统,其内容存储形式类似JSON对象,它的字段值可以包含其他文档.数组及文档数组,非常灵活.在这一节中,我们就来看 ...
- 深入理解MVC原理
SpringMVC的工作原理图: SpringMVC流程 1. 用户发送请求至前端控制器DispatcherServlet. 2. DispatcherServlet收到请求调用HandlerMa ...
- C# 数组在内存中的存储
C# 数组是引用类型,那么在内存中是如何存储的呢? 在VS中调试C#程序,如何查看内存.寄存器.反汇编 在这篇文章里看到了如何在VS 中查看内存 先断点打在数组创建后语句那里,点debug->W ...
- git之push
git push :将本地的哪个分支推送到哪个远程主机上的哪个分支.因此明确主机.本地分支名.远程分支名这三个要素. git push命令用于将本地分支的更新,推送到远程主机.它的格式与git pul ...
- CentOS 7 搭建Squid代理服务器
Squid安装 官方地址:http://www.squid-cache.org/ [root@DaMoWang ~]# -r6d8f397.tar.gz [root@DaMoWang ~]# -r6d ...
- vscode小程序代码高亮
vscode无法识别wxml,wxss语法: wxml文件设置: (1)任意打开一wxml文件,点击下方语言模式选择,这里已关联wxm所以当前显示wxml.默认关联为纯文本或者html或其他语法,点击 ...
- 功能比较全的StackExchange.Redis封装帮助类(.Net/C#)
Redis官网https://redis.io/ 以下内容未全部验证,如有问题请指出 //static NewtonsoftSerializer serializer = new Newtonsoft ...