[doc] engine-table: link module documentation if it exists

This commit is contained in:
Martin Fischer 2021-12-21 17:44:05 +01:00
parent 42d70e15ad
commit ca7f1a2da6
2 changed files with 24 additions and 1 deletions

View file

@ -43,7 +43,11 @@ Explanation of the :ref:`general engine configuration` shown in the table
* - `{{name}} <{{mod.about and mod.about.website}}>`_
- ``!{{mod.shortcut}}``
- :origin:`{{mod.__name__}} <searx/engines/{{mod.__name__}}.py>`
- {%- if 'searx.engines.' + mod.__name__ in documented_modules %}
:py:mod:`~searx.engines.{{mod.__name__}}`
{%- else %}
:origin:`{{mod.__name__}} <searx/engines/{{mod.__name__}}.py>`
{%- endif %}
- {{(mod.disabled and "y") or ""}}
{%- if mod.about and mod.about.language %}
({{mod.about.language | upper}})

View file

@ -58,6 +58,25 @@ jinja_filters = {
)
}
# Let the Jinja template in configured_engines.rst access documented_modules
# to automatically link documentation for modules if it exists.
def setup(app):
ENGINES_DOCNAME = 'admin/engines/configured_engines'
def before_read_docs(app, env, docnames):
assert ENGINES_DOCNAME in docnames
docnames.remove(ENGINES_DOCNAME)
docnames.append(ENGINES_DOCNAME)
# configured_engines must come last so that sphinx already has
# discovered the python module documentations
def source_read(app, docname, source):
if docname == ENGINES_DOCNAME:
jinja_contexts['searx']['documented_modules'] = app.env.domains['py'].modules
app.connect('env-before-read-docs', before_read_docs)
app.connect('source-read', source_read)
# usage:: lorem :patch:`f373169` ipsum
extlinks = {}