mirror of
https://github.com/torvalds/linux.git
synced 2026-05-04 06:22:40 -04:00
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:
committed by
Jonathan Corbet
parent
e4dadcf510
commit
cde7c96f88
@@ -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):
|
||||
|
||||
Reference in New Issue
Block a user