aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'src/pkgcore/ebuild/eclass.py')
-rw-r--r--src/pkgcore/ebuild/eclass.py51
1 files changed, 33 insertions, 18 deletions
diff --git a/src/pkgcore/ebuild/eclass.py b/src/pkgcore/ebuild/eclass.py
index f5ae214f7..23e970f75 100644
--- a/src/pkgcore/ebuild/eclass.py
+++ b/src/pkgcore/ebuild/eclass.py
@@ -118,17 +118,23 @@ class ParseEclassDoc:
return None
# use literal blocks for all multiline text
- data = ["::", "\n\n"]
+ data = ["\n\n"]
+ inside_code = False
for i, line in enumerate(lines, 1):
if self._code_tag.match(line):
- continue
+ if not inside_code:
+ data.append("::")
+ data.append("\n\n")
+ inside_code = not inside_code
elif mo := self._subsection_tag.match(line):
header = _rst_header("~", mo.group("title"))
data.extend(f"{x}\n" for x in header)
- data.extend(["::", "\n\n"])
+ data.extend(["\n\n"])
elif line:
- data.append(f" {line}\n")
+ indent = " " if inside_code else ""
+ formatted_line = line
+ data.append(f"{indent}{formatted_line}\n")
else:
data.append("\n")
@@ -572,7 +578,9 @@ class EclassDoc(AttrDict):
rst = _header_only("=", self.name, leading=True)
if self.blurb:
- rst.extend(_header_only("-", self.blurb, leading=True))
+ rst.extend(_rst_header("-", "Name"))
+ rst.append(f"``{self.name}`` -- {self.blurb}")
+ rst.append("")
if self.description:
rst.extend(_rst_header("-", "Description"))
@@ -592,7 +600,7 @@ class EclassDoc(AttrDict):
rst.append("")
if self.raw_provides:
rst.extend(_rst_header("-", "Transitively Provided Eclasses"))
- rst.append(" ".join(self.raw_provides))
+ rst.extend(f"- ``{provide}``" for provide in self.raw_provides)
rst.append("")
if self.example:
rst.extend(_rst_header("-", "Example"))
@@ -616,22 +624,25 @@ class EclassDoc(AttrDict):
header = [func.name]
if func.usage:
header.append(func.usage)
- rst.extend(_rst_header("~", " ".join(header)))
+ rst.append(f'**{" ".join(header)}**')
if func.description:
- rst.append(func.description)
+ rst.append(
+ " " + func.description.lstrip("\n").replace("\n", "\n ")
+ )
if func.returns:
if func.description:
- rst.append("")
- rst.append(f"Return value: {func.returns}")
+ rst.append(" ")
+ rst.append(f" **Return value**: {func.returns}")
rst.append("")
if external_vars := [x for x in self.variables if not x.internal]:
rst.extend(_header_only("-", "Variables"))
for var in external_vars:
vartype = ""
+ var_value = ""
if default_value := getattr(var, "default_value", None):
- vartype += f" ?= *{default_value}*"
+ var_value = f" ?= *{default_value}*"
elif initial_value := getattr(var, "initial_value", None):
- vartype += f" = *{initial_value}*"
+ var_value = f" = *{initial_value}*"
if var.required:
vartype += " (REQUIRED)"
if var.pre_inherit:
@@ -639,11 +650,12 @@ class EclassDoc(AttrDict):
if var.user_variable:
vartype += " (USER VARIABLE)"
if var.output_variable:
- vartype += " (OUTPUT VARIABLE)"
-
- rst.extend(_rst_header("~", var.name + vartype))
+ vartype += " (GENERATED BY ECLASS)"
+ rst.append(f"**{var.name}**{var_value}{vartype}")
if var.description:
- rst.append(var.description)
+ rst.append(
+ " " + var.description.lstrip("\n").replace("\n", "\n ")
+ )
rst.append("")
if external_func_vars := [x for x in self.function_variables if not x.internal]:
rst.extend(_header_only("-", "Function Variables"))
@@ -652,9 +664,11 @@ class EclassDoc(AttrDict):
if var.required:
vartype += " (REQUIRED)"
- rst.extend(_rst_header("~", var.name + vartype))
+ rst.append(f"**{var.name}**{vartype}")
if var.description:
- rst.append(var.description)
+ rst.append(
+ " " + var.description.lstrip("\n").replace("\n", "\n ")
+ )
rst.append("")
if self.authors:
@@ -711,6 +725,7 @@ class EclassDoc(AttrDict):
super().__init__(*args, **kwargs)
self._docinfo.update(man_data)
+ self.blurb = None # skip addition of blurb as man page header already holds it
writer = manpage.Writer()
writer.translator_class = Translator
return self._to_docutils(writer)