|
1 | 1 | from __future__ import annotations |
2 | 2 |
|
3 | | -from collections.abc import Mapping, Sequence |
4 | | -from typing import Any |
| 3 | +from collections.abc import Mapping, MutableMapping, Sequence |
| 4 | +from typing import TYPE_CHECKING, Any |
5 | 5 |
|
6 | | -from mkdocstrings import BaseHandler |
| 6 | +from mkdocstrings import BaseHandler, HandlerOptions |
7 | 7 |
|
8 | 8 | from . import inventory |
9 | 9 | from .collector import CrystalCollector |
10 | 10 | from .renderer import CrystalRenderer |
11 | 11 |
|
12 | | -__version__ = "0.3.8" |
| 12 | +if TYPE_CHECKING: |
| 13 | + from markdown import Extension |
| 14 | + from mkdocs.config.defaults import MkDocsConfig |
| 15 | + |
| 16 | +__version__ = "0.3.9" |
13 | 17 |
|
14 | 18 |
|
15 | 19 | class CrystalHandler(CrystalCollector, CrystalRenderer, BaseHandler): |
| 20 | + name = "crystal" |
| 21 | + domain = "cr" |
16 | 22 | load_inventory = staticmethod(inventory.list_object_urls) # type: ignore[assignment] |
17 | 23 |
|
18 | 24 | def __init__( |
19 | 25 | self, |
| 26 | + *, |
20 | 27 | theme: str, |
21 | 28 | custom_templates: str | None = None, |
22 | | - crystal_docs_flags: Sequence[str] = (), |
23 | | - source_locations: Mapping[str, str] = {}, |
24 | | - **config: Any, |
| 29 | + mdx: Sequence[str | Extension], |
| 30 | + mdx_config: Mapping[str, Any], |
| 31 | + handler_config: MutableMapping[str, Any], |
| 32 | + tool_config: MkDocsConfig, |
25 | 33 | ) -> None: |
26 | | - BaseHandler.__init__(self, "crystal", theme, custom_templates) |
| 34 | + BaseHandler.__init__( |
| 35 | + self, theme=theme, custom_templates=custom_templates, mdx=mdx, mdx_config=mdx_config |
| 36 | + ) |
27 | 37 | CrystalCollector.__init__( |
28 | | - self, crystal_docs_flags=crystal_docs_flags, source_locations=source_locations |
| 38 | + self, |
| 39 | + **handler_config, |
29 | 40 | ) |
30 | 41 |
|
| 42 | + def get_options(self, local_options: Mapping[str, Any]) -> HandlerOptions: |
| 43 | + return { |
| 44 | + "nested_types": False, |
| 45 | + "file_filters": True, |
| 46 | + "show_source_links": True, |
| 47 | + "heading_level": 2, |
| 48 | + **local_options, |
| 49 | + } |
| 50 | + |
31 | 51 |
|
32 | 52 | get_handler = CrystalHandler |
0 commit comments