在 Doxygen 中自定义树视图

问题描述 投票:0回答:2

我是第一次尝试使用 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)

这可能吗?在谷歌搜索时,我设法找到了一个名为“布局文件”的东西,但我无法理解它是如何工作的,或者它在这种情况下是否有帮助。

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

我感谢任何帮助。

treeview doxygen
2个回答
3
投票

我设法通过更改“布局文件”解决了这个问题。默认文件如下所示:

<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...
*/ 

0
投票

我发现更简单的方法是遵循 doxygen 关于如何使用“子页面”的指南:https://www.doxygen.nl/manual/grouping.html#subpaging

其要点是,通常在您的父页面中,您将有指向其他子页面的链接,开始时您可能已使用

\ref
命令来实现此目的,但是通过使用类似的
\subpage
命令
,doxygen 将自动查看此关系并确保树视图相应地更新自身

© www.soinside.com 2019 - 2024. All rights reserved.