我可以抑制空虚的更多......' Doxygen类参考页面上的链接?

时间:2014-04-18 18:13:26

标签: doxygen

Doxygen类引用页面主要由类成员列表组成,每个列表成员后面跟着它的简要描述(如果存在)。成员本身是指向该成员的详细信息页面的链接。总的来说,简要说明后面是“更多...”链接。此链接的内容与该成员的内容相同。这个“更多...”链接建议 - 至少对我来说 - 在该链接的另一端有更多扩展描述。当会员只有简短的描述时,这会产生误导。在这种情况下,链接指向一个页面,该页面只是重复该简短描述,然后指出“在文件abcxyz.ext的NN行定义。”

有没有让Doxygen压制这些令人沮丧的空洞'更多......'链接?

3 个答案:

答案 0 :(得分:2)

doxygen 1.8.10的实验性补丁,可让您删除"更多..."使用" USE_MORE_LINK = NO"在Doxyfile中。

<!-- language: diff -->
=== modified file 'src/classdef.cpp'
--- src/classdef.cpp    2015-07-06 11:29:12 +0000
+++ src/classdef.cpp    2015-07-06 11:37:57 +0000
@@ -1802,12 +1802,14 @@

   // HTML only
   ol.pushGeneratorState();
-  ol.disableAllBut(OutputGenerator::Html);
-  ol.docify(" ");
-  ol.startTextLink(getOutputFileBase(),
-      anchor.isEmpty() ? QCString("details") : anchor);
-  ol.parseText(theTranslator->trMore());
-  ol.endTextLink();
+  if (Config_getBool("USE_MORE_LINK")) {
+    ol.disableAllBut(OutputGenerator::Html);
+    ol.docify(" ");
+    ol.startTextLink(getOutputFileBase(),
+        anchor.isEmpty() ? QCString("details") : anchor);
+    ol.parseText(theTranslator->trMore());
+    ol.endTextLink();
+  }
   ol.popGeneratorState();

   if (!anchor.isEmpty())

=== modified file 'src/config.xml'
--- src/config.xml  2015-07-06 11:29:12 +0000
+++ src/config.xml  2015-07-06 11:57:09 +0000
@@ -366,6 +366,13 @@
 ]]>
       </docs>
     </option>
+    <option type='bool' id='USE_MORE_LINK' defval='1'>
+      <docs>
+<![CDATA[
+ Experimental parameter, which allows you to remove the "More..." links by using USE_MORE_LINK = NO.
+]]>
+      </docs>
+    </option>
     <option type='list' id='ABBREVIATE_BRIEF' format='string'>
       <docs>
 <![CDATA[

=== modified file 'src/filedef.cpp'
--- src/filedef.cpp 2015-07-06 11:29:12 +0000
+++ src/filedef.cpp 2015-07-06 11:31:41 +0000
@@ -373,8 +373,8 @@
       ol.writeString(" \n");
       ol.enable(OutputGenerator::RTF);

-      if (Config_getBool("REPEAT_BRIEF") ||
-          !documentation().isEmpty()
+      if ( (Config_getBool("REPEAT_BRIEF") || !documentation().isEmpty() ) &&
+          Config_getBool("USE_MORE_LINK")
          )
       {
         ol.disableAllBut(OutputGenerator::Html);

=== modified file 'src/memberdef.cpp'
--- src/memberdef.cpp   2015-07-06 11:29:12 +0000
+++ src/memberdef.cpp   2015-07-06 11:37:48 +0000
@@ -1805,22 +1805,24 @@
       {
         static bool separateMemberPages = Config_getBool("SEPARATE_MEMBER_PAGES");
         ol.pushGeneratorState();
-        ol.disableAllBut(OutputGenerator::Html);
-        //ol.endEmphasis();
-        ol.docify(" ");
-        if (separateMemberPages ||
-            (m_impl->group!=0 && gd==0) ||
-            (m_impl->nspace!=0 && nd==0)
-           ) // forward link to the page or group or namespace
-        {
-          ol.startTextLink(getOutputFileBase(),anchor());
-        }
-        else // local link
-        {
-          ol.startTextLink(0,anchor());
-        }
-        ol.parseText(theTranslator->trMore());
-        ol.endTextLink();
+        if (Config_getBool("USE_MORE_LINK")) {
+          ol.disableAllBut(OutputGenerator::Html);
+          //ol.endEmphasis();
+          ol.docify(" ");
+          if (separateMemberPages ||
+              (m_impl->group!=0 && gd==0) ||
+              (m_impl->nspace!=0 && nd==0)
+             ) // forward link to the page or group or namespace
+          {
+            ol.startTextLink(getOutputFileBase(),anchor());
+          }
+          else // local link
+          {
+            ol.startTextLink(0,anchor());
+          }
+          ol.parseText(theTranslator->trMore());
+          ol.endTextLink();
+        }
         //ol.startEmphasis();
         ol.popGeneratorState();
       }

答案 1 :(得分:1)

(暂定答案,因为这个特殊情况不是我需要做的事情。)

如果您要删除所有详细说明(因此,可能是指向它的链接),您可以修改'layout'文件以使该部分不可见。< / p>

参考:http://www.doxygen.nl/manual/customize.html#layout

可替换地..

根据您的描述,听起来似乎REPEAT_BRIEF已设置。如果在第一个句号之外确实没有描述,那么你可能会发现关闭REPEAT_BRIEF会删除链接,因为那里的文本确实是空的。

答案 2 :(得分:0)

可能有点迟了但是我遇到了同样的问题,并且使用以下doxyfile配置轻松解决了这个问题:

ALWAYS_DETAILED_SEC = NO
BRIEF_MEMBER_DESC = YES
REPEAT_BRIEF = NO
EXTRACT_ALL = NO
# Since EXTRACT_ALL is NO, configure the following as you wish. In my case
EXTRACT_PRIVATE = YES
EXTRACT_STATIC = YES
EXTRACT_LOCAL_CLASSES = YES
EXTRACT_LOCAL_METHODS = YES

我希望有所帮助。