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