| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183 | 
							- # -*- coding: utf-8 -*-
 
- # SPDX-License-Identifier: AGPL-3.0-or-later
 
- import  sys, os
 
- from pallets_sphinx_themes import ProjectLink
 
- from searx import get_setting
 
- from searx.version import VERSION_STRING, GIT_URL, GIT_BRANCH
 
- # Project --------------------------------------------------------------
 
- project = 'SearXNG'
 
- copyright = '2021 SearXNG team, 2015-2021 Adam Tauber, Noémi Ványi'
 
- author = '2021 SearXNG team, 2015-2021 Adam Tauber'
 
- release, version = VERSION_STRING, VERSION_STRING
 
- SEARXNG_URL = get_setting('server.base_url') or 'https://example.org/searxng'
 
- ISSUE_URL = get_setting('brand.issue_url')
 
- DOCS_URL = get_setting('brand.docs_url')
 
- PUBLIC_INSTANCES = get_setting('brand.public_instances')
 
- CONTACT_URL = get_setting('general.contact_url')
 
- WIKI_URL = get_setting('brand.wiki_url')
 
- # hint: sphinx.ext.viewcode won't highlight when 'highlight_language' [1] is set
 
- #       to string 'none' [2]
 
- #
 
- # [1] https://www.sphinx-doc.org/en/master/usage/extensions/viewcode.html
 
- # [2] https://www.sphinx-doc.org/en/master/usage/configuration.html#confval-highlight_language
 
- highlight_language = 'default'
 
- # General --------------------------------------------------------------
 
- master_doc = "index"
 
- source_suffix = '.rst'
 
- numfig = True
 
- exclude_patterns = ['build-templates/*.rst']
 
- import searx.engines
 
- import searx.plugins
 
- import searx.webutils
 
- # import searx.webapp is needed to init the engines & plugins, to init a
 
- # (empty) secret_key is needed.
 
- searx.settings['server']['secret_key'] = ''
 
- import searx.webapp
 
- searx.engines.load_engines(searx.settings['engines'])
 
- jinja_contexts = {
 
-     'searx': {
 
-         'engines': searx.engines.engines,
 
-         'plugins': searx.plugins.plugins,
 
-         'version': {
 
-             'node': os.getenv('NODE_MINIMUM_VERSION')
 
-         },
 
-         'enabled_engine_count': sum(not x.disabled for x in searx.engines.engines.values()),
 
-         'categories': searx.engines.categories,
 
-         'categories_as_tabs': {c: searx.engines.categories[c] for c in searx.settings['categories_as_tabs']},
 
-     },
 
- }
 
- jinja_filters = {
 
-     'group_engines_in_tab': searx.webutils.group_engines_in_tab,
 
- }
 
- # 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 = {}
 
- # upstream links
 
- extlinks['wiki'] = ('https://github.com/searxng/searxng/wiki/%s', ' ')
 
- extlinks['pull'] = ('https://github.com/searxng/searxng/pull/%s', 'PR ')
 
- extlinks['pull-searx'] = ('https://github.com/searx/searx/pull/%s', 'PR ')
 
- # links to custom brand
 
- extlinks['origin'] = (GIT_URL + '/blob/' + GIT_BRANCH + '/%s', 'git://')
 
- extlinks['patch'] = (GIT_URL + '/commit/%s', '#')
 
- extlinks['search'] = (SEARXNG_URL + '/%s', '#')
 
- extlinks['docs'] = (DOCS_URL + '/%s', 'docs: ')
 
- extlinks['pypi'] = ('https://pypi.org/project/%s', 'PyPi: ')
 
- extlinks['man'] = ('https://manpages.debian.org/jump?q=%s', '')
 
- #extlinks['role'] = (
 
- #    'https://www.sphinx-doc.org/en/master/usage/restructuredtext/roles.html#role-%s', '')
 
- extlinks['duref'] = (
 
-     'https://docutils.sourceforge.io/docs/ref/rst/restructuredtext.html#%s', '')
 
- extlinks['durole'] = (
 
-     'https://docutils.sourceforge.io/docs/ref/rst/roles.html#%s', '')
 
- extlinks['dudir'] =  (
 
-     'https://docutils.sourceforge.io/docs/ref/rst/directives.html#%s', '')
 
- extlinks['ctan'] =  (
 
-     'https://ctan.org/pkg/%s', 'CTAN: ')
 
- extensions = [
 
-     'sphinx.ext.imgmath',
 
-     'sphinx.ext.extlinks',
 
-     'sphinx.ext.viewcode',
 
-     "sphinx.ext.autodoc",
 
-     "sphinx.ext.intersphinx",
 
-     "pallets_sphinx_themes",
 
-     "sphinx_issues", # https://github.com/sloria/sphinx-issues/blob/master/README.rst
 
-     "sphinxcontrib.jinja",  # https://github.com/tardyp/sphinx-jinja
 
-     "sphinxcontrib.programoutput",  # https://github.com/NextThought/sphinxcontrib-programoutput
 
-     'linuxdoc.kernel_include',  # Implementation of the 'kernel-include' reST-directive.
 
-     'linuxdoc.rstFlatTable',    # Implementation of the 'flat-table' reST-directive.
 
-     'linuxdoc.kfigure',         # Sphinx extension which implements scalable image handling.
 
-     "sphinx_tabs.tabs", # https://github.com/djungelorm/sphinx-tabs
 
- ]
 
- intersphinx_mapping = {
 
-     "python": ("https://docs.python.org/3/", None),
 
-     "flask": ("https://flask.palletsprojects.com/", None),
 
-     # "werkzeug": ("https://werkzeug.palletsprojects.com/", None),
 
-     "jinja": ("https://jinja.palletsprojects.com/", None),
 
-     "linuxdoc" : ("https://return42.github.io/linuxdoc/", None),
 
-     "sphinx" : ("https://www.sphinx-doc.org/en/master/", None),
 
- }
 
- issues_github_path = "searxng/searxng"
 
- # HTML -----------------------------------------------------------------
 
- sys.path.append(os.path.abspath('_themes'))
 
- sys.path.insert(0, os.path.abspath("../utils/"))
 
- html_theme_path = ['_themes']
 
- html_theme = "searxng"
 
- # sphinx.ext.imgmath setup
 
- html_math_renderer = 'imgmath'
 
- imgmath_image_format = 'svg'
 
- imgmath_font_size = 14
 
- # sphinx.ext.imgmath setup END
 
- html_theme_options = {"index_sidebar_logo": True}
 
- html_context = {"project_links": [] }
 
- html_context["project_links"].append(ProjectLink("Source", GIT_URL + '/tree/' + GIT_BRANCH))
 
- if WIKI_URL:
 
-     html_context["project_links"].append(ProjectLink("Wiki", WIKI_URL))
 
- if PUBLIC_INSTANCES:
 
-     html_context["project_links"].append(ProjectLink("Public instances", PUBLIC_INSTANCES))
 
- if ISSUE_URL:
 
-     html_context["project_links"].append(ProjectLink("Issue Tracker", ISSUE_URL))
 
- if CONTACT_URL:
 
-     html_context["project_links"].append(ProjectLink("Contact", CONTACT_URL))
 
- html_sidebars = {
 
-     "**": [
 
-         "globaltoc.html",
 
-         "project.html",
 
-         "relations.html",
 
-         "searchbox.html",
 
-         "sourcelink.html"
 
-     ],
 
- }
 
- singlehtml_sidebars = {"index": ["project.html", "localtoc.html"]}
 
- html_logo = "../src/brand/searxng-wordmark.svg"
 
- html_title = "SearXNG Documentation ({})".format(VERSION_STRING)
 
- html_show_sourcelink = True
 
- # LaTeX ----------------------------------------------------------------
 
- latex_documents = [
 
-     (master_doc, "searx-{}.tex".format(VERSION_STRING), html_title, author, "manual")
 
- ]
 
 
  |