doc: fix substitution with mdbook 0.4

Recently, in 54df89f601, support for mdbook 0.5
was introduced, including some logic to handle the `sections` -> `items`
rename. However, compatibility with 0.4's `sections` was only kept on the read
path, while writing 0.5's `items` unconditionally, which ends up in the bit
bucket on 0.4, effectively disabling substitution fully and leaving the include
directives in the final documentation. Restore writing into the `sections` when
they were there so that substitution works again.

Change-Id: Idd4d7653012660f3f7fc27f81f29b82d6a6a6964
This commit is contained in:
Alois Wohlschlager
2025-12-03 10:01:55 +00:00
committed by alois31
parent 8353b3cc6a
commit 00dfcc81b4
+5 -1
View File
@@ -71,7 +71,11 @@ def do_include(content: str, relative_md_path: Path, source_root: Path, search_p
def recursive_replace(data, book_root, search_path):
match data:
# XXX FUTURE: drop sections once mdBook is at 0.5.0 or above in nixpkgs
case {'sections': items} | {'items': items}:
case {'sections': sections}:
return data | dict(
sections = [recursive_replace(section, book_root, search_path) for section in sections],
)
case {'items': items}:
return data | dict(
items = [recursive_replace(item, book_root, search_path) for item in items],
)