[PATCH v2 0/5] docs: automarkup.py: Make automarkup ready for Sphinx 3.1+

From: Nícolas F. R. A. Prado
Date: Tue Oct 13 2020 - 19:13:10 EST


Hi,

this patch series makes the automatic markup extension ready for Sphinx 3.1+.
It was based on Mauro's Sphinx patch series, and requires it for the namespaces
to work, but could also be merged through the docs tree without regressions
(other than the increased build time explained below).

The first three patches make automarkup compatible with Sphinx 3.1. The first
patch makes use of the new C roles in Sphinx3 instead of the generic type role
from Sphinx 2, while patches 2 and 3 solve the warnings caused by Sphinx3's
stricter C domain.

Patch 4 adds cross-referencing to C macros with parameters for Sphinx 3.

Patch 5 enables cross-referencing inside C namespaces, which are new to Sphinx
3.1.

On an importante note:
In order to be able to support automatic cross-referencing inside C namespaces,
I needed to disable parallel source reading for Sphinx in patch 5. On my
machine, this makes the build process take about 4 additional minutes. This is
very bad, since the documentation building process already takes too long, but I
couldn't think of a way to sidestep this issue. If anyone has any idea, it would
be greatly appreciated.

Also, for some reason, disabling the source read parallelization makes
Sphinx output 2 warnings saying so, which is another annoyance.

Thanks,
Nícolas

Changes in v2:
- Split the single patch into patches 1, 2 and 3
- Change sphinx version verification in patch 1
- Thanks Mauro for the clarifications in v1:
- Add patches 4 and 5 for the missing functionalities

Nícolas F. R. A. Prado (5):
docs: automarkup.py: Use new C roles in Sphinx 3
docs: automarkup.py: Fix regexes to solve sphinx 3 warnings
docs: automarkup.py: Skip C reserved words when cross-referencing
docs: automarkup.py: Add cross-reference for parametrized C macros
docs: automarkup.py: Allow automatic cross-reference inside C
namespace

Documentation/sphinx/automarkup.py | 188 +++++++++++++++++++++++------
1 file changed, 154 insertions(+), 34 deletions(-)

--
2.28.0