在 Doxygen 中自定义树视图

Customize treeview in Doxygen

我是第一次尝试使用 Doxygen,到目前为止我对大多数事情都很满意。你可以说我正在创建的手册由两部分组成:一个是使用包含产品一般信息的 .dox 文件构建的;另一个是使用 .dox 文件构建的。然后第二部分从源文件构建并显示 API.

我遇到的问题是从源文件生成的页面在树视图中的显示方式与我希望的不一样。从 .dox 文件生成的部分可以很容易地按照我想要的方式进行结构化(例如使用 \page、\section 和 \subsection)但是当我包含源文件时,新页面(类、文件)出现在树视图的第一级:

V Project Name
    > Installation (.dox)
    > Licensing (.dox)
    > Components (.dox)
    > Tools (.dox)
    > Getting Started (.dox)
    > Classes (source files)
    > Files (source files)

我至少希望能够自定义树视图是将源文件生成的所有页面在树视图中向下移动一个级别(但如果可以像我在 . dox 文件会很棒):

V Project Name
    > Installation (.dox)
    > Licensing (.dox)
    > Components (.dox)
    > Tools (.dox)
    > Getting Started (.dox)
    V API
        > Classes (source files)
        > Files (source files)

这可能吗?在谷歌搜索时,我设法找到了一个叫做 "layout file" 的东西,但我不明白它是如何工作的,或者它在这种情况下是否有帮助。

如果这不可能,那么我必须将 API 部分放在单独的手册中,但我真的很想避免这种情况。

感谢任何帮助。

我通过更改 "layout file" 设法解决了这个问题。默认文件如下所示:

<navindex>
  <tab type="mainpage" visible="yes" title=""/>
  <tab type="pages" visible="yes" title="" intro=""/>
  <tab type="modules" visible="yes" title="" intro=""/>
  <tab type="namespaces" visible="yes" title="">
    <tab type="namespacelist" visible="yes" title="" intro=""/>
    <tab type="namespacemembers" visible="yes" title="" intro=""/>
  </tab>
  <tab type="classes" visible="yes" title="">
    <tab type="classlist" visible="yes" title="" intro=""/>
    <tab type="classindex" visible="$ALPHABETICAL_INDEX" title=""/> 
    <tab type="hierarchy" visible="yes" title="" intro=""/>
    <tab type="classmembers" visible="yes" title="" intro=""/>
  </tab>
  <tab type="files" visible="yes" title="">
    <tab type="filelist" visible="yes" title="" intro=""/>
    <tab type="globals" visible="yes" title="" intro=""/>
  </tab>
  <tab type="examples" visible="yes" title="" intro=""/>  
</navindex>

我改为:

<navindex>
  <tab type="mainpage" visible="yes" title=""/>
  <tab type="pages" visible="yes" title="" intro=""/>
  <tab type="usergroup" visible="yes" title="API" url="@ref api" intro="">
    <tab type="modules" visible="yes" title="" intro=""/>
    <tab type="namespaces" visible="yes" title="">
      <tab type="namespacelist" visible="yes" title="" intro=""/>
      <tab type="namespacemembers" visible="yes" title="" intro=""/>
    </tab>
    <tab type="classes" visible="yes" title="">
      <tab type="classlist" visible="yes" title="" intro=""/>
      <tab type="classindex" visible="$ALPHABETICAL_INDEX" title=""/> 
      <tab type="hierarchy" visible="yes" title="" intro=""/>
      <tab type="classmembers" visible="yes" title="" intro=""/>
    </tab>
    <tab type="files" visible="yes" title="">
      <tab type="filelist" visible="yes" title="" intro=""/>
      <tab type="globals" visible="yes" title="" intro=""/>
    </tab>
    <tab type="examples" visible="yes" title="" intro=""/>
  </tab>
</navindex>

我在名为 api.dox:

的文件中创建了 API 页面(由用户组选项卡引用)
/*! \page api API
TODO: Add text here...
*/