diff --git a/pkgs/by-name/ni/nixos-render-docs/src/nixos_render_docs/manual.py b/pkgs/by-name/ni/nixos-render-docs/src/nixos_render_docs/manual.py index c6c2e087cd0d..3f61608d60fa 100644 --- a/pkgs/by-name/ni/nixos-render-docs/src/nixos_render_docs/manual.py +++ b/pkgs/by-name/ni/nixos-render-docs/src/nixos_render_docs/manual.py @@ -387,6 +387,7 @@ class ManualHTMLRenderer(RendererMixin, HTMLRenderer): //]]> """ intersection_observer_js = """ +// """ header_content = "" diff --git a/pkgs/by-name/ni/nixos-render-docs/src/tests/test_manual.py b/pkgs/by-name/ni/nixos-render-docs/src/tests/test_manual.py index 14f7024ce186..45bce4cb6e78 100644 --- a/pkgs/by-name/ni/nixos-render-docs/src/tests/test_manual.py +++ b/pkgs/by-name/ni/nixos-render-docs/src/tests/test_manual.py @@ -1,8 +1,28 @@ +import xml.parsers.expat as expat +from html.entities import name2codepoint from pathlib import Path from nixos_render_docs.manual import HTMLConverter, HTMLParameters +def _parse_xhtml(text: str) -> None: + parser = expat.ParserCreate() + # Use offline html entity definitions + # and enble to use them (XML_PARAM_ENTITY_PARSING_ALWAYS) + parser.UseForeignDTD(True) + parser.SetParamEntityParsing(expat.XML_PARAM_ENTITY_PARSING_ALWAYS) + + def external_entity_ref(context: str | None, base: str | None, + system_id: str | None, public_id: str | None) -> int: + sub = parser.ExternalEntityParserCreate(context) + sub.Parse("".join(f'' + for name, cp in name2codepoint.items()), True) + return 1 + + parser.ExternalEntityRefHandler = external_entity_ref + parser.Parse(text, True) + + def _build(tmp_path: Path, sidebar_depth: int = 2, sidebar_open: frozenset[str] = frozenset()) -> str: (tmp_path / "part.md").write_text( "# Build helpers {#part-builders}\n\n" # -> h2 @@ -122,3 +142,30 @@ def test_chunked_pages_carry_the_sidebar(tmp_path: Path) -> None: assert '