From 6b9b5ac848b8e06a129847fca02998f19b3ae670 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Vladim=C3=ADr=20Vondru=C5=A1?= Date: Thu, 7 May 2020 16:57:07 +0200 Subject: [PATCH] documentation/doxygen: 1.8.18 parses Markdown differently, it seems. Better, even. Unheard of. --- documentation/doxygen.py | 15 +++++++++------ .../contents_sections_headings/File_8h.html | 4 ++-- .../contents_sections_headings/warnings.html | 2 +- 3 files changed, 12 insertions(+), 9 deletions(-) diff --git a/documentation/doxygen.py b/documentation/doxygen.py index 03ca56a4..4b600f1f 100755 --- a/documentation/doxygen.py +++ b/documentation/doxygen.py @@ -506,7 +506,7 @@ def parse_desc_internal(state: State, element: ET.Element, immediate_parent: ET. out.write_paragraph_close_tag = True # Block elements - if i.tag in ['sect1', 'sect2', 'sect3']: + if i.tag in ['sect1', 'sect2', 'sect3', 'sect4']: assert element.tag != 'para' # should be top-level block element has_block_elements = True @@ -543,6 +543,8 @@ def parse_desc_internal(state: State, element: ET.Element, immediate_parent: ET. tag = 'h3' elif element.tag == 'sect3': tag = 'h4' + elif element.tag == 'sect4': + tag = 'h5' elif not element.tag == 'simplesect': # pragma: no cover assert False @@ -556,6 +558,9 @@ def parse_desc_internal(state: State, element: ET.Element, immediate_parent: ET. tag = 'h5' elif element.tag == 'sect3': tag = 'h6' + elif element.tag == 'sect4': + tag = 'h6' + logging.warning("{}: more than three levels of sections in member descriptions are not supported, stopping at
".format(state.current)) elif not element.tag == 'simplesect': # pragma: no cover assert False @@ -574,13 +579,15 @@ def parse_desc_internal(state: State, element: ET.Element, immediate_parent: ET. else: out.parsed += '<{0} id="{1}">{2}'.format(tag, id, title) + # Apparently, in 1.8.18, is used for Markdown headers only if + # we run out of sect1-4 tags. Eh, what the hell. elif i.tag == 'heading': assert element.tag == 'para' # is inside a paragraph :/ has_block_elements = True # Do not print anything if there are no contents if not i.text: - logging.warning("{}: a Markdown heading underline was apparently misparsed by Doxygen, prefix the headings with # instead (or better, use @section for properly generated TOC)".format(state.current)) + logging.warning("{}: a Markdown heading underline was apparently misparsed by Doxygen, prefix the headings with # instead".format(state.current)) else: h_tag_level = int(i.attrib['level']) @@ -594,10 +601,6 @@ def parse_desc_internal(state: State, element: ET.Element, immediate_parent: ET. h_tag_level = 6 logging.warning("{}: more than five levels of Markdown headings for top-level docs are not supported, stopping at
".format(state.current)) - # Emit this warning only in top-level desc, TOC is not - # generated for function/enum/... descriptions - logging.warning("{}: prefer @section over Markdown heading for properly generated TOC".format(state.current)) - # Function/enum/... descriptions are inside

for function # header, which is inside

for detailed definition section, # so it needs to be

and below diff --git a/documentation/test_doxygen/contents_sections_headings/File_8h.html b/documentation/test_doxygen/contents_sections_headings/File_8h.html index 67f3af01..dc347b42 100644 --- a/documentation/test_doxygen/contents_sections_headings/File_8h.html +++ b/documentation/test_doxygen/contents_sections_headings/File_8h.html @@ -71,14 +71,14 @@ -

A top-level header

A second-level header
A third-level header

Usage

This is usage.

More

A subsection.

More.

Mooore.

+

A top-level header

A second-level header
A third-level header

Usage

This is usage.

More

A subsection.

More.

Mooore.

void bar(int foo)

This produces warnings.

-
Markdown heading 4 that's rendered the same as 3

Markdown heading, underlined, is misparsed

+
Markdown heading 4 that's rendered the same as 3

Markdown heading, underlined, is misparsed

diff --git a/documentation/test_doxygen/contents_sections_headings/warnings.html b/documentation/test_doxygen/contents_sections_headings/warnings.html index e35ca93f..6410f51b 100644 --- a/documentation/test_doxygen/contents_sections_headings/warnings.html +++ b/documentation/test_doxygen/contents_sections_headings/warnings.html @@ -22,7 +22,7 @@

Content that produces warnings

-

Markdown heading 1

Markdown heading 2

Markdown heading 3

Markdown heading 4
Markdown heading 5
Markdown heading 6 that's rendered the same as 5

Markdown heading, underlined, is misparsed

+

Markdown heading 1

Markdown heading 2

Markdown heading 3

Markdown heading 4

Markdown heading 5
Markdown heading 6 that's rendered the same as 5

Markdown heading, underlined, is misparsed

-- 2.30.2