我们都有记录代码的好习惯,对吧?
如今,代码内文档本身就有一种语法。它几乎就像一种编程语言。问题是:
很难不听说过doxygen。在我参与的每个开源软件项目中都提到过。但是,看看官方的doxygen网站, doxygen定义任何规格都远非显而易见!我得到的印象当我读到“它可以帮助我的方式”时,doxygen就是一个提取代码内文档并将其呈现在漂亮的HTML页面中的软件。看看doxygen首页,我甚至可以认为doxygen可以使用第三方规范中定义的任何文档语法 并将其解压缩并输出为HTML。
另外,值得注意的是,doxygen网站不将doxygen这个词大写,好像它不是他们软件的品牌而是普通名词(好吧,是吗?)
什么是doxygen?
我对doxygen和其他代码解析器之间的关系感到特别困惑,例如ANTLR,boost-spirit,Ragel ......
例如,什么是doxygen可以做的,ANTLR不能,并且ANTLR可以做氧吗?
另外,看看Drupal项目。他们有:
因此,采用C ++类比,似乎“doxygen”这个词过载并且在不同的上下文中意味着不同的东西。
在Drupal项目中,“doxygen”并不是指软件,而是指文档语法的(标准?)规范,尽管如上所述,doxygen网站本身的头版并未声称是这样的事情!
所以,我的离别问题是:
是否有其他文档语法规范?
答案 0 :(得分:31)
存在多少(多少)文档语法规范?
几乎每个中型软件开发组织似乎都有自己的。它们通常被列入“编码风格指南”的保护范围内。
是否有标准的文档语法?
我所知道的一些标准有广泛的用途。这肯定不是一个全面的清单:
谁在定义这个标准?
没有标准。
是否有正式的委员会或机构(就像有一个用于定义C ++标准的人)?
并非如此,尽管C#XML文档格式由ECMA管理,ECMA是一个标准组织。
或者“doxygen”成为事实上的标准?
Doxygen不是标准。它承认了许多标准。见http://www.doxygen.nl/manual/features.html。
通常,大多数人使用doxygen生成他们编写的文档,同时松散地遵循QDoc标准或JavaDoc标准。通常当人们谈论“doxygen”标准时,他们通常意味着QDoc文档样式,以及doxygen扩展的任意使用。我的经验是,大多数使用doxygen的组织并没有非常严格地遵循任何特定惯例,仅仅因为doxygen没有强制执行。
...... doxygen定义任何规格都远非显而易见!
不是。
doxygen只是一个提取代码内文档并将其呈现在漂亮的HTML页面中的软件。
是的确切。它还支持XML,Latex,RTF和UNIX“man”页面输出。
看看doxygen首页,我甚至认为doxygen可以使用第三方规范中定义的任何文档语法并将其解压缩并输出为HTML。
不是,但很多。
另外,值得注意的是,doxygen网站没有将doxygen这个词大写,好像它不是他们软件的品牌而是普通名词(好吧,是吗?)
它不是商业产品,迪米特里并不关心品牌。
什么是doxygen?
文档生成工具。
我对doxygen和其他代码解析器之间的关系特别感到困惑,比如ANTLR,boost-spirit,Ragel ......
那些是解析库。
例如,什么是doxygen可以做的,ANTLR不能,并且ANTLR可以做氧吗?
像ANTLR这样的库用于构建软件,而doxygen是用于生成文档的专用工具。因此,虽然您可以使用ANTLR编写文档生成器,但您不希望使用doxygen来构建编译器(我不说不能,因为当然可以,我已经看到了陌生的东西)。
是否有其他文档语法规范?
上面已经回答过。
希望这有帮助。
答案 1 :(得分:7)
没有标准。
Doxygen风格几乎是标准的(gcc模板库使用它)。
http://en.wikipedia.org/wiki/Comparison_of_documentation_generators
答案 2 :(得分:4)
你是对的 - Doxygen更像是一个文档提取应用程序而不是“评论标准”本身。它支持许多不同的文档样式 - JavaDoc(带有'@'引入命令),Doxygen变体(带'''引入相同的命令),文档XML以及允许的注释块格式的许多变体。它还能够使用注释的格式来指示什么内容(例如,简要描述不需要被标记,并且可以从文本的第一句或段落中获取等)。
因此,它具有高度可配置性,但允许几乎每个程序员都有自己的风格,从而导致从一个项目到另一个项目的非标准混乱,并且通常在单个项目中的不同注释之间 - 即使它们是由单个项目编写的程序员!好的一面是,只要注释保持在基本样式中,Doxygen就会正确地为您提取文档并将它们全部格式化为一致的外部文档。负面的是,虽然许多程序员“使用doxygen评论”(听起来很标准化),但他们的评论格式往往完全不同。
一个解决方案(对于Visual Studio)至少可以帮助你自己的项目/团队/公司中的这种风格差异,这是我写的一个插件,AtomineerUtils。这有助于您创作和更新Doxygen,JavaDoc和XML文档格式注释 - 它自动生成文档以节省大量时间,并更新注释以使其与代码更改保持同步。在此过程中,它可以重新格式化注释以实现非常一致和可读的样式(以标准格式对条目进行排序,在注释和代码之间以及条目之间强制执行空白行,对条目中的文本进行自动换行等)。用户可以设置模板来精确控制所有这些工作方式,因此很容易实现您想要的样式,但要使其在所有项目中保持一致。当你有多个程序员处理一组代码时,这会大大提高一致性。
如果您在Visual Studio中进行文档编制,我建议使用XML文档格式。它不像Doxygen / JavaDoc样式那样具有人类可读性,但它被IDE用于在您键入时提供代码上的实时智能感知数据,并导出到任何应用程序可以轻松处理的XML文件,这为您提供了更多灵活性。 Doxygen可以使用这种格式构建文档,因此您也可以使用Doxygen工具和XML源注释。
答案 3 :(得分:3)
是否有其他文档语法规范?
是的,当然。例如,有JavaDoc(或者说是拼写的)。和Microsoft的XML东西(不过那个叫做)。
然而,似乎doxygen几乎是开源C ++领域的事实标准。当我最初听说doxygen(大约10年前)时,曾经有过其他人,但似乎他们已经消失了。