使用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 服务.总体目标是使客户端和文件系统作为服务器以同样的速度来更新.文件的方法,参数和模型紧密集 ...
随机推荐
- [linux系统]XFS (vda3):Corruption detected.Unmount and run xfs_repair 简单解决办法
今天kvm的centos系统,rm -rf时报错,具体如下: rm: cannot remove ‘log-0/case1/log_net’: Input/output errorrm: cannot ...
- 尝试启动 ADB 服务器时出错 解决方法
启动CMD→ adb kill-server → adb start-server;
- MUI 返回顶部
//绑定滚动到顶部按钮事件 if ($("#scroll-up").length > 0) { var scrollToTopBox = $("#scroll-up ...
- 解决Qt下ssl出错的办法
在使用 QNetworkAccessManager 时出现的ssl错误:qt.network.ssl: QSslSocket: cannot resolve SSL_set_psk_client_ca ...
- HDFS之HA
HDFS高可用环境HA的架构 HDFS组件由一个对外提供服务的namenode(存储元数据)和N个datanode组成:Zookeeper有三个作用:1.为了统一配置文件 config 2.多个节点的 ...
- shell脚本中各类括号的作用(小结)
技巧小结: 字符串比较用双中括号[[ ]]:算数比较用单中括号[ ]——左右留空格 算数运算用双小括号(( )) :shell命令及输出用小括号( )——左右不留空格 快速替换用花括号{ }——左右留 ...
- 寻找U2OS中表达的基因及其promoter并用于后续annotation
方法1.RNA-seq得到不同表达程度基因 方法2. 直接download U2OS_gene.csv https://cancer.sanger.ac.uk/cell_lines/download ...
- Gem install rmagick 报错问题~
本人在CentOS7上在 执行”gem install rmagick“是报错,具体情况如下: 报错如下: [root@localhost ~]# gem install rmagick -v '2. ...
- C# Thread.Jion()
什么是进程? 当一个程序开始运行时,它就是一个进程,进程包括运行中的程序和程序所使用到的内存和系统资源. 而一个进程又是由多个线程所组成的. 什么是线程? 线程是程序中的一个执行流,每个线程都有自己的 ...
- LINUX 编程定位工具gstack,pstack
pstack: pstack命令可显示每个进程的栈跟踪. pstack 命令必须由相应进程的属主或 root 运行. 可以使用 pstack 来确定进程挂起的位置. 此命令允许使用的唯一选项是要检查的 ...