【问题标题】:Doxygen and License/Copyright informationsDoxygen 和许可证/版权信息
【发布时间】:2012-09-03 10:06:34
【问题描述】:

我有一个简单的问题,我在 Google 上找不到。

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

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

【问题讨论】:

  • 我很想知道从 phpDoc 迁移到 Doxygen 的动机是什么?我们最近开始使用 phpDoc,我对此相当满意;新版本 2 似乎相当快且可配置(新外观的 phpDoc 网站令人震惊!)。

标签: php documentation doxygen


【解决方案1】:

Chris' answer 的基础上,您可以使用\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 以外的格式生成文档,这也不太可能导致问题。

【讨论】:

【解决方案2】:

虽然我同意您在版权和许可信息之间的区别,但似乎 doxygen 没有为这些提供单独的命令。其实从\author command的文档来看,\copyright这个命令就是用来表示license信息的。

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

  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

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

  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>
    

    我们可以利用这个来调用define a new command,比如license,它的行为方式类似于copyright 命令。将以下内容放入 doxygen 配置文件的ALIASES 字段

    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 生成的输出

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

【讨论】:

  • 第二种解决方案看起来更好,但我无法使用它。我认为这可能与我的 Doc Block 中的“空间政策”有关,所以我用你的替换它,我得到了相同的结果。我收到三个

    分别填充:

    定义、花括号内的文本和单引号。我应该启用任何其他配置吗?在运行 Doxygen 之前,我做了一些微调,也许我不小心禁用了一些东西。
  • 我不知道为什么会这样。尝试使用默认配置文件运行 doxygen。此外,通过将 doxygen 更新到最新版本,解决了一些最近的问题。也许你可以试试。
  • 几天前我开始使用 Doxygen。我有最新版本:)
  • 为什么要说两次“版权”?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-10-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多