From 08bb3a5f3a6bf2c13ca89accc3179481e22e1bc6 Mon Sep 17 00:00:00 2001 From: Martin Fischer Date: Sun, 30 Jan 2022 08:19:20 +0100 Subject: [pyright:basic] searx.user_help --- searx/user_help.py | 1 + 1 file changed, 1 insertion(+) (limited to 'searx/user_help.py') diff --git a/searx/user_help.py b/searx/user_help.py index bf7336777..bb2c1b1ca 100644 --- a/searx/user_help.py +++ b/searx/user_help.py @@ -1,3 +1,4 @@ +# pyright: basic from typing import Dict import os.path import pkg_resources -- cgit v1.2.3 From fb9eedbf40410a5558bfc03b4c50f7ff41b023b4 Mon Sep 17 00:00:00 2001 From: Martin Fischer Date: Mon, 31 Jan 2022 11:24:45 +0100 Subject: [enh] introduce /help route Translation will be implemented in the future. For now the "en" in /help/en/ is hardcoded. --- searx/user_help.py | 27 +++++++++++++++++++++------ 1 file changed, 21 insertions(+), 6 deletions(-) (limited to 'searx/user_help.py') diff --git a/searx/user_help.py b/searx/user_help.py index bb2c1b1ca..62628ab40 100644 --- a/searx/user_help.py +++ b/searx/user_help.py @@ -1,5 +1,5 @@ # pyright: basic -from typing import Dict +from typing import Dict, NamedTuple import os.path import pkg_resources @@ -10,8 +10,14 @@ import mistletoe from . import get_setting from .version import GIT_URL -HELP: Dict[str, str] = {} -""" Maps a filename under help/ without the file extension to the rendered HTML. """ + +class HelpPage(NamedTuple): + title: str + content: str + + +PAGES: Dict[str, HelpPage] = {} +""" Maps a filename under help/ without the file extension to the rendered page. """ def render(app: flask.Flask): @@ -44,6 +50,15 @@ def render(app: flask.Flask): if ext != '.md': continue - markdown = pkg_resources.resource_string(__name__, 'help/' + filename).decode() - markdown = define_link_targets + markdown - HELP[rootname] = mistletoe.markdown(markdown) + file_content = pkg_resources.resource_string(__name__, 'help/' + filename).decode() + markdown = define_link_targets + file_content + assert file_content.startswith('# ') + title = file_content.split('\n', maxsplit=1)[0].strip('# ') + content: str = mistletoe.markdown(markdown) + + if filename == 'about.md': + try: + content += pkg_resources.resource_string(__name__, 'templates/__common__/aboutextend.html').decode() + except FileNotFoundError: + pass + PAGES[rootname] = HelpPage(title=title, content=content) -- cgit v1.2.3 From c53c295573d6261be682cc506eefd5d8f0c04e07 Mon Sep 17 00:00:00 2001 From: Martin Fischer Date: Mon, 31 Jan 2022 13:23:49 +0100 Subject: [enh] make searx.user_help use an explicit TOC When we have multiple help pages we want them to be displayed in a specific order. --- searx/user_help.py | 17 +++++++---------- 1 file changed, 7 insertions(+), 10 deletions(-) (limited to 'searx/user_help.py') diff --git a/searx/user_help.py b/searx/user_help.py index 62628ab40..ae08ce760 100644 --- a/searx/user_help.py +++ b/searx/user_help.py @@ -1,6 +1,5 @@ # pyright: basic from typing import Dict, NamedTuple -import os.path import pkg_resources import flask @@ -16,6 +15,9 @@ class HelpPage(NamedTuple): content: str +# Whenever a new .md file is added to help/ it needs to be added here +_TOC = ('about',) + PAGES: Dict[str, HelpPage] = {} """ Maps a filename under help/ without the file extension to the rendered page. """ @@ -44,21 +46,16 @@ def render(app: flask.Flask): define_link_targets = ''.join(f'[{name}]: {url}\n' for name, url in link_targets.items()) - for filename in pkg_resources.resource_listdir(__name__, 'help'): - rootname, ext = os.path.splitext(filename) - - if ext != '.md': - continue - - file_content = pkg_resources.resource_string(__name__, 'help/' + filename).decode() + for pagename in _TOC: + file_content = pkg_resources.resource_string(__name__, 'help/' + pagename + '.md').decode() markdown = define_link_targets + file_content assert file_content.startswith('# ') title = file_content.split('\n', maxsplit=1)[0].strip('# ') content: str = mistletoe.markdown(markdown) - if filename == 'about.md': + if pagename == 'about': try: content += pkg_resources.resource_string(__name__, 'templates/__common__/aboutextend.html').decode() except FileNotFoundError: pass - PAGES[rootname] = HelpPage(title=title, content=content) + PAGES[pagename] = HelpPage(title=title, content=content) -- cgit v1.2.3