History

scripts: get_abi.pl: Don't let ABI files to create subtitles

The ReST output should only contain documentation titles automatically created by the script. There are two reasons for that: 1) Consistency. just a handful ABI docs define titles 2) To avoid critical errors. Docutils (which is the basis for Sphinx) allows a free assign of documentation title markups. So, one document could be doing things like: Level 1 ======= Level 2 ------- While another one could do the reverse: Level 1 ------- Level 2 ======= But the same document can't mix. As the output of get_abi.pl will join contents from multiple files, if they don't define the levels on a consistent errors, errors like this can happen: Sphinx parallel build error: docutils.utils.SystemMessage: /home/rdunlap/lnx/lnx-510-rc2/Documentation/ABI/testing/sysfs-bus-rapidio:2: (SEVERE/4) Title level inconsistent: Attributes Common for All RapidIO Devices ----------------------------------------- Which cause some versions of Sphinx to go into an endless loop. It should be noticed that an alternative to that would be to replace all title occurrences by a single markup, but that will make the parser more complex, and, due to (1) it would generate an inconsistent output. So, better to just remove the titles defined at the ABI files from the output.

Mauro Carvalho Chehab committed 6 years ago

Commit daaaf581 parent e186d801 file · +6 −0Browse files

Showing the changes to scripts (1 of 1 file). Show all

Unified · Split

scripts/get_abi.pl+6−0
@@ -352,6 +352,12 @@ sub output_rest { · 351 unmodified lines
352352
353353 if (!($desc =~ /^\s*$/)) {
354354 if ($description_is_rst) {
355+ # Remove title markups from the description
356+ # Having titles inside ABI files will only work if extra
357+ # care would be taken in order to strictly follow the same
358+ # level order for each markup.
359+ $desc =~ s/\n[\-\*\=\^\~]+\n/\n\n/g;
360+
355361 # Enrich text by creating cross-references
356362
357363 $desc =~ s,Documentation/(?!devicetree)(\S+)\.rst,:doc:`/$1`,g;