summaryrefslogtreecommitdiff
path: root/docs
diff options
context:
space:
mode:
authorMartin Fischer <martin@push-f.com>2021-12-21 17:44:05 +0100
committerMartin Fischer <martin@push-f.com>2021-12-21 21:06:17 +0100
commitca7f1a2da6e09a81a8823b1f146b186132ef0e92 (patch)
treed71b96230e3a0e2c9e7de87d84398684a7a20d3f /docs
parent42d70e15ad2932069aca9434ca3831cc6f210aa0 (diff)
[doc] engine-table: link module documentation if it exists
Diffstat (limited to 'docs')
-rw-r--r--docs/admin/engines/configured_engines.rst6
-rw-r--r--docs/conf.py19
2 files changed, 24 insertions, 1 deletions
diff --git a/docs/admin/engines/configured_engines.rst b/docs/admin/engines/configured_engines.rst
index dabd3501..0060d1b7 100644
--- a/docs/admin/engines/configured_engines.rst
+++ b/docs/admin/engines/configured_engines.rst
@@ -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}})
diff --git a/docs/conf.py b/docs/conf.py
index a319762e..560e3daf 100644
--- a/docs/conf.py
+++ b/docs/conf.py
@@ -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 = {}