From: Vladimír Vondruš Date: Thu, 7 May 2020 15:32:21 +0000 (+0200) Subject: documentation/doxygen: support colspan/rowspan in tables. X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~cjwatson/git?a=commitdiff_plain;h=9e96fb4541cc3d7b8050ad8c43faf46209af1158;p=blog.git documentation/doxygen: support colspan/rowspan in tables. New in 1.8.18. --- diff --git a/documentation/doxygen.py b/documentation/doxygen.py index d355b51a..1b32c6d2 100755 --- a/documentation/doxygen.py +++ b/documentation/doxygen.py @@ -719,7 +719,12 @@ def parse_desc_internal(state: State, element: ET.Element, immediate_parent: ET. assert entry.tag == 'entry' is_header = entry.attrib['thead'] == 'yes' is_header_row = is_header_row and is_header - row_data += '<{0}>{1}'.format('th' if is_header else 'td', parse_desc(state, entry)) + rowspan = ' rowspan="{}"'.format(entry.attrib['rowspan']) if 'rowspan' in entry.attrib else '' + colspan = ' colspan="{}"'.format(entry.attrib['colspan']) if 'colspan' in entry.attrib else '' + row_data += '<{0}{2}{3}>{1}'.format( + 'th' if is_header else 'td', + parse_desc(state, entry), + rowspan, colspan) # Table head is opened upon encountering first header row # and closed upon encountering first body row (in case it was diff --git a/documentation/test_doxygen/contents_blocks/doxygen1818.html b/documentation/test_doxygen/contents_blocks/doxygen1818.html new file mode 100644 index 00000000..10ee48d9 --- /dev/null +++ b/documentation/test_doxygen/contents_blocks/doxygen1818.html @@ -0,0 +1,31 @@ + + + + + Doxygen 1.8.18 features | My Project + + + + + +
+
+
+
+
+

+ Doxygen 1.8.18 features +

+

Tested separately because the CI has only 1.8.17 right now.

Tablewith
colspanand
rowspan
+
+
+
+
+ + diff --git a/documentation/test_doxygen/contents_blocks/input.dox b/documentation/test_doxygen/contents_blocks/input.dox index 0f9c9356..7b2aaf20 100644 --- a/documentation/test_doxygen/contents_blocks/input.dox +++ b/documentation/test_doxygen/contents_blocks/input.dox @@ -135,3 +135,23 @@ This gets hidden because internal docs are not enabled by default. @todo Diffferent TODO */ + +/** @page doxygen1818 Doxygen 1.8.18 features + +Tested separately because the CI has only 1.8.17 right now. + + + + + + + + + + + +
Table + with +
colspanand
rowspan
+ +*/ diff --git a/documentation/test_doxygen/test_contents.py b/documentation/test_doxygen/test_contents.py index 8be7dd0e..d88ed673 100644 --- a/documentation/test_doxygen/test_contents.py +++ b/documentation/test_doxygen/test_contents.py @@ -56,6 +56,11 @@ class Blocks(IntegrationTestCase): # Multiple xrefitems should be merged into one self.assertEqual(*self.actual_expected_contents('File_8h.html')) + @unittest.skipUnless(LooseVersion(doxygen_version()) > LooseVersion("1.8.18"), "new features in 1.8.18") + def test_1818(self): + self.run_doxygen(wildcard='*.xml') + self.assertEqual(*self.actual_expected_contents('doxygen1818.html')) + @unittest.skipUnless(LooseVersion(doxygen_version()) > LooseVersion("1.8.14"), "https://github.com/doxygen/doxygen/pull/6587 fucking broke this") def test_xrefitem1814(self):