程序員的很多文檔,特別是有代碼的文檔,絕大部分都是由一款文檔生成工具【Doxygen】生成。
什么是Doxygen?
Doxygen 是一個(gè)程序的文件產(chǎn)生工具,可將程序中的特定批注轉(zhuǎn)換成為說(shuō)明文件。通常我們?cè)趯?xiě)程序時(shí),或多或少都會(huì)寫(xiě)上批注,但是對(duì)于其它人而言,要直接探索程序里的批注,與打撈鐵達(dá)尼號(hào)同樣的辛苦。 大部分有用的批注都是屬于針對(duì)函式,類別等等的說(shuō)明。所以,如果能依據(jù)程序本身的結(jié)構(gòu),將批注經(jīng)過(guò)處理重新整理成為一個(gè)純粹的參考手冊(cè),對(duì)于后面利用你的程序代碼的人而言將會(huì)減少許多的負(fù)擔(dān)。不過(guò),反過(guò)來(lái)說(shuō),整理文件的工作對(duì)于你來(lái)說(shuō),就是沉重的負(fù)擔(dān)。簡(jiǎn)而言之,Doxgen就是大名鼎鼎的文檔生成工具,而且是免費(fèi)開(kāi)源的,它使用非常方便,能提取C++,Java,Objective-C,Python,IDL,PHP,C#等語(yǔ)言的注釋,從而生成文檔。 Doxygen 的使用可分為兩大部分。首先是特定格式的批注撰寫(xiě),第二便是利用Doxygen的工具來(lái)生成文檔。
生成文檔使用教程
1、安裝
在Linux下可以通過(guò)apt install doxygen安裝命令行工具,然后用apt install doxygen-gui安裝圖形界面。 對(duì)Linux用戶來(lái)說(shuō),命令行工具可以通過(guò)doxygen命令運(yùn)行,而圖形界面可以通過(guò)doxywizard命令運(yùn)行。 Windows 用戶的下載地址:http://www.doxygen.nl/download.html 2、基本使用 圖形工具的基本使用如下圖所示,有非常多的配置選項(xiàng),這里我們只填入必要的配置,其它配置都用默認(rèn)值。
doxywizard使用步驟
doxywizard使用步驟
工作目錄如下:
.
├──out
└── src
└── math.h
其中math.h
代碼如下:
/*! file math.h */
/*!
用于求一個(gè)角度的sin值,輸入是字符串以便同時(shí)支持弧度制和角度制表示
li 弧度制用pi表示,例如:2pi表示一圈、0.5pi表示直角
li 角度制用d結(jié)尾,例如:360d表示一圈、90d表示直角
li 輸入也可以是數(shù)值,例如:輸入3.14159大約表示180度
param a 用弧度制或角度制表示都行,字符串必須用'?'表示結(jié)束
param[out] res 是輸出參數(shù),用于保存sin運(yùn)算的結(jié)果
eturn 錯(cuò)誤碼,0表示成功,其它表示失敗
odo 在xxx的情況下存在BUG,預(yù)計(jì)下一版本修復(fù)
*/
intsin(char*a,double*res);
Doxygen生成的HTML會(huì)放到
out
目錄下,生成的HTML如下圖所示。
HTML界面
3、保存配置 上面我們配置了一些選項(xiàng),也成功生成了HTML文檔。我們希望下次代碼改動(dòng)后能夠繼續(xù)沿用上次配置,那么我們可以把這些配置保存成Doxyfile文件,如下圖所示。
保存Doxyfile配置文件
4、命令行運(yùn)行Doxygen 有了配置文件后我們完全可以通過(guò)命令行來(lái)生成API文檔,假設(shè)配置文件名為Doxyfile,那么我們只需要執(zhí)行doxygen /path/to/Doxyfile即可生成API文檔。 通過(guò)命令行生成文檔有許多好處,其中最主要的好處就是:能夠集成到持續(xù)集成之類的自動(dòng)化系統(tǒng)中。為代碼編寫(xiě)注釋
1.什么樣的注釋會(huì)被Doxygen識(shí)別?
Doxygen能識(shí)別這幾種風(fēng)格的注釋:
/**
* ... text ...
*/
/*!
* ... text ...
*/
///
/// ... text ...
///
//!
//!... text ...
//!
文件的開(kāi)頭必須有文件注釋,否則該文件不會(huì)被識(shí)別:
/*! file math.h */
2.注釋怎么寫(xiě) 這里建議參考官網(wǎng)例子。
https://www.doxygen.nl/manual/doxygen_usage.html
為其它編程語(yǔ)言生成注釋
Doxygen主要支持C語(yǔ)言,其它語(yǔ)法跟C差不多的語(yǔ)言(如:C++/C#/PHP/Java)也能夠支持,我們稱這類語(yǔ)言為「C語(yǔ)系語(yǔ)言」。而哪些跟C語(yǔ)法差異較大的語(yǔ)言叫做「非C語(yǔ)系語(yǔ)言」。 對(duì)于大多非C語(yǔ)系語(yǔ)言,Doxygen都是支持的,Doxygen原生支持這些語(yǔ)言:IDL、Java、Javascript、C#、C、C++、D、PHP、Objective-C、Python、Fortran、VHDL。 萬(wàn)一項(xiàng)目需要的語(yǔ)言(例如:Lua)Doxygen官方并不支持,那么只能自行編寫(xiě)「第三方語(yǔ)言擴(kuò)展」來(lái)支持了。 1.Doxygen官方支持的語(yǔ)言見(jiàn)下圖,文件名符合FILE_PATTERNS都會(huì)被處理。其中包括了.c、.h、.py等等。如果我們的擴(kuò)展名并不在FILE_PATTERNS內(nèi),那么可以加上去。例如我們項(xiàng)目下的所有.ccc文件,其實(shí)是C語(yǔ)言代碼(這很奇葩,舉個(gè)例子而已)。那我們可以編輯Doxyfile配置文件滿足這一需求,需要2個(gè)步驟。 (1) 在FILE_PATTERNS中添加*.ccc,如下圖:
(2) 在EXTENSION_MAPPING中添加映射規(guī)則ccc=C,如下圖,語(yǔ)法是ext=language,其中l(wèi)anguage可以取的值有:IDL、Java、Javascript、C#、C、C++、D、PHP、Objective-C、Python、Fortran、VHDL。
2.Doxygen官方不支持的語(yǔ)言 以Lua語(yǔ)言為例,它的代碼是長(zhǎng)這樣的:
可以看到Lua的語(yǔ)法既不像C也不像Python。 審核編輯 :李倩-- file lmath.h
--[[
用于求一個(gè)角度的sin值,輸入是字符串以便同時(shí)支持弧度制和角度制表示
li 弧度制用pi表示,例如:2pi表示一圈、0.5pi表示直角
li 角度制用d結(jié)尾,例如:360d表示一圈、90d表示直角
li 輸入也可以是數(shù)值,例如:輸入3.14159大約表示180度
param a 字符串類型,表示角度,用弧度制或角度制表示都行
eturn 返回sin運(yùn)算的結(jié)果
odo 在xxx的情況下存在BUG,預(yù)計(jì)下一版本修復(fù)
--]]
function sin(a)
return 1.123
end
-
開(kāi)源
+關(guān)注
關(guān)注
3文章
3363瀏覽量
42536 -
C++
+關(guān)注
關(guān)注
22文章
2110瀏覽量
73688
原文標(biāo)題:一款常用文檔生成工具:Doxygen
文章出處:【微信號(hào):strongerHuang,微信公眾號(hào):strongerHuang】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論