--- /dev/null
+INPUT = input.h input.md
+QUIET = YES
+GENERATE_HTML = NO
+GENERATE_LATEX = NO
+GENERATE_XML = YES
+XML_PROGRAMLISTING = NO
+
+##! M_PAGE_FINE_PRINT =
+##! M_THEME_COLOR =
+##! M_FAVICON =
+##! M_LINKS_NAVBAR1 =
+##! M_LINKS_NAVBAR2 =
+##! M_SEARCH_DISABLED = YES
--- /dev/null
+/** @defgroup bla A module
+@brief Short module description
+
+@{ */
+
+/** @brief A namespace */
+namespace Foo {
+
+/** @brief A class */
+class Bar {};
+
+}
+
+/*@}*/
--- /dev/null
+@ingroup bla
+
+[comment]: # (The `ingroup` statement above avoids the generation of an empty page for this file.)
+[comment]: # (The actual group we add the file to is irrelevant, nothing is actually added.)
+[comment]: # (Doxygen will actually create xml/group__bla_md_input.xml, but we want to avoid)
+[comment]: # (creating html/group__bla_md_input.html, and listing `input` on the list of pages.)
+
+@class Foo::Bar
+
+This is the detailed description for class `Foo::Bar``.
+We put it in a separate file to not clutter the header file too much.
+Because this is a really loooong description!
--- /dev/null
+<!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+documentation.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-doc">
+ </ul>
+ <script>
+ function toggle(e) {
+ e.parentElement.className = e.parentElement.className == 'm-doc-collapsible' ?
+ 'm-doc-expansible' : 'm-doc-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-doc-expansible';
+ </script>
+ </div>
+ </div>
+ </div>
+</article></main>
+</body>
+</html>
# DEALINGS IN THE SOFTWARE.
#
+import os
import unittest
from distutils.version import LooseVersion
self.run_doxygen(wildcard='*.xml')
self.assertEqual(*self.actual_expected_contents('page.html'))
self.assertEqual(*self.actual_expected_contents('pages.html'))
+
+class EmptyPage(IntegrationTestCase):
+ def __init__(self, *args, **kwargs):
+ super().__init__(__file__, 'empty_page', *args, **kwargs)
+
+ def test(self):
+ self.run_doxygen(wildcard='*.xml')
+ self.assertFalse(os.path.exists(os.path.join(self.path, 'html', 'group__bla_md_input.html')))
+ self.assertEqual(*self.actual_expected_contents('pages.html'))