base.html 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. <!DOCTYPE html>
  2. <html class="no-js" 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="shortcut icon" href="{{ url_for('static', filename='img/favicon.png') }}" />
  35. </head>
  36. <body class="{{ endpoint }}_endpoint" >
  37. <main id="main_{{ self._TemplateReference__context.name|replace("simple/", "")|replace(".html", "") }}">
  38. {% if errors %}
  39. <div class="dialog-error" role="alert">
  40. <a href="#" class="close" aria-label="close" title="close">×</a>
  41. <ul>
  42. {% for message in errors %}
  43. <li>{{ message }}</li>
  44. {% endfor %}
  45. </ul>
  46. </div>
  47. {% endif %}
  48. {% block content %}
  49. {% endblock %}
  50. </main>
  51. <footer>
  52. <p>
  53. {{ _('Powered by') }} <a href="{{ url_for('about') }}">searxng</a> - {{ searx_version }} — {{ _('a privacy-respecting, hackable metasearch engine') }}<br/>
  54. <a href="{{ searx_git_url }}">{{ _('Source code') }}</a> |
  55. <a href="{{ get_setting('brand.issue_url') }}">{{ _('Issue tracker') }}</a> |
  56. <a href="{{ url_for('stats') }}">{{ _('Engine stats') }}</a> |
  57. <a href="{{ get_setting('brand.public_instances') }}">{{ _('Public instances') }}</a>{% if get_setting('general.contact_url') %} |
  58. <a href="{{ get_setting('general.contact_url') }}">{{ _('Contact instance maintainer') }}</a>{% endif %}
  59. </p>
  60. </footer>
  61. <!--[if gte IE 9]>-->
  62. <script src="{{ url_for('static', filename='js/searxng.min.js') }}"></script>
  63. <!--<![endif]-->
  64. </body>
  65. </html>