10

我有一个简单的问题,我找不到挖掘谷歌。

我正在将我的项目文档从phpDoc移动到Doxygen,但我不知道如何将@license@copyright一起编写。

在我的概念中,@copyright是为我的“公司”(还不是真实的:P)名称而设计的, @license可以使用我正在开发的方式:许多 CreativeCommons 组合之一,GNU、MIT、BSD,“在执照”...

4

2 回答 2

12

基于Chris 的回答,您可以使用该\par命令创建一个类似于内置\copyright命令的块。例如,像这样的别名:

ALIASES += "license=@par License:\n"

将允许此评论:

/** My main function.

    \copyright Copyright 2012 Chris Enterprises. All rights reserved.
    \license This project is released under the GNU Public License.
*/
int main(void){
    return 0;
}

产生这个输出:

在此处输入图像描述

请注意,使用此解决方案,在 之前不需要空行\license,并且{}不需要语法。如果您尝试为 HTML 以外的格式生成文档,这也不太可能导致问题。

于 2012-09-12T03:40:03.263 回答
4

虽然我同意您在版权和许可信息之间的区别,但似乎 doxygen 没有为这些提供单独的命令。事实上,从命令的文档来看,该命令\author用于\copyright指示许可证信息。

您可以在这里(至少)做两件事:

  1. 只需将版权和许可信息组合到\copyright命令的参数中:

    /** My main function.
    
        \copyright Copyright 2012 Chris Enterprises. All rights reserved.
        This project is released under the GNU Public License.
    */
    int main(void){
        return 0;
    }
    

    这会生成 HTML

    doxygen 使用第一个解决方案生成的文档的屏幕截图

    这几乎可以肯定是你能做的最简单的事情。

  2. 或者,为生成上述图像而编写的 HTML 是

    <dl class="section copyright"><dt>Copyright</dt><dd>Copyright 2012 Chris Enterprises. All rights reserved. This project is released under the GNU Public License. </dd></dl>
    

    我们可以利用它来定义一个名为的新命令license,它的行为方式与copyright命令类似。将以下内容放入ALIASESdoxygen 配置文件的字段中

    ALIASES += license{1}="<dl class=\"section copyright\"><dt>License</dt><dd>\1 </dd></dl>"
    

    并将上述文档块更改为

    /** My main function.
    
        \copyright Copyright 2012 Chris Enterprises. All rights reserved.
    
        \license{This project is released under the GNU Public License.}
    */
    

    我们得到 doxygen 生成的输出

    doxygen 使用第二种解决方案生成的文档的屏幕截图

    请注意,在第二个解决方案中有几个怪癖:命令前必须有一个空行,\license{...}并且\license命令必须将它的参数包装在花括号中。您可以选择使用\copyright命令执行此操作,但是通过这些定义的参数的命令ALIASES必须带有大括号。

于 2012-09-11T08:52:57.467 回答