So the documentation has some entry point.
with open(output, 'w') as f:
f.write(rendered)
+ # Empty index page in case no mainpage documentation was provided so
+ # there's at least some entrypoint. Doxygen version is not set in this
+ # case, as this is totally without Doxygen involvement.
+ if not os.path.join(xml_input, 'indexpage.xml') in xml_files_metadata:
+ compound = Empty()
+ compound.kind = 'page'
+ compound.name = state.doxyfile['PROJECT_NAME']
+ compound.description = ''
+ compound.breadcrumb = [(state.doxyfile['PROJECT_NAME'], 'index.html')]
+ template = env.get_template('page.html')
+ rendered = template.render(compound=compound,
+ DOXYGEN_VERSION='0',
+ FILENAME='index.html',
+ **state.doxyfile)
+ output = os.path.join(html_output, 'index.html')
+ with open(output, 'w') as f:
+ f.write(rendered)
+
# Copy all referenced files, skip absolute URLs
for i in state.images + state.doxyfile['HTML_EXTRA_STYLESHEET'] + state.doxyfile['HTML_EXTRA_FILES']:
if urllib.parse.urlparse(i).netloc: continue
--- /dev/null
+INPUT = input.dox
+QUIET = YES
+GENERATE_HTML = NO
+GENERATE_LATEX = NO
+GENERATE_XML = YES
+
+M_PAGE_FINE_PRINT =
+M_THEME_COLOR =
+M_LINKS_NAVBAR1 =
+M_LINKS_NAVBAR2 =
--- /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+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-9 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>
+ My Project
+ </h1>
+ </div>
+ </div>
+ </div>
+</article></main>
+</body>
+</html>
self.run_dox2html5(wildcard='subpage*.xml')
self.assertEqual(*self.actual_expected_contents('subpage1.html'))
self.assertEqual(*self.actual_expected_contents('subpage2.html'))
+
+class EmptyIndex(IntegrationTestCase):
+ def __init__(self, *args, **kwargs):
+ super().__init__(__file__, 'empty_index', *args, **kwargs)
+
+ def test(self):
+ self.run_dox2html5(wildcard='indexpage.xml')
+ self.assertEqual(*self.actual_expected_contents('index.html'))