使用doxygen自动对python api做接口文档及生成帮助文档

项目背景:有个大型的python做后台的项目需要编写一个api接口文档接口类里面前前后后封装了块200+快300个函数接口,有一个是word版本的之前一直维护的文档。

需要的是制作好后的文档,最好有接口函数名称(中/英)文的引索,正文可以搜索(模糊检索),方便查询操作接口函数用以编制自动测试用的脚本。 大概就是MSDN那种可以搜索的大型接口文本

路径1:使用Word2CHM 或 doc2CHM软件,将word类文档直接转成CHM,缺点就是标题转为引索。原本的word文档中的函数是以表格形式存在,可以正常转为HTML显示,但引索是word的标题而且还会因为 chm在windows下的软件仅支持GB2312而实际word转html为unicode造成乱码。这个乱码同时会影响到搜索

路径2:使用doxygen重新搜索代码的对外接口类,让其从函数的注释中自动生成文档。
这里推荐《doxygen中文手册v1.63》,里面有详细的使用说明。
本文简略提及一下:
doxygen支持python的函数文档有两种格式。一种是类似于javadoc的格式可以搜索到函数的名称和参数信息类似于这样如下这样的

	## 打印并记录log信息
	# @param log string格式 需要输出的字符串
	# @param saveStep 是否记录到数据库中
	# @exception N/A
	# @return return log字符串本身
	def printLog(self, log, saveStep = False):	
		Client.output_log(self.task_id, log)
		if saveStep :
			DataBaseRecord.writeLogInfo(log)
		return log

doxygen可以正确的解析@param表示符号后的信息,并把第一个##后的作为函数名称

还有一种常见的py注释格式如下

	def printLog(self, log, saveStep = False):	
		''' 打印并记录log信息
		:param log: string格式 需要输出的字符串}
		:param saveStep: 是否记录到数据库中
		:exception: N/A
		:returns: 字符串本身 或 False - 打印失败
		'''
		Client.output_log(self.task_id, log)
		if saveStep :
			DataBaseRecord.writeLogInfo(log)
		return log

但是这种的doxygen是统统不支持读取的,看手册是支持latex格式的函数输入,本人并没有做过测试。这种格式最后会原样的输出到html页面中的一个气泡框中。

然后就是DOXYGEN的使用,注意需要将输入项目指定为unicode,HTML中输出格式为GBK,否则引索会乱码,实测可以解决部分问题,但其实还是有部分会乱码的。

CHM本身的搜索还是不好用,个人怀疑是帮助文件的正文还是unicode导致chm程序不能搜素。(还有个同事N+1年前的老chm就可以搜索,那个文件是用word拆成单独的文件,用word本身的doc转html转后用,ms html helper 合并的,就可以搜索)

但是其实对着CHM主页面按CTRL+F后会出现浏览器的搜索,是可以用的ok至此结束

DOXYFILE——ENCODING = GB2312
OUTPUT——LANGUAGE = Chinese
CHM_INDEX_ENCODING = GBK

最后顺便那个QHG,本身看起来还行。但是整合后要和qt本身的其他东西的帮助混合在一起,还是写单例的那种拷贝出去也不行。不是特别推荐作为文档使用

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值