【问题标题】:Exclude some classes from doxygen documentation从 doxygen 文档中排除一些类
【发布时间】:2010-11-28 21:43:48
【问题描述】:

我正在构建一个基于 Qt 的项目,在目标文档中可以找到许多 Qt 类。

如何告诉 Doxygen 禁用某些类的文档生成?对于 Q.*?

【问题讨论】:

    标签: doxygen


    【解决方案1】:

    假设你所拥有的是这样的:(这个问题在这方面有点不清楚)

    /**
     * Some documentation for class X
     */
    class X: public osg::Drawable {
    ...
    }
    

    而您的问题是您想要包含 X 类的文档,而不是 osg::Drawable 类的文档,正确的技术是使用 EXCLUDE_SYMBOLS。例如,在上述情况下使用

    EXCLUDE_SYMBOLS = osg::Drawable
    

    如果你想稍微严谨一点,可以使用

    EXCLUDE_SYMBOLS = osg::Drawable \
                      Drawable
    

    也允许使用通配符,所以这也可以使用

    EXCLUDE_SYMBOLS = osg::*
    

    【讨论】:

    • 我正在使用 c#,我想排除一个类“LogHandler”。没有任何组合对我有用。我尝试了“LogHandler”、“LogHandler”、“Fullnamespace.LogHandler”、“Fullnamespace::LogHandler” .. 没有任何效果! ..我放弃并使用排除文件的解决方法
    • 我也在使用 C# 和 Namespace::Subnamespace::*ClassSuffix 为我工作。我观察了 doxygen 产生的输出,并注意到它以这种方式引用我的类,所以我使用该语法进行排除。
    【解决方案2】:

    如果\internal 标记不起作用,您可以尝试使用\cond ... \endcond 标记将部分代码标记为对 Doxygen 隐藏。

    编辑

    如果要排除特定文件,可以在Doxyfile配置文件中使用EXCLUDE_PATTERNS变量。

    【讨论】:

    • 不,那不是我的问题。我的问题是我的函数使用 QString,而 doxygen 试图找到有关 QString 的文档。如何防止 Doxygen 记录类“我没有在我的项目中明确编写”
    【解决方案3】:

    这不是最好的方法,但可以使用private 标记文档的某些部分(类、成员、...)。这可以防止这段代码包含在输出文档中。 (我使用它来隐藏复制/移动构造函数/操作符,使其不会出现在 API 文档中。)

    /*!
     * \brief This is included.
     */
    class API
    {
    public:
        /*!
         * \brief So is this.
         */
        API() noexcept;
        /// \private
        ~API() noexcept; /* But this not, though technically public. */
    private:
        int m_version; /* This is not either. */
    }
    

    需要注意的是,这是 PHP 的 Doxygen 扩展,根据documentation,不应使用它们。

    对于 PHP 文件,有许多额外的命令可以在类中使用,以使成员成为公共、私有或受保护的成员,即使语言本身不支持此概念。

    另一种选择是使用mouviciel提供的解决方案,但它至少需要两行。


    虽然不是详细问题的正确答案,但它可能对问题标题的读者(如我)有所帮助。它也适用于课堂!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-05-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-12-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多