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