diff --git a/src/mkdocstrings/extension.py b/src/mkdocstrings/extension.py index 02b94fc9..5b8848ab 100644 --- a/src/mkdocstrings/extension.py +++ b/src/mkdocstrings/extension.py @@ -127,17 +127,18 @@ def run(self, parent: Element, blocks: MutableSequence[str]) -> None: el.extend(headings) page = self._autorefs.current_page - for heading in headings: - anchor = heading.attrib["id"] # noqa: WPS440 - self._autorefs.register_anchor(page, anchor) # noqa: WPS441 - - if "data-role" in heading.attrib: - self._handlers.inventory.register( - name=anchor, # noqa: WPS441 - domain=handler.domain, - role=heading.attrib["data-role"], - uri=f"{page}#{anchor}", # noqa: WPS441 - ) + if page: + for heading in headings: + anchor = heading.attrib["id"] # noqa: WPS440 + self._autorefs.register_anchor(page, anchor) # noqa: WPS441 + + if "data-role" in heading.attrib: + self._handlers.inventory.register( + name=anchor, # noqa: WPS441 + domain=handler.domain, + role=heading.attrib["data-role"], + uri=f"{page}#{anchor}", # noqa: WPS441 + ) parent.append(el) diff --git a/src/mkdocstrings/loggers.py b/src/mkdocstrings/loggers.py index d2722616..f75d31d2 100644 --- a/src/mkdocstrings/loggers.py +++ b/src/mkdocstrings/loggers.py @@ -11,7 +11,7 @@ try: from jinja2 import pass_context except ImportError: # TODO: remove once Jinja2 < 3.1 is dropped - from jinja2 import contextfunction as pass_context # noqa: WPS440 + from jinja2 import contextfunction as pass_context # type: ignore # noqa: WPS440 try: import mkdocstrings_handlers diff --git a/src/mkdocstrings/plugin.py b/src/mkdocstrings/plugin.py index 7ec0b85d..2c791774 100644 --- a/src/mkdocstrings/plugin.py +++ b/src/mkdocstrings/plugin.py @@ -111,7 +111,9 @@ def handlers(self) -> Handlers: return self._handlers # TODO: remove once watch feature is removed - def on_serve(self, server: LiveReloadServer, builder: Callable, **kwargs: Any): # noqa: W0613 (unused arguments) + def on_serve( + self, server: LiveReloadServer, config: Config, builder: Callable, *args: Any, **kwargs: Any + ) -> None: # noqa: W0613 (unused arguments) """Watch directories. Hook for the [`on_serve` event](https://www.mkdocs.org/user-guide/plugins/#on_serve). @@ -121,7 +123,9 @@ def on_serve(self, server: LiveReloadServer, builder: Callable, **kwargs: Any): Arguments: server: The `livereload` server instance. + config: The MkDocs config object (unused). builder: The function to build the site. + *args: Additional arguments passed by MkDocs. **kwargs: Additional arguments passed by MkDocs. """ if self.config["watch"]: @@ -216,7 +220,7 @@ def inventory_enabled(self) -> bool: inventory_enabled = any(handler.enable_inventory for handler in self.handlers.seen_handlers) return inventory_enabled - def on_env(self, env, config: Config, **kwargs): + def on_env(self, env, config: Config, *args, **kwargs) -> None: """Extra actions that need to happen after all Markdown rendering and before HTML rendering. Hook for the [`on_env` event](https://www.mkdocs.org/user-guide/plugins/#on_env).