summaryrefslogtreecommitdiff
path: root/searx/user_help.py
diff options
context:
space:
mode:
authorAlexandre Flament <alex@al-f.net>2022-02-05 08:52:19 +0100
committerGitHub <noreply@github.com>2022-02-05 08:52:19 +0100
commitbf987bb608cd3a2aea7990fb8de197a3ebd2907d (patch)
tree3067f730ebcbbce3d8e55f9e4c54f09376a7ff66 /searx/user_help.py
parent24e2acf88e2bf98b89b934bb4ec6098888ca06a5 (diff)
parent91527fbd6b4c155d63447dd27fb9f423ff4bfff6 (diff)
Merge pull request #848 from not-my-profile/help-route
Introduce `/help` route
Diffstat (limited to 'searx/user_help.py')
-rw-r--r--searx/user_help.py39
1 files changed, 26 insertions, 13 deletions
diff --git a/searx/user_help.py b/searx/user_help.py
index bf7336777..ae08ce760 100644
--- a/searx/user_help.py
+++ b/searx/user_help.py
@@ -1,5 +1,5 @@
-from typing import Dict
-import os.path
+# pyright: basic
+from typing import Dict, NamedTuple
import pkg_resources
import flask
@@ -9,8 +9,17 @@ 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
+
+
+# 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. """
def render(app: flask.Flask):
@@ -37,12 +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
-
- markdown = pkg_resources.resource_string(__name__, 'help/' + filename).decode()
- markdown = define_link_targets + markdown
- HELP[rootname] = mistletoe.markdown(markdown)
+ 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 pagename == 'about':
+ try:
+ content += pkg_resources.resource_string(__name__, 'templates/__common__/aboutextend.html').decode()
+ except FileNotFoundError:
+ pass
+ PAGES[pagename] = HelpPage(title=title, content=content)