summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarkus Heiser <markus.heiser@darmarit.de>2020-03-23 15:02:32 +0100
committerMarkus Heiser <markus.heiser@darmarit.de>2020-03-23 15:02:32 +0100
commit21ba25ebb8deba7ffa6537e6c1196546604de712 (patch)
tree31833607fb181a2e8c9c0160da4fa480321de536
parent62da7699529b57f3bf851ec9258da89be42094dc (diff)
parentbaddb8d3eb856344129fb4b320bd17bba9456477 (diff)
downloadsearxng-21ba25ebb8deba7ffa6537e6c1196546604de712.tar.gz
searxng-21ba25ebb8deba7ffa6537e6c1196546604de712.zip
Merge branch 'filtron' of https://github.com/return42/searx into filtron
-rw-r--r--Makefile17
-rw-r--r--docs/conf.py7
-rw-r--r--docs/user/conf.py19
-rw-r--r--searx/webapp.py4
-rw-r--r--utils/makefile.sphinx6
-rw-r--r--utils/site-python/sphinx_build_tools.py48
6 files changed, 93 insertions, 8 deletions
diff --git a/Makefile b/Makefile
index d46c96a49..84f0ac24b 100644
--- a/Makefile
+++ b/Makefile
@@ -12,8 +12,13 @@ include utils/makefile.sphinx
all: clean install
-PHONY += help
-help:
+PHONY += help-min help-all help
+
+help: help-min
+ @echo ''
+ @echo 'to get more help: make help-all'
+
+help-min:
@echo ' test - run developer tests'
@echo ' docs - build documentation'
@echo ' docs-live - autobuild HTML documentation while editing'
@@ -29,9 +34,13 @@ help:
@echo ' GIT_URL = $(GIT_URL)'
@echo ' DOCS_URL = $(DOCS_URL)'
@echo ''
- @$(MAKE) -e -s -f utils/makefile.include make-help
+ @$(MAKE) -e -s make-help
+
+help-all: help-min
+ @echo ''
+ @$(MAKE) -e -s python-help
@echo ''
- @$(MAKE) -e -s -f utils/makefile.python python-help
+ @$(MAKE) -e -s docs-help
PHONY += install
install: pyenvinstall
diff --git a/docs/conf.py b/docs/conf.py
index 6a6633341..c2b2bbd84 100644
--- a/docs/conf.py
+++ b/docs/conf.py
@@ -1,6 +1,7 @@
# -*- coding: utf-8 -*-
import sys, os
+from sphinx_build_tools import load_sphinx_config
from searx.version import VERSION_STRING
from pallets_sphinx_themes import ProjectLink
@@ -116,3 +117,9 @@ html_show_sourcelink = False
latex_documents = [
(master_doc, "searx-{}.tex".format(VERSION_STRING), html_title, author, "manual")
]
+
+# ------------------------------------------------------------------------------
+# Since loadConfig overwrites settings from the global namespace, it has to be
+# the last statement in the conf.py file
+# ------------------------------------------------------------------------------
+load_sphinx_config(globals())
diff --git a/docs/user/conf.py b/docs/user/conf.py
new file mode 100644
index 000000000..d4bdb576b
--- /dev/null
+++ b/docs/user/conf.py
@@ -0,0 +1,19 @@
+# -*- coding: utf-8; mode: python -*-
+"""Configuration for the CDB 15 Infrastruktur book
+"""
+project = 'Searx User-HB'
+version = release = VERSION_STRING
+
+# Grouping the document tree into LaTeX files. List of tuples
+# (source start file, target name, title,
+# author, documentclass [howto, manual, or own class]).
+latex_documents = [
+ ('index' # startdocname
+ , 'searx-user-hb.tex' # targetname
+ , '' # take title from .rst
+ , author # author
+ , 'howto' # documentclass
+ , False # toctree_only
+ ),
+]
+
diff --git a/searx/webapp.py b/searx/webapp.py
index 0c5ed4570..b3928921e 100644
--- a/searx/webapp.py
+++ b/searx/webapp.py
@@ -178,9 +178,12 @@ flask_babel.get_translations = _get_translations
def _get_browser_language(request, lang_list):
for lang in request.headers.get("Accept-Language", "en").split(","):
+ if ';' in lang:
+ lang = lang.split(';')[0]
locale = match_language(lang, lang_list, fallback=None)
if locale is not None:
return locale
+ return settings['search']['default_lang'] or 'en'
@babel.localeselector
@@ -647,7 +650,6 @@ def index():
response.headers.add('Content-Disposition', cont_disp)
return response
elif output_format == 'rss':
- print(results)
response_rss = render(
'opensearch_response_rss.xml',
results=results,
diff --git a/utils/makefile.sphinx b/utils/makefile.sphinx
index 4926bb53a..8a1f6b76b 100644
--- a/utils/makefile.sphinx
+++ b/utils/makefile.sphinx
@@ -156,7 +156,7 @@ $(BOOKS_HTML): sphinx-doc | $(BOOKS_DIST)
-b html \
-c $(DOCS_FOLDER) \
-d $(DOCS_BUILD)/books/$(patsubst books/%.html,%,$@)/.doctrees \
- $(patsubst books/%.html,%,$@) \
+ $(BOOKS_FOLDER)/$(patsubst books/%.html,%,$@) \
$(BOOKS_DIST)/$(patsubst books/%.html,%,$@)
@echo "SPHINX $@ --> file://$(abspath $(BOOKS_DIST)/$(patsubst books/%.html,%,$@))"
@@ -168,7 +168,7 @@ $(BOOKS_LIVE): sphinx-live | $(BOOKS_DIST)
-b html \
-c $(DOCS_FOLDER) \
-d $(DOCS_BUILD)/books/$(patsubst books/%.live,%,$@)/.doctrees \
- $(patsubst books/%.live,%,$@) \
+ $(BOOKS_FOLDER)/$(patsubst books/%.live,%,$@) \
$(BOOKS_DIST)/$(patsubst books/%.live,%,$@)
$(BOOKS_PDF): %.pdf : %.latex
@@ -184,7 +184,7 @@ $(BOOKS_LATEX): sphinx-doc | $(BOOKS_DIST)
-b latex \
-c $(DOCS_FOLDER) \
-d $(DOCS_BUILD)/books/$(patsubst books/%.latex,%,$@)/.doctrees \
- $(patsubst books/%.latex,%,$@) \
+ $(BOOKS_FOLDER)/$(patsubst books/%.latex,%,$@) \
$(DOCS_BUILD)/latex/$(patsubst books/%.latex,%,$@)
@echo "SPHINX $@ --> file://$(abspath $(DOCS_BUILD)/latex/$(patsubst books/%.latex,%,$@))"
diff --git a/utils/site-python/sphinx_build_tools.py b/utils/site-python/sphinx_build_tools.py
new file mode 100644
index 000000000..b9ebdeacc
--- /dev/null
+++ b/utils/site-python/sphinx_build_tools.py
@@ -0,0 +1,48 @@
+# -*- coding: utf-8; mode: python -*-
+"""Implement some sphinx-build tools.
+
+"""
+
+import os
+import sys
+from sphinx.util.pycompat import execfile_
+
+# ------------------------------------------------------------------------------
+def load_sphinx_config(namespace):
+# ------------------------------------------------------------------------------
+
+ u"""Load an additional configuration file into *namespace*.
+
+ The name of the configuration file is taken from the environment
+ ``SPHINX_CONF``. The external configuration file extends (or overwrites) the
+ configuration values from the origin ``conf.py``. With this you are able to
+ maintain *build themes*. To your docs/conf.py add::
+
+ from sphinx_build_tools import load_sphinx_config
+ ...
+
+ # Since loadConfig overwrites settings from the global namespace, it has to be
+ # the last statement in the conf.py file
+
+ load_sphinx_config(globals())
+
+ """
+
+ config_file = os.environ.get("SPHINX_CONF", None)
+ if (config_file is not None
+ and os.path.normpath(namespace["__file__"]) != os.path.normpath(config_file) ):
+ config_file = os.path.abspath(config_file)
+
+ if os.path.isfile(config_file):
+ sys.stdout.write(
+ "load additional sphinx-config: %s\n"
+ % config_file)
+ config = namespace.copy()
+ config['__file__'] = config_file
+ execfile_(config_file, config)
+ del config['__file__']
+ namespace.update(config)
+ else:
+ sys.stderr.write(
+ "WARNING: additional sphinx-config not found: %s\n"
+ % config_file)