base.html 3.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. <!DOCTYPE html>
  2. <html class="no-js theme-{{ preferences.get_value('simple_style') or 'auto' }}" lang="{{ locale_rfc5646 }}" {% if rtl %} dir="rtl"{% endif %}>
  3. <head>
  4. <meta charset="UTF-8" />
  5. <meta name="description" content="SearXNG — a privacy-respecting, hackable metasearch engine">
  6. <meta name="keywords" content="SearXNG, search, search engine, metasearch, meta search">
  7. <meta name="generator" content="searxng/{{ searx_version }}">
  8. <meta name="referrer" content="no-referrer">
  9. <meta name="robots" content="noarchive">
  10. <meta name="viewport" content="width=device-width, initial-scale=1">
  11. <meta name="HandheldFriendly" content="True">
  12. <meta http-equiv="X-UA-Compatible" content="IE=edge, chrome=1">
  13. <title>{% block title %}{% endblock %}{{ instance_name }}</title>
  14. {% block meta %}{% endblock %}
  15. {% if rtl %}
  16. <link rel="stylesheet" href="{{ url_for('static', filename='css/searxng-rtl.min.css') }}" type="text/css" media="screen" />
  17. {% else %}
  18. <link rel="stylesheet" href="{{ url_for('static', filename='css/searxng.min.css') }}" type="text/css" media="screen" />
  19. {% endif %}
  20. {% block styles %}{% endblock %}
  21. <!--[if gte IE 9]>-->
  22. <script src="{{ url_for('static', filename='js/searxng.head.min.js') }}"
  23. data-method="{{ method or 'POST' }}"
  24. data-autocompleter="{% if autocomplete %}true{% else %}false{% endif %}"
  25. data-search-on-category-select="{{ 'true' if 'plugins/js/search_on_category_select.js' in scripts else 'false'}}"
  26. data-infinite-scroll="{{ 'true' if 'plugins/js/infinite_scroll.js' in scripts else 'false' }}"
  27. data-hotkeys="{{ 'true' if 'plugins/js/vim_hotkeys.js' in scripts else 'false' }}"
  28. data-static-path="{{ url_for('static', filename='themes/simple') }}/"
  29. data-translations="{{ translations }}"></script>
  30. <!--<![endif]-->
  31. {% block head %}
  32. <link title="{{ instance_name }}" type="application/opensearchdescription+xml" rel="search" href="{{ opensearch_url }}"/>
  33. {% endblock %}
  34. <link rel="icon" href="{{ url_for('static', filename='img/favicon.png') }}" sizes="any">
  35. <link rel="icon" href="{{ url_for('static', filename='img/favicon.svg') }}" type="image/svg+xml">
  36. </head>
  37. <body class="{{ endpoint }}_endpoint" >
  38. <main id="main_{{ self._TemplateReference__context.name|replace("simple/", "")|replace(".html", "") }}">
  39. {% if errors %}
  40. <div class="dialog-error" role="alert">
  41. <a href="#" class="close" aria-label="close" title="close">×</a>
  42. <ul>
  43. {% for message in errors %}
  44. <li>{{ message }}</li>
  45. {% endfor %}
  46. </ul>
  47. </div>
  48. {% endif %}
  49. {% block content %}
  50. {% endblock %}
  51. </main>
  52. <footer>
  53. <p>
  54. {{ _('Powered by') }} <a href="{{ url_for('about') }}">searxng</a> - {{ searx_version }} — {{ _('a privacy-respecting, hackable metasearch engine') }}<br/>
  55. <a href="{{ searx_git_url }}">{{ _('Source code') }}</a> |
  56. <a href="{{ get_setting('brand.issue_url') }}">{{ _('Issue tracker') }}</a> |
  57. <a href="{{ url_for('stats') }}">{{ _('Engine stats') }}</a> |
  58. <a href="{{ get_setting('brand.public_instances') }}">{{ _('Public instances') }}</a>{% if get_setting('general.contact_url') %} |
  59. <a href="{{ get_setting('general.contact_url') }}">{{ _('Contact instance maintainer') }}</a>{% endif %}
  60. </p>
  61. </footer>
  62. <!--[if gte IE 9]>-->
  63. <script src="{{ url_for('static', filename='js/searxng.min.js') }}"></script>
  64. <!--<![endif]-->
  65. </body>
  66. </html>