docs: kdoc_output: Change the logic to handle man highlight

The code inside ManFormat code to output man pages is too simple:
it produces very bad results when the content has tables or code
blocks.

Change the way lines are parsed there to allow adding extra
logic to handle some special cases.

Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
Signed-off-by: Jonathan Corbet <corbet@lwn.net>
Message-ID: <6ae2301a40b3fcb4381dd9dda8c75d14f9616b46.1772810752.git.mchehab+huawei@kernel.org>
This commit is contained in:
Mauro Carvalho Chehab
2026-03-06 16:45:48 +01:00
committed by Jonathan Corbet
parent e4dadcf510
commit cde7c96f88

View File

@@ -755,15 +755,23 @@ class ManFormat(OutputFormat):
if isinstance(contents, list):
contents = "\n".join(contents)
for line in contents.strip("\n").split("\n"):
line = KernRe(r"^\s*").sub("", line)
if not line:
continue
lines = contents.strip("\n").split("\n")
i = 0
if line[0] == ".":
self.data += "\\&" + line + "\n"
else:
self.data += line + "\n"
while i < len(lines):
org_line = lines[i]
line = KernRe(r"^\s*").sub("", org_line)
if line:
if line[0] == ".":
self.data += "\\&" + line + "\n"
i += 1
continue
i += 1
self.data += line + "\n"
def out_doc(self, fname, name, args):
if not self.check_doc(name, args):