我正在尝试使用doxygen将php代码解析为xml输出.Doxygen不解析类成员变量的描述.
这是我的示例php文件:
<?php
class A
{
/**
* Id on page.
*
* @var integer
*/
var $id = 1;
}
?>
Run Code Online (Sandbox Code Playgroud)
请注意,注释具有简要描述和变量类型.这是我从这个来源获得的xml:
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<doxygen xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="compound.xsd" version="1.7.2">
<compounddef id="class_a" kind="class" prot="public">
<compoundname>A</compoundname>
<sectiondef kind="public-attrib">
<memberdef kind="variable" id="class_a_1ae97941710d863131c700f069b109991e" prot="public" static="no" mutable="no">
<type></type>
<definition>$id</definition>
<argsstring></argsstring>
<name>$id</name>
<initializer> 1</initializer>
<briefdescription>
</briefdescription>
<detaileddescription>
</detaileddescription>
<inbodydescription>
</inbodydescription>
<location file="C:/projects/version6-7/asprunner/PHP/source/classes/a.php" line="11" bodyfile="C:/projects/version6-7/asprunner/PHP/source/classes/a.php" bodystart="11" bodyend="-1"/>
</memberdef>
</sectiondef>
<briefdescription>
</briefdescription>
<detaileddescription>
</detaileddescription>
<location file="C:/projects/version6-7/asprunner/PHP/source/classes/a.php" line="5" bodyfile="C:/projects/version6-7/asprunner/PHP/source/classes/a.php" bodystart="4" bodyend="12"/>
<listofallmembers>
<member refid="class_a_1ae97941710d863131c700f069b109991e" prot="public" virt="non-virtual"><scope>A</scope><name>$id</name></member>
</listofallmembers> …Run Code Online (Sandbox Code Playgroud) 我的开发环境包括Git存储库,GitLab存储库管理器和Jenkins.在构建过程中,使用HTML格式的Doxygen生成文档.
是否可以将该文档存储在GitLab项目的维基上?我知道Gollum不支持HTML,这是Gitlab的wiki引擎.由于HTML文件中指向其他HTML文件的内部链接,将HTML转换为Markdown并不令人满意.
我应该将文档存储在单独的wiki中,而只提交指向GitLab项目wiki的链接吗?
我正在使用Doxygen为我们的API生成文档,用C#编写.但是,它暴露了私人/受保护的成员.有没有办法隐藏那些?
我想出了如何隐藏文件:EXCLUDE =文件名列表
然而,我需要更多的粒度,从而保护用户免受不必要的API噪音.一个样本Doxygen文件将被赞赏以及提示/技巧.
您使用什么工具从源代码生成API?
我觉得有点遗留在18世纪,因为我在C#中通过C++使用Doxygen.
我正在开发一个相当大的开源RTS游戏引擎(Spring).我最近添加了一堆可由Lua调用的新C++函数,我想知道如何最好地记录它们,同时也激发人们为许多现有的Lua标注编写/更新文档.
所以我认为如果我最初可以将文档编写为C++函数附近的doxygen注释可能会很好 - 这很容易,因为函数体明确定义了函数的功能.但是,我希望游戏开发人员使用引擎来改进文档,因为引擎通常对git(我们使用的VCS)或C++几乎一无所知.
因此,如果有一种方法可以自动生成C++文件中的apidocs,而且还有一个类似wiki的Web界面,允许更广泛的受众更新注释,添加示例等,这将是理想的.
所以我想知道,是否存在一个web工具,它集成了doxygen样式格式,这些注释的wiki编辑(最好不允许编辑源文件的任何其他部分)和git?(将通过Web界面更改的注释提交到特殊分支)
然后我们的开发人员可以不时地合并这个分支,然后将改进添加到主分支,同时开发人员对文档的任何改进都会在这个Web工具上结束,只需将master分支合并到这个特殊的科.
我还没有找到任何东西,怀疑这个具体存在的东西,所以欢迎任何建议!
我的库的所有类都在命名空间中定义.当我为Doxygen创建一个主页时,我必须在注释中明确使用这个命名空间来使Doxygen生成链接.我想对整个注释块使用"using namespace"之类的东西.
一个例子:
/**
* \mainpage My Library
*
* Use MyLibraryNamespace::MyClass to ...
*/
Run Code Online (Sandbox Code Playgroud)
这里Doxygen自动生成MyLibraryNamespace :: MyClass文档的链接.
/**
* \mainpage My Library
*
* Use MyClass to ...
*/
Run Code Online (Sandbox Code Playgroud)
这里Doxygen没有生成MyLibraryNamespace :: MyClass文档的链接(因为我想在不同的命名空间中可能有多个MyClass定义).为了简化阅读,我想在注释中省略名称空间前缀.这可能而不必\ref MyLibraryNamespace::MyClass "MyClass"每次都打字吗?
有没有办法抑制Doxygen对特定文件提供"未记录"的警告?我的项目有几个自动生成的代码头,导致它抛出数百或数千个错误,使得难以筛选.
如果我在函数参数的"成员之后"文档中使用,例如,//!<在每个参数之后使用,而不是在标题中使用@param,则"Parameters"部分始终位于生成的输出文件中的"Return"之后.
是否可以定义顺序,以便"返回"之前放置"参数"?
/**
*****************************************************************************************
* @brief Test API
*
* @usage This API can be called at any time
*
* @return 0 if successful; or 1 if failed
****************************************************************************************/
int TestAPI(
int argument1, //!< first argument
int argument2 //!< second argument
);
Run Code Online (Sandbox Code Playgroud) 在我的库中,我有很多函数重载的形式:
/// \brief Does thing.
///
/// \details The thing that is done is very special.
template<typename T>
void do_stuff(const T& t);
/// \brief Does thing repeatedly.
/// \copydetails do_stuff()
template<typename T>
void do_stuff(const T& t, std::size_t x);
Run Code Online (Sandbox Code Playgroud)
这通常是有效的,并且非常好,但是多次创建相同的文档部分.我想要的是将这些功能组合在一起.有详细说明和每个重载注释的简要说明.我也不反对可以做这样的事情或输入过滤器的别名.
我可以想象的一种方式是:
文档结果应如下所示:
template<typename T>
void do_stuff(const T& t); (1)
template<typename T>
void do_stuff(const T& t, std::size_t x); (2)
The things that is done is very special.
(1) Does thing.
(2) Does thing repeatedly.
Run Code Online (Sandbox Code Playgroud)
当然我可以创建一个新页面并手动编写这种文档,但是它需要我在页面上重复函数声明,然后将链接打到实际的函数文档中,但这比其他任何东西都要糟糕.
有没有办法轻松实现这一目标?甚至暗示将其破解为doxygen也会受到赞赏.
Eclipse(或Visual Studio)是否有一个插件可以将javadoc(或doxygen)渲染到位,即代码中有一个漂亮的打印而不是显示javadoc源作为注释?
默认情况下,可以折叠方法体.切换可能很有用:完整的源代码,源代码和渲染的javadoc,纯渲染的javadoc.
所述插件可以生成如下所示的内容:

我使用Zeal在Linux上查找API文档.它要求文件采用Apple docset格式.
我有C++代码,我可以使用Doxygen生成文档.Doxygen可以构建一个docset,但它需要docsetutil程序,这在Linux上是不可用的.
是否还有其他方法可以在Linux上创建C++代码库的docset?