chiark / gitweb /
doxygen: deprecation status also for pages.
authorVladimír Vondruš <mosra@centrum.cz>
Thu, 13 Sep 2018 10:29:31 +0000 (12:29 +0200)
committerVladimír Vondruš <mosra@centrum.cz>
Thu, 13 Sep 2018 13:58:13 +0000 (15:58 +0200)
Originally I didn't think this would ever be useful, but recently I
deprecated a whole library and thus also the overview pages for it
should be marked as deprecated.

doc/doxygen.rst
doxygen/templates/pages.html
doxygen/test/compound_deprecated/Doxyfile
doxygen/test/compound_deprecated/deprecated-page.dox [new file with mode: 0644]
doxygen/test/compound_deprecated/pages.html [new file with mode: 0644]
doxygen/test/test_compound.py

index 2ea7b2e6606dd204a5fe7ebc390a03e334fd4430..7789110b5a4d627fe71d1a8f2b1004a6cedf7625 100644 (file)
@@ -1196,8 +1196,7 @@ Property                                Description
 :py:`compound.footer_navigation`        Footer navigation of a page. See
                                         `Navigation properties`_ for details.
 :py:`compound.brief`                    Brief description. Can be empty. [1]_
-:py:`compound.is_deprecated`            Whether the compound is deprecated. Not
-                                        set for pages. [7]_
+:py:`compound.is_deprecated`            Whether the compound is deprecated. [7]_
 :py:`compound.description`              Detailed description. Can be empty. [2]_
 :py:`compound.modules`                  List of submodules in this compound.
                                         Set only for modules. See
index fe4b7ce514e058d24183e9df469f5067604f503a..b82458c7f507370ecd31896fe189d71654204928 100644 (file)
@@ -7,13 +7,13 @@
           {% for i in index.pages recursive %}
           {% if i.children %}
           <li class="m-dox-collapsible">
-            <a href="#" onclick="return toggle(this)"></a><a href="{{ i.url }}" class="m-dox">{{ i.name }}</a> <span class="m-dox">{{ i.brief }}</span>
+            <a href="#" onclick="return toggle(this)"></a><a href="{{ i.url }}" class="m-dox">{{ i.name }}</a>{% if i.is_deprecated %} <span class="m-label m-danger">deprecated</span>{% endif %} <span class="m-dox">{{ i.brief }}</span>
             <ul class="m-dox">
 {{ loop(i.children)|indent(4, true) }}
             </ul>
           </li>
           {% else %}
-          <li><a href="{{ i.url }}" class="m-dox">{{ i.name }}</a> <span class="m-dox">{{ i.brief }}</span></li>
+          <li><a href="{{ i.url }}" class="m-dox">{{ i.name }}</a>{% if i.is_deprecated %} <span class="m-label m-danger">deprecated</span>{% endif %} <span class="m-dox">{{ i.brief }}</span></li>
           {% endif %}
           {% endfor %}
         </ul>
index 796610f62dfb8cb56560baa331c73fef64b60f1f..b82af8501f1d79901b225e064e83a687f74f61a7 100644 (file)
@@ -1,4 +1,4 @@
-INPUT                   = Dir
+INPUT                   = Dir deprecated-page.dox
 RECURSIVE               = YES
 AUTOLINK_SUPPORT        = NO
 QUIET                   = YES
diff --git a/doxygen/test/compound_deprecated/deprecated-page.dox b/doxygen/test/compound_deprecated/deprecated-page.dox
new file mode 100644 (file)
index 0000000..1f20b58
--- /dev/null
@@ -0,0 +1,11 @@
+/** @page deprecated-page Deprecated page
+@brief A page
+@deprecated This page is deprecated.
+
+@subpage deprecated-subpage
+*/
+
+/** @page deprecated-subpage Deprecated sub-page
+@brief A sub-page
+@deprecated This page is *also* deprecated.
+*/
diff --git a/doxygen/test/compound_deprecated/pages.html b/doxygen/test/compound_deprecated/pages.html
new file mode 100644 (file)
index 0000000..c1033c7
--- /dev/null
@@ -0,0 +1,52 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+  <meta charset="UTF-8" />
+  <title>My Project</title>
+  <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Source+Sans+Pro:400,400i,600,600i%7CSource+Code+Pro:400,400i,600" />
+  <link rel="stylesheet" href="m-dark+doxygen.compiled.css" />
+  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
+</head>
+<body>
+<header><nav id="navigation">
+  <div class="m-container">
+    <div class="m-row">
+      <a href="index.html" id="m-navbar-brand" class="m-col-t-8 m-col-m-none m-left-m">My Project</a>
+    </div>
+  </div>
+</nav></header>
+<main><article>
+  <div class="m-container m-container-inflatable">
+    <div class="m-row">
+      <div class="m-col-l-10 m-push-l-1">
+        <h1>Pages</h2>
+        <ul class="m-dox">
+          <li class="m-dox-collapsible">
+            <a href="#" onclick="return toggle(this)"></a><a href="deprecated-page.html" class="m-dox">Deprecated page</a> <span class="m-label m-danger">deprecated</span> <span class="m-dox">A page.</span>
+            <ul class="m-dox">
+              <li><a href="deprecated-subpage.html" class="m-dox">Deprecated sub-page</a> <span class="m-label m-danger">deprecated</span> <span class="m-dox">A sub-page.</span></li>
+            </ul>
+          </li>
+          <li><a href="deprecated.html" class="m-dox">Deprecated List</a> <span class="m-dox"></span></li>
+        </ul>
+        <script>
+        function toggle(e) {
+            e.parentElement.className = e.parentElement.className == 'm-dox-collapsible' ?
+                'm-dox-expansible' : 'm-dox-collapsible';
+            return false;
+        }
+        /* Collapse all nodes marked as such. Doing it via JS instead of directly in
+           markup so disabling it doesn't harm usability. The list is somehow
+           regenerated on every iteration and shrinks as I change the classes. It's not
+           documented anywhere and I'm not sure if this is the same across browsers, so
+           I am going backwards in that list to be sure.  */
+        var collapsed = document.getElementsByClassName("collapsed");
+        for(var i = collapsed.length - 1; i >= 0; --i)
+            collapsed[i].className = 'm-dox-expansible';
+        </script>
+      </div>
+    </div>
+  </div>
+</article></main>
+</body>
+</html>
index aa91be986910595ce798521dfcfabd7a98810034..826c6de770849d04f0b6635a6a9db258fca6f836 100644 (file)
@@ -185,6 +185,9 @@ class Deprecated(IntegrationTestCase):
         # Namespace tree
         self.assertEqual(*self.actual_expected_contents('namespaces.html'))
 
+        # Page tree
+        self.assertEqual(*self.actual_expected_contents('pages.html'))
+
         # Base and derived class listing
         self.assertEqual(*self.actual_expected_contents('structDeprecatedNamespace_1_1BaseDeprecatedClass.html'))
         self.assertEqual(*self.actual_expected_contents('structDeprecatedNamespace_1_1DeprecatedClass.html'))