diff --git a/pep_sphinx_extensions/pep_zero_generator/constants.py b/pep_sphinx_extensions/pep_zero_generator/constants.py index 3b6fcea82..9ce1c4af5 100644 --- a/pep_sphinx_extensions/pep_zero_generator/constants.py +++ b/pep_sphinx_extensions/pep_zero_generator/constants.py @@ -35,6 +35,10 @@ ACTIVE_ALLOWED = {TYPE_PROCESS, TYPE_INFO} # map of topic -> additional description SUBINDICES_BY_TOPIC = { + "governance": """\ +These PEPs detail Python's governance, including governance model proposals +and selection, and the results of the annual steering council elections. + """, "packaging": """\ Packaging PEPs follow the `PyPA specification update process`_. They are used to propose major additions or changes to the PyPA specifications. @@ -55,9 +59,5 @@ See the `developer's guide`_ for more information. Many recent PEPs propose changes to Python's static type system or otherwise relate to type annotations. They are listed here for reference. -""", - "governance": """\ -These PEPs detail Python's governance, including governance model proposals -and selection, and the results of the annual steering council elections. """, } diff --git a/pep_sphinx_extensions/pep_zero_generator/pep_index_generator.py b/pep_sphinx_extensions/pep_zero_generator/pep_index_generator.py index 4ebaf0cbf..e2c1a7963 100644 --- a/pep_sphinx_extensions/pep_zero_generator/pep_index_generator.py +++ b/pep_sphinx_extensions/pep_zero_generator/pep_index_generator.py @@ -55,7 +55,7 @@ def create_pep_json(peps: list[parser.PEP]) -> str: def create_pep_zero(app: Sphinx, env: BuildEnvironment, docnames: list[str]) -> None: peps = _parse_peps() - pep0_text = writer.PEPZeroWriter().write_pep0(peps) + pep0_text = writer.PEPZeroWriter().write_pep0(peps, builder=env.settings["builder"]) pep0_path = subindices.update_sphinx("pep-0000", pep0_text, docnames, env) peps.append(parser.PEP(pep0_path)) diff --git a/pep_sphinx_extensions/pep_zero_generator/writer.py b/pep_sphinx_extensions/pep_zero_generator/writer.py index 5741dd6e9..31b7f86eb 100644 --- a/pep_sphinx_extensions/pep_zero_generator/writer.py +++ b/pep_sphinx_extensions/pep_zero_generator/writer.py @@ -118,7 +118,14 @@ class PEPZeroWriter: self.emit_text(" -") self.emit_newline() - def write_pep0(self, peps: list[PEP], header: str = HEADER, intro: str = INTRO, is_pep0: bool = True): + def write_pep0( + self, + peps: list[PEP], + header: str = HEADER, + intro: str = INTRO, + is_pep0: bool = True, + builder: str = None, + ): if len(peps) == 0: return "" @@ -132,13 +139,21 @@ class PEPZeroWriter: self.emit_newline() # PEPs by topic - self.emit_title("Topics") - self.emit_text("PEPs for specialist subjects are :doc:`indexed by topic `.") - self.emit_newline() - for subindex in SUBINDICES_BY_TOPIC: - self.emit_text(f"* `{subindex.title()} PEPs `_") + if is_pep0: + self.emit_title("Topics") + self.emit_text( + "PEPs for specialist subjects are :doc:`indexed by topic `." + ) + self.emit_newline() + for subindex in SUBINDICES_BY_TOPIC: + target = ( + f"topic/{subindex}.html" + if builder == "html" + else f"topic/{subindex}" + ) + self.emit_text(f"* `{subindex.title()} PEPs <{target}>`_") + self.emit_newline() self.emit_newline() - self.emit_newline() # PEPs by category self.emit_title("Index by Category")