Browse Source

Merge pull request #1671 from dalf/tidy-oscar

[mod] tidy oscar HTML output
Markus Heiser 5 years ago
parent
commit
50e1fcaa5e

+ 5 - 4
searx/templates/oscar/advanced.html

@@ -1,16 +1,17 @@
 <input type="checkbox" name="advanced_search" id="check-advanced" {% if advanced_search %} checked="checked"{% endif %}>
-<label for="check-advanced">
+<label for="check-advanced">{{- "" -}}
     <span class="glyphicon glyphicon-cog"></span>
-    {{ _('Advanced settings') }}
+    {{- _('Advanced settings') -}}
 </label>
 <div id="advanced-search-container">
   {% include 'oscar/categories.html' %}
+
   <div class="row">
     <div class="col-xs-6">
-      {% include 'oscar/time-range.html' %}
+      {%- include 'oscar/time-range.html' -%}
     </div>
     <div class="col-xs-6">
-      {% include 'oscar/languages.html' %}
+      {%- include 'oscar/languages.html' -%}
     </div>
   </div>
 </div>

+ 12 - 9
searx/templates/oscar/base.html

@@ -10,16 +10,17 @@
     <meta name="referrer" content="no-referrer">
     <meta name="viewport" content="width=device-width, initial-scale=1 , maximum-scale=1.0, user-scalable=1" />
     {% block meta %}{% endblock %}
-    <title>{% block title %}{% endblock %}{{ instance_name }}</title>
 
+    <title>{% block title %}{% endblock %}{{ instance_name }}</title>
     <link rel="stylesheet" href="{{ url_for('static', filename='css/bootstrap.min.css') }}" type="text/css" />
-    {% if preferences.get_value('oscar-style') %}
-        <link rel="stylesheet" href="{{ url_for('static', filename='css/'+preferences.get_value('oscar-style')+'.min.css') }}" type="text/css" />
-    {% else %}
-        <link rel="stylesheet" href="{{ url_for('static', filename='css/logicodev.min.css') }}" type="text/css" />
-    {% endif %}
+    {% if preferences.get_value('oscar-style') -%}
+    {{'    '}}<link rel="stylesheet" href="{{ url_for('static', filename='css/'+preferences.get_value('oscar-style')+'.min.css') }}" type="text/css" />
+    {%- else -%}
+    {{'    '}}<link rel="stylesheet" href="{{ url_for('static', filename='css/logicodev.min.css') }}" type="text/css" />
+    {%- endif %}
+
     <link rel="stylesheet" href="{{ url_for('static', filename='css/leaflet.min.css') }}" type="text/css" />
-    {% for css in styles %}
+    {%- for css in styles %}
         <link rel="stylesheet" href="{{ url_for('static', filename=css) }}" type="text/css" />
     {% endfor %}
 
@@ -48,6 +49,7 @@
 </head>
 <body>
     {% include 'oscar/navbar.html' %}
+
     <div class="container">
     {% if errors %}
         <div class="alert alert-danger fade in" role="alert">
@@ -93,13 +95,14 @@
     </div>
     <script src="{{ url_for('static', filename='js/jquery-1.11.1.min.js') }}"></script>
     <script src="{{ url_for('static', filename='js/bootstrap.min.js') }}"></script>
-    {% if autocomplete %}<script src="{{ url_for('static', filename='js/typeahead.bundle.min.js') }}"></script>{% endif %}
+    {% if autocomplete %}    <script src="{{ url_for('static', filename='js/typeahead.bundle.min.js') }}"></script>{% endif %}
+
     <script src="{{ url_for('static', filename='js/require-2.1.15.min.js') }}"></script>
     <script src="{{ url_for('static', filename='js/searx.min.js') }}"
             data-method="{{ method or 'POST' }}"
             data-autocompleter="{% if autocomplete %}true{% else %}false{% endif %}"></script>
     {% for script in scripts %}
-        <script src="{{ url_for('static', filename=script) }}"></script>
+    {{""}}<script src="{{ url_for('static', filename=script) }}"></script>
     {% endfor %}
     <noscript>
       <style>

+ 9 - 9
searx/templates/oscar/categories.html

@@ -1,13 +1,13 @@
 <div id="categories">
-{% if rtl %}
-    {% for category in categories | reverse %}
-        <input class="hidden" type="checkbox" id="checkbox_{{ category|replace(' ', '_') }}" name="category_{{ category }}" {% if category in selected_categories %}checked="checked"{% endif %} />
+{%- if rtl -%}
+    {% for category in categories | reverse -%}
+        <input class="hidden" type="checkbox" id="checkbox_{{ category|replace(' ', '_') }}" name="category_{{ category }}" {% if category in selected_categories %}checked="checked"{% endif %} />{{- '' -}}
         <label for="checkbox_{{ category|replace(' ', '_') }}">{{ _(category) }}</label>
-    {% endfor %}
-{% else %}
-    {% for category in categories %}
-        <input class="hidden" type="checkbox" id="checkbox_{{ category|replace(' ', '_') }}" name="category_{{ category }}" {% if category in selected_categories %}checked="checked"{% endif %} />
+    {%- endfor %}
+{%- else -%}
+    {% for category in categories -%}
+        <input class="hidden" type="checkbox" id="checkbox_{{ category|replace(' ', '_') }}" name="category_{{ category }}" {% if category in selected_categories %}checked="checked"{% endif %} />{{- '' -}}
         <label for="checkbox_{{ category|replace(' ', '_') }}">{{ _(category) }}</label>
-    {% endfor %}
-{% endif %}
+    {%- endfor %}
+{%- endif -%}
 </div>

+ 17 - 16
searx/templates/oscar/infobox.html

@@ -1,34 +1,35 @@
 {% from 'oscar/macros.html' import result_link with context %}
 <div class="panel panel-default infobox">
-    <div class="panel-heading">
-        <h4 class="panel-title infobox_part"><bdi>{{ infobox.infobox }}</bdi></h4>
+    <div class="panel-heading">{{- "" -}}
+        <h4 class="panel-title infobox_part"><bdi>{{ infobox.infobox }}</bdi></h4>{{- "" -}}
     </div>
     <div class="panel-body">
         {% if infobox.img_src %}<img class="img-responsive center-block infobox_part" src="{{ image_proxify(infobox.img_src) }}" alt="{{ infobox.infobox }}" />{% endif %}
-        {% if infobox.content %}<bdi><p class="infobox_part">{{ infobox.content }}</bdi></p>{% endif %}
 
-        {% if infobox.attributes %}
+        {% if infobox.content %}<bdi><p class="infobox_part">{{ infobox.content }}</p></bdi>{% endif %}
+
+        {% if infobox.attributes -%}
         <table class="table table-striped infobox_part">
-            {% for attribute in infobox.attributes %}
-            <tr>
+            {% for attribute in infobox.attributes -%}
+            <tr>{{- "" -}}
                 <td><bdi>{{ attribute.label }}</bdi></td>
-                {% if attribute.image %}
+                {%- if attribute.image -%}
                 <td><img class="img-responsive" src="{{ image_proxify(attribute.image.src) }}" alt="{{ attribute.image.alt }}" /></td>
-                {% else %}
+                {%- else -%}
                 <td><bdi>{{ attribute.value }}</bdi></td>
-                {% endif %}
+                {%- endif -%}
             </tr>
-            {% endfor %}
+            {% endfor -%}
         </table>
         {% endif %}
 
-        {% if infobox.urls %}
-        <div class="infobox_part">
+        {% if infobox.urls -%}
+        <div class="infobox_part">{{- "\n" -}}
             <bdi>
-            {% for url in infobox.urls %}
-            <p class="btn btn-default btn-xs">{{ result_link(url.url, url.title) }}</a></p>
-            {% endfor %}
-            </bdi>
+            {%- for url in infobox.urls -%}
+            <p class="btn btn-default btn-xs">{{ result_link(url.url, url.title) }}</p>
+            {% endfor -%}
+            </bdi>{{- "" -}}
         </div>
         {% endif %}
     </div>

+ 7 - 7
searx/templates/oscar/languages.html

@@ -1,12 +1,12 @@
-{% if preferences %}
+{% if preferences -%}
 <select class="custom-select form-control" name='language'>
-{% else %}
+{%- else -%}
 <select class="time_range custom-select form-control" id='language' name='language'>
-{% endif %}
+{%- endif -%}
 	<option value="all" {% if current_language == 'all' %}selected="selected"{% endif %}>{{ _('Default language') }}</option>
-		{% for lang_id,lang_name,country_name,english_name in language_codes | sort(attribute=1) %}
+	{%- for lang_id,lang_name,country_name,english_name in language_codes | sort(attribute=1) -%}
 		<option value="{{ lang_id }}" {% if lang_id == current_language %}selected="selected"{% endif %}>
-			{{ lang_name }} {% if country_name %}({{ country_name }}) {% endif %}- {{ lang_id }}
+			{{- lang_name }} {% if country_name %}({{ country_name }}) {% endif %}- {{ lang_id -}}
 		</option>
-		{% endfor %}
-</select>
+	{%- endfor -%}
+</select>

+ 23 - 23
searx/templates/oscar/macros.html

@@ -26,38 +26,38 @@
 
 <!-- Draw result footer -->
 {% macro result_footer(result) -%}
-    <div class="clearfix"></div>
+    <div class="clearfix"></div>{{- "" -}}
     <div class="pull-right">
-    {% for engine in result.engines %}
-        <span class="label label-default">{{ engine }}</span>
-    {% endfor %}
-    {% if result.url %}
-    <small>{{ result_link("https://web.archive.org/web/" + result.url, icon('link') + _('cached'), "text-info") }}</small>
-    {% endif %}
-    {% if proxify %}
-    <small>{{ result_link(proxify(result.url), icon('sort') + _('proxied'), "text-info") }}</small>
-    {% endif %}
-</div>
-{% if result.pretty_url %}
-<div class="external-link">{{ result.pretty_url }}</div>
-{% endif %}
+        {%- for engine in result.engines -%}
+            <span class="label label-default">{{ engine }}</span>
+        {%- endfor -%}
+        {%- if result.url -%}
+        <small>{{ result_link("https://web.archive.org/web/" + result.url, icon('link') + _('cached'), "text-info") }}</small>
+        {%- endif -%}
+        {%- if proxify -%}
+        <small>{{ result_link(proxify(result.url), icon('sort') + _('proxied'), "text-info") }}</small>
+        {%- endif -%}
+    </div>
+    {%- if result.pretty_url -%}
+    <div class="external-link">{{ result.pretty_url }}</div>
+    {%- endif -%}
 {%- endmacro %}
 
 <!-- Draw result footer -->
 {% macro result_footer_rtl(result) -%}
-    <div class="clearfix"></div>
-    {% for engine in result.engines %}
+    <div class="clearfix"></div>{{- "" -}}
+    {% for engine in result.engines -%}
         <span class="label label-default">{{ engine }}</span>
-    {% endfor %}
-    {% if result.url %}
+    {%- endfor %}
+    {%- if result.url -%}
     <small>{{ result_link("https://web.archive.org/web/" + result.url, icon('link') + _('cached'), "text-info") }}</small>
-    {% endif %}
-    {% if proxify %}
+    {%- endif -%}
+    {% if proxify -%}
     <small>{{ result_link(proxify(result.url), icon('sort') + _('proxied'), "text-info") }}</small>
-    {% endif %}
-    {% if result.pretty_url %}
+    {%- endif %}
+    {%- if result.pretty_url -%}
     <div class="external-link">{{ result.pretty_url }}</div>
-    {% endif %}
+    {%- endif %}
 {%- endmacro %}
 
 {% macro preferences_item_header(info, label, rtl) -%}

+ 8 - 8
searx/templates/oscar/navbar.html

@@ -1,9 +1,9 @@
-<div class="searx-navbar">
-    <span class="instance {% if rtl %}pull-right{% else %}pull-left{% endif%}">
-        <a href="{{ url_for('index') }}">{{ instance_name }}</a>
-    </span>
-    <span class="{% if rtl %}pull-left{% else %}pull-right{% endif %}">
-        <a href="{{ url_for('about') }}">{{ _('about') }}</a>
-        <a href="{{ url_for('preferences') }}">{{ _('preferences') }}</a>
-    </span>
+<div class="searx-navbar">{{- "" -}}
+    <span class="instance {% if rtl %}pull-right{% else %}pull-left{% endif%}">{{- "" -}}
+        <a href="{{ url_for('index') }}">{{ instance_name }}</a>{{- "" -}}
+    </span>{{- "" -}}
+    <span class="{% if rtl %}pull-left{% else %}pull-right{% endif %}">{{- "" -}}
+        <a href="{{ url_for('about') }}">{{ _('about') }}</a>{{- "" -}}
+        <a href="{{ url_for('preferences') }}">{{ _('preferences') }}</a>{{- "" -}}
+    </span>{{- "" -}}
 </div>

+ 31 - 31
searx/templates/oscar/result_templates/default.html

@@ -1,31 +1,31 @@
-{% from 'oscar/macros.html' import result_header, result_sub_header, result_footer, result_footer_rtl, icon with context %}
-
-{{ result_header(result, favicons) }}
-{{ result_sub_header(result) }}
-
-{% if result.embedded %}
-    <small> &bull; <a class="text-info btn-collapse collapsed cursor-pointer media-loader disabled_if_nojs" data-toggle="collapse" data-target="#result-media-{{ index }}" data-btn-text-collapsed="{{ _('show media') }}" data-btn-text-not-collapsed="{{ _('hide media') }}">{{ icon('music') }} {{ _('show media') }}</a></small>
-{% endif %}
-
-{% if result.embedded %}
-<div id="result-media-{{ index }}" class="collapse">
-   {{ result.embedded|safe }}
-</div>
-{% endif %}
-
-{% if result.img_src %}
-<div class="container-fluid">
-    <div class="row">
-<img src="{{ image_proxify(result.img_src) }}" alt="{{ result.title|striptags }}" title="{{ result.title|striptags }}" style="width: auto; max-height: 60px; min-height: 60px;" class="col-xs-2 col-sm-4 col-md-4 result-content">
-{% if result.content %}<p class="result-content col-xs-8 col-sm-8 col-md-8">{{ result.content|safe }}</p>{% endif %}
-    </div>
-</div>
-{% else %}
-{% if result.content %}<p class="result-content">{{ result.content|safe }}</p>{% endif %}
-{% endif %}
-
-{% if rtl %}
-{{ result_footer_rtl(result) }}
-{% else %}
-{{ result_footer(result) }}
-{% endif %}
+{% from 'oscar/macros.html' import result_header, result_sub_header, result_footer, result_footer_rtl, icon with context %}
+
+{{- result_header(result, favicons) -}}
+{{- result_sub_header(result) -}}
+
+{%- if result.embedded -%}
+    <small> &bull; <a class="text-info btn-collapse collapsed cursor-pointer media-loader disabled_if_nojs" data-toggle="collapse" data-target="#result-media-{{ index }}" data-btn-text-collapsed="{{ _('show media') }}" data-btn-text-not-collapsed="{{ _('hide media') }}">{{ icon('music') }} {{ _('show media') }}</a></small>
+{%- endif -%}
+
+{%- if result.embedded -%}
+<div id="result-media-{{ index }}" class="collapse">
+   {{ result.embedded|safe }}
+</div>
+{%- endif -%}
+
+{%- if result.img_src -%}
+<div class="container-fluid">
+    <div class="row">
+<img src="{{ image_proxify(result.img_src) }}" alt="{{ result.title|striptags }}" title="{{ result.title|striptags }}" style="width: auto; max-height: 60px; min-height: 60px;" class="col-xs-2 col-sm-4 col-md-4 result-content">
+{% if result.content %}<p class="result-content col-xs-8 col-sm-8 col-md-8">{{ result.content|safe }}</p>{% endif -%}
+    </div>
+</div>
+{%- else -%}
+{%- if result.content %}<p class="result-content">{{ result.content|safe }}</p>{% endif -%}
+{%- endif -%}
+
+{%- if rtl -%}
+{{ result_footer_rtl(result) }}
+{%- else -%}
+{{ result_footer(result) }}
+{%- endif -%}

+ 36 - 49
searx/templates/oscar/result_templates/images.html

@@ -1,49 +1,36 @@
-{% from 'oscar/macros.html' import draw_favicon %}
-
-<a href="{{ result.img_src }}" {% if results_on_new_tab %}target="_blank" rel="noopener noreferrer"{% else %}rel="noreferrer"{% endif %} data-toggle="modal" data-target="#modal-{{ index }}-{{pageno}}">
-    <img src="{% if result.thumbnail_src %}{{ image_proxify(result.thumbnail_src) }}{% else %}{{ image_proxify(result.img_src) }}{% endif %}" alt="{{ result.title|striptags }}" title="{{ result.title|striptags }}" class="img-thumbnail">
-</a>
-
-<div class="modal fade" id="modal-{{ index }}-{{ pageno }}" tabindex="-1" role="dialog" aria-hidden="true">
-    <div class="modal-dialog">
-        <div class="modal-wrapper">
-            <div class="modal-header">
-                <button type="button" class="close" data-dismiss="modal"><span aria-hidden="true">&times;</span><span class="sr-only">Close</span></button>
-                <h4 class="modal-title">{% if result.engine~".png" in favicons %}{{ draw_favicon(result.engine) }} {% endif %}{{ result.title|striptags }}</h4>
-            </div>
-            <div class="modal-body">
-                <img class="img-responsive center-block" src="{% if result.thumbnail_src %}{{ image_proxify(result.thumbnail_src) }}{% else %}{{ image_proxify(result.img_src) }}{% endif %}" alt="{{ result.title|striptags }}">
-                {% if result.author %}<span class="photo-author">{{ result.author }}</span><br />{% endif %}
-                {% if result.content %}
-                    <p class="result-content">
-                        {{ result.content|striptags }}
-                    </p>
-                {% endif %}
-                {% if result.img_format %}
-                    <p class="result-format">
-                        {{ result.img_format }}
-                    </p>
-                {% endif %}
-                {% if result.source %}
-                    <p class="result-source">
-                        {{ result.source }}
-                    </p>
-                {% endif %}
-            </div>
-            <div class="modal-footer">
-                <div class="clearfix"></div>
-                <span class="label label-default pull-right">{{ result.engine }}</span>
-                <p class="text-muted pull-left">{{ result.pretty_url }}</p>
-                <div class="clearfix"></div>
-				<div class="row">
-                    <div class="col-md-6">
-                        <a href="{{ result.img_src }}" {% if results_on_new_tab %}target="_blank" rel="noopener noreferrer"{% else %}rel="noreferrer"{% endif %} class="btn btn-default">{{ _('Get image') }}</a>
-                    </div>
-                    <div class="col-md-6">
-                        <a href="{{ result.url }}" {% if results_on_new_tab %}target="_blank" rel="noopener noreferrer"{% else %}rel="noreferrer"{% endif %} class="btn btn-default">{{ _('View source') }}</a>
-                    </div>
-                </div>
-            </div>
-        </div>
-    </div>
-</div>
+{%- from 'oscar/macros.html' import draw_favicon -%}
+
+<a href="{{ result.img_src }}" {% if results_on_new_tab %}target="_blank" rel="noopener noreferrer"{% else %}rel="noreferrer"{% endif %} data-toggle="modal" data-target="#modal-{{ index }}-{{pageno}}">{{- "" -}}
+    <img src="{% if result.thumbnail_src %}{{ image_proxify(result.thumbnail_src) }}{% else %}{{ image_proxify(result.img_src) }}{% endif %}" alt="{{ result.title|striptags }}" title="{{ result.title|striptags }}" class="img-thumbnail">{{- "" -}}
+</a>
+<div class="modal fade" id="modal-{{ index }}-{{ pageno }}" tabindex="-1" role="dialog" aria-hidden="true">{{- "" -}}
+    <div class="modal-dialog">{{- "" -}}
+        <div class="modal-wrapper">{{- "" -}}
+            <div class="modal-header">{{- "" -}}
+                <button type="button" class="close" data-dismiss="modal"><span aria-hidden="true">&times;</span><span class="sr-only">Close</span></button>{{- "" -}}
+                <h4 class="modal-title">{% if result.engine~".png" in favicons %}{{ draw_favicon(result.engine) }} {% endif %}{{ result.title|striptags }}</h4>{{- "" -}}
+            </div>{{- "" -}}
+            <div class="modal-body">{{- "" -}}
+                <img class="img-responsive center-block" src="{% if result.thumbnail_src %}{{ image_proxify(result.thumbnail_src) }}{% else %}{{ image_proxify(result.img_src) }}{% endif %}" alt="{{ result.title|striptags }}">
+                {%- if result.author %}<span class="photo-author">{{ result.author }}</span><br />{% endif -%}
+                {%- if result.content %}<p class="result-content">{{ result.content|striptags }}</p>{% endif -%}
+                {%- if result.img_format %}<p class="result-format">{{ result.img_format }}</p>{% endif -%}
+                {%- if result.source %}<p class="result-source">{{ result.source }}</p>{% endif -%}
+            </div>{{- "" -}}
+            <div class="modal-footer">{{- "" -}}
+                <div class="clearfix"></div>{{- "" -}}
+                <span class="label label-default pull-right">{{ result.engine }}</span>{{- "" -}}
+                <p class="text-muted pull-left">{{ result.pretty_url }}</p>{{- "" -}}
+                <div class="clearfix"></div>{{- "" -}}
+				<div class="row">{{- "" -}}
+                    <div class="col-md-6">{{- "" -}}
+                        <a href="{{ result.img_src }}" {% if results_on_new_tab %}target="_blank" rel="noopener noreferrer"{% else %}rel="noreferrer"{% endif %} class="btn btn-default">{{ _('Get image') }}</a>{{- "" -}}
+                    </div>{{- "" -}}
+                    <div class="col-md-6">{{- "" -}}
+                        <a href="{{ result.url }}" {% if results_on_new_tab %}target="_blank" rel="noopener noreferrer"{% else %}rel="noreferrer"{% endif %} class="btn btn-default">{{ _('View source') }}</a>{{- "" -}}
+                    </div>{{- "" -}}
+                </div>{{- "" -}}
+            </div>{{- "" -}}
+        </div>{{- "" -}}
+    </div>{{- "" -}}
+</div>{{- "" -}}

+ 156 - 156
searx/templates/oscar/results.html

@@ -1,156 +1,156 @@
-{% extends "oscar/base.html" %}
-{% macro search_form_attrs(pageno) -%}
-    {% for category in selected_categories %}<input type="hidden" name="category_{{ category }}" value="1"/>{% endfor %}
-    <input type="hidden" name="q" value="{{ q|e }}" />
-    <input type="hidden" name="pageno" value="{{ pageno }}" />
-    <input type="hidden" name="time_range" value="{{ time_range }}" />
-    <input type="hidden" name="language" value="{{ current_language }}" />
-    {% if timeout_limit %}<input type="hidden" name="timeout_limit" value="{{ timeout_limit|e }}" />{% endif %}
-{%- endmacro %}
-{%- macro search_url() %}{{ base_url }}?q={{ q|urlencode }}{% if selected_categories %}&amp;categories={{ selected_categories|join(",") | replace(' ','+') }}{% endif %}{% if pageno > 1 %}&amp;pageno={{ pageno }}{% endif %}{% if time_range %}&amp;time_range={{ time_range }}{% endif %}{% if current_language != 'all' %}&amp;language={{ current_language }}{% endif %}{% endmacro -%}
-
-{% block title %}{{ q|e }} - {% endblock %}
-{% block meta %}<link rel="alternate" type="application/rss+xml" title="Searx search: {{ q|e }}" href="{{ search_url() }}&amp;format=rss">{% endblock %}
-{% block content %}
-    {% include 'oscar/search.html' %}
-    <div class="row">
-        <div class="col-sm-8" id="main_results">
-            <h1 class="sr-only">{{ _('Search results') }}</h1>
-
-            {% if corrections %}
-            <div class="result">
-                <span class="result_header text-muted form-inline pull-left suggestion_item">{{ _('Try searching for:') }}</span>
-                {% for correction in corrections %}
-                    <form method="{{ method or 'POST' }}" action="{{ url_for('index') }}" role="navigation" class="form-inline pull-left suggestion_item">
-                        <input type="hidden" name="q" value="{{ correction.url }}">
-                        <button type="submit" class="btn btn-default btn-xs">{{ correction.title }}</button>
-                    </form>
-                {% endfor %}
-            </div>
-            {% endif %}
-
-            {% if answers %}
-            {% for answer in answers %}
-            <div class="result well">
-                <span>{{ answer }}</span>
-            </div>
-            {% endfor %}
-            {% endif %}
-
-            {% for result in results %}
-            <div class="result {% if result['template'] %}result-{{ result.template|replace('.html', '') }}{% else %}result-default{% endif %}">
-                {% set index = loop.index %}
-                {% if result.template %}
-                    {% include get_result_template('oscar', result['template']) %}
-                {% else %}
-                    {% include 'oscar/result_templates/default.html' %}
-                {% endif %}
-            </div>
-            {% endfor %}
-
-            {% if not results and not answers %}
-                {% include 'oscar/messages/no_results.html' %}
-            {% endif %}
-
-            <div class="clearfix"></div>
-
-            {% if paging %}
-            {% if rtl %}
-            <div id="pagination">
-                <div class="pull-left">
-                  <form method="{{ method or 'POST' }}" action="{{ url_for('index') }}" class="pull-left">
-                        {{ search_form_attrs(pageno+1) }}
-                        <button type="submit" class="btn btn-default"><span class="glyphicon glyphicon-backward"></span> {{ _('next page') }}</button>
-                    </form>
-                </div>
-                <div class="pull-right">
-                    <form method="{{ method or 'POST' }}" action="{{ url_for('index') }}"  class="pull-left">
-                        {{ search_form_attrs(pageno-1) }}
-                        <button type="submit" class="btn btn-default" {% if pageno == 1 %}disabled{% endif %}><span class="glyphicon glyphicon-forward"></span> {{ _('previous page') }}</button>
-                    </form>
-                </div>
-            </div><!-- /#pagination -->
-            <div class="clearfix"></div>
-            {% else %}
-            <div id="pagination">
-                <div class="pull-left">
-                    <form method="{{ method or 'POST' }}" action="{{ url_for('index') }}" class="pull-left">
-                        {{ search_form_attrs(pageno-1) }}
-                        <button type="submit" class="btn btn-default" {% if pageno == 1 %}disabled{% endif %}><span class="glyphicon glyphicon-backward"></span> {{ _('previous page') }}</button>
-                    </form>
-                </div>
-                <div class="pull-right">
-                    <form method="{{ method or 'POST' }}" action="{{ url_for('index') }}"  class="pull-left">
-                        {{ search_form_attrs(pageno+1) }}
-                        <button type="submit" class="btn btn-default"><span class="glyphicon glyphicon-forward"></span> {{ _('next page') }}</button>
-                    </form>
-                </div>
-            </div><!-- /#pagination -->
-            <div class="clearfix"></div>
-            {% endif %}
-            {% endif %}
-        </div><!-- /#main_results -->
-
-        <div class="col-sm-4" id="sidebar_results">
-            {% if number_of_results != '0' %}
-                <p><small>{{ _('Number of results') }}: {{ number_of_results }}</small></p>
-            {% endif %}
-
-            {% if unresponsive_engines and results|length >= 1 %}
-            <div class="alert alert-danger fade in" role="alert">
-                <p>{{ _('Engines cannot retrieve results') }}:</p>
-                {% for engine_name, error_type in unresponsive_engines %}
-                {{ engine_name }} ({{ error_type }}){% if not loop.last %}, {% endif %}
-                {% endfor %}
-            </div>
-            {% endif %}
-
-            {% if infoboxes %}
-                {% for infobox in infoboxes %}
-                    {% include 'oscar/infobox.html' %}
-                {% endfor %}
-            {% endif %}
-
-            {% if suggestions %}
-            <div class="panel panel-default">
-                <div class="panel-heading">
-                    <h4 class="panel-title">{{ _('Suggestions') }}</h4>
-                </div>
-                <div class="panel-body">
-                    {% for suggestion in suggestions %}
-                    <form method="{{ method or 'POST' }}" action="{{ url_for('index') }}" role="navigation" class="form-inline pull-{% if rtl %}right{% else %}left{% endif %} suggestion_item">
-                        <input type="hidden" name="q" value="{{ suggestion.url }}">
-                        <button type="submit" class="btn btn-default btn-xs">{{ suggestion.title }}</button>
-                    </form>
-                    {% endfor %}
-                </div>
-            </div>
-            {% endif %}
-
-            <div class="panel panel-default">
-                <div class="panel-heading">
-                    <h4 class="panel-title">{{ _('Links') }}</h4>
-                </div>
-                <div class="panel-body">
-                    <form role="form">
-                        <div class="form-group">
-                            <label for="search_url">{{ _('Search URL') }}</label>
-                            <input id="search_url" type="url" class="form-control select-all-on-click cursor-text" name="search_url" value="{{ search_url() }}" readonly>
-                        </div>
-                    </form>
-
-                    <label>{{ _('Download results') }}</label>
-                    <div class="clearfix"></div>
-                    {% for output_type in ('csv', 'json', 'rss') %}
-                    <form method="{{ method or 'POST' }}" action="{{ url_for('index') }}" class="form-inline pull-{% if rtl %}right{% else %}left{% endif %} result_download">
-                        {{ search_form_attrs(pageno) }}
-                        <input type="hidden" name="format" value="{{ output_type }}">
-                        <button type="submit" class="btn btn-default">{{ output_type }}</button>
-                    </form>
-                    {% endfor %}
-                    <div class="clearfix"></div>
-                </div>
-            </div>
-        </div><!-- /#sidebar_results -->
-    </div>
-{% endblock %}
+{% extends "oscar/base.html" %}
+{% macro search_form_attrs(pageno) -%}
+    {%- for category in selected_categories -%}<input type="hidden" name="category_{{ category }}" value="1"/>{%- endfor -%}
+    <input type="hidden" name="q" value="{{ q|e }}" />{{- "" -}}
+    <input type="hidden" name="pageno" value="{{ pageno }}" />{{- "" -}}
+    <input type="hidden" name="time_range" value="{{ time_range }}" />{{- "" -}}
+    <input type="hidden" name="language" value="{{ current_language }}" />{{- "" -}}
+    {% if timeout_limit %}<input type="hidden" name="timeout_limit" value="{{ timeout_limit|e }}" />{% endif -%}
+{%- endmacro %}
+{%- macro search_url() %}{{ base_url }}?q={{ q|urlencode }}{% if selected_categories %}&amp;categories={{ selected_categories|join(",") | replace(' ','+') }}{% endif %}{% if pageno > 1 %}&amp;pageno={{ pageno }}{% endif %}{% if time_range %}&amp;time_range={{ time_range }}{% endif %}{% if current_language != 'all' %}&amp;language={{ current_language }}{% endif %}{% endmacro -%}
+
+{% block title %}{{ q|e }} - {% endblock %}
+{% block meta %}{{"    "}}<link rel="alternate" type="application/rss+xml" title="Searx search: {{ q|e }}" href="{{ search_url() }}&amp;format=rss">{% endblock %}
+{% block content %}
+    {% include 'oscar/search.html' %}
+
+    <div class="row">
+        <div class="col-sm-8" id="main_results">
+            <h1 class="sr-only">{{ _('Search results') }}</h1>
+
+            {% if corrections -%}
+            <div class="result">
+                <span class="result_header text-muted form-inline pull-left suggestion_item">{{ _('Try searching for:') }}</span>
+                {% for correction in corrections -%}
+                    <form method="{{ method or 'POST' }}" action="{{ url_for('index') }}" role="navigation" class="form-inline pull-left suggestion_item">{{- "" -}}
+                        <input type="hidden" name="q" value="{{ correction.url }}">{{- "" -}}
+                        <button type="submit" class="btn btn-default btn-xs">{{ correction.title }}</button>{{- "" -}}
+                    </form>
+                {% endfor %}
+            </div>
+            {%- endif %}
+
+            {% if answers -%}
+            {%- for answer in answers %}
+            <div class="result well">
+                <span>{{ answer }}</span>
+            </div>
+            {%- endfor %}
+            {%- endif %}
+
+            {% for result in results -%}
+            <div class="result {% if result['template'] %}result-{{ result.template|replace('.html', '') }}{% else %}result-default{% endif %}">
+                {%- set index = loop.index -%}
+                {%- if result.template -%}
+                    {% include get_result_template('oscar', result['template']) %}
+                {%- else -%}
+                    {% include 'oscar/result_templates/default.html' %}
+                {%- endif -%}
+            </div>
+            {% endfor %}
+
+            {% if not results and not answers -%}
+                {% include 'oscar/messages/no_results.html' %}
+            {% endif %}
+
+            <div class="clearfix"></div>
+
+            {% if paging -%}
+            {% if rtl %}
+            <div id="pagination">
+                <div class="pull-left">{{- "" -}}
+                  <form method="{{ method or 'POST' }}" action="{{ url_for('index') }}" class="pull-left">
+                        {{- search_form_attrs(pageno+1) -}}
+                        <button type="submit" class="btn btn-default"><span class="glyphicon glyphicon-backward"></span> {{ _('next page') }}</button>{{- "" -}}
+                    </form>{{- "" -}}
+                </div>
+                <div class="pull-right">{{- "" -}}
+                    <form method="{{ method or 'POST' }}" action="{{ url_for('index') }}"  class="pull-left">
+                        {{- search_form_attrs(pageno-1) -}}
+                        <button type="submit" class="btn btn-default" {% if pageno == 1 %}disabled{% endif %}><span class="glyphicon glyphicon-forward"></span> {{ _('previous page') }}</button>{{- "" -}}
+                    </form>{{- "" -}}
+                </div>
+            </div><!-- /#pagination -->
+            <div class="clearfix"></div>
+            {% else %}
+            <div id="pagination">
+                <div class="pull-left">{{- "" -}}
+                    <form method="{{ method or 'POST' }}" action="{{ url_for('index') }}" class="pull-left">
+                        {{- search_form_attrs(pageno-1) -}}
+                        <button type="submit" class="btn btn-default" {% if pageno == 1 %}disabled{% endif %}><span class="glyphicon glyphicon-backward"></span> {{ _('previous page') }}</button>{{- "" -}}
+                    </form>{{- "" -}}
+                </div>
+                <div class="pull-right">{{- "" -}}
+                    <form method="{{ method or 'POST' }}" action="{{ url_for('index') }}"  class="pull-left">
+                        {{- search_form_attrs(pageno+1) -}}
+                        <button type="submit" class="btn btn-default"><span class="glyphicon glyphicon-forward"></span> {{ _('next page') }}</button>{{- "" -}}
+                    </form>{{- "" -}}
+                </div>
+            </div><!-- /#pagination -->
+            <div class="clearfix"></div>
+            {% endif %}
+            {% endif %}
+        </div><!-- /#main_results -->
+
+        <div class="col-sm-4" id="sidebar_results">
+            {% if number_of_results != '0' -%}
+                <p><small>{{ _('Number of results') }}: {{ number_of_results }}</small></p>
+            {%- endif %}
+
+            {% if unresponsive_engines and results|length >= 1 -%}
+            <div class="alert alert-danger fade in" role="alert">
+                <p>{{ _('Engines cannot retrieve results') }}:</p>
+                {%- for engine_name, error_type in unresponsive_engines -%}AAAA
+                {{- engine_name }} ({{ error_type }}){% if not loop.last %}, {% endif %}{{- "" -}}
+                {%- endfor -%}
+            </div>
+            {%- endif %}
+
+            {% if infoboxes -%}
+                {% for infobox in infoboxes %}
+                    {% include 'oscar/infobox.html' %}{{- "\n\n" -}}
+                {% endfor %}
+            {%- endif %}
+
+            {% if suggestions %}
+            <div class="panel panel-default">
+                <div class="panel-heading">
+                    <h4 class="panel-title">{{ _('Suggestions') }}</h4>
+                </div>
+                <div class="panel-body">
+                    {% for suggestion in suggestions %}
+                    <form method="{{ method or 'POST' }}" action="{{ url_for('index') }}" role="navigation" class="form-inline pull-{% if rtl %}right{% else %}left{% endif %} suggestion_item">
+                        <input type="hidden" name="q" value="{{ suggestion.url }}">
+                        <button type="submit" class="btn btn-default btn-xs">{{ suggestion.title }}</button>
+                    </form>
+                    {% endfor %}
+                </div>
+            </div>
+            {%- endif %}
+
+            <div class="panel panel-default">
+                <div class="panel-heading">{{- "" -}}
+                    <h4 class="panel-title">{{ _('Links') }}</h4>{{- "" -}}
+                </div>
+                <div class="panel-body">
+                    <form role="form">{{- "" -}}
+                        <div class="form-group">{{- "" -}}
+                            <label for="search_url">{{ _('Search URL') }}</label>{{- "" -}}
+                            <input id="search_url" type="url" class="form-control select-all-on-click cursor-text" name="search_url" value="{{ search_url() }}" readonly>{{- "" -}}
+                        </div>{{- "" -}}
+                    </form>
+                    <label>{{ _('Download results') }}</label>
+                    <div class="clearfix"></div>
+                    {% for output_type in ('csv', 'json', 'rss') %}
+                    <form method="{{ method or 'POST' }}" action="{{ url_for('index') }}" class="form-inline pull-{% if rtl %}right{% else %}left{% endif %} result_download">
+                        {{- search_form_attrs(pageno) -}}
+                        <input type="hidden" name="format" value="{{ output_type }}">{{- "" -}}
+                        <button type="submit" class="btn btn-default">{{ output_type }}</button>{{- "" -}}
+                    </form>
+                    {% endfor %}
+                    <div class="clearfix"></div>
+                </div>
+            </div>
+        </div><!-- /#sidebar_results -->
+    </div>
+{% endblock %}

+ 24 - 24
searx/templates/oscar/search.html

@@ -1,24 +1,24 @@
-{% from 'oscar/macros.html' import icon %}
-<form method="{{ method or 'POST' }}" action="{{ url_for('index') }}" id="search_form" role="search">
-  <div class="row">
-    <div class="col-xs-12 col-md-8">
-      <div class="input-group search-margin">
-        <input type="search" name="q" class="form-control" id="q" placeholder="{{ _('Search for...') }}" aria-label="{{ _('Search for...') }}" autocomplete="off" value="{{ q }}">
-        <span class="input-group-btn">
-            <button type="submit" class="btn btn-default" aria-label="{{ _('Start search') }}"><span class="hide_if_nojs">{{ icon('search') }}</span><span class="hidden active_if_nojs">{{ _('Start search') }}</span></button>
-        </span>
-      </div>
-    </div>
-    <div class="col-xs-6 col-md-2 search-margin">
-        {% include 'oscar/time-range.html' %}
-    </div>
-    <div class="col-xs-6 col-md-2 search-margin">
-        {% include 'oscar/languages.html' %}
-    </div>
-  </div>
-  <div class="row">
-    <div class="col-sm-12">
-        {% include 'oscar/categories.html' %}
-    </div>
-  </div>
-</form><!-- / #search_form_full -->
+{% from 'oscar/macros.html' import icon %}
+<form method="{{ method or 'POST' }}" action="{{ url_for('index') }}" id="search_form" role="search">
+  <div class="row">
+    <div class="col-xs-12 col-md-8">
+      <div class="input-group search-margin">
+        <input type="search" name="q" class="form-control" id="q" placeholder="{{ _('Search for...') }}" aria-label="{{ _('Search for...') }}" autocomplete="off" value="{{ q }}">
+        <span class="input-group-btn">
+            <button type="submit" class="btn btn-default" aria-label="{{ _('Start search') }}"><span class="hide_if_nojs">{{ icon('search') }}</span><span class="hidden active_if_nojs">{{ _('Start search') }}</span></button>
+        </span>
+      </div>
+    </div>
+    <div class="col-xs-6 col-md-2 search-margin">
+        {%- include 'oscar/time-range.html' -%}
+    </div>
+    <div class="col-xs-6 col-md-2 search-margin">
+        {%- include 'oscar/languages.html' -%}
+    </div>
+  </div>
+  <div class="row">
+    <div class="col-sm-12">
+        {%- include 'oscar/categories.html' -%}
+    </div>
+  </div>
+</form><!-- / #search_form_full -->

+ 11 - 11
searx/templates/oscar/time-range.html

@@ -1,17 +1,17 @@
-<select name="time_range" id="time-range" class="custom-select form-control">
+<select name="time_range" id="time-range" class="custom-select form-control">{{- "" -}}
     <option id="time-range-anytime" value="" {{ "selected" if time_range=="" or not time_range  else ""}}>
-        {{ _('Anytime') }}
-    </option>
+        {{- _('Anytime') -}}
+    </option>{{- "" -}}
     <option id="time-range-day" value="day" {{ "selected" if time_range=="day" else ""}}>
-        {{ _('Last day') }}
-    </option>
+        {{- _('Last day') -}}
+    </option>{{- "" -}}
     <option id="time-range-week" value="week" {{ "selected" if time_range=="week" else ""}}>
-        {{ _('Last week') }}
-    </option>
+        {{- _('Last week') -}}
+    </option>{{- "" -}}
     <option id="time-range-month" value="month" {{ "selected" if time_range=="month" else ""}}>
-        {{ _('Last month') }}
-    </option>
+        {{- _('Last month') -}}
+    </option>{{- "" -}}
     <option id="time-range-year" value="year" {{ "selected" if time_range=="year" else ""}}>
-        {{ _('Last year') }}
-    </option>
+        {{- _('Last year') -}}
+    </option>{{- "" -}}
 </select>