API文档自动生成工具

news2024/12/26 10:39:29

一、参考资料

从Python源码注释,自动生成API文档

二、问题引入

不管是开源还是闭源,要让所有人都能读懂你的代码这太难了,所以文档是很重要的。大部分情况,我们不希望维护一份代码再加上一份文档,这样做很容易造成文档和代码的不一致,程序员最讨厌更新文档了。

为了尽量减少工作量,API调用部分最好能直接用源码注释生成——这样至少不用写两遍了,而且注释离源码最近,相互对照写起来方便。

三、Pydocs

python环境自带,但是有点过于简单,只能一个个指定文件/类/模块来生成文档,生成的内容缺省输出到控制台,还得重定向到文件,优势是原生支持Markdown。

四、Sphinx

使用 Sphinx 为项目自动生成 API 文档

How-To Guides

Sphinx 使用手册

Learn reStructureText

RST 中文文档 v2.0.2

Sphinx doc官网

老牌文档生成工具,和MkDocs一样,都是完整的文档组织管理工具,可以生成Html文档,全套文档要当做一个项目来管理如果要从源码注释生成文档,需要安装autodoc等扩展。Sphinx最大的缺点在于要使用一种叫做**reStructuredText(.rst文件)**的文档格式,很别扭。

1. RST

reStructuredText (RST、ReST或reST)一种用于文本数据的文件格式,基于 Python 的 docutils 模块提供解析功能的标记语言

2. 常用指令

# 查看Sphinx版本
sphinx-build --version

3. 关键步骤

3.1 安装Sphinx

pip install sphinx
sudo apt install python3-sphinx

3.2 设置文档源目录

在同一个项目中维护代码和文档,需要在项目根目录新建一个 docs 文件夹(也可以使用其他名称),用来存放所有和文档有关的文件,我们将使用该文件夹作为 Sphinx 工作的源目录(source directory)。

mkdir docs
cd docs

# 初始化文档项目
sphinx-quickstart
docs
├── build # 存放生成的文档
│   ├── doctrees
│   └── html
├── make.bat
├── Makefile
└── source # 存放Sphinx工程源码
    ├── api_python
    ├── conf.py
    ├── index.rst
    ├── _static
    └── _templates

解释说明:

  • conf.py 配置文件,整个项目的配置文件,可以配置插件、主题、项目名称、中英文等。
  • Makefilemake.bat 编译所需脚本,在 docs 目录执行 make html 即可通过源文件生成静态网页。
  • index.rst 是文档源文件的首页,文档里有一些默认的样板内容,通常我们将其作为访问其他页面的入口目录。
  • build 文件夹下存放的是编译后产生的文件

3.3 生成文档

运行 make html 生成静态网页用于预览,生成的 HTML 页面保存在 build/html 目录。

make html

在这里插入图片描述

4. Markdown支持

python sphinx(文档生成器)入门

4.1 安装markdown支撑的模块

pip install myst-parser

4.2 安装md文档相关主题

pip install sphinx sphinx-autobuild sphinx_rtd_theme recommonmark sphinx-markdown-tables

4.3 设置插件

在conf.py文件中设置extensions字段添加md文档处理。

extensions = ["recommonmark"]

4.4 新建md文件

下面在source文件夹下新建一个子文件夹叫test, 里面存放md文档相关数据,此处新建一个test.md文档,内容如下:

## 简介
## 测试图片

![avatar](../images/test/test.gif)
![avatar](../images/test2/test.gif)
![avatar](../images/test2/test.jpg)

4.5 在主目录中添加md文件目录

在 index.rst中修改如下:

.. toctree::
   :maxdepth: 2

   test/test

5. 编译

在项目根目录下执行如下命令转为html

# 需要注意windows是bat文件
make html

注意事项

  1. 关于图片的引用,sphinx会自动将图片文件移动到_images文件夹下,不同文件夹下的图片都会移动到这个文件夹下,图片名称不建议使用中文名称,会导致无法正常移动图片

  2. 关于图片不同文件夹下名称相同,移动后会将同名的文件进行重命名,添加序号之类的,因此不会影响实际显示效果。

  3. 关于部分md文档中标题无法在目录中正常显示问题,需要在conf.py文件中添加如下配置:

    html_theme_options = {"collapse_navigation": True, "navigation_depth": 6}
    

6. 应用案例

MindSpore的教程和API文档均可由Sphinx工具生成。

五、MkDocs

MkDocs是相对新的文档管理工具,通过Markdown格式来组织文档,安装插件Mkdocstrings以后,也支持从源码注释生成md文件。

六、Doxygen

参考资料

干货|教你使用Doxygen制作漂亮的程序文档

Doxygen文档生成工具教程

文档生成神器—doxygen的使用和代码注释规范

自定义Doxygen生成小而美的文档

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/344097.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Springboot扩展点之InitializingBean

前言InitializingBean这个扩展点,其实在Springboot扩展点之BeanPostProcessor中已经简单有所涉及,而这篇文章的将重点分析其功能特性、实现方式和工作原理。功能特性1、Spring中提供了InitializingBean接口,帮助用户实现一些自定义的初始化操…

为什么学了模数电还是看不懂较复杂的电路图

看懂电路并不难。 (1) 首先要摆正心态,不要看到错综复杂的电路图就一脸懵逼,不知所错。你要明白,再复杂的电路也是由一个个的基本电路拼装出来的。 (2) 基础知识当然是少不了的,常用的基本电路结构搞搞清楚。 (3) 分析电路之前先要…

Unity通俗易懂的讲解PPU(Pixel Per Unit)与Camera Size

目录 前言 Unity的一个单位 Camera Size Pixel Per Unit的具体含义 前言 unity 2d中的sprite ,具有一个参数:Pixel Per Unit 初学者往往不知道这个代表什么意思,如何理解,怎么设置,这个在unity的美术素材的使用也…

DynamicPDF HTML Converter for .NET 1.9 Crack

.NET HTML 到 PDF 转换库,快速将 HTML 转换为 PDF,转换为文件或字节数组,多线程性能 DynamicPDF Converter for .NET is a .NET API that allows developers to dynamically convert many common file formats to PDF documents in real-time. Converter supports converting …

使用Cifar10训练DenseNet121

DenseNet默认就是DenseNet-BC, 相对于resnet,densenet权重参数更少,鲁棒性更强. 0、下载数据集:Cifar-10在同级文件data下 预训练权重: densenet121: https://download.pytorch.org/models/densenet121-a639ec97.pth…

C++ 之基本数据类型(整型、布尔型及字符型)

文章目录参考描述数据类型整形有符号无符号规则sizeof 运算符进制cout 的自动转换(进制)后缀验证溢出主动权溢出布尔型变量判断结果字符型ASCII细节范围参考 项目描述菜鸟教程数据类型搜索引擎GoogleC Primer Plus (第六版)中文版…

深度学习目标检测_YOLOV4超详细解读

文章目录一. 前言yolov4的创新点2.1 输入端的创新2.1.1数据增强2.1.2自对抗训练(SAT)2.2BackBone创新Dropblock标签平滑损失函数IOU LossGIOU LossDIOU LossCIOU Loss一. 前言 作者AlexeyAB大神! YOLOv4 拥有43.5%mAP65FPS ,达到…

C语言(利用函数将字符串转换为数字和数子转换字符串)

目录 1.atoi(字符串转换为int类型) 2.atof(字符串转换为float类型) 3.atol(字符串转换为long类型) 4.strtol(字符串转换为long类型,但可以选择转换的进制,以及标记结束字符地址) 5.strtod(字符串转换为double类型,可以标记结束字符地址) 6.整数和浮点数转换为…

项目进度经常超时怎么办?项目经理如何有效管理项

当项目延期,我们要先找根因,再根据根因制定具体针对性措施。如果是故障,第一时间是以修复问题为主,然后去找原因,最终给出对应的措施。 对于项目进度,那首先要去了解延期的原因,是计划制定的不…

vite 项目切换不同依赖项的分支,运行加载缓慢问题的解决方案(Pre-bundling dependencies)

前言 当我们在首次使用 yarn dev 命令启动 vite 时,或者 切换分支,依赖项发生变化时 会发现项目启动时相当的慢,大概要十几分钟,而且控制台终端打印了如下信息: Pre-bundling dependencies: this will be run only …

vivo官网App模块化开发方案-ModularDevTool

作者:vivo 互联网客户端团队- Wang Zhenyu 本文主要讲述了Android客户端模块化开发的痛点及解决方案,详细讲解了方案的实现思路和具体实现方法。 说明:本工具基于vivo互联网客户端团队内部开源的编译管理工具开发。 一、背景 现在客户端的业…

【Jqgrid分页勾选保存】三步实现表格分页勾选(取消勾选)保存(附源码)

目录1、创建临时存储数组,初始化赋值2、单行选中与取消,调整数组3、全选与取消全选,调整数组4、输出数组保存5、片尾彩蛋【写在前面】表格可以说是在我们的web页面中是最常见的,之前我们介绍过layui表格翻页勾选的实现过程&#x…

到2030年,边缘计算潜在市场将增长至4450亿美元!

国际电信咨询公司STL Partners近日出了一份边缘计算关键数据统计,重点介绍了九项边缘计算统计数据,边小缘着手翻译了一下这些数据,这些数据预测显示了边缘计算市场的增长潜力,以及边缘部署数量最多的垂直行业和地区。1.到2030年&a…

java Spring aop入门准备工作

首先 Spring 框架一般都是基于 Aspect]实现 AOP 操作 然后就会带出问题 什么是 Aspect 首先 Aspect并不属于Spring 他是一个单独的AOP框架 离开Spring他也能单独运行 但在Spring开发中 我们常用他来配合Spring完成AOP操作 所以说 我们是要 基于Aspect去配合Spring完成AOP操作…

压力应变电桥信号隔离放大变送器差分输入0-±10mV/0-±20mV转0-20mA/0-10v

概述:DIN11 IPO 压力应变桥信号处理系列隔离放大器是一种将差分输入信号隔离放大、转换成按比例输出的直流信号导轨安装变送模块。产品广泛应用在电力、远程监控、仪器仪表、医疗设备、工业自控等行业。此系列模块内部嵌入了一个高效微功率的电源,向输入…

ChatGPT入门案例|商务智能对话客服(二)

ChatGPT是人工智能研究实验室OpenAI新推出的一种人工智能技术驱动的自然语言处理工具,使用了Transformer神经网络架构,也是GPT-3.5架构,这是一种用于处理序列数据的模型,拥有语言理解和文本生成能力,尤其是它会通过连接…

day41【代码随想录】动态规划之01背包问题

文章目录前言 01背包一、二维dp数组01背包1.1 确定dp数组以及下标的含义1.2 确定递推公式1.3 初始化1.4 遍历顺序1.5推导dp数组1.6 完整代码二、一维dp数组01背包(滚动数组)2.1 确定dp数组以及下标的含义2.2 确定递推公式2.3 初始化2.4 遍历顺序&#xf…

移动应用开发环境搭建Andriod Studio

文章目录提示:虚拟化的开启零 java环境准备一 下载和安装Android Studio1.1 默认方式安装操作1.2 自定义安装方式1.3 StartService 失败问题解决二 第一个程序2.1 创建一个新项目2.2 下载和创建模拟器2.3 启动模拟器2.4 运行提示:虚拟化的开启 记得提前…

大神之路-起始篇 | 第17章.计算机科学导论之【计算理论】学习笔记

欢迎关注「全栈工程师修炼指南」公众号点击 👇 下方卡片 即可关注我哟!设为「星标⭐」每天带你 基础入门 到 进阶实践 再到 放弃学习!涉及 企业运维、网络安全、应用开发、物联网、人工智能、大数据 学习知识“ 花开堪折直须折,莫待无花空折…

2023年浙江水利水电施工安全员精选真题题库及答案

百分百题库提供水利水电施工安全员考试试题、水利水电施工安全员考试预测题、水利水电施工安全员考试真题、水利水电施工安全员证考试题库等,提供在线做题刷题,在线模拟考试,助你考试轻松过关。 119.下列关于大模板按照的说法正确的是&#x…