From b1912607ae9783d6ccf648bd7706a64eca5bedb9 Mon Sep 17 00:00:00 2001 From: Markus Heiser Date: Sat, 12 Mar 2022 10:18:08 +0100 Subject: [mod] replace /help by /info pages and include pages in project docs This patch implements a bolierplate to share content from info-pages of the SearXNG instance (URL /info) with the project documentation (path /docs/user). The info pages are using Markdown (CommonMark), to include them in the project documentation (reST) the myst-parser [1] is used in the Sphinx-doc build chain. If base_url is known (defined in settings.yml) links to the instance are also inserted into the project documentation:: searxng_extra/docs_prebuild [1] https://www.sphinx-doc.org/en/master/usage/markdown.html Signed-off-by: Markus Heiser --- searx/webapp.py | 28 ++++++++++++++++++++-------- 1 file changed, 20 insertions(+), 8 deletions(-) (limited to 'searx/webapp.py') diff --git a/searx/webapp.py b/searx/webapp.py index 999b4f64b..5263aaf1b 100755 --- a/searx/webapp.py +++ b/searx/webapp.py @@ -56,8 +56,9 @@ from searx import ( get_setting, settings, searx_debug, - user_help, ) + +from searx import infopage from searx.data import ENGINE_DESCRIPTIONS from searx.results import Timing, UnresponsiveEngine from searx.settings_defaults import OUTPUT_FORMATS @@ -660,6 +661,7 @@ def index(): # fmt: off 'index.html', selected_categories=get_selected_categories(request.preferences, request.form), + current_locale = request.preferences.get_value("locale"), # fmt: on ) @@ -864,6 +866,7 @@ def search(): unresponsive_engines = __get_translated_errors( result_container.unresponsive_engines ), + current_locale = request.preferences.get_value("locale"), current_language = match_language( search_query.lang, settings['search']['languages'], @@ -898,19 +901,29 @@ def __get_translated_errors(unresponsive_engines: Iterable[UnresponsiveEngine]): @app.route('/about', methods=['GET']) def about(): """Redirect to about page""" - return redirect(url_for('help_page', pagename='about')) + locale = request.preferences.get_value('locale') + return redirect(url_for('info', pagename='about', locale=locale)) -@app.route('/help/en/', methods=['GET']) -def help_page(pagename): - """Render help page""" - page = user_help.PAGES.get(pagename) +_INFO_PAGES = infopage.InfoPageSet(infopage.MistletoePage) + +@app.route('/info//', methods=['GET']) +def info(pagename, locale): + """Render page of online user documentation""" + + locale = locale or request.preferences.get_value('locale') + page = _INFO_PAGES.get_page(pagename, locale) + if page is None: + page = _INFO_PAGES.get_page(pagename) if page is None: flask.abort(404) return render( - 'help.html', page=user_help.PAGES[pagename], all_pages=user_help.PAGES.items(), page_filename=pagename + 'info.html', + all_pages=_INFO_PAGES.all_pages, + active_page=page, + active_pagename=pagename, ) @@ -1411,7 +1424,6 @@ werkzeug_reloader = flask_run_development or (searx_debug and __name__ == "__mai if not werkzeug_reloader or (werkzeug_reloader and os.environ.get("WERKZEUG_RUN_MAIN") == "true"): plugin_initialize(app) search_initialize(enable_checker=True, check_network=True, enable_metrics=settings['general']['enable_metrics']) - user_help.render(app) def run(): -- cgit v1.2.3 From 1157462ff9fc08504297e259356ccbefb339965f Mon Sep 17 00:00:00 2001 From: Alexandre Flament Date: Sun, 13 Mar 2022 22:15:27 +0100 Subject: Various change on PR 930 --- searx/webapp.py | 22 +++++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-) (limited to 'searx/webapp.py') diff --git a/searx/webapp.py b/searx/webapp.py index 5263aaf1b..5d3e7ebfd 100755 --- a/searx/webapp.py +++ b/searx/webapp.py @@ -383,6 +383,11 @@ def url_for_theme(endpoint: str, override_theme: Optional[str] = None, **values) if file_hash: values['filename'] = filename_with_theme suffix = "?" + file_hash + if endpoint == 'info' and 'locale' not in values: + locale = request.preferences.get_value('locale') + if _INFO_PAGES.get_page(values['pagename'], locale) is None: + locale = _INFO_PAGES.locale_default + values['locale'] = locale return url_for(endpoint, **values) + suffix @@ -905,23 +910,30 @@ def about(): return redirect(url_for('info', pagename='about', locale=locale)) -_INFO_PAGES = infopage.InfoPageSet(infopage.MistletoePage) +_INFO_PAGES = infopage.InfoPageSet() @app.route('/info//', methods=['GET']) def info(pagename, locale): """Render page of online user documentation""" - locale = locale or request.preferences.get_value('locale') page = _INFO_PAGES.get_page(pagename, locale) - if page is None: - page = _INFO_PAGES.get_page(pagename) if page is None: flask.abort(404) + def all_pages(): + user_locale = request.preferences.get_value('locale') + for for_pagename, for_page in _INFO_PAGES.all_pages(user_locale): + for_locale = locale + if for_page is None: + # we are sure that for_pagename != pagename + for_page = _INFO_PAGES.get_page(for_pagename, _INFO_PAGES.locale_default) + for_locale = _INFO_PAGES.locale_default + yield for_pagename, for_page, for_locale + return render( 'info.html', - all_pages=_INFO_PAGES.all_pages, + all_pages=all_pages(), active_page=page, active_pagename=pagename, ) -- cgit v1.2.3