refactor: remove middleware, add strategy "raw", and call render_deps() from within Template.render() (#1166)

* refactor: remove middleware, add strategy "raw", and call render_deps() from within Template.render()

* refactor: fix formatting

* refactor: fix benchmark tests

* refactor: avoid processing deps if rendered HTML contains no components

* refactor: remove comments

* refactor: rename "raw" to "ignore"
This commit is contained in:
Juro Oravec 2025-05-06 21:36:41 +02:00 committed by GitHub
parent 1049c08324
commit 6253042e9e
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
37 changed files with 771 additions and 657 deletions

View file

@ -1,6 +1,6 @@
"""
Generate reference for all the different kinds of public API that we expose,
like regular Python imports, middleware, template tags, settings, Django URLs, etc.
like regular Python imports, template tags, settings, Django URLs, etc.
All pages are generated inside `docs/reference/`.
@ -338,49 +338,6 @@ def _gen_default_settings_section(app_settings_filepath: str) -> str:
)
def gen_reference_middlewares():
"""
Generate documentation for all available middleware of django-components,
as listed in module `django_components.middleware`.
"""
module = import_module("django_components.middleware")
preface = "<!-- Autogenerated by reference.py -->\n\n"
preface += (root / "docs/templates/reference_middlewares.md").read_text()
out_file = root / "docs/reference/middlewares.md"
out_file.parent.mkdir(parents=True, exist_ok=True)
with out_file.open("w", encoding="utf-8") as f:
f.write(preface + "\n\n")
for name, obj in inspect.getmembers(module):
if not inspect.isclass(obj):
continue
class_name = get_import_path(obj)
# For each entry, generate a mkdocstrings entry, e.g.
# ```
# ::: django_components.middleware.ComponentDependencyMiddleware
# options:
# ...
# ```
f.write(
f"::: {class_name}\n"
f" options:\n"
f" inherited_members: false\n"
f" show_root_heading: true\n"
f" show_signature: false\n"
f" separate_signature: false\n"
f" show_symbol_type_heading: false\n"
f" show_symbol_type_toc: false\n"
f" show_if_no_docstring: true\n"
f" show_labels: false\n"
)
f.write("\n")
def gen_reference_tagformatters():
"""
Generate documentation for all pre-defined TagFormatters included
@ -1145,7 +1102,6 @@ def gen_reference():
gen_reference_api()
gen_reference_exceptions()
gen_reference_components()
gen_reference_middlewares()
gen_reference_settings()
gen_reference_tagformatters()
gen_reference_urls()