【问题标题】:How to get man page output for the main page?如何获取主页的手册页输出?
【发布时间】:2023-10-31 06:04:01
【问题描述】:

Doxygen 允许您生成手册页输出,但据我所知,它只为实际代码(函数、类等)生成手册页。我在 doxygen @mainpage 注释中有大量信息,例如示例,这些信息没有出现在手册页输出的任何地方。我希望它采用这种格式,以便我还有一个手册页作为整体介绍。有没有办法用 doxygen 做到这一点?

到目前为止,我还没有找到一种方法,并且我探索过的替代方法不适用于 doxygen 为我创建的 index.html 文件。例如,我在 index.html 文件上尝试了几种不同的 html2man 脚本,但均未成功。

【问题讨论】:

    标签: doxygen


    【解决方案1】:

    我想出了这个解决方法,它将伪主页文本放在手册页中,并从 HTML 主页放置一个很好的链接:

    /**
     * @mainpage
     * Summary of my simple project.  Please see @ref foo.h for more details.
     *
     * @file foo.h
     * @brief Summary of my simple project.
     * 
     * Here is the much more detailed description of my project,
     * originally intended for the main page.  Since I value the quality
     * of man page output the most, this will end up on the individual
     * file man page, and will be linked to from the HTML main page.
     * I can rattle on with other things like...
     * @todo find a better solution to the mainpage problem.
     */
    

    【讨论】:

      【解决方案2】:

      据我所知,这是不可能的。 HTML 输出涵盖整个项目,而手册页输出涵盖单个 @file。 @mainpage 适用于整个项目,而不是任何特定的@file。因此 doxygen 不会输出 @mainpage 以供 man 输出。

      我下载了源代码,并浏览了 src/layout.cpp。搜索(例如)BriefDesc,您将看到每个“布局处理程序”是如何组合在一起的。我还不明白@mainpage 映射到什么,但显然它不是“文件布局处理程序”部分中添加的内容。

      我尝试添加@mainpage 或@page,并使用@ref 引用它,看看我是否可以创建2 个手册页并手动将它们绑定在一起,但仍然有一个漂亮的HTML 首页。例如,我尝试获取 2 个手册页,foo 和 foo-intro。为此,我需要@page。但是对于 HTML 输出,介绍显示在“相关页面”下,而不是“主页”下。然而@mainpage 似乎无法触发单独的手册页。不理想。

      【讨论】:

        【解决方案3】:

        您是否在包含@main 文档的文件中包含@file <filename> 注释并且<filename> 是否与实际文件名完全匹配?

        Doxygen 不会包含至少没有此文件的文件中的文档。`

        http://www.doxygen.nl/manual/commands.html#cmdfile

        【讨论】:

        • 感谢您的建议。我刚刚尝试使用我的附加文件的全名添加@file 注释,该文件具有 .dox 扩展名,但其中的任何信息都不会出现在 man 输出中。
        最近更新 更多