@@ -39,7 +39,7 @@ from searx.engines import (
3939)
4040from searx.utils import (
4141 UnicodeWriter, highlight_content, html_to_text, get_themes,
42− get_static_files
42+ get_static_files, get_result_templates
4343)
4444from searx.version import VERSION_STRING
4545from searx.languages import language_codes
@@ -58,6 +58,8 @@ default_theme = settings['server'].get('default_theme', 'default')
5858
5959static_files = get_static_files(searx_dir)
6060
61+result_templates = get_result_templates(searx_dir)
62+
6163app = Flask(
6264 __name__,
6365 static_folder=static_path,
@@ -125,6 +127,13 @@ def get_current_theme_name(override=None):
125127 return theme_name
126128
127129
130+def get_result_template(theme, template_name):
131+ themed_path = theme + '/result_templates/' + template_name
132+ if themed_path in result_templates:
133+ return themed_path
134+ return 'result_templates/' + template_name
135+
136+
128137def url_for_theme(endpoint, override_theme=None, **values):
129138 if endpoint == 'static' and values.get('filename'):
130139 theme_name = get_current_theme_name(override=override_theme)
@@ -180,6 +189,8 @@ def render(template_name, override_theme=None, **kwargs):
180189 # override url_for function in templates
181190 kwargs['url_for'] = url_for_theme
182191
192+ kwargs['get_result_template'] = get_result_template
193+
183194 kwargs['theme'] = get_current_theme_name(override=override_theme)
184195
185196 kwargs['template_name'] = template_name