diff options
115 files changed, 2140 insertions, 1951 deletions
diff --git a/.dir-locals.el b/.dir-locals.el index b8f7ecc76..68614b2d7 100644 --- a/.dir-locals.el +++ b/.dir-locals.el @@ -19,6 +19,7 @@ ;; Some buffer locals are referencing the project environment: ;; ;; - prj-root --> <repo>/ +;; - nvm-dir --> <repo>/.nvm ;; - python-environment-directory --> <repo>/local ;; - python-environment-default-root-name --> py3 ;; - python-shell-virtualenv-root --> <repo>/local/py3 @@ -50,6 +51,8 @@ (indent-tabs-mode . nil) (eval . (progn + (add-to-list 'auto-mode-alist '("\\.html\\'" . jinja2-mode)) + ;; project root folder is where the `.dir-locals.el' is located (setq-local prj-root (locate-dominating-file default-directory ".dir-locals.el")) @@ -57,6 +60,9 @@ (setq-local python-environment-directory (expand-file-name "./local" prj-root)) + ;; to get in use of NVM enviroment, install https://github.com/rejeep/nvm.el + (setq-local nvm-dir (expand-file-name "./.nvm" prj-root)) + ;; use 'py3' enviroment as default (setq-local python-environment-default-root-name "py3") @@ -90,10 +96,9 @@ (js-mode . ((eval . (progn + ;; use nodejs from the (local) NVM environment (see nvm-dir) + (nvm-use-for-buffer) (setq-local js-indent-level 2) - ;; flycheck should use the eslint checker from simple theme - (setq-local flycheck-javascript-eslint-executable - (expand-file-name "searx/static/themes/simple/node_modules/.bin/eslint" prj-root)) (flycheck-mode) )))) diff --git a/.gitignore b/.gitignore index fd152a347..efea6c872 100644 --- a/.gitignore +++ b/.gitignore @@ -9,6 +9,7 @@ geckodriver.log .coverage coverage/ +.nvm/ cache/ build/ dist/ diff --git a/.nvm_packages b/.nvm_packages new file mode 100644 index 000000000..13eabc5c2 --- /dev/null +++ b/.nvm_packages @@ -0,0 +1,8 @@ +# -*- coding: utf-8; mode: conf-unix -*- +# +# Developement tools pre-installed in NVM's node installation [1] +# +# [1] https://github.com/nvm-sh/nvm#default-global-packages-from-file-while-installing + +eslint + @@ -0,0 +1 @@ +v16.13.0
\ No newline at end of file @@ -36,7 +36,7 @@ install uninstall: $(Q)./manage pyenv.$@ PHONY += clean -clean: py.clean docs.clean node.clean test.clean +clean: py.clean docs.clean node.clean nvm.clean test.clean $(Q)./manage build_msg CLEAN "common files" $(Q)find . -name '*.orig' -exec rm -f {} + $(Q)find . -name '*.rej' -exec rm -f {} + @@ -64,7 +64,9 @@ test.shell: $(MTOOLS) \ utils/lib.sh \ utils/lib_install.sh \ + utils/lib_nvm.sh \ utils/lib_static.sh \ + utils/lib_go.sh \ utils/filtron.sh \ utils/searx.sh \ utils/morty.sh \ @@ -89,28 +91,17 @@ MANAGE += pypi.upload pypi.upload.test MANAGE += test.yamllint test.pylint test.pep8 test.unit test.coverage test.robot test.clean MANAGE += themes.all themes.oscar themes.simple pygments.less MANAGE += static.build.commit static.build.drop static.build.restore +MANAGE += nvm.install nvm.clean nvm.status nvm.nodejs PHONY += $(MANAGE) $(MANAGE): $(Q)$(MTOOLS) $@ +# short hands of selected targets -# deprecated - -PHONY += docs docs-clean docs-live docker themes +PHONY += docs docker themes docs: docs.html - $(Q)./manage build_msg WARN $@ is deprecated use docs.html - -docs-clean: docs.clean - $(Q)./manage build_msg WARN $@ is deprecated use docs.clean - -docs-live: docs.live - $(Q)./manage build_msg WARN $@ is deprecated use docs.live - docker: docker.build - $(Q)./manage build_msg WARN $@ is deprecated use docker.build - themes: themes.all - $(Q)./manage build_msg WARN $@ is deprecated use themes.all diff --git a/docs/_themes/searx/static/searx.css b/docs/_themes/searxng/static/searxng.css index db101c054..db101c054 100644 --- a/docs/_themes/searx/static/searx.css +++ b/docs/_themes/searxng/static/searxng.css diff --git a/docs/_themes/searx/theme.conf b/docs/_themes/searxng/theme.conf index 2d5f72e7d..802ffff4e 100644 --- a/docs/_themes/searx/theme.conf +++ b/docs/_themes/searxng/theme.conf @@ -1,6 +1,6 @@ [theme] inherit = pocoo -stylesheet = searx.css +stylesheet = searxng.css [options] touch_icon = diff --git a/docs/admin/architecture.rst b/docs/admin/architecture.rst index 45d952282..db99c9f55 100644 --- a/docs/admin/architecture.rst +++ b/docs/admin/architecture.rst @@ -6,12 +6,12 @@ Architecture .. sidebar:: Further reading - - Reverse Proxy: :ref:`Apache <apache searx site>` & :ref:`nginx <nginx searx - site>` - - Filtron: :ref:`searx filtron` - - Morty: :ref:`searx morty` - - uWSGI: :ref:`searx uwsgi` - - Searx: :ref:`installation basic` + - Reverse Proxy: :ref:`Apache <apache searxng site>` & :ref:`nginx <nginx + searxng site>` + - Filtron: :ref:`searxng filtron` + - Morty: :ref:`searxng morty` + - uWSGI: :ref:`searxng uwsgi` + - SearXNG: :ref:`installation basic` Herein you will find some hints and suggestions about typical architectures of SearXNG infrastructures. diff --git a/docs/admin/engines/settings.rst b/docs/admin/engines/settings.rst index c67b45669..b04de7cb3 100644 --- a/docs/admin/engines/settings.rst +++ b/docs/admin/engines/settings.rst @@ -94,7 +94,7 @@ Global Settings port: 8888 bind_address: "127.0.0.1" # address to listen on secret_key: "ultrasecretkey" # change this! - image_proxy: false # proxying image results through searx + image_proxy: false # proxying image results through SearXNG default_locale: "" # default interface locale default_theme: oscar # ui theme default_http_headers: @@ -293,7 +293,7 @@ engine is shown. Most of the options have a default value or even are optional. ``timeout`` : optional Timeout of the search with the current search engine. **Be careful, it will - modify the global timeout of searx.** + modify the global timeout of SearXNG.** ``api_key`` : optional In a few cases, using an API needs the use of a secret key. How to obtain them diff --git a/docs/admin/engines/sql-engines.rst b/docs/admin/engines/sql-engines.rst index 713ef9a40..9d24913a9 100644 --- a/docs/admin/engines/sql-engines.rst +++ b/docs/admin/engines/sql-engines.rst @@ -127,7 +127,7 @@ find an example configuration below: - name: my_database engine: postgresql database: my_database - username: searx + username: searxng password: password query_str: 'SELECT * from my_table WHERE my_column = %(query)s' @@ -155,7 +155,7 @@ example configuration for quering a MySQL server: - name: my_database engine: mysql_server database: my_database - username: searx + username: searxng password: password limit: 5 query_str: 'SELECT * from my_table WHERE my_column=%(query)s' diff --git a/docs/admin/filtron.rst b/docs/admin/filtron.rst index dd3cfc675..9587d76cb 100644 --- a/docs/admin/filtron.rst +++ b/docs/admin/filtron.rst @@ -1,5 +1,5 @@ -.. _searx filtron: +.. _searxng filtron: ========================== How to protect an instance @@ -8,7 +8,7 @@ How to protect an instance .. sidebar:: further reading - :ref:`filtron.sh` - - :ref:`nginx searx site` + - :ref:`nginx searxng site` .. contents:: Contents @@ -16,10 +16,10 @@ How to protect an instance :local: :backlinks: entry -.. _filtron: https://github.com/asciimoo/filtron +.. _filtron: https://github.com/searxng/filtron SearXNG depends on external search services. To avoid the abuse of these services -it is advised to limit the number of requests processed by searx. +it is advised to limit the number of requests processed by SearXNG. An application firewall, filtron_ solves exactly this problem. Filtron is just a middleware between your web server (nginx, apache, ...) and searx, we describe @@ -30,7 +30,7 @@ filtron & go ============ .. _Go: https://golang.org/ -.. _filtron README: https://github.com/asciimoo/filtron/blob/master/README.md +.. _filtron README: https://github.com/searxng/filtron/blob/master/README.md Filtron needs Go_ installed. If Go_ is preinstalled, filtron_ is simply installed by ``go get`` package management (see `filtron README`_). If you use @@ -188,4 +188,4 @@ Use it along with ``nginx`` with the following example configuration. Requests are coming from port 4004 going through filtron and then forwarded to port 8888 where a SearXNG is being run. For a complete setup see: :ref:`nginx -searx site`. +searxng site`. diff --git a/docs/admin/index.rst b/docs/admin/index.rst index 3139db99c..940707d8f 100644 --- a/docs/admin/index.rst +++ b/docs/admin/index.rst @@ -7,12 +7,12 @@ Administrator documentation :caption: Contents installation - installation-searx + installation-searxng installation-uwsgi installation-nginx installation-apache installation-docker - update-searx + update-searxng engines/index api architecture diff --git a/docs/admin/installation-apache.rst b/docs/admin/installation-apache.rst index c15e3f5a0..b60e20ad1 100644 --- a/docs/admin/installation-apache.rst +++ b/docs/admin/installation-apache.rst @@ -47,13 +47,13 @@ Install with apache ---- -**Install** :ref:`apache searx site` using :ref:`filtron.sh <filtron.sh overview>` +**Install** :ref:`apache searxng site` using :ref:`filtron.sh <filtron.sh overview>` .. code:: bash $ sudo -H ./utils/filtron.sh apache install -**Install** :ref:`apache searx site` using :ref:`morty.sh <morty.sh overview>` +**Install** :ref:`apache searxng site` using :ref:`morty.sh <morty.sh overview>` .. code:: bash @@ -163,7 +163,7 @@ How this default intro site is configured, depends on the linux distribution less /etc/httpd/conf.d/welcome.conf -.. _apache searx site: +.. _apache searxng site: Apache Reverse Proxy ==================== @@ -192,14 +192,14 @@ except in :ref:`The Debian Layout`. sudo -H a2enmod proxy sudo -H a2enmod proxy_http - In :ref:`The Debian Layout` you create a ``searx.conf`` with the + In :ref:`The Debian Layout` you create a ``searxng.conf`` with the ``<Location /searx >`` directive and save this file in the *sites available* folder at ``/etc/apache2/sites-available``. To enable the - ``searx.conf`` use :man:`a2ensite`: + ``searxng.conf`` use :man:`a2ensite`: .. code:: sh - sudo -H a2ensite searx.conf + sudo -H a2ensite searxng.conf .. group-tab:: Arch Linux @@ -230,7 +230,7 @@ except in :ref:`The Debian Layout`. With ProxyPreserveHost_ the incoming Host HTTP request header is passed to the proxied host. -.. _apache searx via filtron plus morty: +.. _apache searxng via filtron plus morty: .. tabs:: @@ -262,7 +262,7 @@ proxied host. </Location> - 2. Configure reverse proxy for :ref:`morty <searx morty>`, listening on + 2. Configure reverse proxy for :ref:`morty <searxng morty>`, listening on *localhost 3000* .. code:: apache @@ -286,7 +286,7 @@ proxied host. </Location> - For a fully result proxification add :ref:`morty's <searx morty>` **public + For a fully result proxification add :ref:`morty's <searxng morty>` **public URL** to your :origin:`searx/settings.yml`: .. code:: yaml @@ -302,10 +302,10 @@ proxied host. uWSGI support ============= -Be warned, with this setup, your instance isn't :ref:`protected <searx +Be warned, with this setup, your instance isn't :ref:`protected <searxng filtron>`, nevertheless it is good enough for intranet usage. In modern Linux distributions, the `mod_proxy_uwsgi`_ is compiled into the *normal* apache -package and you need to install only the :ref:`uWSGI <searx uwsgi>` package: +package and you need to install only the :ref:`uWSGI <searxng uwsgi>` package: .. tabs:: @@ -337,7 +337,7 @@ For socket communication, you have to activate ``socket = /run/uwsgi/app/searx/socket`` and comment out the ``http = 127.0.0.1:8888`` configuration in your :ref:`uwsgi ini file <uwsgi configuration>`. If not already exists, create a folder for the unix sockets, which can be used by the -searx account (see :ref:`create searx user`): +SearXNG account (see :ref:`create searxng user`): .. code:: bash diff --git a/docs/admin/installation-docker.rst b/docs/admin/installation-docker.rst index ecf9c833f..cd91af382 100644 --- a/docs/admin/installation-docker.rst +++ b/docs/admin/installation-docker.rst @@ -25,8 +25,8 @@ Docker installation If you intend to create a public instance using Docker, use our well maintained searxng-docker_ image which includes - - :ref:`protection <searx filtron>` `[filtron]`_, - - a :ref:`result proxy <searx morty>` `[morty]`_ and + - :ref:`protection <searxng filtron>` `[filtron]`_, + - a :ref:`result proxy <searxng morty>` `[morty]`_ and - a HTTPS reverse proxy `[caddy]`_. Make sure you have `installed Docker <https://docs.docker.com/get-docker/>`_ and diff --git a/docs/admin/installation-nginx.rst b/docs/admin/installation-nginx.rst index 1d982bc8f..fdbcdf032 100644 --- a/docs/admin/installation-nginx.rst +++ b/docs/admin/installation-nginx.rst @@ -34,13 +34,13 @@ Install with nginx ---- -**Install** :ref:`nginx searx site` using :ref:`filtron.sh <filtron.sh overview>` +**Install** :ref:`nginx searxng site` using :ref:`filtron.sh <filtron.sh overview>` .. code:: bash $ sudo -H ./utils/filtron.sh nginx install -**Install** :ref:`nginx searx site` using :ref:`morty.sh <morty.sh overview>` +**Install** :ref:`nginx searxng site` using :ref:`morty.sh <morty.sh overview>` .. code:: bash @@ -126,7 +126,7 @@ depends on the linux distribution: include /etc/nginx/conf.d/*.conf; -.. _nginx searx site: +.. _nginx searxng site: A nginx SearXNG site ==================== @@ -163,7 +163,7 @@ Started wiki`_ is always a good resource *to keep in the pocket*. Create configuration at ``/etc/nginx/conf.d/searxng`` and place a symlink to sites-enabled: -.. _nginx searx via filtron plus morty: +.. _nginx searxng via filtron plus morty: .. tabs:: @@ -195,7 +195,7 @@ Started wiki`_ is always a good resource *to keep in the pocket*. } - 2. Configure reverse proxy for :ref:`morty <searx morty>`, listening on + 2. Configure reverse proxy for :ref:`morty <searxng morty>`, listening on *localhost 3000*: .. code:: nginx @@ -212,7 +212,7 @@ Started wiki`_ is always a good resource *to keep in the pocket*. proxy_set_header X-Scheme $scheme; } - For a fully result proxification add :ref:`morty's <searx morty>` **public + For a fully result proxification add :ref:`morty's <searxng morty>` **public URL** to your :origin:`searx/settings.yml`: .. code:: yaml @@ -228,7 +228,7 @@ Started wiki`_ is always a good resource *to keep in the pocket*. .. group-tab:: proxy or uWSGI - Be warned, with this setup, your instance isn't :ref:`protected <searx + Be warned, with this setup, your instance isn't :ref:`protected <searxng filtron>`. Nevertheless it is good enough for intranet usage and it is a excellent example of; *how different services can be set up*. The next example shows a reverse proxy configuration wrapping the :ref:`searx-uWSGI @@ -281,7 +281,7 @@ Started wiki`_ is always a good resource *to keep in the pocket*. } If not already exists, create a folder for the unix sockets, which can be - used by the searx account: + used by the SearXNG account: .. code:: bash @@ -290,7 +290,7 @@ Started wiki`_ is always a good resource *to keep in the pocket*. .. group-tab:: \.\. at subdir URL - Be warned, with these setups, your instance isn't :ref:`protected <searx + Be warned, with these setups, your instance isn't :ref:`protected <searxng filtron>`. The examples are just here to demonstrate how to export the SearXNG application from a subdirectory URL ``https://example.org/searx/``. diff --git a/docs/admin/installation-searx.rst b/docs/admin/installation-searxng.rst index 3aa655e85..b14139310 100644 --- a/docs/admin/installation-searx.rst +++ b/docs/admin/installation-searxng.rst @@ -23,9 +23,9 @@ Install packages .. hint:: - This installs also the packages needed by :ref:`searx uwsgi` + This installs also the packages needed by :ref:`searxng uwsgi` -.. _create searx user: +.. _create searxng user: Create user =========== @@ -42,8 +42,8 @@ Install SearXNG & dependencies Start a interactive shell from new created user and clone searx: .. kernel-include:: $DOCS_BUILD/includes/searx.rst - :start-after: START clone searx - :end-before: END clone searx + :start-after: START clone searxng + :end-before: END clone searxng In the same shell create *virtualenv*: @@ -87,8 +87,8 @@ For a *minimal setup*, configure like shown below – replace ``searx@$(uname ``/etc/searxng/settings.yml`` to your needs. .. kernel-include:: $DOCS_BUILD/includes/searx.rst - :start-after: START searx config - :end-before: END searx config + :start-after: START searxng config + :end-before: END searxng config .. tabs:: @@ -111,8 +111,8 @@ SearXNG looks at the exported environment ``$SEARXNG_SETTINGS_PATH`` for a configuration file. .. kernel-include:: $DOCS_BUILD/includes/searx.rst - :start-after: START check searx installation - :end-before: END check searx installation + :start-after: START check searxng installation + :end-before: END check searxng installation If everything works fine, hit ``[CTRL-C]`` to stop the *webapp* and disable the debug option in ``settings.yml``. You can now exit SearXNG user bash (enter exit diff --git a/docs/admin/installation-uwsgi.rst b/docs/admin/installation-uwsgi.rst index 1fb24ca8f..1021283f9 100644 --- a/docs/admin/installation-uwsgi.rst +++ b/docs/admin/installation-uwsgi.rst @@ -1,4 +1,4 @@ -.. _searx uwsgi: +.. _searxng uwsgi: ===== uwsgi @@ -105,24 +105,24 @@ restart the uwsgi application. .. group-tab:: Ubuntu / debian .. kernel-include:: $DOCS_BUILD/includes/searx.rst - :start-after: START searx uwsgi-description ubuntu-20.04 - :end-before: END searx uwsgi-description ubuntu-20.04 + :start-after: START searxng uwsgi-description ubuntu-20.04 + :end-before: END searxng uwsgi-description ubuntu-20.04 .. hotfix: a bug group-tab need this comment .. group-tab:: Arch Linux .. kernel-include:: $DOCS_BUILD/includes/searx.rst - :start-after: START searx uwsgi-description arch - :end-before: END searx uwsgi-description arch + :start-after: START searxng uwsgi-description arch + :end-before: END searxng uwsgi-description arch .. hotfix: a bug group-tab need this comment .. group-tab:: Fedora / RHEL .. kernel-include:: $DOCS_BUILD/includes/searx.rst - :start-after: START searx uwsgi-description fedora - :end-before: END searx uwsgi-description fedora + :start-after: START searxng uwsgi-description fedora + :end-before: END searxng uwsgi-description fedora .. tabs:: @@ -130,21 +130,21 @@ restart the uwsgi application. .. group-tab:: Ubuntu / debian .. kernel-include:: $DOCS_BUILD/includes/searx.rst - :start-after: START searx uwsgi-appini ubuntu-20.04 - :end-before: END searx uwsgi-appini ubuntu-20.04 + :start-after: START searxng uwsgi-appini ubuntu-20.04 + :end-before: END searxng uwsgi-appini ubuntu-20.04 .. hotfix: a bug group-tab need this comment .. group-tab:: Arch Linux .. kernel-include:: $DOCS_BUILD/includes/searx.rst - :start-after: START searx uwsgi-appini arch - :end-before: END searx uwsgi-appini arch + :start-after: START searxng uwsgi-appini arch + :end-before: END searxng uwsgi-appini arch .. hotfix: a bug group-tab need this comment .. group-tab:: Fedora / RHEL .. kernel-include:: $DOCS_BUILD/includes/searx.rst - :start-after: START searx uwsgi-appini fedora - :end-before: END searx uwsgi-appini fedora + :start-after: START searxng uwsgi-appini fedora + :end-before: END searxng uwsgi-appini fedora diff --git a/docs/admin/installation.rst b/docs/admin/installation.rst index 59f142aff..ccb5314c1 100644 --- a/docs/admin/installation.rst +++ b/docs/admin/installation.rst @@ -27,7 +27,7 @@ Installation scripts .. sidebar:: Update OS first! - To avoid unwanted side effects, update your OS before installing searx. + To avoid unwanted side effects, update your OS before installing SearXNG. The following will install a setup as shown in :ref:`architecture`. First you need to get a clone. The clone is only needed for the installation procedure @@ -42,14 +42,14 @@ the case if you clone into a folder below ``/root``. .. code:: bash $ cd ~/Downloads - $ git clone https://github.com/searxng/searxng.git searx - $ cd searx + $ git clone https://github.com/searxng/searxng.git searxng + $ cd searxng .. sidebar:: further read - :ref:`toolboxing` - - :ref:`update searx` - - :ref:`inspect searx` + - :ref:`update searxng` + - :ref:`inspect searxng` **Install** :ref:`SearXNG service <searx.sh>` diff --git a/docs/admin/morty.rst b/docs/admin/morty.rst index d19a91361..b6bd2ea56 100644 --- a/docs/admin/morty.rst +++ b/docs/admin/morty.rst @@ -1,5 +1,5 @@ -.. _searx morty: +.. _searxng morty: ========================= How to setup result proxy @@ -15,7 +15,7 @@ How to setup result proxy By default SearXNG can only act as an image proxy for result images, but it is possible to proxify all the result URLs with an external service, morty_. -To use this feature, morty has to be installed and activated in searx's +To use this feature, morty has to be installed and activated in SearXNG's ``settings.yml``. Add the following snippet to your ``settings.yml`` and restart searx: @@ -30,8 +30,8 @@ instances without a HTTP proxy. If your morty service is public, the url is the address of the reverse proxy (e.g ``https://example.org/morty``). For more information about *result proxy* have a look at *"SearXNG via filtron -plus morty"* in the :ref:`nginx <nginx searx via filtron plus morty>` and -:ref:`apache <apache searx via filtron plus morty>` sections. +plus morty"* in the :ref:`nginx <nginx searxng via filtron plus morty>` and +:ref:`apache <apache searxng via filtron plus morty>` sections. ``url`` Is the address of the running morty service. diff --git a/docs/admin/update-searx.rst b/docs/admin/update-searxng.rst index ea58a9954..4c541bf57 100644 --- a/docs/admin/update-searx.rst +++ b/docs/admin/update-searxng.rst @@ -1,4 +1,4 @@ -.. _update searx: +.. _update searxng: ============= How to update @@ -25,7 +25,7 @@ How to update depends on the :ref:`installation` method. If you have used the $ sudo -H ./utils/morty.sh update morty -.. _inspect searx: +.. _inspect searxng: ====================== How to inspect & debug diff --git a/docs/build-templates/filtron.rst b/docs/build-templates/filtron.rst index 79b254399..a858f7ddd 100644 --- a/docs/build-templates/filtron.rst +++ b/docs/build-templates/filtron.rst @@ -19,7 +19,8 @@ .. tabs:: - .. group-tab:: bash + .. group-tab:: os: linux / arch: amd64 + .. code-block:: bash @@ -30,9 +31,9 @@ $ sudo -i -u \"${SERVICE_USER}\" (${SERVICE_USER}) $ echo 'source $GO_ENV' >> ~/.profile (${SERVICE_USER}) $ mkdir ${SERVICE_HOME}/local - (${SERVICE_USER}) $ wget --progress=bar -O \"${GO_TAR}\" \\ - \"${GO_PKG_URL}\" - (${SERVICE_USER}) $ tar -C ${SERVICE_HOME}/local -xzf \"${GO_TAR}\" + (${SERVICE_USER}) $ wget --progress=bar -O \"${GO_VERSION}.linux-amd64.tar.gz\" \\ + \"${GO_DL_URL}/${GO_VERSION}.linux-amd64.tar.gz\" + (${SERVICE_USER}) $ tar -C ${SERVICE_HOME}/local -xzf \"${GO_VERSION}.linux-amd64.tar.gz\" (${SERVICE_USER}) $ which go ${SERVICE_HOME}/local/go/bin/go @@ -47,6 +48,6 @@ .. code-block:: bash $ sudo -i -u \"${SERVICE_USER}\" - (${SERVICE_USER}) $ go get -v -u github.com/asciimoo/filtron + (${SERVICE_USER}) $ go get -v -u github.com/searxng/filtron .. END install filtron diff --git a/docs/build-templates/morty.rst b/docs/build-templates/morty.rst index 2be24da55..b03a54f96 100644 --- a/docs/build-templates/morty.rst +++ b/docs/build-templates/morty.rst @@ -19,7 +19,8 @@ .. tabs:: - .. group-tab:: bash + .. group-tab:: os: linux / arch: amd64 + .. code-block:: bash @@ -30,9 +31,9 @@ $ sudo -i -u \"${SERVICE_USER}\" (${SERVICE_USER}) $ echo 'source $GO_ENV' >> ~/.profile (${SERVICE_USER}) $ mkdir ${SERVICE_HOME}/local - (${SERVICE_USER}) $ wget --progress=bar -O \"${GO_TAR}\" \\ - \"${GO_PKG_URL}\" - (${SERVICE_USER}) $ tar -C ${SERVICE_HOME}/local -xzf \"${GO_TAR}\" + (${SERVICE_USER}) $ wget --progress=bar -O \"${GO_VERSION}.linux-amd64.tar.gz\" \\ + \"${GO_DL_URL}/${GO_VERSION}.linux-amd64.tar.gz\" + (${SERVICE_USER}) $ tar -C ${SERVICE_HOME}/local -xzf \"${GO_VERSION}.linux-amd64.tar.gz\" (${SERVICE_USER}) $ which go ${SERVICE_HOME}/local/go/bin/go diff --git a/docs/build-templates/searx.rst b/docs/build-templates/searx.rst index bea7fa5e0..626cce6bd 100644 --- a/docs/build-templates/searx.rst +++ b/docs/build-templates/searx.rst @@ -72,7 +72,7 @@ ${fedora_build} .. END create user -.. START clone searx +.. START clone searxng .. tabs:: @@ -83,7 +83,7 @@ ${fedora_build} $ sudo -H -u ${SERVICE_USER} -i (${SERVICE_USER})$ git clone \"$GIT_URL\" \"$SEARX_SRC\" -.. END clone searx +.. END clone searxng .. START create virtualenv @@ -118,14 +118,14 @@ ${fedora_build} pip install -U wheel pip install -U pyyaml - # jump to searx's working tree and install SearXNG into virtualenv + # jump to SearXNG's working tree and install SearXNG into virtualenv (${SERVICE_USER})$ cd \"$SEARX_SRC\" (${SERVICE_USER})$ pip install -e . .. END manage.sh update_packages -.. START searx config +.. START searxng config .. tabs:: @@ -153,9 +153,9 @@ ${fedora_build} $ sudo -H sed -i -e \"s/ultrasecretkey/\$(openssl rand -hex 16)/g\" \"$SEARXNG_SETTINGS_PATH\" -.. END searx config +.. END searxng config -.. START check searx installation +.. START check searxng installation .. tabs:: @@ -206,4 +206,4 @@ container or in a script, test with curl: HTTP/1.0 200 OK ... -.. END check searx installation +.. END check searxng installation diff --git a/docs/conf.py b/docs/conf.py index 4828679e8..5bc83ebe6 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -43,7 +43,10 @@ searx.engines.load_engines(searx.settings['engines']) jinja_contexts = { 'searx': { 'engines': searx.engines.engines, - 'plugins': searx.plugins.plugins + 'plugins': searx.plugins.plugins, + 'version': { + 'node': os.getenv('NODE_MINIMUM_VERSION') + }, }, } @@ -105,7 +108,7 @@ issues_github_path = "searxng/searxng" sys.path.append(os.path.abspath('_themes')) sys.path.insert(0, os.path.abspath("../utils/")) html_theme_path = ['_themes'] -html_theme = "searx" +html_theme = "searxng" # sphinx.ext.imgmath setup html_math_renderer = 'imgmath' @@ -127,13 +130,12 @@ if CONTACT_URL: html_context["project_links"].append(ProjectLink("Contact", CONTACT_URL)) html_sidebars = { - "**": ["project.html", "relations.html", "searchbox.html"], + "**": ["project.html", "relations.html", "searchbox.html", "sourcelink.html"], } singlehtml_sidebars = {"index": ["project.html", "localtoc.html"]} -html_static_path = ["static"] -html_logo = "static/img/searx_logo_small.png" +html_logo = "../searx/static/themes/simple/src/svg/searxng-wordmark.svg" html_title = "SearXNG Documentation ({})".format(VERSION_STRING) -html_show_sourcelink = False +html_show_sourcelink = True # LaTeX ---------------------------------------------------------------- diff --git a/docs/dev/lxcdev.rst b/docs/dev/lxcdev.rst index e13667c0b..597f99925 100644 --- a/docs/dev/lxcdev.rst +++ b/docs/dev/lxcdev.rst @@ -88,8 +88,8 @@ fork: .. code:: sh $ cd ~/Downloads - $ git clone https://github.com/searxng/searxng.git searx - $ cd searx + $ git clone https://github.com/searxng/searxng.git searxng + $ cd searxng The :ref:`lxc-searx.env` consists of several images, see ``export LXC_SUITE=(...`` near by :origin:`utils/lxc-searx.env#L19`. For this blog post @@ -180,7 +180,7 @@ searx-archlinux``: $ sudo -H ./utils/lxc.sh cmd searx-archlinux bash INFO: [searx-archlinux] bash [root@searx-archlinux searx]# pwd - /share/searx + /share/searxng The prompt ``[root@searx-archlinux ...]`` signals, that you are the root user in the searx-container. To debug the running SearXNG instance use: @@ -213,7 +213,7 @@ To debug services from filtron and morty analogous use: Another point we have to notice is that each service (:ref:`SearXNG <searx.sh>`, :ref:`filtron <filtron.sh>` and :ref:`morty <morty.sh>`) runs under dedicated -system user account with the same name (compare :ref:`create searx user`). To +system user account with the same name (compare :ref:`create searxng user`). To get a shell from theses accounts, simply call one of the scripts: .. tabs:: @@ -267,7 +267,7 @@ suite. For this, we have to keep an eye on the :ref:`installation basic`: - SearXNG software in: ``/usr/local/searx/searx-src`` With the use of the :ref:`searx.sh` the SearXNG service was installed as -:ref:`uWSGI application <searx uwsgi>`. To maintain this service, we can use +:ref:`uWSGI application <searxng uwsgi>`. To maintain this service, we can use ``systemctl`` (compare :ref:`service architectures on distributions <uwsgi configuration>`). diff --git a/docs/dev/makefile.rst b/docs/dev/makefile.rst index 6e563b1bd..66def0b3a 100644 --- a/docs/dev/makefile.rst +++ b/docs/dev/makefile.rst @@ -29,7 +29,7 @@ Calling the ``help`` target gives a first overview (``make help``): .. _make install: -Python Environment (``make install``) +Python environment (``make install``) ===================================== .. sidebar:: activate environment @@ -112,6 +112,60 @@ from the YAML configuration: - ``SEARXNG_BIND_ADDRESS`` from :ref:`server.bind_address <settings global server>` - ``SEARXNG_PORT`` from :ref:`server.port <settings global server>` +.. _make node.env: + +Node.js environment (``make node.env``) +======================================= + +.. _Node.js: https://nodejs.org/ +.. _nvm: https://github.com/nvm-sh +.. _npm: https://www.npmjs.com/ + +.. jinja:: searx + + Node.js_ version {{version.node}} or higher is required to build the themes. + If the requirement is not met, the build chain uses nvm_ (Node Version + Manager) to install latest LTS of Node.js_ locally: there is no need to + install nvm_ or npm_ on your system. + +Use ``make nvm.status`` to get the current status of you Node.js_ and nvm_ setup. + +Here is the output you will typically get on a Ubuntu 20.04 system which serves +only a `no longer active <https://nodejs.org/en/about/releases/>`_ Release +`Node.js v10.19.0 <https://packages.ubuntu.com/focal/nodejs>`_. + +:: + + $ make nvm.status + INFO: Node.js is installed at /usr/bin/node + INFO: Node.js is version v10.19.0 + WARN: minimal Node.js version is 16.13.0 + INFO: npm is installed at /usr/bin/npm + INFO: npm is version 6.14.4 + WARN: NVM is not installed + INFO: to install NVM and Node.js (LTS) use: manage nvm install --lts + +To install you can also use :ref:`make nvm.nodejs` + +.. _make nvm.nodejs: + +``make nvm.nodejs`` +=================== + +Install latest Node.js_ LTS locally (uses nvm_):: + + $ make nvm.nodejs + INFO: install (update) NVM at /share/searxng/.nvm + INFO: clone: https://github.com/nvm-sh/nvm.git + ... + Downloading and installing node v16.13.0... + ... + INFO: Node.js is installed at searxng/.nvm/versions/node/v16.13.0/bin/node + INFO: Node.js is version v16.13.0 + INFO: npm is installed at searxng/.nvm/versions/node/v16.13.0/bin/npm + INFO: npm is version 8.1.0 + INFO: NVM is installed at searxng/.nvm + .. _make run: ``make run`` @@ -133,14 +187,16 @@ browser (:man:`xdg-open`):: ``make clean`` ============== -Drop all intermediate files, all builds, but keep sources untouched. Before -calling ``make clean`` stop all processes using :ref:`make install`. :: +Drops all intermediate files, all builds, but keep sources untouched. Before +calling ``make clean`` stop all processes using the :ref:`make install` or +:ref:`make node.env`. :: $ make clean CLEAN pyenv - PYENV [virtualenv] drop ./local/py3 - CLEAN docs -- ./build/docs ./dist/docs - CLEAN locally installed npm dependencies + PYENV [virtualenv] drop local/py3 + CLEAN docs -- build/docs dist/docs + CLEAN themes -- locally installed npm dependencies + ... CLEAN test stuff CLEAN common files diff --git a/docs/dev/quickstart.rst b/docs/dev/quickstart.rst index fee09216e..d2b666c09 100644 --- a/docs/dev/quickstart.rst +++ b/docs/dev/quickstart.rst @@ -5,13 +5,14 @@ Development Quickstart ====================== .. _npm: https://www.npmjs.com/ +.. _Node.js: https://nodejs.org/ SearXNG loves developers, just clone and start hacking. All the rest is done for you simply by using :ref:`make <makefile>`. .. code:: sh - git clone https://github.com/searxng/searxng.git searx + git clone https://github.com/searxng/searxng.git searxng Here is how a minimal workflow looks like: @@ -24,37 +25,27 @@ choose a meaningful commit message and we are happy to receive your pull request. To not end in *wild west* we have some directives, please pay attention to our ":ref:`how to contribute`" guideline. -If you implement themes, you will need to compile styles and JavaScript before -*run*. +If you implement themes, you will need to setup a :ref:`make node.env` once: .. code:: sh - make themes.all - -Don't forget to install npm_ first. - -.. tabs:: - - .. group-tab:: Ubuntu / debian - - .. code:: sh + make node.env - sudo -H apt-get install npm +Before you call *make run* (2.), you need to compile the modified styles and +JavaScript: - .. group-tab:: Arch Linux - - .. code-block:: sh - - sudo -H pacman -S npm +.. code:: sh - .. group-tab:: Fedora / RHEL + make themes.all - .. code-block:: sh +Alternatively you can also compile selective the theme you have modified, +e.g. the *simple* theme. +.. code:: sh - sudo -H dnf install npm + make themes.simple If you finished your *tests* you can start to commit your changes. To separate -the changed code from the build products first run: +the modified source code from the build products first run: .. code:: sh diff --git a/docs/dev/search_api.rst b/docs/dev/search_api.rst index 552b0ff84..ce7237677 100644 --- a/docs/dev/search_api.rst +++ b/docs/dev/search_api.rst @@ -25,7 +25,7 @@ Parameters ``q`` : required The search query. This string is passed to external search services. Thus, SearXNG supports syntax of each search service. For example, ``site:github.com - searx`` is a valid query for Google. However, if simply the query above is + SearXNG`` is a valid query for Google. However, if simply the query above is passed to any search engine which does not filter its results based on this syntax, you might not get the results you wanted. @@ -62,7 +62,7 @@ Parameters ``image_proxy`` : default ``False`` [ ``True``, ``False`` ] - Proxy image results through searx. + Proxy image results through SearXNG. ``autocomplete`` : default *empty* [ ``google``, ``dbpedia``, ``duckduckgo``, ``startpage``, ``wikipedia`` ] diff --git a/docs/index.rst b/docs/index.rst index 20b1848ca..7100d4ed1 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -2,11 +2,7 @@ Welcome to SearXNG ================== - *Search without being tracked.* - -.. hint:: - - This is not searx, but searxng. + *Search without being tracked.* SearXNG is a free internet metasearch engine which aggregates results from more than 70 search services. Users are neither tracked nor profiled. Additionally, @@ -25,6 +21,11 @@ If you don't trust anyone, you can set up your own, see :ref:`installation`. - Cookies are not used by default - Secure, encrypted connections (HTTPS/SSL) +.. sidebar:: info + + SearXNG development has been started in the middle of 2021 as a fork of the + searx project. + .. toctree:: :maxdepth: 2 :caption: Contents diff --git a/docs/static/img/searx_logo_small.png b/docs/static/img/searx_logo_small.png Binary files differdeleted file mode 100644 index 083932686..000000000 --- a/docs/static/img/searx_logo_small.png +++ /dev/null diff --git a/docs/utils/filtron.sh.rst b/docs/utils/filtron.sh.rst index 86e3fa88a..1f7302392 100644 --- a/docs/utils/filtron.sh.rst +++ b/docs/utils/filtron.sh.rst @@ -7,14 +7,14 @@ .. sidebar:: further reading - - :ref:`searx filtron` + - :ref:`searxng filtron` - :ref:`architecture` - :ref:`installation` (:ref:`nginx <installation nginx>` & :ref:`apache <installation apache>`) .. _Go: https://golang.org/ -.. _filtron: https://github.com/asciimoo/filtron -.. _filtron README: https://github.com/asciimoo/filtron/blob/master/README.md +.. _filtron: https://github.com/searxng/filtron +.. _filtron README: https://github.com/searxng/filtron/blob/master/README.md To simplify installation and maintenance of a filtron instance you can use the script :origin:`utils/filtron.sh`. In most cases you will install filtron_ @@ -30,7 +30,7 @@ into this user account: #. Create a separated user account (``filtron``). #. Download and install Go_ binary in user's $HOME (``~filtron``). #. Install filtron with the package management from Go_ (``go get -v -u - github.com/asciimoo/filtron``) + github.com/searxng/filtron``) #. Setup a proper rule configuration :origin:`[ref] <utils/templates/etc/filtron/rules.json>` (``/etc/filtron/rules.json``). #. Setup a systemd service unit :origin:`[ref] diff --git a/docs/utils/morty.sh.rst b/docs/utils/morty.sh.rst index f2e02baab..99103b1cb 100644 --- a/docs/utils/morty.sh.rst +++ b/docs/utils/morty.sh.rst @@ -14,7 +14,7 @@ - :ref:`architecture` - :ref:`installation` (:ref:`nginx <installation nginx>` & :ref:`apache <installation apache>`) - - :ref:`searx morty` + - :ref:`searxng morty` To simplify installation and maintenance of a morty_ instance you can use the script :origin:`utils/morty.sh`. In most cases you will install morty_ simply by @@ -37,7 +37,7 @@ into this user account: .. hint:: - To add morty to your SearXNG instance read chapter :ref:`searx morty`. + To add morty to your SearXNG instance read chapter :ref:`searxng morty`. Create user =========== diff --git a/docs/utils/searx.sh.rst b/docs/utils/searx.sh.rst index bcbe04a61..6d412d23d 100644 --- a/docs/utils/searx.sh.rst +++ b/docs/utils/searx.sh.rst @@ -24,7 +24,7 @@ In most cases you will install SearXNG simply by running the command: sudo -H ./utils/searx.sh install all -The script adds a ``${SERVICE_USER}`` (default:``searx``) and installs searx +The script adds a ``${SERVICE_USER}`` (default:``searx``) and installs SearXNG into this user account. The installation is described in chapter :ref:`installation basic`. @@ -1,19 +1,28 @@ #!/usr/bin/env bash # -*- coding: utf-8; mode: sh indent-tabs-mode: nil -*- # SPDX-License-Identifier: AGPL-3.0-or-later -# shellcheck disable=SC2031 + +# shellcheck disable=SC2034 +main_cmd="$(basename "$0")" # shellcheck source=utils/lib.sh source "$(dirname "${BASH_SOURCE[0]}")/utils/lib.sh" +# shellcheck source=utils/lib.sh +source "$(dirname "${BASH_SOURCE[0]}")/utils/lib_nvm.sh" + # shellcheck source=utils/lib_static.sh source "$(dirname "${BASH_SOURCE[0]}")/utils/lib_static.sh" +# shellcheck source=utils/lib_go.sh +source "$(dirname "${BASH_SOURCE[0]}")/utils/lib_go.sh" + # config PYOBJECTS="searx" PY_SETUP_EXTRAS='[test]' GECKODRIVER_VERSION="v0.28.0" +export NODE_MINIMUM_VERSION="16.13.0" # SPHINXOPTS= pylint.FILES() { @@ -41,6 +50,7 @@ PYLINT_ADDITIONAL_BUILTINS_FOR_ENGINES="supported_languages,language_aliases,log PYLINT_OPTIONS="-m pylint -j 0 --rcfile .pylintrc" help() { + nvm.help cat <<EOF buildenv: rebuild ./utils/brand.env @@ -63,9 +73,12 @@ docker.: gecko.driver: download & install geckodriver if not already installed (required for robot_tests) +EOF + nvm.help + cat <<EOF node.: env : download & install npm dependencies locally - clean : drop npm installations + clean : drop locally npm installations py.: build : Build python packages at ./${PYDIST} clean : delete virtualenv and intermediate py files @@ -77,6 +90,7 @@ pyenv.: pypi.upload: Upload python packages to PyPi (to test use pypi.upload.test) test.: + yamllint : lint YAML files (YAMLLINT_FILES) pylint : lint PYLINT_FILES, searx/engines, searx & tests pep8 : pycodestyle (pep8) for all files except PYLINT_FILES unit : run unit tests @@ -90,6 +104,7 @@ themes.: pygments.: less : build LESS files for pygments EOF + go.help static_help } @@ -498,10 +513,9 @@ gecko.driver() { } node.env() { - if ! required_commands npm; then - info_msg "to install build tools use::" - info_msg " sudo -H ./utils/searx.sh install buildhost" - die 1 "install needed build tools first" + if ! nvm.min_node "${NODE_MINIMUM_VERSION}"; then + info_msg "install Node.js by NVM" + nvm.nodejs fi ( set -e @@ -520,7 +534,7 @@ node.clean() { build_msg CLEAN "npm is not installed / ignore npm dependencies" return 0 fi - build_msg CLEAN "locally installed npm dependencies" + build_msg CLEAN "themes -- locally installed npm dependencies" ( set -e npm --prefix searx/static/themes/oscar run clean npm --prefix searx/static/themes/simple run clean @@ -692,11 +706,44 @@ themes.oscar() { } themes.simple() { - build_msg GRUNT "theme: simple" - npm --prefix searx/static/themes/simple run build + local static="searx/static/themes/simple" + ( set -e + convert_if_newer "src/brand/searxng-wordmark.svg" "$static/img/favicon.png" \ + -transparent white -resize 64x64 + build_msg GRUNT "theme: simple" + npm --prefix searx/static/themes/simple run build + ) dump_return $? } +convert_if_newer() { + + # usage: convert_if_newer <origfile> <outfile> [<options>, ...] + # + # convert_if_newer "path/to/origin.svg" "path/to/converted.png" -resize 100x100 + # + # Run's ImageMagik' convert comand to generate <outfile> from <origfile>, if + # <origfile> is newer than <outfile>. The command line is to convert is:: + # + # convert <origfile> [<options>, ...] <outfile> + + local src_file="$1" && shift + local dst_file="$1" && shift + + if [[ "${src_file}" -nt "${dst_file}" ]]; then + if ! required_commands convert; then + info_msg "to install build tools use::" + info_msg " sudo -H ./utils/searx.sh install buildhost" + die 1 "install needed build tools first" + fi + build_msg CONVERT "${src_file}" "$@" "${dst_file}" + convert "${src_file}" "$@" "${dst_file}" + else + build_msg CONVERT "${dst_file} (up-to-date)" + fi +} + + PYLINT_FILES=() while IFS= read -r line; do PYLINT_FILES+=("$line") diff --git a/requirements-dev.txt b/requirements-dev.txt index 8993b6773..2d143d8f6 100644 --- a/requirements-dev.txt +++ b/requirements-dev.txt @@ -5,9 +5,9 @@ pycodestyle==2.8.0 pylint==2.11.1 splinter==0.16.0 selenium==3.141.0 -twine==3.5.0 -Pallets-Sphinx-Themes==2.0.1 -Sphinx==4.2.0 +twine==3.6.0 +Pallets-Sphinx-Themes==2.0.2 +Sphinx==4.3.0 sphinx-issues==1.2.0 sphinx-jinja==1.1.1 sphinx-tabs==3.2.0 diff --git a/requirements.txt b/requirements.txt index 12800d885..2dfa37922 100644 --- a/requirements.txt +++ b/requirements.txt @@ -2,7 +2,7 @@ certifi==2021.10.8 babel==2.9.1 flask-babel==2.0.0 flask==2.0.2 -jinja2==3.0.2 +jinja2==3.0.3 lxml==4.6.4 pygments==2.10.0 python-dateutil==2.8.2 diff --git a/searx/autocomplete.py b/searx/autocomplete.py index cf2deb62f..a55377cd9 100644 --- a/searx/autocomplete.py +++ b/searx/autocomplete.py @@ -24,6 +24,7 @@ from httpx import HTTPError from searx import settings +from searx.data import ENGINES_LANGUAGES from searx.network import get as http_get from searx.exceptions import SearxEngineResponseException @@ -77,12 +78,11 @@ def google(query, lang): def startpage(query, lang): # startpage autocompleter - url = 'https://startpage.com/do/suggest?{query}' - - resp = get(url.format(query=urlencode({'query': query}))).text.split('\n') - if len(resp) > 1: - return resp - return [] + lui = ENGINES_LANGUAGES['startpage'].get(lang, 'english') + url = 'https://startpage.com/suggestions?{query}' + resp = get(url.format(query=urlencode({'q': query, 'segment': 'startpage.udog', 'lui': lui}))) + data = resp.json() + return [e['text'] for e in data.get('suggestions', []) if 'text' in e] def swisscows(query, lang): diff --git a/searx/engines/digg.py b/searx/engines/digg.py deleted file mode 100644 index e12cc43c8..000000000 --- a/searx/engines/digg.py +++ /dev/null @@ -1,69 +0,0 @@ -# SPDX-License-Identifier: AGPL-3.0-or-later -# lint: pylint -""" - Digg (News, Social media) -""" - -from json import loads -from urllib.parse import urlencode -from datetime import datetime - -from lxml import html - -# about -about = { - "website": 'https://digg.com', - "wikidata_id": 'Q270478', - "official_api_documentation": None, - "use_official_api": False, - "require_api_key": False, - "results": 'HTML', -} - -# engine dependent config -categories = ['news', 'social media'] -paging = True -base_url = 'https://digg.com' - -# search-url -search_url = base_url + ( - '/api/search/' - '?{query}' - '&from={position}' - '&size=20' - '&format=html' -) - -def request(query, params): - offset = (params['pageno'] - 1) * 20 - params['url'] = search_url.format( - query = urlencode({'q': query}), - position = offset, - ) - return params - -def response(resp): - results = [] - - # parse results - for result in loads(resp.text)['mapped']: - - # strip html tags and superfluous quotation marks from content - content = html.document_fromstring( - result['excerpt'] - ).text_content() - - # 'created': {'ISO': '2020-10-16T14:09:55Z', ...} - published = datetime.strptime( - result['created']['ISO'], '%Y-%m-%dT%H:%M:%SZ' - ) - results.append({ - 'url': result['url'], - 'title': result['title'], - 'content' : content, - 'template': 'videos.html', - 'publishedDate': published, - 'thumbnail': result['images']['thumbImage'], - }) - - return results diff --git a/searx/engines/google_images.py b/searx/engines/google_images.py index ffdd6675e..61d291e3f 100644 --- a/searx/engines/google_images.py +++ b/searx/engines/google_images.py @@ -172,7 +172,10 @@ def response(resp): thumbnail_src = '' link_node = eval_xpath_getindex(img_node, '../../../a[2]', 0) - url = eval_xpath_getindex(link_node, '@href', 0) + url = eval_xpath_getindex(link_node, '@href', 0, None) + if url is None: + logger.error("missing @href in node: %s", html.tostring(link_node)) + continue pub_nodes = eval_xpath(link_node, './div/div') pub_descr = img_alt diff --git a/searx/engines/qwant.py b/searx/engines/qwant.py index 249a1f4e4..0312e518c 100644 --- a/searx/engines/qwant.py +++ b/searx/engines/qwant.py @@ -59,7 +59,7 @@ category_to_keyword = { } # search-url -url = 'https://api.qwant.com/v3/search/{keyword}?q={query}&count={count}&offset={offset}' +url = 'https://api.qwant.com/v3/search/{keyword}?{query}&count={count}&offset={offset}' def request(query, params): """Qwant search request""" diff --git a/searx/preferences.py b/searx/preferences.py index 8cfa5404b..4d0cc5c0a 100644 --- a/searx/preferences.py +++ b/searx/preferences.py @@ -393,7 +393,13 @@ class Preferences: 'oscar-style': EnumStringSetting( settings['ui']['theme_args']['oscar_style'], is_locked('oscar-style'), - choices=['', 'logicodev', 'logicodev-dark', 'pointhi']), + choices=['', 'logicodev', 'logicodev-dark', 'pointhi'] + ), + 'simple_style': EnumStringSetting( + settings['ui']['theme_args']['simple_style'], + is_locked('simple_style'), + choices=['', 'auto', 'light', 'dark'] + ), 'advanced_search': MapSetting( settings['ui']['advanced_search'], is_locked('advanced_search'), diff --git a/searx/settings.yml b/searx/settings.yml index 89bf4ff4c..c4ea6ebdb 100644 --- a/searx/settings.yml +++ b/searx/settings.yml @@ -77,6 +77,8 @@ ui: theme_args: # default style of oscar oscar_style: logicodev + # style of simple theme: auto, light, dark + simple_style: auto # Open result links in a new tab by default # results_on_new_tab: false # categories_order : @@ -156,22 +158,32 @@ outgoing: # - plugin2 # - ... -# uncomment below section if you want to configure which plugin is enabled by -# default +# Comment or un-comment plugin to activate / deactivate by default. # # enabled_plugins: -# - "HTTPS rewrite" -# - "Hostname replace" # see configuration below - -# "Hostname replace" plugin configuration example: +# # these plugins are enabled if nothing is configured .. +# - 'Hash plugin' +# - 'Search on category select' +# - 'Self Informations' +# - 'Tracker URL remover' +# - 'Ahmia blacklist' # activation depends on outgoing.using_tor_proxy +# # these plugins are disabled if nothing is configured .. +# - 'Hostname replace' # see hostname_replace configuration below +# - 'Infinite scroll' +# - 'Open Access DOI rewrite' +# - 'Vim-like hotkeys' + +# Configuration of the "Hostname replace" plugin: +# # hostname_replace: -# '(.*\.)?youtube\.com$': 'invidious.example.com' -# '(.*\.)?youtu\.be$': 'invidious.example.com' +# '(.*\.)?youtube\.com$': 'invidious.example.com' +# '(.*\.)?youtu\.be$': 'invidious.example.com' # '(.*\.)?youtube-noocookie\.com$': 'yotter.example.com' -# '(.*\.)?reddit\.com$': 'teddit.example.com' -# '(.*\.)?redd\.it$': 'teddit.example.com' -# '(www\.)?twitter\.com$': 'nitter.example.com' -# 'spam\.example\.com': false # remove results from spam.example.com +# '(.*\.)?reddit\.com$': 'teddit.example.com' +# '(.*\.)?redd\.it$': 'teddit.example.com' +# '(www\.)?twitter\.com$': 'nitter.example.com' +# # to remove matching host names from result list, set value to false +# 'spam\.example\.com': false checker: # disable checker when in debug mode @@ -400,10 +412,6 @@ engines: # timeout: 6.0 # disabled: true - - name: digg - engine: digg - shortcut: dg - - name: docker hub engine: docker_hub shortcut: dh @@ -795,12 +803,11 @@ engines: - name: library genesis engine: xpath - enable_http: true search_url: https://libgen.rs/search.php?req={query} url_xpath: //a[contains(@href,"bookfi.net/md5")]/@href title_xpath: //a[contains(@href,"book/")]/text()[1] content_xpath: //td/a[1][contains(@href,"=author")]/text() - categories: general + categories: files timeout: 7.0 disabled: true shortcut: lg @@ -900,6 +907,7 @@ engines: - name: npm engine: json_engine paging: true + first_page_num: 0 search_url: https://api.npms.io/v2/search?q={query}&size=25&from={pageno} results_query: results url_query: package/links/npm @@ -1136,8 +1144,6 @@ engines: engine: reddit shortcut: re page_size: 25 - timeout: 10.0 - disabled: true # Required dependency: redis # - name: myredis diff --git a/searx/settings_defaults.py b/searx/settings_defaults.py index 79f72c52b..db020db7d 100644 --- a/searx/settings_defaults.py +++ b/searx/settings_defaults.py @@ -19,6 +19,7 @@ logger = logging.getLogger('searx') OUTPUT_FORMATS = ['html', 'csv', 'json', 'rss'] LANGUAGE_CODES = ['all'] + list(l[0] for l in languages) OSCAR_STYLE = ('logicodev', 'logicodev-dark', 'pointhi') +SIMPLE_STYLE = ('auto', 'light', 'dark') CATEGORY_ORDER = [ 'general', 'images', @@ -183,6 +184,7 @@ SCHEMA = { 'default_locale': SettingsValue(str, ''), 'theme_args': { 'oscar_style': SettingsValue(OSCAR_STYLE, 'logicodev'), + 'simple_style': SettingsValue(SIMPLE_STYLE, 'auto'), }, 'results_on_new_tab': SettingsValue(bool, False), 'advanced_search': SettingsValue(bool, False), diff --git a/searx/static/themes/oscar/js/searxng.min.js.map b/searx/static/themes/oscar/js/searxng.min.js.map index 526f0beda..3ce24b689 100644 --- a/searx/static/themes/oscar/js/searxng.min.js.map +++ b/searx/static/themes/oscar/js/searxng.min.js.map @@ -1 +1 @@ -{"version":3,"file":"searxng.min.js","sources":["searxng.js"],"names":["window","searxng","d","getElementsByTagName","className","scripts","script","currentScript","length","autocompleter","getAttribute","method","translations","JSON","parse","document","$","ready","searchResults","original_search_value","Bloodhound","datumTokenizer","tokenizers","obj","whitespace","queryTokenizer","remote","url","wildcard","initialize","on","e","which","val","typeahead","name","highlight","hint","displayKey","result","classNames","input","menu","dataset","source","bind","ev","suggestion","submit","focus","click","getElementById","value","this","select","btnTextCollapsed","data","btnTextNotCollapsed","new_html","hasClass","html","replace","btnClass","btnLabelDefault","btnLabelToggled","toggleClass","target","iframe_load","srctest","attr","undefined","dblclick","prop","addClass","removeClass","removeAttr","checked","a","parents","children","parent","image_thumbnail_layout","ImageLayout","watch","addEventListener","each","infobox_body","find","height","css","hide","event","leaflet_target","map_lon","map_lat","map_zoom","map_boundingbox","map_geojson","southWest","L","latLng","northEast","map_bounds","latLngBounds","Icon","Default","imagePath","map","osmMapnik","TileLayer","minZoom","maxZoom","attribution","setTimeout","fitBounds","setView","LatLng","addLayer","control","layers","OSM Mapnik","addTo","geoJson","off","engine_descriptions","querySelector","hover","ajax","dataType","done","engine_name","description","Object","entries","element","Source","innerHTML","w","container_selector","results_selector","img_selector","verticalMargin","horizontalMargin","maxHeight","isAlignDone","prototype","_getHeigth","images","width","img","r","i","naturalWidth","naturalHeight","_setSize","imgWidth","resultNode","imagesLength","style","marginLeft","marginTop","marginRight","marginBottom","parentNode","classList","contains","add","_alignImgs","imgGroup","isSearching","slice","h","containerElement","containerCompStyles","getComputedStyle","containerPaddingLeft","parseInt","getPropertyValue","containerPaddingRight","containerWidth","clientWidth","Math","min","align","results_selectorNode","querySelectorAll","results_length","previous","current","previousElementSibling","push","results_nodes","throttleAlign"],"mappings":"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"}
\ No newline at end of file +{"version":3,"file":"searxng.min.js","sources":["searxng.js"],"names":["window","searxng","d","getElementsByTagName","className","scripts","script","currentScript","length","autocompleter","getAttribute","method","translations","JSON","parse","document","$","ready","searchResults","original_search_value","Bloodhound","datumTokenizer","tokenizers","obj","whitespace","queryTokenizer","remote","url","wildcard","initialize","on","e","which","val","typeahead","name","highlight","hint","displayKey","result","classNames","input","menu","dataset","source","bind","ev","suggestion","submit","focus","click","getElementById","value","this","select","btnTextCollapsed","data","btnTextNotCollapsed","new_html","hasClass","html","replace","btnClass","btnLabelDefault","btnLabelToggled","toggleClass","target","iframe_load","srctest","attr","undefined","dblclick","prop","addClass","removeClass","removeAttr","checked","a","parents","children","parent","image_thumbnail_layout","ImageLayout","watch","addEventListener","each","infobox_body","find","height","css","hide","event","leaflet_target","map_lon","map_lat","map_zoom","map_boundingbox","map_geojson","southWest","L","latLng","northEast","map_bounds","latLngBounds","Icon","Default","imagePath","map","osmMapnik","TileLayer","minZoom","maxZoom","attribution","setTimeout","fitBounds","setView","LatLng","addLayer","control","layers","OSM Mapnik","addTo","geoJson","off","let","engine_descriptions","querySelector","hover","ajax","dataType","done","engine_name","description","Object","entries","element","Source","innerHTML","w","container_selector","results_selector","img_selector","verticalMargin","horizontalMargin","maxHeight","isAlignDone","prototype","_getHeigth","images","width","img","r","i","naturalWidth","naturalHeight","_setSize","imgWidth","resultNode","imagesLength","style","marginLeft","marginTop","marginRight","marginBottom","parentNode","classList","contains","add","_alignImgs","imgGroup","isSearching","slice","h","containerElement","containerCompStyles","getComputedStyle","containerPaddingLeft","parseInt","getPropertyValue","containerPaddingRight","containerWidth","clientWidth","Math","min","align","results_selectorNode","querySelectorAll","results_length","previous","current","previousElementSibling","push","results_nodes","throttleAlign"],"mappings":"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"}
\ No newline at end of file diff --git a/searx/static/themes/simple/.eslintrc.json b/searx/static/themes/simple/.eslintrc.json index f6aed7584..069111bca 100644 --- a/searx/static/themes/simple/.eslintrc.json +++ b/searx/static/themes/simple/.eslintrc.json @@ -1,7 +1,8 @@ { "env": { "browser": true, - "es2021": true + "es2021": true, + "node": true }, "extends": "eslint:recommended", "parserOptions": { diff --git a/searx/static/themes/simple/css/searxng-rtl.css b/searx/static/themes/simple/css/searxng-rtl.css index 9320fd79f..5354db15b 100644 --- a/searx/static/themes/simple/css/searxng-rtl.css +++ b/searx/static/themes/simple/css/searxng-rtl.css @@ -729,91 +729,6 @@ template { display: none; } -@font-face { - font-family: "ion"; - src: url("../fonts/ion.eot?31a1b735188db616a2142d17947e8a45"); - src: url("../fonts/ion.eot?31a1b735188db616a2142d17947e8a45#iefix") format("embedded-opentype"), url("../fonts/ion.woff2?31a1b735188db616a2142d17947e8a45") format("woff2"), url("../fonts/ion.woff?31a1b735188db616a2142d17947e8a45") format("woff"), url("../fonts/ion.ttf?31a1b735188db616a2142d17947e8a45") format("truetype"), url("../fonts/ion.svg?31a1b735188db616a2142d17947e8a45#ion") format("svg"); - font-weight: normal; - font-style: normal; -} -.ion-icon { - display: inline-block; - line-height: 1; - font-weight: normal; - font-style: normal; - speak: none; - text-decoration: inherit; - text-transform: none; - text-rendering: auto; - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; -} -.ion-icon:before { - font-family: "ion"; -} -.ion-navicon-round:before { - content: "\f101"; -} -.ion-search:before { - content: "\f102"; -} -.ion-play:before { - content: "\f103"; -} -.ion-link:before { - content: "\f104"; -} -.ion-chevron-up:before { - content: "\f105"; -} -.ion-chevron-left:before { - content: "\f106"; -} -.ion-chevron-right:before { - content: "\f107"; -} -.ion-arrow-down-a:before { - content: "\f108"; -} -.ion-arrow-up-a:before { - content: "\f109"; -} -.ion-arrow-swap:before { - content: "\f10a"; -} -.ion-arrow-dropdown:before { - content: "\f10b"; -} -.ion-globe:before { - content: "\f10c"; -} -.ion-time:before { - content: "\f10d"; -} -.ion-location:before { - content: "\f10e"; -} -.ion-warning:before { - content: "\f10f"; -} -.ion-error:before { - content: "\f110"; -} -.ion-film-outline:before { - content: "\f111"; -} -.ion-music-note:before { - content: "\f112"; -} -.ion-more-vertical:before { - content: "\f113"; -} -.ion-magnet:before { - content: "\f114"; -} -.ion-close:before { - content: "\f115"; -} /* * SearXNG, A privacy-respecting, hackable metasearch engine * @@ -887,8 +802,10 @@ template { --color-toolkit-dialog-background: #fff; --color-toolkit-tabs-label-border: #fff; --color-toolkit-tabs-section-border: #ddd; + --color-toolkit-select-background: #f7f7f7; --color-toolkit-select-border: #ddd; - --color-toolkit-select-border-hover: #bbb; + --color-toolkit-select-background-hover: #bbb; + --color-toolkit-input-text-font: #222; --color-toolkit-checkbox-onoff-background: #ddd; --color-toolkit-checkbox-onoff-label-background: #3050ff; --color-toolkit-checkbox-onoff-checked-background: #aaa; @@ -901,7 +818,7 @@ template { --color-toolkit-loader-borderleft: rgba(255, 255, 255, 0); } @media (prefers-color-scheme: dark) { - :root { + :root.theme-auto { --color-base-font: #bbb; --color-base-font-rgb: 187, 187, 187; --color-base-background: #222; @@ -945,8 +862,8 @@ template { --color-result-link-font: #8af; --color-result-link-font-highlight: #8af; --color-result-link-visited-font: #96b; - --color-result-publishdate-font: #777; - --color-result-engines-font: #777; + --color-result-publishdate-font: #888; + --color-result-engines-font: #888; --color-result-search-url-border: #555; --color-result-search-url-font: #fff; --color-result-detail-font: #fff; @@ -969,8 +886,10 @@ template { --color-toolkit-dialog-background: #222; --color-toolkit-tabs-label-border: #222; --color-toolkit-tabs-section-border: #555; + --color-toolkit-select-background: #3c3b31; --color-toolkit-select-border: #555; - --color-toolkit-select-border-hover: #777; + --color-toolkit-select-background-hover: #333; + --color-toolkit-input-text-font: #fff; --color-toolkit-checkbox-onoff-background: #3c3b31; --color-toolkit-checkbox-onoff-label-background: #58f; --color-toolkit-checkbox-onoff-checked-background: #ddd; @@ -983,6 +902,89 @@ template { --color-toolkit-loader-borderleft: rgba(0, 0, 0, 0); } } +:root.theme-dark { + --color-base-font: #bbb; + --color-base-font-rgb: 187, 187, 187; + --color-base-background: #222; + --color-url-font: #8af; + --color-url-visited-font: #96b; + --color-header-background: #181818; + --color-header-border: #333; + --color-footer-background: #181818; + --color-footer-border: #333; + --color-sidebar-border: #555; + --color-sidebar-font: #fff; + --color-backtotop-font: #bbb; + --color-backtotop-border: #333; + --color-backtotop-background: #181818; + --color-btn-background: #58f; + --color-btn-font: #222; + --color-search-border: #555; + --color-search-background: #222; + --color-search-font: #fff; + --color-search-background-hover: #58f; + --color-error: #f55b5b; + --color-error-background: #390a0a; + --color-warning: #f1d561; + --color-warning-background: #39300a; + --color-success: #79f56e; + --color-success-background: #0e390a; + --color-categories-item-selected-font: #58f; + --color-categories-item-border-selected: #58f; + --color-autocomplete-font: #fff; + --color-autocomplete-border: #555; + --color-autocomplete-background: #222; + --color-autocomplete-background-hover: #181818; + --color-answer-border: #333; + --color-answer-font: #bbb; + --color-answer-background: #181818; + --color-result-border: #333; + --color-result-url-font: #fff; + --color-result-vim-selected: #181818; + --color-result-vim-arrow: #8af; + --color-result-description-highlight-font: #fff; + --color-result-link-font: #8af; + --color-result-link-font-highlight: #8af; + --color-result-link-visited-font: #96b; + --color-result-publishdate-font: #888; + --color-result-engines-font: #888; + --color-result-search-url-border: #555; + --color-result-search-url-font: #fff; + --color-result-detail-font: #fff; + --color-result-detail-label-font: lightgray; + --color-result-detail-background: #000; + --color-result-detail-hr: #555; + --color-result-detail-link: #8af; + --color-result-detail-loader-border: rgba(255, 255, 255, 0.2); + --color-result-detail-loader-borderleft: rgba(0, 0, 0, 0); + --color-result-image-span-background-hover: rgba(0, 0, 0, 0.6); + --color-result-image-span-font: #fff; + --color-result-image-background: #8af; + --color-settings-tr-hover: #2d2d2d; + --color-settings-engine-description-font: #909090; + --color-toolkit-badge-font: #fff; + --color-toolkit-badge-background: #777; + --color-toolkit-kbd-font: #000; + --color-toolkit-kbd-background: #fff; + --color-toolkit-dialog-border: #555; + --color-toolkit-dialog-background: #222; + --color-toolkit-tabs-label-border: #222; + --color-toolkit-tabs-section-border: #555; + --color-toolkit-select-background: #3c3b31; + --color-toolkit-select-border: #555; + --color-toolkit-select-background-hover: #333; + --color-toolkit-input-text-font: #fff; + --color-toolkit-checkbox-onoff-background: #3c3b31; + --color-toolkit-checkbox-onoff-label-background: #58f; + --color-toolkit-checkbox-onoff-checked-background: #ddd; + --color-toolkit-checkbox-label-background: #fff; + --color-toolkit-checkbox-label-border: #333; + --color-toolkit-checkbox-input-border: #58f; + --color-toolkit-engine-tooltip-border: #333; + --color-toolkit-engine-tooltip-background: #222; + --color-toolkit-loader-border: rgba(255, 255, 255, 0.2); + --color-toolkit-loader-borderleft: rgba(0, 0, 0, 0); +} /* * SearXNG, A privacy-respecting, hackable metasearch engine */ @@ -1415,8 +1417,6 @@ div.selectable_url { overflow: hidden; height: 1.2em; line-height: 1.2em; - -webkit-border-radius: 5px; - -moz-border-radius: 5px; border-radius: 5px; } div.selectable_url pre { @@ -1431,24 +1431,16 @@ div.selectable_url pre { } .dialog-error { position: relative; - padding: 1em 1em 1em 2.7em; + display: flex; + padding: 1rem; margin: 0 0 1em 0; border: 1px solid var(--color-toolkit-dialog-border); text-align: left; - -webkit-border-radius: 10px; - -moz-border-radius: 10px; border-radius: 10px; color: var(--color-error); background: var(--color-error-background); border-color: var(--color-error); } -.dialog-error::before { - position: absolute; - top: 0.5em; - left: 0.5em; - font-family: "ion"; - font-size: 1.5em; -} .dialog-error .close { float: right; position: relative; @@ -1468,7 +1460,7 @@ div.selectable_url pre { vertical-align: text-top; } .dialog-error tr:hover { - background: transparent; + background: transparent !important; } .dialog-error td { padding: 0 1em 0 0; @@ -1477,29 +1469,18 @@ div.selectable_url pre { margin-top: 0.3em; margin-bottom: 0.3em; } -.dialog-error:before { - content: "\f110"; -} .dialog-warning { position: relative; - padding: 1em 1em 1em 2.7em; + display: flex; + padding: 1rem; margin: 0 0 1em 0; border: 1px solid var(--color-toolkit-dialog-border); text-align: left; - -webkit-border-radius: 10px; - -moz-border-radius: 10px; border-radius: 10px; color: var(--color-warning); background: var(--color-warning-background); border-color: var(--color-warning); } -.dialog-warning::before { - position: absolute; - top: 0.5em; - left: 0.5em; - font-family: "ion"; - font-size: 1.5em; -} .dialog-warning .close { float: right; position: relative; @@ -1519,7 +1500,7 @@ div.selectable_url pre { vertical-align: text-top; } .dialog-warning tr:hover { - background: transparent; + background: transparent !important; } .dialog-warning td { padding: 0 1em 0 0; @@ -1528,18 +1509,15 @@ div.selectable_url pre { margin-top: 0.3em; margin-bottom: 0.3em; } -.dialog-warning:before { - content: "\f10f"; -} .dialog-modal { position: relative; - padding: 1em 1em 1em 2.7em; + display: flex; + padding: 1rem; margin: 0 0 1em 0; border: 1px solid var(--color-toolkit-dialog-border); text-align: left; - -webkit-border-radius: 10px; - -moz-border-radius: 10px; border-radius: 10px; + display: block; background: var(--color-toolkit-dialog-background); position: fixed; top: 50%; @@ -1548,13 +1526,6 @@ div.selectable_url pre { transform: translate(-50%, -50%); z-index: 10000000; } -.dialog-modal::before { - position: absolute; - top: 0.5em; - left: 0.5em; - font-family: "ion"; - font-size: 1.5em; -} .dialog-modal .close { float: right; position: relative; @@ -1574,7 +1545,7 @@ div.selectable_url pre { vertical-align: text-top; } .dialog-modal tr:hover { - background: transparent; + background: transparent !important; } .dialog-modal td { padding: 0 1em 0 0; @@ -1583,6 +1554,9 @@ div.selectable_url pre { margin-top: 0.3em; margin-bottom: 0.3em; } +.dialog-modal h3 { + margin-top: 0; +} .btn-collapse { cursor: pointer; } @@ -1644,7 +1618,6 @@ div.selectable_url pre { border-bottom: 2px solid var(--color-categories-item-border-selected); background: var(--color-categories-item-selected); color: var(--color-categories-item-selected-font); - font-weight: bold; letter-spacing: -0.1px; } .tabs > section:last-of-type { @@ -1673,11 +1646,11 @@ html body .tabs > input:checked + label + section { } /* -- select -- */ select { - height: 28px; - margin: 0 1em 0 0; - padding: 2px 8px 2px 0 !important; + height: 2.4rem; + margin: 0 1rem 0 0; + padding: 0.2rem !important; color: var(--color-search-font); - font-size: 12px; + font-size: 0.9rem; z-index: 2; } select:hover, @@ -1689,26 +1662,33 @@ select:focus { appearance: none; -webkit-appearance: none; -moz-appearance: none; - border: none; - border-bottom: 1px solid var(--color-toolkit-select-border); + border-width: 0 2rem 0 0; + border-color: transparent; background: url("data:image/svg+xml;charset=UTF-8,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22utf-8%22%3F%3E%0A%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22512%22%20height%3D%22512%22%20viewBox%3D%220%200%20512%20512%22%3E%0A%3Cg%3E%3Cpolygon%20points%3D%22128%2C192%20256%2C320%20384%2C192%22%2F%3E%3C%2Fg%3E%0A%3C%2Fsvg%3E") no-repeat; - background-position-x: 105%; - background-size: 2em; + background-position-x: calc(100% + 2rem); + background-size: 2rem; background-origin: content-box; + background-color: var(--color-toolkit-select-background); outline: medium none; + text-overflow: ellipsis; + border-radius: 5px; } select:hover, select:focus { - border-bottom: 1px solid var(--color-toolkit-select-border-hover); + background-color: var(--color-toolkit-select-background-hover); } select option { background-color: var(--color-base-background); } @media (prefers-color-scheme: dark) { - select { + html.theme-auto select, + html.theme-dark select { background-image: url("data:image/svg+xml;charset=UTF-8,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22utf-8%22%3F%3E%0A%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22512%22%20height%3D%22512%22%20viewBox%3D%220%200%20512%20512%22%3E%0A%3Cg%3E%3Cpolygon%20fill%3D%22%23ddd%22%20points%3D%22128%2C192%20256%2C320%20384%2C192%22%2F%3E%3C%2Fg%3E%0A%3C%2Fsvg%3E"); } } + html.theme-dark select { + background-image: url("data:image/svg+xml;charset=UTF-8,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22utf-8%22%3F%3E%0A%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22512%22%20height%3D%22512%22%20viewBox%3D%220%200%20512%20512%22%3E%0A%3Cg%3E%3Cpolygon%20fill%3D%22%23ddd%22%20points%3D%22128%2C192%20256%2C320%20384%2C192%22%2F%3E%3C%2Fg%3E%0A%3C%2Fsvg%3E"); + } } /* -- checkbox-onoff -- */ @supports (border-radius: 50px) { @@ -1756,8 +1736,6 @@ select:focus { top: 0; left: 0; background: var(--color-toolkit-checkbox-label-background); - -webkit-border-radius: 10px; - -moz-border-radius: 10px; border-radius: 10px; } .checkbox label::after { @@ -1848,8 +1826,6 @@ select:focus { font-weight: normal; z-index: 1000000; text-align: left; - -webkit-border-radius: 10px; - -moz-border-radius: 10px; border-radius: 10px; } th:hover .engine-tooltip, @@ -1926,8 +1902,6 @@ td:hover .engine-tooltip, max-height: 0; overflow-y: hidden; text-align: left; - -webkit-border-radius: 10px; - -moz-border-radius: 10px; border-radius: 10px; } .autocomplete:active, @@ -1992,7 +1966,7 @@ td:hover .engine-tooltip, } } #main_results #results.image-detail-open.only_template_images { - width: 59.25rem !important; + width: min(98%, 59.25rem) !important; } #main_results #results.only_template_images.image-detail-open #backToTop { left: 56.75rem !important; @@ -2007,7 +1981,7 @@ article.result-images .detail { position: fixed; left: 60rem; right: 0; - top: 7.5rem; + top: 7.75rem; transition: top 0.064s ease-in 0s; bottom: 0; background: var(--color-result-detail-background); @@ -2199,6 +2173,19 @@ article.result-images .detail { margin-right: 1rem; } } +.dialog-modal { + animation-name: dialogmodal; + animation-duration: 0.13s; +} +@keyframes dialogmodal { + 0% { + opacity: 0; + } + 50% { + opacity: 0.5; + transform: translate(-50%, -50%) scale(1.05); + } +} #main_index { margin-top: 26vh; } @@ -2219,7 +2206,8 @@ article.result-images .detail { font-size: 4em; visibility: hidden; } -.index #search { +.index #search, +.index #search_header { margin: 0 auto; background: inherit; border: inherit; @@ -2272,6 +2260,32 @@ article.result-images .detail { float: left; width: 15em; } +#main_preferences .value select, +#main_preferences .value input[type="text"] { + font-size: inherit !important; + margin: 0 1rem 0 0; +} +#main_preferences .value select { + width: 14rem; +} +#main_preferences .value input[type="text"] { + width: 13.25rem; + color: var(--color-toolkit-input-text-font); + border: none; + background: none repeat scroll 0 0 var(--color-toolkit-select-background); + padding: 0.2rem 0.4rem; + height: 2rem; + border-radius: 5px; +} +#main_preferences .value input[type="text"]:hover, +#main_preferences .value input[type="text"]:focus { + background-color: var(--color-toolkit-select-background-hover); +} +#main_preferences .value select:focus, +#main_preferences .value input:focus { + outline: none; + box-shadow: 0 0 1px 1px var(--color-btn-background); +} #main_preferences .description { margin: 0; padding: 5px 0 0 0; @@ -2280,10 +2294,6 @@ article.result-images .detail { color: var(--color-settings-engine-description-font); font-size: 90%; } -#main_preferences select { - width: 200px; - font-size: inherit !important; -} #main_preferences table { border-collapse: collapse; } @@ -2313,6 +2323,17 @@ article.result-images .detail { #main_preferences table.cookies > tbody > tr:nth-child(even) > td { background-color: var(--color-settings-tr-hover); } +#main_preferences .category { + margin-right: 0.5rem; +} +#main_preferences .category label { + border: 2px solid transparent; + padding: 0.2rem 0.4rem; + border-radius: 5px; +} +#main_preferences .category input[type="checkbox"]:checked + label { + border: 2px solid var(--color-categories-item-border-selected); +} #main_preferences .name, #main_preferences .shortcut { text-align: left; @@ -2321,8 +2342,6 @@ article.result-images .detail { background: none repeat scroll 0 0 var(--color-btn-background); color: var(--color-btn-font); border: 0 none; - -webkit-border-radius: 10px; - -moz-border-radius: 10px; border-radius: 10px; cursor: pointer; display: inline-block; @@ -2358,6 +2377,10 @@ article.result-images .detail { * SearXNG, A privacy-respecting, hackable metasearch engine */ #search { + padding: 0; + margin: 0; +} +#search_header { padding: 1.5em 2em 0 7rem; margin: 0; background: var(--color-header-background); @@ -2368,21 +2391,58 @@ article.result-images .detail { grid-template-columns: 3rem 1fr; grid-template-areas: "logo search" "spacer categories"; } +.category { + display: inline-block; + position: relative; + margin-right: 1rem; + padding: 0; +} +.category input { + display: none; +} +.category label { + cursor: pointer; + padding: 0.2rem 0; + display: inline-flex; + text-transform: capitalize; + font-size: 0.9em; + border-bottom: 2px solid transparent; + -webkit-touch-callout: none; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} +.category label svg { + padding-right: 0.2rem; +} +.category label div.category_name { + margin: auto 0; +} +.category input[type="checkbox"]:checked + label { + color: var(--color-categories-item-selected-font); + border-bottom: 2px solid var(--color-categories-item-border-selected); +} #search_logo { grid-area: logo; + display: flex; + align-items: center; + justify-content: center; } -.search_logo_img { - width: 40px; +#search_logo svg { + flex: 1; + width: 30px; + height: 30px; + margin: 0.5rem 0 auto 0; } .search_categories { grid-area: categories; } -#search_wrapper { +.search_box { + margin: 0; padding: 0; grid-area: search; -} -.search_box { - margin: 0 12px 0 0; display: inline-flex; flex-direction: row; white-space: nowrap; @@ -2417,7 +2477,7 @@ article.result-images .detail { border-collapse: separate; box-sizing: border-box; margin: 0; - padding: 8px; + padding: 10px; background: none repeat scroll 0 0 var(--color-search-background); border: 1px solid var(--color-search-border); border-radius: 0; @@ -2447,18 +2507,30 @@ article.result-images .detail { background-color: var(--color-search-background-hover); color: var(--color-search-background); } +.no-js #clear_search, .no-js #send_search { width: auto !important; + border-left: 1px solid var(--color-search-border); + padding: 10px; } .search_filters { - display: inline-block; - margin: 0.8rem 0 0 0; + margin: 0.6rem 0 0 10.6rem; +} +.search_filters select { + background-color: inherit; +} +.search_filters select:hover, +.search_filters select:focus { + color: var(--color-base-font); } @media screen and (max-width: 80em) { - #search { + #search_header { padding: 1.5em 0.5rem 0 0.5rem; column-gap: 0.5rem; } + .search_filters { + margin: 0.6rem 0 0 3.5rem; + } #categories { font-size: 90%; clear: both; @@ -2482,7 +2554,6 @@ article.result-images .detail { html.touch #main_index #categories, html.touch #main_results #categories { width: 100%; - margin: 0; text-align: left; overflow-x: scroll; overflow-y: hidden; @@ -2490,10 +2561,10 @@ article.result-images .detail { } } @media screen and (max-width: 50em) { - #search { + #search_header { width: 100%; margin: 0; - padding: 0.1em 0 0 0; + padding: 0.1rem 0 0 0; column-gap: 0; row-gap: 0; grid-template-areas: "logo search" "categories categories"; @@ -2501,19 +2572,13 @@ article.result-images .detail { .search_logo { padding: 0; } - #search_wrapper { - width: 100%; - padding: 0; - } .search_box { width: 99%; - margin: 0.1em; - padding: 0 0.1em 0 0; display: flex; flex-direction: row; } #q { - width: auto !important; + width: 100%; flex: 1; } #main_results #q:placeholder-shown ~ #send_search { @@ -2521,8 +2586,7 @@ article.result-images .detail { transition: margin-right 0.1s; } .search_filters { - display: block; - margin: 0.8em 0; + margin: 0; } .language, .time_range { @@ -2531,13 +2595,25 @@ article.result-images .detail { .category { display: block; width: 100%; + margin: 0; } .category label { - padding: 10px !important; + padding: 0.8rem !important; + margin: 0 !important; + } + .category label svg { + display: none; + } +} +@media screen and (max-width: 20rem) { + #search_header { + grid-template-areas: "search search" "categories categories"; + } + #search_logo { + display: none; } } #categories { - margin: 0 10px 0 0; -webkit-touch-callout: none; -webkit-user-select: none; -khtml-user-select: none; @@ -2549,52 +2625,30 @@ article.result-images .detail { width: 0; height: 0; } -.category { - display: inline-block; +#categories_container { position: relative; - margin: 0 3px; - padding: 0; -} -.category input { - display: none; -} -.category label { - cursor: pointer; - padding: 0.3rem 0.75rem 0.5rem 0.75rem; - margin: 0; - display: block; - text-transform: capitalize; - font-size: 0.9em; - border-bottom: 2px solid transparent; - -webkit-touch-callout: none; - -webkit-user-select: none; - -khtml-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; } -.category input[type="checkbox"]:checked + label { - color: var(--color-categories-item-selected-font); - border-bottom: 2px solid var(--color-categories-item-border-selected); +.ion-icon { + display: inline-block; + vertical-align: bottom; + line-height: 1; + text-decoration: inherit; } -#categories_container { - position: relative; +.ion-icon-small { + width: 1rem; + height: 1rem; + display: inline-block; + vertical-align: bottom; + line-height: 1; + text-decoration: inherit; } .ion-icon-big { + width: 1.5rem; + height: 1.5rem; display: inline-block; + vertical-align: bottom; line-height: 1; - font-weight: normal; - font-style: normal; - speak: none; text-decoration: inherit; - text-transform: none; - text-rendering: auto; - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; - font-size: 149%; -} -.ion-icon-big:before { - font-family: "ion"; } html { font-family: sans-serif; @@ -2660,8 +2714,6 @@ input[type="submit"], display: inline-block; background: var(--color-btn-background); color: var(--color-btn-font); - -webkit-border-radius: 10px; - -moz-border-radius: 10px; border-radius: 10px; border: 0; cursor: pointer; @@ -2679,15 +2731,11 @@ a:visited .highlight { article[data-vim-selected] { background: var(--color-result-vim-selected); border-left: 0.2rem solid var(--color-result-vim-arrow); - -webkit-border-radius: 0 10px 10px 0; - -moz-border-radius: 0 10px 10px 0; border-radius: 0 10px 10px 0; } article.result-images[data-vim-selected] { background: var(--color-result-vim-arrow); border: none; - -webkit-border-radius: 10px; - -moz-border-radius: 10px; border-radius: 10px; } article.result-images[data-vim-selected] .image_thumbnail { @@ -2700,8 +2748,6 @@ article[data-vim-selected].category-music, article[data-vim-selected].category-files, article[data-vim-selected].category-social { border: 1px solid var(--color-result-vim-arrow); - -webkit-border-radius: 10px; - -moz-border-radius: 10px; border-radius: 10px; } .result { @@ -2710,7 +2756,7 @@ article[data-vim-selected].category-social { border-left: 0.2rem solid transparent; } .result h3 { - font-size: 1.1em; + font-size: 1.2rem; word-wrap: break-word; margin: 0.4rem 0 0.4rem 0; padding: 0; @@ -2755,13 +2801,35 @@ article[data-vim-selected].category-social { background: inherit; font-weight: normal; } -.result .url { - font-size: 0.96em; - margin: 0 0 3px 0; - padding: 0; - max-width: 54em; - word-wrap: break-word; +.result .url_wrapper { + display: flex; + font-size: 1rem; color: var(--color-result-url-font); + flex-wrap: nowrap; + overflow: hidden; + flex-direction: row; + margin: 0; + padding: 0; +} +.result .url_wrapper .url_o1 { + white-space: nowrap; + flex-shrink: 1; +} +.result .url_wrapper .url_o1::after { + content: " "; + width: 1ch; + display: inline-block; +} +.result .url_wrapper .url_o2 { + overflow: hidden; + white-space: nowrap; + flex-basis: content; + flex-grow: 0; + flex-shrink: 1; + text-align: right; +} +.result .url_wrapper .url_o2 .url_i2 { + float: right; } .result .published_date { font-size: 0.8em; @@ -2769,16 +2837,14 @@ article[data-vim-selected].category-social { } .result img.thumbnail { float: left; - padding: 0 5px 10px 0; - width: 20em; - min-width: 20em; - min-height: 8em; + padding: 0.6rem 1rem 0 0; + width: 20rem; } .result img.image { float: left; - padding: 0 5px 10px 0; - width: 100px; - max-height: 100px; + padding: 0.6rem 1rem 0 0; + width: 7rem; + max-height: 7rem; object-fit: scale-down; object-position: right top; } @@ -2793,8 +2859,6 @@ article[data-vim-selected].category-social { .category-social { border: 1px solid var(--color-result-border); margin: 1rem 0; - -webkit-border-radius: 10px; - -moz-border-radius: 10px; border-radius: 10px; } .category-social .image { @@ -2821,6 +2885,9 @@ article[data-vim-selected].category-social { color: var(--color-result-link-font-highlight); background: inherit; } +.empty_element { + font-style: italic; +} .result-images { display: inline-block; margin: 0; @@ -2876,7 +2943,7 @@ article[data-vim-selected].category-social { display: none !important; } #results { - margin: 2rem 2rem 0 10rem; + margin: 1rem 2rem 0 10rem; display: grid; grid-template-columns: 45rem 25rem; grid-template-rows: min-content min-content 1fr min-content; @@ -2938,8 +3005,6 @@ article[data-vim-selected].category-social { } #corrections input[type="submit"] { font-size: 0.8rem; - -webkit-border-radius: 5px; - -moz-border-radius: 5px; border-radius: 5px; } #suggestions .title, @@ -2953,11 +3018,9 @@ article[data-vim-selected].category-social { border: 1px solid var(--color-answer-border); background: var(--color-answer-background); padding: 1rem; - margin: 1rem 0.5rem; + margin: 1rem 0; margin-top: 0; color: var(--color-answer-font); - -webkit-border-radius: 10px; - -moz-border-radius: 10px; border-radius: 10px; } #answers h4 { @@ -2976,8 +3039,6 @@ article[data-vim-selected].category-social { border: 1px solid var(--color-sidebar-border); padding: 1rem; font-size: 0.9em; - -webkit-border-radius: 10px; - -moz-border-radius: 10px; border-radius: 10px; } #sidebar .infobox h2 { @@ -3023,7 +3084,7 @@ article[data-vim-selected].category-social { #linkto_preferences { position: absolute; right: 10px; - top: 2rem; + top: 2.2rem; padding: 0; border: 0; display: block; @@ -3057,8 +3118,6 @@ article[data-vim-selected].category-social { left: 56.3rem; transition: opacity 0.5s; opacity: 0; - -webkit-border-radius: 10px; - -moz-border-radius: 10px; border-radius: 10px; } #backToTop a { @@ -3140,7 +3199,7 @@ article[data-vim-selected].category-social { margin: 2rem 0 0 0 !important; } #main_results div#results { - margin: 2rem auto 0 auto; + margin: 1rem auto 0 auto; justify-content: center; display: grid; grid-template-columns: 45rem; @@ -3150,7 +3209,7 @@ article[data-vim-selected].category-social { } } #main_results div#results.only_template_images { - margin: 2rem 0.5rem 0 0.5rem; + margin: 1rem 0.5rem 0 0.5rem; display: grid; grid-template-columns: 100%; grid-template-rows: min-content min-content 1fr min-content min-content; @@ -3190,15 +3249,11 @@ article[data-vim-selected].category-social { } article[data-vim-selected] { border: 1px solid var(--color-result-vim-arrow); - -webkit-border-radius: 10px; - -moz-border-radius: 10px; border-radius: 10px; } .result { border: 1px solid var(--color-result-border); margin: 1rem 0; - -webkit-border-radius: 10px; - -moz-border-radius: 10px; border-radius: 10px; } .result-images { diff --git a/searx/static/themes/simple/css/searxng-rtl.min.css b/searx/static/themes/simple/css/searxng-rtl.min.css index 97d88b339..47962d221 100644 --- a/searx/static/themes/simple/css/searxng-rtl.min.css +++ b/searx/static/themes/simple/css/searxng-rtl.min.css @@ -1 +1 @@ -.github-issue-button{display:block;padding:8px 16px;font-family:sans-serif;font-size:16px;color:#fff;background-color:#238636!important;border:#2ea043;border-radius:10px!important;box-shadow:transparent 0 0 0 0}.github-issue-button:hover{background-color:#2ea043}.issue-hide{display:none}.engine-stats .engine-name{width:20rem}.engine-stats .engine-score{width:7rem;text-align:right}.engine-stats .engine-reliability{text-align:right}.engine-stats table.engine-error{max-width:1280px;margin:1rem;border:1px solid gray}.engine-stats failed-test,.engine-stats table.engine-error td.engine-error-type,.engine-stats table.engine-error th.engine-error-type{width:10rem}.engine-stats table.engine-error span.log_parameters{border-right:1px solid gray;padding:0 1rem 0 0;margin:0 0 0 .5rem}.bar-chart-value{width:3em;display:inline-block;text-align:right;padding-right:.5rem}.bar-chart-graph{width:calc(100% - 5rem);display:inline-block}.bar-chart-bar{border:3px solid #5bc0de;margin:1px 0}.bar-chart-serie1{border:3px solid #5bc0de;margin:1px 0;float:left}.bar-chart-serie2{border:3px solid #deb15b;margin:1px 0;float:left}.bar0{width:0;border:0}.bar1{width:1%}.bar2{width:2%}.bar3{width:3%}.bar4{width:4%}.bar5{width:5%}.bar6{width:6%}.bar7{width:7%}.bar8{width:8%}.bar9{width:9%}.bar10{width:10%}.bar11{width:11%}.bar12{width:12%}.bar13{width:13%}.bar14{width:14%}.bar15{width:15%}.bar16{width:16%}.bar17{width:17%}.bar18{width:18%}.bar19{width:19%}.bar20{width:20%}.bar21{width:21%}.bar22{width:22%}.bar23{width:23%}.bar24{width:24%}.bar25{width:25%}.bar26{width:26%}.bar27{width:27%}.bar28{width:28%}.bar29{width:29%}.bar30{width:30%}.bar31{width:31%}.bar32{width:32%}.bar33{width:33%}.bar34{width:34%}.bar35{width:35%}.bar36{width:36%}.bar37{width:37%}.bar38{width:38%}.bar39{width:39%}.bar40{width:40%}.bar41{width:41%}.bar42{width:42%}.bar43{width:43%}.bar44{width:44%}.bar45{width:45%}.bar46{width:46%}.bar47{width:47%}.bar48{width:48%}.bar49{width:49%}.bar50{width:50%}.bar51{width:51%}.bar52{width:52%}.bar53{width:53%}.bar54{width:54%}.bar55{width:55%}.bar56{width:56%}.bar57{width:57%}.bar58{width:58%}.bar59{width:59%}.bar60{width:60%}.bar61{width:61%}.bar62{width:62%}.bar63{width:63%}.bar64{width:64%}.bar65{width:65%}.bar66{width:66%}.bar67{width:67%}.bar68{width:68%}.bar69{width:69%}.bar70{width:70%}.bar71{width:71%}.bar72{width:72%}.bar73{width:73%}.bar74{width:74%}.bar75{width:75%}.bar76{width:76%}.bar77{width:77%}.bar78{width:78%}.bar79{width:79%}.bar80{width:80%}.bar81{width:81%}.bar82{width:82%}.bar83{width:83%}.bar84{width:84%}.bar85{width:85%}.bar86{width:86%}.bar87{width:87%}.bar88{width:88%}.bar89{width:89%}.bar90{width:90%}.bar91{width:91%}.bar92{width:92%}.bar93{width:93%}.bar94{width:94%}.bar95{width:95%}.bar96{width:96%}.bar97{width:97%}.bar98{width:98%}.bar99{width:99%}.bar100{width:100%}.osm-map-box{height:300px;width:100%;margin:10px 0}/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0}main{display:block}h1{font-size:2em;margin:.67em 0}hr{box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring,button:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none}@font-face{font-family:ion;src:url(../fonts/ion.eot?31a1b735188db616a2142d17947e8a45);src:url(../fonts/ion.eot?31a1b735188db616a2142d17947e8a45#iefix) format("embedded-opentype"),url(../fonts/ion.woff2?31a1b735188db616a2142d17947e8a45) format("woff2"),url(../fonts/ion.woff?31a1b735188db616a2142d17947e8a45) format("woff"),url(../fonts/ion.ttf?31a1b735188db616a2142d17947e8a45) format("truetype"),url(../fonts/ion.svg?31a1b735188db616a2142d17947e8a45#ion) format("svg");font-weight:400;font-style:normal}.ion-icon{display:inline-block;line-height:1;font-weight:400;font-style:normal;speak:none;text-decoration:inherit;text-transform:none;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.ion-icon:before{font-family:ion}.ion-navicon-round:before{content:"\f101"}.ion-search:before{content:"\f102"}.ion-play:before{content:"\f103"}.ion-link:before{content:"\f104"}.ion-chevron-up:before{content:"\f105"}.ion-chevron-left:before{content:"\f106"}.ion-chevron-right:before{content:"\f107"}.ion-arrow-down-a:before{content:"\f108"}.ion-arrow-up-a:before{content:"\f109"}.ion-arrow-swap:before{content:"\f10a"}.ion-arrow-dropdown:before{content:"\f10b"}.ion-globe:before{content:"\f10c"}.ion-time:before{content:"\f10d"}.ion-location:before{content:"\f10e"}.ion-warning:before{content:"\f10f"}.ion-error:before{content:"\f110"}.ion-film-outline:before{content:"\f111"}.ion-music-note:before{content:"\f112"}.ion-more-vertical:before{content:"\f113"}.ion-magnet:before{content:"\f114"}.ion-close:before{content:"\f115"}:root{--color-base-font:#444;--color-base-font-rgb:68,68,68;--color-base-background:#fff;--color-url-font:#29314d;--color-url-visited-font:#80b;--color-header-background:#f7f7f7;--color-header-border:#ddd;--color-footer-background:#f7f7f7;--color-footer-border:#ddd;--color-sidebar-border:#ddd;--color-sidebar-font:#000;--color-backtotop-font:#444;--color-backtotop-border:#ddd;--color-backtotop-background:#fff;--color-btn-background:#3050ff;--color-btn-font:#fff;--color-search-border:#bbb;--color-search-background:#fff;--color-search-font:#222;--color-search-background-hover:#3050ff;--color-error:#db3434;--color-error-background:#fae1e1;--color-warning:#dbba34;--color-warning-background:#faf5e1;--color-success:#42db34;--color-success-background:#e3fae1;--color-categories-item-selected-font:#3050ff;--color-categories-item-border-selected:#3050ff;--color-autocomplete-font:#000;--color-autocomplete-border:#bbb;--color-autocomplete-background:#fff;--color-autocomplete-background-hover:#f7f7f7;--color-answer-border:#ddd;--color-answer-font:#444;--color-answer-background:#f7f7f7;--color-result-border:#ddd;--color-result-url-font:#000;--color-result-vim-selected:#f7f7f7;--color-result-vim-arrow:#000bbb;--color-result-description-highlight-font:#000;--color-result-link-font:#000bbb;--color-result-link-font-highlight:#000bbb;--color-result-link-visited-font:#80b;--color-result-publishdate-font:#777;--color-result-engines-font:#777;--color-result-search-url-border:#ddd;--color-result-search-url-font:#000;--color-result-image-span-background-hover:rgba(0, 0, 0, 0.6);--color-result-image-span-font:#fff;--color-result-image-background:#000bbb;--color-settings-tr-hover:#f7f7f7;--color-settings-engine-description-font:#909090;--color-result-detail-font:#fff;--color-result-detail-label-font:lightgray;--color-result-detail-background:#000;--color-result-detail-hr:#555;--color-result-detail-link:#8af;--color-result-detail-loader-border:rgba(255, 255, 255, 0.2);--color-result-detail-loader-borderleft:rgba(0, 0, 0, 0);--color-toolkit-badge-font:#fff;--color-toolkit-badge-background:#777;--color-toolkit-kbd-font:#fff;--color-toolkit-kbd-background:#000;--color-toolkit-dialog-border:#ddd;--color-toolkit-dialog-background:#fff;--color-toolkit-tabs-label-border:#fff;--color-toolkit-tabs-section-border:#ddd;--color-toolkit-select-border:#ddd;--color-toolkit-select-border-hover:#bbb;--color-toolkit-checkbox-onoff-background:#ddd;--color-toolkit-checkbox-onoff-label-background:#3050ff;--color-toolkit-checkbox-onoff-checked-background:#aaa;--color-toolkit-checkbox-label-background:#fff;--color-toolkit-checkbox-label-border:#ddd;--color-toolkit-checkbox-input-border:#3050ff;--color-toolkit-engine-tooltip-border:#ddd;--color-toolkit-engine-tooltip-background:#fff;--color-toolkit-loader-border:rgba(0, 0, 0, 0.2);--color-toolkit-loader-borderleft:rgba(255, 255, 255, 0)}@media (prefers-color-scheme:dark){:root{--color-base-font:#bbb;--color-base-font-rgb:187,187,187;--color-base-background:#222;--color-url-font:#8af;--color-url-visited-font:#96b;--color-header-background:#181818;--color-header-border:#333;--color-footer-background:#181818;--color-footer-border:#333;--color-sidebar-border:#555;--color-sidebar-font:#fff;--color-backtotop-font:#bbb;--color-backtotop-border:#333;--color-backtotop-background:#181818;--color-btn-background:#58f;--color-btn-font:#222;--color-search-border:#555;--color-search-background:#222;--color-search-font:#fff;--color-search-background-hover:#58f;--color-error:#f55b5b;--color-error-background:#390a0a;--color-warning:#f1d561;--color-warning-background:#39300a;--color-success:#79f56e;--color-success-background:#0e390a;--color-categories-item-selected-font:#58f;--color-categories-item-border-selected:#58f;--color-autocomplete-font:#fff;--color-autocomplete-border:#555;--color-autocomplete-background:#222;--color-autocomplete-background-hover:#181818;--color-answer-border:#333;--color-answer-font:#bbb;--color-answer-background:#181818;--color-result-border:#333;--color-result-url-font:#fff;--color-result-vim-selected:#181818;--color-result-vim-arrow:#8af;--color-result-description-highlight-font:#fff;--color-result-link-font:#8af;--color-result-link-font-highlight:#8af;--color-result-link-visited-font:#96b;--color-result-publishdate-font:#777;--color-result-engines-font:#777;--color-result-search-url-border:#555;--color-result-search-url-font:#fff;--color-result-detail-font:#fff;--color-result-detail-label-font:lightgray;--color-result-detail-background:#000;--color-result-detail-hr:#555;--color-result-detail-link:#8af;--color-result-detail-loader-border:rgba(255, 255, 255, 0.2);--color-result-detail-loader-borderleft:rgba(0, 0, 0, 0);--color-result-image-span-background-hover:rgba(0, 0, 0, 0.6);--color-result-image-span-font:#fff;--color-result-image-background:#8af;--color-settings-tr-hover:#2d2d2d;--color-settings-engine-description-font:#909090;--color-toolkit-badge-font:#fff;--color-toolkit-badge-background:#777;--color-toolkit-kbd-font:#000;--color-toolkit-kbd-background:#fff;--color-toolkit-dialog-border:#555;--color-toolkit-dialog-background:#222;--color-toolkit-tabs-label-border:#222;--color-toolkit-tabs-section-border:#555;--color-toolkit-select-border:#555;--color-toolkit-select-border-hover:#777;--color-toolkit-checkbox-onoff-background:#3c3b31;--color-toolkit-checkbox-onoff-label-background:#58f;--color-toolkit-checkbox-onoff-checked-background:#ddd;--color-toolkit-checkbox-label-background:#fff;--color-toolkit-checkbox-label-border:#333;--color-toolkit-checkbox-input-border:#58f;--color-toolkit-engine-tooltip-border:#333;--color-toolkit-engine-tooltip-background:#222;--color-toolkit-loader-border:rgba(255, 255, 255, 0.2);--color-toolkit-loader-borderleft:rgba(0, 0, 0, 0)}}.code-highlight pre{overflow:auto;background-color:inherit;color:inherit;border:inherit}.code-highlight .linenos{-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:default;margin-right:8px;text-align:right}.code-highlight .linenos::selection{background:0 0}.code-highlight .linenos::-moz-selection{background:0 0}.code-highlight pre{line-height:125%}.code-highlight td.linenos .normal{color:inherit;background-color:transparent;padding-left:5px;padding-right:5px}.code-highlight span.linenos{color:inherit;background-color:transparent;padding-left:5px;padding-right:5px}.code-highlight td.linenos .special{color:#000;background-color:#ffffc0;padding-left:5px;padding-right:5px}.code-highlight span.linenos.special{color:#000;background-color:#ffffc0;padding-left:5px;padding-right:5px}.code-highlight .hll{background-color:#ffc}.code-highlight{background:#f8f8f8}.code-highlight .c{color:#408080;font-style:italic}.code-highlight .err{border:1px solid red}.code-highlight .k{color:green;font-weight:700}.code-highlight .o{color:#666}.code-highlight .ch{color:#408080;font-style:italic}.code-highlight .cm{color:#408080;font-style:italic}.code-highlight .cp{color:#BC7A00}.code-highlight .cpf{color:#408080;font-style:italic}.code-highlight .c1{color:#408080;font-style:italic}.code-highlight .cs{color:#408080;font-style:italic}.code-highlight .gd{color:#A00000}.code-highlight .ge{font-style:italic}.code-highlight .gr{color:red}.code-highlight .gh{color:navy;font-weight:700}.code-highlight .gi{color:#00A000}.code-highlight .go{color:#888}.code-highlight .gp{color:navy;font-weight:700}.code-highlight .gs{font-weight:700}.code-highlight .gu{color:purple;font-weight:700}.code-highlight .gt{color:#04D}.code-highlight .kc{color:green;font-weight:700}.code-highlight .kd{color:green;font-weight:700}.code-highlight .kn{color:green;font-weight:700}.code-highlight .kp{color:green}.code-highlight .kr{color:green;font-weight:700}.code-highlight .kt{color:#B00040}.code-highlight .m{color:#666}.code-highlight .s{color:#BA2121}.code-highlight .na{color:#7D9029}.code-highlight .nb{color:green}.code-highlight .nc{color:#00F;font-weight:700}.code-highlight .no{color:#800}.code-highlight .nd{color:#A2F}.code-highlight .ni{color:#999;font-weight:700}.code-highlight .ne{color:#D2413A;font-weight:700}.code-highlight .nf{color:#00F}.code-highlight .nl{color:#A0A000}.code-highlight .nn{color:#00F;font-weight:700}.code-highlight .nt{color:green;font-weight:700}.code-highlight .nv{color:#19177C}.code-highlight .ow{color:#A2F;font-weight:700}.code-highlight .w{color:#bbb}.code-highlight .mb{color:#666}.code-highlight .mf{color:#666}.code-highlight .mh{color:#666}.code-highlight .mi{color:#666}.code-highlight .mo{color:#666}.code-highlight .sa{color:#BA2121}.code-highlight .sb{color:#BA2121}.code-highlight .sc{color:#BA2121}.code-highlight .dl{color:#BA2121}.code-highlight .sd{color:#BA2121;font-style:italic}.code-highlight .s2{color:#BA2121}.code-highlight .se{color:#B62;font-weight:700}.code-highlight .sh{color:#BA2121}.code-highlight .si{color:#B68;font-weight:700}.code-highlight .sx{color:green}.code-highlight .sr{color:#B68}.code-highlight .s1{color:#BA2121}.code-highlight .ss{color:#19177C}.code-highlight .bp{color:green}.code-highlight .fm{color:#00F}.code-highlight .vc{color:#19177C}.code-highlight .vg{color:#19177C}.code-highlight .vi{color:#19177C}.code-highlight .vm{color:#19177C}.code-highlight .il{color:#666}html.no-js .hide_if_nojs{display:none}html.js .show_if_nojs{display:none}.center{text-align:center}.right{float:right}.left{float:left}.invisible{display:none!important}.list-unstyled{list-style-type:none}.list-unstyled li{margin-top:4px;margin-bottom:4px}.danger{background-color:var(--color-error-background)}.warning{background:var(--color-warning-background)}.success{background:var(--color-success-background)}.badge{display:inline-block;color:var(--color-toolkit-badge-font);background-color:var(--color-toolkit-badge-background);text-align:center;white-space:nowrap;vertical-align:baseline;min-width:10px;padding:1px 5px;border-radius:5px}kbd{padding:2px 4px;margin:1px;font-size:90%;color:var(--color-toolkit-kbd-font);background:var(--color-toolkit-kbd-background)}table{width:100%}table.striped tr{border-bottom:1px solid var(--color-settings-tr-hover)}th{padding:.4em}td{padding:0 4px}tr:hover{background:var(--color-settings-tr-hover)!important}div.selectable_url{display:block;border:1px solid var(--color-result-search-url-border);padding:4px;color:var(--color-result-search-url-font);margin:.1em;overflow:hidden;height:1.2em;line-height:1.2em;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px}div.selectable_url pre{display:block;font-size:.8em;word-break:break-all;margin:.1em;-webkit-user-select:all;-moz-user-select:all;-ms-user-select:element;user-select:all}.dialog-error{position:relative;padding:1em 1em 1em 2.7em;margin:0 0 1em 0;border:1px solid var(--color-toolkit-dialog-border);text-align:left;-webkit-border-radius:10px;-moz-border-radius:10px;border-radius:10px;color:var(--color-error);background:var(--color-error-background);border-color:var(--color-error)}.dialog-error::before{position:absolute;top:.5em;left:.5em;font-family:ion;font-size:1.5em}.dialog-error .close{float:right;position:relative;top:-3px;color:inherit;font-size:1.5em}.dialog-error ol,.dialog-error p,.dialog-error ul{margin:1px 0 0 0}.dialog-error table{width:auto}.dialog-error tr{vertical-align:text-top}.dialog-error tr:hover{background:0 0}.dialog-error td{padding:0 1em 0 0}.dialog-error h4{margin-top:.3em;margin-bottom:.3em}.dialog-error:before{content:"\f110"}.dialog-warning{position:relative;padding:1em 1em 1em 2.7em;margin:0 0 1em 0;border:1px solid var(--color-toolkit-dialog-border);text-align:left;-webkit-border-radius:10px;-moz-border-radius:10px;border-radius:10px;color:var(--color-warning);background:var(--color-warning-background);border-color:var(--color-warning)}.dialog-warning::before{position:absolute;top:.5em;left:.5em;font-family:ion;font-size:1.5em}.dialog-warning .close{float:right;position:relative;top:-3px;color:inherit;font-size:1.5em}.dialog-warning ol,.dialog-warning p,.dialog-warning ul{margin:1px 0 0 0}.dialog-warning table{width:auto}.dialog-warning tr{vertical-align:text-top}.dialog-warning tr:hover{background:0 0}.dialog-warning td{padding:0 1em 0 0}.dialog-warning h4{margin-top:.3em;margin-bottom:.3em}.dialog-warning:before{content:"\f10f"}.dialog-modal{position:relative;padding:1em 1em 1em 2.7em;margin:0 0 1em 0;border:1px solid var(--color-toolkit-dialog-border);text-align:left;-webkit-border-radius:10px;-moz-border-radius:10px;border-radius:10px;background:var(--color-toolkit-dialog-background);position:fixed;top:50%;left:50%;margin:0 auto;transform:translate(-50%,-50%);z-index:10000000}.dialog-modal::before{position:absolute;top:.5em;left:.5em;font-family:ion;font-size:1.5em}.dialog-modal .close{float:right;position:relative;top:-3px;color:inherit;font-size:1.5em}.dialog-modal ol,.dialog-modal p,.dialog-modal ul{margin:1px 0 0 0}.dialog-modal table{width:auto}.dialog-modal tr{vertical-align:text-top}.dialog-modal tr:hover{background:0 0}.dialog-modal td{padding:0 1em 0 0}.dialog-modal h4{margin-top:.3em;margin-bottom:.3em}.btn-collapse{cursor:pointer}.scrollx{overflow-x:auto;overflow-y:hidden;display:block;padding:0;margin:0;border:none}.tabs .tabs>label{font-size:90%}.tabs{display:-webkit-box;display:-moz-box;display:-webkit-flex;display:-ms-flexbox;display:flex;flex-wrap:wrap;width:100%;min-width:100%}.tabs>*{order:2}.tabs>input[type=radio]{display:none}.tabs>label{order:1;padding:.7em;margin:0 .7em;letter-spacing:.5px;text-transform:uppercase;border:solid var(--color-toolkit-tabs-label-border);border-width:0 0 2px 0;-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:pointer}.tabs>label:hover{border-bottom:2px solid var(--color-categories-item-border-selected)}.tabs>section{min-width:100%;padding:.7rem 0;box-sizing:border-box;border-top:1px solid var(--color-toolkit-tabs-section-border);display:none}.tabs>label:last-of-type{border-bottom:2px solid var(--color-categories-item-border-selected);background:var(--color-categories-item-selected);color:var(--color-categories-item-selected-font);font-weight:700;letter-spacing:-.1px}.tabs>section:last-of-type{display:block}html body .tabs>input:checked~section{display:none}html body .tabs>input:checked~label{position:inherited;background:inherit;border-bottom:2px solid transparent;font-weight:400;color:inherit}html body .tabs>input:checked~label:hover{border-bottom:2px solid var(--color-categories-item-border-selected)}html body .tabs>input:checked+label{border-bottom:2px solid var(--color-categories-item-border-selected);background:var(--color-categories-item-selected);color:var(--color-categories-item-selected-font)}html body .tabs>input:checked+label+section{display:block}select{height:28px;margin:0 1em 0 0;padding:2px 8px 2px 0!important;color:var(--color-search-font);font-size:12px;z-index:2}select:focus,select:hover{cursor:pointer}@supports ((background-position-x:100%) and ((appearance:none) or (-webkit-appearance:none) or (-moz-appearance:none))){select{appearance:none;-webkit-appearance:none;-moz-appearance:none;border:none;border-bottom:1px solid var(--color-toolkit-select-border);background:url("data:image/svg+xml;charset=UTF-8,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22utf-8%22%3F%3E%0A%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22512%22%20height%3D%22512%22%20viewBox%3D%220%200%20512%20512%22%3E%0A%3Cg%3E%3Cpolygon%20points%3D%22128%2C192%20256%2C320%20384%2C192%22%2F%3E%3C%2Fg%3E%0A%3C%2Fsvg%3E") no-repeat;background-position-x:105%;background-size:2em;background-origin:content-box;outline:medium none}select:focus,select:hover{border-bottom:1px solid var(--color-toolkit-select-border-hover)}select option{background-color:var(--color-base-background)}@media (prefers-color-scheme:dark){select{background-image:url("data:image/svg+xml;charset=UTF-8,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22utf-8%22%3F%3E%0A%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22512%22%20height%3D%22512%22%20viewBox%3D%220%200%20512%20512%22%3E%0A%3Cg%3E%3Cpolygon%20fill%3D%22%23ddd%22%20points%3D%22128%2C192%20256%2C320%20384%2C192%22%2F%3E%3C%2Fg%3E%0A%3C%2Fsvg%3E")}}}@supports (border-radius:50px){.checkbox-onoff{display:inline-block;width:40px;height:10px;background:var(--color-toolkit-checkbox-onoff-background);margin:8px 1rem;position:relative;border-radius:50px}.checkbox-onoff label{display:block;width:20px;height:20px;position:absolute;top:-5px;cursor:pointer;border-radius:50px;transition:all .4s ease;left:27px;background-color:var(--color-toolkit-checkbox-onoff-label-background)}.checkbox-onoff input[type=checkbox]{visibility:hidden}.checkbox-onoff input[type=checkbox]:checked+label{left:-5px;background:var(--color-toolkit-checkbox-onoff-checked-background)}}@supports (transform:rotate(-45deg)){.checkbox{width:20px;position:relative;margin:20px auto}.checkbox label{width:20px;height:20px;cursor:pointer;position:absolute;top:0;left:0;background:var(--color-toolkit-checkbox-label-background);-webkit-border-radius:10px;-moz-border-radius:10px;border-radius:10px}.checkbox label::after{content:'';width:9px;height:5px;position:absolute;top:4px;left:4px;border:3px solid var(--color-toolkit-checkbox-label-border);border-top:none;border-right:none;background:0 0;opacity:0;transform:rotate(-45deg)}.checkbox input[type=checkbox]{visibility:hidden}.checkbox input[type=checkbox]:checked+label::after{border-color:var(--color-toolkit-checkbox-input-border);opacity:1}.checkbox input[disabled]+label{background-color:transparent!important;cursor:inherit}.checkbox input:not(:checked):not([readonly]):not([disabled])+label:hover::after{opacity:.5}}@media screen and (max-width:50em){.tabs>label{width:100%}}.loader,.loader::after{border-radius:50%;width:2em;height:2em}.loader{margin:1em auto;font-size:10px;position:relative;text-indent:-9999em;border-top:.5em solid var(--color-toolkit-loader-border);border-right:.5em solid var(--color-toolkit-loader-border);border-bottom:.5em solid var(--color-toolkit-loader-border);border-left:.5em solid var(--color-toolkit-loader-borderleft);-webkit-transform:translateZ(0);-ms-transform:translateZ(0);transform:translateZ(0);-webkit-animation:load8 1.2s infinite linear;animation:load8 1.2s infinite linear}@-webkit-keyframes load8{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes load8{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}.engine-tooltip{display:none;position:absolute;padding:.5rem 1rem;margin:0 0 0 2rem;border:1px solid var(--color-toolkit-engine-tooltip-border);background:var(--color-toolkit-engine-tooltip-background);font-size:14px;font-weight:400;z-index:1000000;text-align:left;-webkit-border-radius:10px;-moz-border-radius:10px;border-radius:10px}.engine-tooltip:hover,td:hover .engine-tooltip,th:hover .engine-tooltip{display:inline-block}.stacked-bar-chart{margin:0;padding:0 .125rem 0 4rem;width:100%;width:-moz-available;width:-webkit-fill-available;width:fill;flex-direction:row;flex-wrap:nowrap;align-items:center;display:inline-flex}.stacked-bar-chart-value{width:3rem;display:inline-block;position:absolute;padding:0 .5rem;text-align:right}.stacked-bar-chart-base{display:flex;flex-shrink:0;flex-grow:0;flex-basis:unset}.stacked-bar-chart-median{display:flex;flex-shrink:0;flex-grow:0;flex-basis:unset;background:var(--color-base-font);border:1px solid rgba(var(--color-base-font-rgb),.9);padding:.3rem 0}.stacked-bar-chart-rate80{display:flex;flex-shrink:0;flex-grow:0;flex-basis:unset;background:0 0;border:1px solid rgba(var(--color-base-font-rgb),.3);padding:.3rem 0}.stacked-bar-chart-rate95{display:flex;flex-shrink:0;flex-grow:0;flex-basis:unset;background:0 0;border-bottom:1px dotted rgba(var(--color-base-font-rgb),.5);padding:0}.stacked-bar-chart-rate100{display:flex;flex-shrink:0;flex-grow:0;flex-basis:unset;background:0 0;border-left:1px solid rgba(var(--color-base-font-rgb),.9);padding:.4rem 0;width:1px}/*! Autocomplete.js v2.6.3 | license MIT | (c) 2017, Baptiste Donaux | http://autocomplete-js.com */.autocomplete{position:absolute;max-height:0;overflow-y:hidden;text-align:left;-webkit-border-radius:10px;-moz-border-radius:10px;border-radius:10px}.autocomplete:active,.autocomplete:focus,.autocomplete:hover{background-color:var(--color-autocomplete-background)}.autocomplete:empty{display:none}.autocomplete>ul{list-style-type:none;margin:0;padding:0}.autocomplete>ul>li{cursor:pointer;padding:8px 0 8px 8px}.autocomplete>ul>li.active,.autocomplete>ul>li:active,.autocomplete>ul>li:focus,.autocomplete>ul>li:hover{background-color:var(--color-autocomplete-background-hover)}.autocomplete>ul>li.active a:active,.autocomplete>ul>li.active a:focus,.autocomplete>ul>li.active a:hover,.autocomplete>ul>li:active a:active,.autocomplete>ul>li:active a:focus,.autocomplete>ul>li:active a:hover,.autocomplete>ul>li:focus a:active,.autocomplete>ul>li:focus a:focus,.autocomplete>ul>li:focus a:hover,.autocomplete>ul>li:hover a:active,.autocomplete>ul>li:hover a:focus,.autocomplete>ul>li:hover a:hover{text-decoration:none}.autocomplete>ul>li.locked{cursor:inherit}.autocomplete.open{display:block;background-color:var(--color-autocomplete-background);color:var(--color-autocomplete-font);border:1px solid var(--color-autocomplete-border);max-height:500px;overflow-y:auto;z-index:100}.autocomplete.open:empty{display:none}@media screen and (max-width:50em){.autocomplete{bottom:0}.autocomplete>ul>li{border-bottom:1px solid var(--color-result-top-border);text-align:left}}#main_results #results.image-detail-open.only_template_images{width:59.25rem!important}#main_results #results.only_template_images.image-detail-open #backToTop{left:56.75rem!important;right:inherit}article.result-images .detail{display:none}#results.image-detail-open article.result-images[data-vim-selected] .detail{display:flex;flex-direction:column;position:fixed;left:60rem;right:0;top:7.5rem;transition:top 64ms ease-in 0s;bottom:0;background:var(--color-result-detail-background);border:1px solid var(--color-result-detail-background);z-index:10000;padding:4rem 3rem 3rem 3rem}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-images-source{display:block;flex:1;text-align:left;width:100%;border:none;text-decoration:none}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-images-source img{padding:0;margin:0;border:none;object-fit:contain;width:inherit;max-width:100%;min-height:inherit;max-height:calc(100vh - 25rem - 7rem);background:inherit}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels{color:var(--color-result-detail-font);max-height:16rem;min-height:16rem}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels hr{border-top:1px solid var(--color-result-detail-hr);border-bottom:none}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels h4{height:2rem;overflow:hidden;text-overflow:ellipsis;font-size:.9rem}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p{color:var(--color-result-detail-label-font);font-size:.9rem}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p span{display:inline-block;width:12rem}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels a,#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels h4,#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p{text-align:left}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p.result-content{height:2rem;overflow:hidden;text-overflow:ellipsis}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p.result-url{white-space:nowrap;overflow-x:hidden;text-overflow:ellipsis}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p.result-content:hover,#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p.result-url:hover{position:relative;overflow:inherit!important;background:var(--color-result-detail-background);text-overflow:inherit!important}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels a,#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels a:active,#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels a:hover,#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels a:visited{color:var(--color-result-detail-link)}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels a:hover{text-decoration:underline}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close{top:1rem;left:1rem;padding:.4rem}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous{top:1rem;right:6rem;padding:.4rem .5rem .4rem .3rem}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next{top:1rem;right:2rem;padding:.4rem}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous{border-radius:50%;display:block;width:1.5rem;height:1.5rem;position:absolute;filter:opacity(40%);z-index:2000002}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close span,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next span,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous span{display:block;width:1.5rem;height:1.5rem;text-align:center}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next span::before,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous span::before{vertical-align:sub}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close:active,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close:hover,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close:visited,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next:active,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next:hover,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next:visited,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous:active,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous:hover,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous:visited{color:var(--color-result-detail-font);background:var(--color-result-detail-background);border:1px solid var(--color-result-detail-font)}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close:focus,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close:hover,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next:focus,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next:hover,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous:focus,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous:hover{filter:opacity(80%)}#results.image-detail-open article.result-images[data-vim-selected] .detail .loader{position:absolute;top:1rem;right:50%;border-top:.5em solid var(--color-result-detail-loader-border);border-right:.5em solid var(--color-result-detail-loader-border);border-bottom:.5em solid var(--color-result-detail-loader-border);border-left:.5em solid var(--color-result-detail-loader-borderleft)}#results.image-detail-open.scrolling article.result-images[data-vim-selected] .detail{top:0}#results.image-detail-open.scrolling article.result-images[data-vim-selected] .detail a.result-images-source img{max-height:calc(100vh - 25rem)}@media screen and (max-width:80em){#results.image-detail-open article.result-images[data-vim-selected] .detail{top:0;left:0}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-images-source{display:flex;flex-direction:column;justify-content:center}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-images-source img{width:100%;max-height:calc(100vh - 24rem)}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next{right:1rem}}@media screen and (max-width:50em){#results.image-detail-open article.result-images[data-vim-selected] .detail{top:0;left:0;padding:1rem}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-images-source img{width:100%;max-height:calc(100vh - 20rem);margin:0}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p span{width:inherit;margin-right:1rem}}#main_index{margin-top:26vh}#main_index #linkto_preferences{right:1.8rem}.index{text-align:center}.index .title{background:url(../img/searxng.png) no-repeat;min-height:4rem;margin:4rem auto;background-position:center;background-size:contain}.index h1{font-size:4em;visibility:hidden}.index #search{margin:0 auto;background:inherit;border:inherit;padding:0;display:block}.index .search_filters{display:block;margin:1em 0}.index .category label{padding:6px 10px;border-bottom:initial!important}@media screen and (max-width:80em){div.title h1{font-size:1em}#main_index{margin-top:6em}}@media screen and (max-width:50em){#main_index{margin-top:0}}#tab-contentquery table td,#tab-contentquery table th{text-align:left!important;height:3rem}#main_preferences form{width:100%}#main_preferences fieldset{margin:8px;border:none}#main_preferences legend{margin:0;padding:5px 0 0 0;display:block;float:left;width:300px}#main_preferences .value{margin:0;padding:0;float:left;width:15em}#main_preferences .description{margin:0;padding:5px 0 0 0;float:left;width:50%;color:var(--color-settings-engine-description-font);font-size:90%}#main_preferences select{width:200px;font-size:inherit!important}#main_preferences table{border-collapse:collapse}#main_preferences table td{text-align:center}#main_preferences table.cookies{width:100%}#main_preferences table.cookies td,#main_preferences table.cookies th{text-align:left;font-family:monospace;font-size:1rem;padding:.5em;vertical-align:top}#main_preferences table.cookies td:first-child{word-break:keep-all;width:14rem;padding-right:1rem}#main_preferences table.cookies td:last-child{word-break:break-all}#main_preferences table.cookies>tbody>tr:nth-child(even)>td,#main_preferences table.cookies>tbody>tr:nth-child(even)>th{background-color:var(--color-settings-tr-hover)}#main_preferences .name,#main_preferences .shortcut{text-align:left}#main_preferences .preferences_back{background:none repeat scroll 0 0 var(--color-btn-background);color:var(--color-btn-font);border:0 none;-webkit-border-radius:10px;-moz-border-radius:10px;border-radius:10px;cursor:pointer;display:inline-block;margin:2px 4px;padding:.7em}#main_preferences .preferences_back a{color:var(--color-settings-return-font)}#main_preferences .preferences_back a::first-letter{text-transform:uppercase}#main_preferences div.selectable_url pre{width:100%}#main_preferences th.name .engine-tooltip{margin-top:1.8rem;left:calc((100% - 85em)/ 2 + 10em);max-width:40rem}#main_preferences th.name .engine-tooltip .engine-description{margin-top:.5rem}@media screen and (max-width:80em){.preferences_back{clear:both}.engine-tooltip{left:10em!important}}#search{padding:1.5em 2em 0 7rem;margin:0;background:var(--color-header-background);border-bottom:1px solid var(--color-header-border);display:grid;column-gap:1.2rem;row-gap:1rem;grid-template-columns:3rem 1fr;grid-template-areas:"logo search" "spacer categories"}#search_logo{grid-area:logo}.search_logo_img{width:40px}.search_categories{grid-area:categories}#search_wrapper{padding:0;grid-area:search}.search_box{margin:0 12px 0 0;display:inline-flex;flex-direction:row;white-space:nowrap}#clear_search{display:block;border-collapse:separate;box-sizing:border-box;width:1.8em;margin:0;padding:8px 2px;background:none repeat scroll 0 0 var(--color-search-background);border-top:1px solid var(--color-search-border);border-bottom:1px solid var(--color-search-border);border-right:none;border-left:none;border-radius:0;outline:0;color:var(--color-search-font);font-size:16px;z-index:10000}#clear_search:hover{color:var(--color-search-background-hover)}#clear_search.empty *{display:none}#q,#send_search{display:block!important;border-collapse:separate;box-sizing:border-box;margin:0;padding:8px;background:none repeat scroll 0 0 var(--color-search-background);border:1px solid var(--color-search-border);border-radius:0;outline:0;color:var(--color-search-font);font-size:16px;z-index:2}#q{outline:medium none;padding-left:12px;padding-right:0!important;border-right:none;width:40rem;border-radius:10px 0 0 10px}#q::-ms-clear,#q::-webkit-search-cancel-button{display:none}#send_search{border-left:none;border-radius:0 10px 10px 0}#send_search:hover{cursor:pointer;background-color:var(--color-search-background-hover);color:var(--color-search-background)}.no-js #send_search{width:auto!important}.search_filters{display:inline-block;margin:.8rem 0 0 0}@media screen and (max-width:80em){#search{padding:1.5em .5rem 0 .5rem;column-gap:.5rem}#categories{font-size:90%;clear:both}#categories .checkbox_container{margin:auto;margin-top:2px}html.touch #main_index #categories_container,html.touch #main_results #categories_container{width:1000px;width:-moz-max-content;width:-webkit-max-content;width:max-content}html.touch #main_index #categories_container .category,html.touch #main_results #categories_container .category{display:inline-block;width:auto}html.touch #main_index #categories,html.touch #main_results #categories{width:100%;margin:0;text-align:left;overflow-x:scroll;overflow-y:hidden;-webkit-overflow-scrolling:touch}}@media screen and (max-width:50em){#search{width:100%;margin:0;padding:.1em 0 0 0;column-gap:0;row-gap:0;grid-template-areas:"logo search" "categories categories"}.search_logo{padding:0}#search_wrapper{width:100%;padding:0}.search_box{width:99%;margin:.1em;padding:0 .1em 0 0;display:flex;flex-direction:row}#q{width:auto!important;flex:1}#main_results #q:placeholder-shown~#send_search{margin-right:2.6rem;transition:margin-right .1s}.search_filters{display:block;margin:.8em 0}.language,.time_range{width:45%}.category{display:block;width:100%}.category label{padding:10px!important}}#categories{margin:0 10px 0 0;-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}#categories::-webkit-scrollbar{width:0;height:0}.category{display:inline-block;position:relative;margin:0 3px;padding:0}.category input{display:none}.category label{cursor:pointer;padding:.3rem .75rem .5rem .75rem;margin:0;display:block;text-transform:capitalize;font-size:.9em;border-bottom:2px solid transparent;-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.category input[type=checkbox]:checked+label{color:var(--color-categories-item-selected-font);border-bottom:2px solid var(--color-categories-item-border-selected)}#categories_container{position:relative}.ion-icon-big{display:inline-block;line-height:1;font-weight:400;font-style:normal;speak:none;text-decoration:inherit;text-transform:none;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:149%}.ion-icon-big:before{font-family:ion}html{font-family:sans-serif;font-size:.9em;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%;color:var(--color-base-font);background-color:var(--color-base-background);padding:0;margin:0}body,main{padding:0;margin:0}body{display:flex;flex-direction:column;height:100vh;margin:0}main{width:100%;margin-bottom:2rem;flex:1}#main_about,#main_preferences,#main_stats{margin:2em auto;width:85em}footer{clear:both;min-height:4rem;padding:1rem 0;width:100%;text-align:center;background-color:var(--color-footer-background);border-top:1px solid var(--color-footer-border);overflow:hidden}footer p{font-size:.9em}#main_preferences h1,#main_stats h1{background:url(../img/searxng.png) no-repeat;background-size:contain;min-height:40px;margin:0 auto}#main_preferences h1 span,#main_stats h1 span{visibility:hidden}#results button[type=submit],input[type=submit]{padding:.7rem;display:inline-block;background:var(--color-btn-background);color:var(--color-btn-font);-webkit-border-radius:10px;-moz-border-radius:10px;border-radius:10px;border:0;cursor:pointer}a{text-decoration:none;color:var(--color-url-font)}a:visited{color:var(--color-url-visited-font)}a:visited .highlight{color:var(--color-url-visited-font)}article[data-vim-selected]{background:var(--color-result-vim-selected);border-left:.2rem solid var(--color-result-vim-arrow);-webkit-border-radius:0 10px 10px 0;-moz-border-radius:0 10px 10px 0;border-radius:0 10px 10px 0}article.result-images[data-vim-selected]{background:var(--color-result-vim-arrow);border:none;-webkit-border-radius:10px;-moz-border-radius:10px;border-radius:10px}article.result-images[data-vim-selected] .image_thumbnail{filter:opacity(60%)}article[data-vim-selected].category-files,article[data-vim-selected].category-map,article[data-vim-selected].category-music,article[data-vim-selected].category-news,article[data-vim-selected].category-social,article[data-vim-selected].category-videos{border:1px solid var(--color-result-vim-arrow);-webkit-border-radius:10px;-moz-border-radius:10px;border-radius:10px}.result{margin:.125rem 0;padding:1rem;border-left:.2rem solid transparent}.result h3{font-size:1.1em;word-wrap:break-word;margin:.4rem 0 .4rem 0;padding:0}.result h3 a{color:var(--color-result-link-font);font-weight:400;font-size:1.1em}.result h3 a:visited{color:var(--color-result-link-visited-font)}.result h3 a:focus,.result h3 a:hover{text-decoration:underline;border:none;outline:0}.result .cache_link,.result .proxyfied_link{font-size:.9em!important}.result .altlink,.result .content,.result .stat{font-size:.9em;margin:0;padding:0;max-width:54em;word-wrap:break-word;line-height:1.24}.result .altlink .highlight,.result .content .highlight,.result .stat .highlight{color:var(--color-result-description-highlight-font);background:inherit;font-weight:700}.result .codelines .highlight{color:inherit;background:inherit;font-weight:400}.result .url{font-size:.96em;margin:0 0 3px 0;padding:0;max-width:54em;word-wrap:break-word;color:var(--color-result-url-font)}.result .published_date{font-size:.8em;color:var(--color-result-publishdate-font)}.result img.thumbnail{float:left;padding:0 5px 10px 0;width:20em;min-width:20em;min-height:8em}.result img.image{float:left;padding:0 5px 10px 0;width:100px;max-height:100px;object-fit:scale-down;object-position:right top}.result .break{clear:both}.category-files,.category-map,.category-music,.category-news,.category-social,.category-videos{border:1px solid var(--color-result-border);margin:1rem 0;-webkit-border-radius:10px;-moz-border-radius:10px;border-radius:10px}.category-social .image{width:auto!important;min-width:48px;min-height:48px;padding:0 5px 25px 0!important}.result-videos .content{overflow:hidden}.engines{float:right;color:var(--color-result-engines-font)}.engines span{font-size:smaller;margin:0 .5em 0 0}.small_font{font-size:.8em}.highlight{color:var(--color-result-link-font-highlight);background:inherit}.result-images{display:inline-block;margin:0;padding:0;position:relative;max-height:200px;border:none!important}.result-images img{float:inherit;margin:.125rem;padding:0;border:none;max-height:200px;background:var(--color-result-image-background)}.result-images span.title{display:none;color:var(--color-result-image-span-font)}.result-images:hover span.title{display:block;position:absolute;bottom:0;right:0;padding:4px;margin:0 0 4px 4px;background-color:var(--color-result-image-span-background-hover);font-size:.7em}.result-map img.image{float:right!important;height:100px!important;width:auto!important}.result-map table{font-size:.9em;width:auto;border-collapse:separate;border-spacing:0 .35rem}.result-map table th{font-weight:inherit;width:17rem;vertical-align:top;text-align:left}.result-map table td{vertical-align:top;text-align:left}.hidden{display:none!important}#results{margin:2rem 2rem 0 10rem;display:grid;grid-template-columns:45rem 25rem;grid-template-rows:min-content min-content 1fr min-content;gap:0 5rem;grid-template-areas:"corrections sidebar" "answers sidebar" "urls sidebar" "pagination sidebar"}#results #sidebar :first-child,#results #urls :first-child{margin-top:0}#urls{padding:0;grid-area:urls}#suggestions .wrapper{display:flex;flex-flow:row wrap;justify-content:flex-end}#suggestions .wrapper form{display:inline-block;flex:1 1 50%}#infoboxes input,#suggestions input{padding:0;margin:3px;font-size:.9em;display:inline-block;background:0 0;color:var(--color-result-search-url-font);cursor:pointer}#infoboxes .infobox .url a,#infoboxes input[type=submit],#suggestions .infobox .url a,#suggestions input[type=submit]{color:var(--color-result-link-font);text-decoration:none;font-size:.9rem}#infoboxes .infobox .url a:hover,#infoboxes input[type=submit]:hover,#suggestions .infobox .url a:hover,#suggestions input[type=submit]:hover{text-decoration:underline}#corrections{grid-area:corrections;display:flex;flex-flow:row wrap;margin:0 0 1em 0}#corrections h4,#corrections input[type=submit]{display:inline-block;padding:.5rem;margin:.5rem}#corrections input[type=submit]{font-size:.8rem;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px}#apis .title,#search_url .title,#suggestions .title{margin:2em 0 .5em 0;color:var(--color-base-font)}#answers{grid-area:answers;border:1px solid var(--color-answer-border);background:var(--color-answer-background);padding:1rem;margin:1rem .5rem;margin-top:0;color:var(--color-answer-font);-webkit-border-radius:10px;-moz-border-radius:10px;border-radius:10px}#answers h4{display:none}#infoboxes form{min-width:210px}#sidebar{grid-area:sidebar;word-wrap:break-word;color:var(--color-sidebar-font)}#sidebar .infobox{margin:10px 0 10px;border:1px solid var(--color-sidebar-border);padding:1rem;font-size:.9em;-webkit-border-radius:10px;-moz-border-radius:10px;border-radius:10px}#sidebar .infobox h2{margin:0 0 .5em 0}#sidebar .infobox img{max-width:100%;max-height:12em;display:block;margin:0 auto;padding:0}#sidebar .infobox dl{margin:.5em 0}#sidebar .infobox dt{display:inline;margin:.5em .25em .5em 0;padding:0;font-weight:700}#sidebar .infobox dd{display:inline;margin:.5em 0;padding:0}#sidebar .infobox input{font-size:1em}#sidebar .infobox br{clear:both}#sidebar .infobox .attributes,#sidebar .infobox .urls{clear:both}#search_url{margin-top:8px}#search_url div.selectable_url pre{width:200em}#linkto_preferences{position:absolute;right:10px;top:2rem;padding:0;border:0;display:block;font-size:1.2em;color:var(--color-search-font)}#linkto_preferences a:active *,#linkto_preferences a:hover *,#linkto_preferences a:link *,#linkto_preferences a:visited *{color:var(--color-search-font)}#pagination{grid-area:pagination}#pagination br{clear:both}#apis{margin-top:8px;clear:both}#backToTop{border:1px solid var(--color-backtotop-border);margin:0;padding:0;font-size:1em;background:var(--color-backtotop-background);position:fixed;bottom:8rem;left:56.3rem;transition:opacity .5s;opacity:0;-webkit-border-radius:10px;-moz-border-radius:10px;border-radius:10px}#backToTop a{display:block;margin:0;padding:.7em}#backToTop a,#backToTop a:active,#backToTop a:hover,#backToTop a:visited{color:var(--color-backtotop-font)}#results.scrolling #backToTop{opacity:1}@media screen and (max-width:80em){#main_about,#main_preferences,#main_stats{margin:2rem .5rem;width:auto}#infoboxes{position:inherit;max-width:inherit}#infoboxes .infobox{clear:both}#infoboxes .infobox img{float:left;max-width:10em;margin:.5em .5em .5em 0}#sidebar{margin-bottom:.125rem;padding:0;float:none;border:none;width:auto}#sidebar input{border:0}#apis{display:none}#search_url{display:none}.result .thumbnail{max-width:98%}.result .url span.url{display:block;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;width:100%}.result .engines{float:right;padding:0 0 3px 0}.result-images{border-bottom:none!important}.image_result{max-width:98%}.image_result img{max-width:98%}#backToTop{display:none}#pagination{margin:2rem 0 0 0!important}#main_results div#results{margin:2rem auto 0 auto;justify-content:center;display:grid;grid-template-columns:45rem;grid-template-rows:min-content min-content min-content 1fr min-content min-content;gap:0;grid-template-areas:"corrections" "answers" "sidebar" "urls" "pagination"}}#main_results div#results.only_template_images{margin:2rem .5rem 0 .5rem;display:grid;grid-template-columns:100%;grid-template-rows:min-content min-content 1fr min-content min-content;gap:0;grid-template-areas:"corrections" "urls" "answers" "sidebar" "pagination"}#main_results div#results.only_template_images #urls{width:inherit;margin:0}#main_results div#results.only_template_images #backToTop{left:auto;right:1rem}#main_results div#results.only_template_images #pagination{margin-right:4rem}@media screen and (max-width:50em){#main_results div#results{grid-template-columns:100%;margin:2rem .5rem 0 .5rem}#linkto_preferences{top:.8rem;right:.7rem}#main_index #linkto_preferences{top:.5rem;right:.5rem}#results{margin:0;padding:0}#pagination{margin:2rem 1rem 0 1rem!important}article[data-vim-selected]{border:1px solid var(--color-result-vim-arrow);-webkit-border-radius:10px;-moz-border-radius:10px;border-radius:10px}.result{border:1px solid var(--color-result-border);margin:1rem 0;-webkit-border-radius:10px;-moz-border-radius:10px;border-radius:10px}.result-images{margin:0;padding:0;border:none}}@media screen and (max-width:35em){.result-videos img.thumbnail{float:none!important}.result-videos .content{overflow:inherit}}pre code{white-space:pre-wrap}#search_submit{left:1px;right:auto}/*# sourceMappingURL=searxng-rtl.min.css.map */
\ No newline at end of file +.github-issue-button{display:block;padding:8px 16px;font-family:sans-serif;font-size:16px;color:#fff;background-color:#238636!important;border:#2ea043;border-radius:10px!important;box-shadow:transparent 0 0 0 0}.github-issue-button:hover{background-color:#2ea043}.issue-hide{display:none}.engine-stats .engine-name{width:20rem}.engine-stats .engine-score{width:7rem;text-align:right}.engine-stats .engine-reliability{text-align:right}.engine-stats table.engine-error{max-width:1280px;margin:1rem;border:1px solid gray}.engine-stats failed-test,.engine-stats table.engine-error td.engine-error-type,.engine-stats table.engine-error th.engine-error-type{width:10rem}.engine-stats table.engine-error span.log_parameters{border-right:1px solid gray;padding:0 1rem 0 0;margin:0 0 0 .5rem}.bar-chart-value{width:3em;display:inline-block;text-align:right;padding-right:.5rem}.bar-chart-graph{width:calc(100% - 5rem);display:inline-block}.bar-chart-bar{border:3px solid #5bc0de;margin:1px 0}.bar-chart-serie1{border:3px solid #5bc0de;margin:1px 0;float:left}.bar-chart-serie2{border:3px solid #deb15b;margin:1px 0;float:left}.bar0{width:0;border:0}.bar1{width:1%}.bar2{width:2%}.bar3{width:3%}.bar4{width:4%}.bar5{width:5%}.bar6{width:6%}.bar7{width:7%}.bar8{width:8%}.bar9{width:9%}.bar10{width:10%}.bar11{width:11%}.bar12{width:12%}.bar13{width:13%}.bar14{width:14%}.bar15{width:15%}.bar16{width:16%}.bar17{width:17%}.bar18{width:18%}.bar19{width:19%}.bar20{width:20%}.bar21{width:21%}.bar22{width:22%}.bar23{width:23%}.bar24{width:24%}.bar25{width:25%}.bar26{width:26%}.bar27{width:27%}.bar28{width:28%}.bar29{width:29%}.bar30{width:30%}.bar31{width:31%}.bar32{width:32%}.bar33{width:33%}.bar34{width:34%}.bar35{width:35%}.bar36{width:36%}.bar37{width:37%}.bar38{width:38%}.bar39{width:39%}.bar40{width:40%}.bar41{width:41%}.bar42{width:42%}.bar43{width:43%}.bar44{width:44%}.bar45{width:45%}.bar46{width:46%}.bar47{width:47%}.bar48{width:48%}.bar49{width:49%}.bar50{width:50%}.bar51{width:51%}.bar52{width:52%}.bar53{width:53%}.bar54{width:54%}.bar55{width:55%}.bar56{width:56%}.bar57{width:57%}.bar58{width:58%}.bar59{width:59%}.bar60{width:60%}.bar61{width:61%}.bar62{width:62%}.bar63{width:63%}.bar64{width:64%}.bar65{width:65%}.bar66{width:66%}.bar67{width:67%}.bar68{width:68%}.bar69{width:69%}.bar70{width:70%}.bar71{width:71%}.bar72{width:72%}.bar73{width:73%}.bar74{width:74%}.bar75{width:75%}.bar76{width:76%}.bar77{width:77%}.bar78{width:78%}.bar79{width:79%}.bar80{width:80%}.bar81{width:81%}.bar82{width:82%}.bar83{width:83%}.bar84{width:84%}.bar85{width:85%}.bar86{width:86%}.bar87{width:87%}.bar88{width:88%}.bar89{width:89%}.bar90{width:90%}.bar91{width:91%}.bar92{width:92%}.bar93{width:93%}.bar94{width:94%}.bar95{width:95%}.bar96{width:96%}.bar97{width:97%}.bar98{width:98%}.bar99{width:99%}.bar100{width:100%}.osm-map-box{height:300px;width:100%;margin:10px 0}/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0}main{display:block}h1{font-size:2em;margin:.67em 0}hr{box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring,button:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none}:root{--color-base-font:#444;--color-base-font-rgb:68,68,68;--color-base-background:#fff;--color-url-font:#29314d;--color-url-visited-font:#80b;--color-header-background:#f7f7f7;--color-header-border:#ddd;--color-footer-background:#f7f7f7;--color-footer-border:#ddd;--color-sidebar-border:#ddd;--color-sidebar-font:#000;--color-backtotop-font:#444;--color-backtotop-border:#ddd;--color-backtotop-background:#fff;--color-btn-background:#3050ff;--color-btn-font:#fff;--color-search-border:#bbb;--color-search-background:#fff;--color-search-font:#222;--color-search-background-hover:#3050ff;--color-error:#db3434;--color-error-background:#fae1e1;--color-warning:#dbba34;--color-warning-background:#faf5e1;--color-success:#42db34;--color-success-background:#e3fae1;--color-categories-item-selected-font:#3050ff;--color-categories-item-border-selected:#3050ff;--color-autocomplete-font:#000;--color-autocomplete-border:#bbb;--color-autocomplete-background:#fff;--color-autocomplete-background-hover:#f7f7f7;--color-answer-border:#ddd;--color-answer-font:#444;--color-answer-background:#f7f7f7;--color-result-border:#ddd;--color-result-url-font:#000;--color-result-vim-selected:#f7f7f7;--color-result-vim-arrow:#000bbb;--color-result-description-highlight-font:#000;--color-result-link-font:#000bbb;--color-result-link-font-highlight:#000bbb;--color-result-link-visited-font:#80b;--color-result-publishdate-font:#777;--color-result-engines-font:#777;--color-result-search-url-border:#ddd;--color-result-search-url-font:#000;--color-result-image-span-background-hover:rgba(0, 0, 0, 0.6);--color-result-image-span-font:#fff;--color-result-image-background:#000bbb;--color-settings-tr-hover:#f7f7f7;--color-settings-engine-description-font:#909090;--color-result-detail-font:#fff;--color-result-detail-label-font:lightgray;--color-result-detail-background:#000;--color-result-detail-hr:#555;--color-result-detail-link:#8af;--color-result-detail-loader-border:rgba(255, 255, 255, 0.2);--color-result-detail-loader-borderleft:rgba(0, 0, 0, 0);--color-toolkit-badge-font:#fff;--color-toolkit-badge-background:#777;--color-toolkit-kbd-font:#fff;--color-toolkit-kbd-background:#000;--color-toolkit-dialog-border:#ddd;--color-toolkit-dialog-background:#fff;--color-toolkit-tabs-label-border:#fff;--color-toolkit-tabs-section-border:#ddd;--color-toolkit-select-background:#f7f7f7;--color-toolkit-select-border:#ddd;--color-toolkit-select-background-hover:#bbb;--color-toolkit-input-text-font:#222;--color-toolkit-checkbox-onoff-background:#ddd;--color-toolkit-checkbox-onoff-label-background:#3050ff;--color-toolkit-checkbox-onoff-checked-background:#aaa;--color-toolkit-checkbox-label-background:#fff;--color-toolkit-checkbox-label-border:#ddd;--color-toolkit-checkbox-input-border:#3050ff;--color-toolkit-engine-tooltip-border:#ddd;--color-toolkit-engine-tooltip-background:#fff;--color-toolkit-loader-border:rgba(0, 0, 0, 0.2);--color-toolkit-loader-borderleft:rgba(255, 255, 255, 0)}@media (prefers-color-scheme:dark){:root.theme-auto{--color-base-font:#bbb;--color-base-font-rgb:187,187,187;--color-base-background:#222;--color-url-font:#8af;--color-url-visited-font:#96b;--color-header-background:#181818;--color-header-border:#333;--color-footer-background:#181818;--color-footer-border:#333;--color-sidebar-border:#555;--color-sidebar-font:#fff;--color-backtotop-font:#bbb;--color-backtotop-border:#333;--color-backtotop-background:#181818;--color-btn-background:#58f;--color-btn-font:#222;--color-search-border:#555;--color-search-background:#222;--color-search-font:#fff;--color-search-background-hover:#58f;--color-error:#f55b5b;--color-error-background:#390a0a;--color-warning:#f1d561;--color-warning-background:#39300a;--color-success:#79f56e;--color-success-background:#0e390a;--color-categories-item-selected-font:#58f;--color-categories-item-border-selected:#58f;--color-autocomplete-font:#fff;--color-autocomplete-border:#555;--color-autocomplete-background:#222;--color-autocomplete-background-hover:#181818;--color-answer-border:#333;--color-answer-font:#bbb;--color-answer-background:#181818;--color-result-border:#333;--color-result-url-font:#fff;--color-result-vim-selected:#181818;--color-result-vim-arrow:#8af;--color-result-description-highlight-font:#fff;--color-result-link-font:#8af;--color-result-link-font-highlight:#8af;--color-result-link-visited-font:#96b;--color-result-publishdate-font:#888;--color-result-engines-font:#888;--color-result-search-url-border:#555;--color-result-search-url-font:#fff;--color-result-detail-font:#fff;--color-result-detail-label-font:lightgray;--color-result-detail-background:#000;--color-result-detail-hr:#555;--color-result-detail-link:#8af;--color-result-detail-loader-border:rgba(255, 255, 255, 0.2);--color-result-detail-loader-borderleft:rgba(0, 0, 0, 0);--color-result-image-span-background-hover:rgba(0, 0, 0, 0.6);--color-result-image-span-font:#fff;--color-result-image-background:#8af;--color-settings-tr-hover:#2d2d2d;--color-settings-engine-description-font:#909090;--color-toolkit-badge-font:#fff;--color-toolkit-badge-background:#777;--color-toolkit-kbd-font:#000;--color-toolkit-kbd-background:#fff;--color-toolkit-dialog-border:#555;--color-toolkit-dialog-background:#222;--color-toolkit-tabs-label-border:#222;--color-toolkit-tabs-section-border:#555;--color-toolkit-select-background:#3c3b31;--color-toolkit-select-border:#555;--color-toolkit-select-background-hover:#333;--color-toolkit-input-text-font:#fff;--color-toolkit-checkbox-onoff-background:#3c3b31;--color-toolkit-checkbox-onoff-label-background:#58f;--color-toolkit-checkbox-onoff-checked-background:#ddd;--color-toolkit-checkbox-label-background:#fff;--color-toolkit-checkbox-label-border:#333;--color-toolkit-checkbox-input-border:#58f;--color-toolkit-engine-tooltip-border:#333;--color-toolkit-engine-tooltip-background:#222;--color-toolkit-loader-border:rgba(255, 255, 255, 0.2);--color-toolkit-loader-borderleft:rgba(0, 0, 0, 0)}}:root.theme-dark{--color-base-font:#bbb;--color-base-font-rgb:187,187,187;--color-base-background:#222;--color-url-font:#8af;--color-url-visited-font:#96b;--color-header-background:#181818;--color-header-border:#333;--color-footer-background:#181818;--color-footer-border:#333;--color-sidebar-border:#555;--color-sidebar-font:#fff;--color-backtotop-font:#bbb;--color-backtotop-border:#333;--color-backtotop-background:#181818;--color-btn-background:#58f;--color-btn-font:#222;--color-search-border:#555;--color-search-background:#222;--color-search-font:#fff;--color-search-background-hover:#58f;--color-error:#f55b5b;--color-error-background:#390a0a;--color-warning:#f1d561;--color-warning-background:#39300a;--color-success:#79f56e;--color-success-background:#0e390a;--color-categories-item-selected-font:#58f;--color-categories-item-border-selected:#58f;--color-autocomplete-font:#fff;--color-autocomplete-border:#555;--color-autocomplete-background:#222;--color-autocomplete-background-hover:#181818;--color-answer-border:#333;--color-answer-font:#bbb;--color-answer-background:#181818;--color-result-border:#333;--color-result-url-font:#fff;--color-result-vim-selected:#181818;--color-result-vim-arrow:#8af;--color-result-description-highlight-font:#fff;--color-result-link-font:#8af;--color-result-link-font-highlight:#8af;--color-result-link-visited-font:#96b;--color-result-publishdate-font:#888;--color-result-engines-font:#888;--color-result-search-url-border:#555;--color-result-search-url-font:#fff;--color-result-detail-font:#fff;--color-result-detail-label-font:lightgray;--color-result-detail-background:#000;--color-result-detail-hr:#555;--color-result-detail-link:#8af;--color-result-detail-loader-border:rgba(255, 255, 255, 0.2);--color-result-detail-loader-borderleft:rgba(0, 0, 0, 0);--color-result-image-span-background-hover:rgba(0, 0, 0, 0.6);--color-result-image-span-font:#fff;--color-result-image-background:#8af;--color-settings-tr-hover:#2d2d2d;--color-settings-engine-description-font:#909090;--color-toolkit-badge-font:#fff;--color-toolkit-badge-background:#777;--color-toolkit-kbd-font:#000;--color-toolkit-kbd-background:#fff;--color-toolkit-dialog-border:#555;--color-toolkit-dialog-background:#222;--color-toolkit-tabs-label-border:#222;--color-toolkit-tabs-section-border:#555;--color-toolkit-select-background:#3c3b31;--color-toolkit-select-border:#555;--color-toolkit-select-background-hover:#333;--color-toolkit-input-text-font:#fff;--color-toolkit-checkbox-onoff-background:#3c3b31;--color-toolkit-checkbox-onoff-label-background:#58f;--color-toolkit-checkbox-onoff-checked-background:#ddd;--color-toolkit-checkbox-label-background:#fff;--color-toolkit-checkbox-label-border:#333;--color-toolkit-checkbox-input-border:#58f;--color-toolkit-engine-tooltip-border:#333;--color-toolkit-engine-tooltip-background:#222;--color-toolkit-loader-border:rgba(255, 255, 255, 0.2);--color-toolkit-loader-borderleft:rgba(0, 0, 0, 0)}.code-highlight pre{overflow:auto;background-color:inherit;color:inherit;border:inherit}.code-highlight .linenos{-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:default;margin-right:8px;text-align:right}.code-highlight .linenos::selection{background:0 0}.code-highlight .linenos::-moz-selection{background:0 0}.code-highlight pre{line-height:125%}.code-highlight td.linenos .normal{color:inherit;background-color:transparent;padding-left:5px;padding-right:5px}.code-highlight span.linenos{color:inherit;background-color:transparent;padding-left:5px;padding-right:5px}.code-highlight td.linenos .special{color:#000;background-color:#ffffc0;padding-left:5px;padding-right:5px}.code-highlight span.linenos.special{color:#000;background-color:#ffffc0;padding-left:5px;padding-right:5px}.code-highlight .hll{background-color:#ffc}.code-highlight{background:#f8f8f8}.code-highlight .c{color:#408080;font-style:italic}.code-highlight .err{border:1px solid red}.code-highlight .k{color:green;font-weight:700}.code-highlight .o{color:#666}.code-highlight .ch{color:#408080;font-style:italic}.code-highlight .cm{color:#408080;font-style:italic}.code-highlight .cp{color:#BC7A00}.code-highlight .cpf{color:#408080;font-style:italic}.code-highlight .c1{color:#408080;font-style:italic}.code-highlight .cs{color:#408080;font-style:italic}.code-highlight .gd{color:#A00000}.code-highlight .ge{font-style:italic}.code-highlight .gr{color:red}.code-highlight .gh{color:navy;font-weight:700}.code-highlight .gi{color:#00A000}.code-highlight .go{color:#888}.code-highlight .gp{color:navy;font-weight:700}.code-highlight .gs{font-weight:700}.code-highlight .gu{color:purple;font-weight:700}.code-highlight .gt{color:#04D}.code-highlight .kc{color:green;font-weight:700}.code-highlight .kd{color:green;font-weight:700}.code-highlight .kn{color:green;font-weight:700}.code-highlight .kp{color:green}.code-highlight .kr{color:green;font-weight:700}.code-highlight .kt{color:#B00040}.code-highlight .m{color:#666}.code-highlight .s{color:#BA2121}.code-highlight .na{color:#7D9029}.code-highlight .nb{color:green}.code-highlight .nc{color:#00F;font-weight:700}.code-highlight .no{color:#800}.code-highlight .nd{color:#A2F}.code-highlight .ni{color:#999;font-weight:700}.code-highlight .ne{color:#D2413A;font-weight:700}.code-highlight .nf{color:#00F}.code-highlight .nl{color:#A0A000}.code-highlight .nn{color:#00F;font-weight:700}.code-highlight .nt{color:green;font-weight:700}.code-highlight .nv{color:#19177C}.code-highlight .ow{color:#A2F;font-weight:700}.code-highlight .w{color:#bbb}.code-highlight .mb{color:#666}.code-highlight .mf{color:#666}.code-highlight .mh{color:#666}.code-highlight .mi{color:#666}.code-highlight .mo{color:#666}.code-highlight .sa{color:#BA2121}.code-highlight .sb{color:#BA2121}.code-highlight .sc{color:#BA2121}.code-highlight .dl{color:#BA2121}.code-highlight .sd{color:#BA2121;font-style:italic}.code-highlight .s2{color:#BA2121}.code-highlight .se{color:#B62;font-weight:700}.code-highlight .sh{color:#BA2121}.code-highlight .si{color:#B68;font-weight:700}.code-highlight .sx{color:green}.code-highlight .sr{color:#B68}.code-highlight .s1{color:#BA2121}.code-highlight .ss{color:#19177C}.code-highlight .bp{color:green}.code-highlight .fm{color:#00F}.code-highlight .vc{color:#19177C}.code-highlight .vg{color:#19177C}.code-highlight .vi{color:#19177C}.code-highlight .vm{color:#19177C}.code-highlight .il{color:#666}html.no-js .hide_if_nojs{display:none}html.js .show_if_nojs{display:none}.center{text-align:center}.right{float:right}.left{float:left}.invisible{display:none!important}.list-unstyled{list-style-type:none}.list-unstyled li{margin-top:4px;margin-bottom:4px}.danger{background-color:var(--color-error-background)}.warning{background:var(--color-warning-background)}.success{background:var(--color-success-background)}.badge{display:inline-block;color:var(--color-toolkit-badge-font);background-color:var(--color-toolkit-badge-background);text-align:center;white-space:nowrap;vertical-align:baseline;min-width:10px;padding:1px 5px;border-radius:5px}kbd{padding:2px 4px;margin:1px;font-size:90%;color:var(--color-toolkit-kbd-font);background:var(--color-toolkit-kbd-background)}table{width:100%}table.striped tr{border-bottom:1px solid var(--color-settings-tr-hover)}th{padding:.4em}td{padding:0 4px}tr:hover{background:var(--color-settings-tr-hover)!important}div.selectable_url{display:block;border:1px solid var(--color-result-search-url-border);padding:4px;color:var(--color-result-search-url-font);margin:.1em;overflow:hidden;height:1.2em;line-height:1.2em;border-radius:5px}div.selectable_url pre{display:block;font-size:.8em;word-break:break-all;margin:.1em;-webkit-user-select:all;-moz-user-select:all;-ms-user-select:element;user-select:all}.dialog-error{position:relative;display:flex;padding:1rem;margin:0 0 1em 0;border:1px solid var(--color-toolkit-dialog-border);text-align:left;border-radius:10px;color:var(--color-error);background:var(--color-error-background);border-color:var(--color-error)}.dialog-error .close{float:right;position:relative;top:-3px;color:inherit;font-size:1.5em}.dialog-error ol,.dialog-error p,.dialog-error ul{margin:1px 0 0 0}.dialog-error table{width:auto}.dialog-error tr{vertical-align:text-top}.dialog-error tr:hover{background:0 0!important}.dialog-error td{padding:0 1em 0 0}.dialog-error h4{margin-top:.3em;margin-bottom:.3em}.dialog-warning{position:relative;display:flex;padding:1rem;margin:0 0 1em 0;border:1px solid var(--color-toolkit-dialog-border);text-align:left;border-radius:10px;color:var(--color-warning);background:var(--color-warning-background);border-color:var(--color-warning)}.dialog-warning .close{float:right;position:relative;top:-3px;color:inherit;font-size:1.5em}.dialog-warning ol,.dialog-warning p,.dialog-warning ul{margin:1px 0 0 0}.dialog-warning table{width:auto}.dialog-warning tr{vertical-align:text-top}.dialog-warning tr:hover{background:0 0!important}.dialog-warning td{padding:0 1em 0 0}.dialog-warning h4{margin-top:.3em;margin-bottom:.3em}.dialog-modal{position:relative;display:flex;padding:1rem;margin:0 0 1em 0;border:1px solid var(--color-toolkit-dialog-border);text-align:left;border-radius:10px;display:block;background:var(--color-toolkit-dialog-background);position:fixed;top:50%;left:50%;margin:0 auto;transform:translate(-50%,-50%);z-index:10000000}.dialog-modal .close{float:right;position:relative;top:-3px;color:inherit;font-size:1.5em}.dialog-modal ol,.dialog-modal p,.dialog-modal ul{margin:1px 0 0 0}.dialog-modal table{width:auto}.dialog-modal tr{vertical-align:text-top}.dialog-modal tr:hover{background:0 0!important}.dialog-modal td{padding:0 1em 0 0}.dialog-modal h4{margin-top:.3em;margin-bottom:.3em}.dialog-modal h3{margin-top:0}.btn-collapse{cursor:pointer}.scrollx{overflow-x:auto;overflow-y:hidden;display:block;padding:0;margin:0;border:none}.tabs .tabs>label{font-size:90%}.tabs{display:-webkit-box;display:-moz-box;display:-webkit-flex;display:-ms-flexbox;display:flex;flex-wrap:wrap;width:100%;min-width:100%}.tabs>*{order:2}.tabs>input[type=radio]{display:none}.tabs>label{order:1;padding:.7em;margin:0 .7em;letter-spacing:.5px;text-transform:uppercase;border:solid var(--color-toolkit-tabs-label-border);border-width:0 0 2px 0;-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:pointer}.tabs>label:hover{border-bottom:2px solid var(--color-categories-item-border-selected)}.tabs>section{min-width:100%;padding:.7rem 0;box-sizing:border-box;border-top:1px solid var(--color-toolkit-tabs-section-border);display:none}.tabs>label:last-of-type{border-bottom:2px solid var(--color-categories-item-border-selected);background:var(--color-categories-item-selected);color:var(--color-categories-item-selected-font);letter-spacing:-.1px}.tabs>section:last-of-type{display:block}html body .tabs>input:checked~section{display:none}html body .tabs>input:checked~label{position:inherited;background:inherit;border-bottom:2px solid transparent;font-weight:400;color:inherit}html body .tabs>input:checked~label:hover{border-bottom:2px solid var(--color-categories-item-border-selected)}html body .tabs>input:checked+label{border-bottom:2px solid var(--color-categories-item-border-selected);background:var(--color-categories-item-selected);color:var(--color-categories-item-selected-font)}html body .tabs>input:checked+label+section{display:block}select{height:2.4rem;margin:0 1rem 0 0;padding:.2rem!important;color:var(--color-search-font);font-size:.9rem;z-index:2}select:focus,select:hover{cursor:pointer}@supports ((background-position-x:100%) and ((appearance:none) or (-webkit-appearance:none) or (-moz-appearance:none))){select{appearance:none;-webkit-appearance:none;-moz-appearance:none;border-width:0 2rem 0 0;border-color:transparent;background:url("data:image/svg+xml;charset=UTF-8,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22utf-8%22%3F%3E%0A%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22512%22%20height%3D%22512%22%20viewBox%3D%220%200%20512%20512%22%3E%0A%3Cg%3E%3Cpolygon%20points%3D%22128%2C192%20256%2C320%20384%2C192%22%2F%3E%3C%2Fg%3E%0A%3C%2Fsvg%3E") no-repeat;background-position-x:calc(100% + 2rem);background-size:2rem;background-origin:content-box;background-color:var(--color-toolkit-select-background);outline:medium none;text-overflow:ellipsis;border-radius:5px}select:focus,select:hover{background-color:var(--color-toolkit-select-background-hover)}select option{background-color:var(--color-base-background)}@media (prefers-color-scheme:dark){html.theme-auto select,html.theme-dark select{background-image:url("data:image/svg+xml;charset=UTF-8,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22utf-8%22%3F%3E%0A%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22512%22%20height%3D%22512%22%20viewBox%3D%220%200%20512%20512%22%3E%0A%3Cg%3E%3Cpolygon%20fill%3D%22%23ddd%22%20points%3D%22128%2C192%20256%2C320%20384%2C192%22%2F%3E%3C%2Fg%3E%0A%3C%2Fsvg%3E")}}html.theme-dark select{background-image:url("data:image/svg+xml;charset=UTF-8,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22utf-8%22%3F%3E%0A%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22512%22%20height%3D%22512%22%20viewBox%3D%220%200%20512%20512%22%3E%0A%3Cg%3E%3Cpolygon%20fill%3D%22%23ddd%22%20points%3D%22128%2C192%20256%2C320%20384%2C192%22%2F%3E%3C%2Fg%3E%0A%3C%2Fsvg%3E")}}@supports (border-radius:50px){.checkbox-onoff{display:inline-block;width:40px;height:10px;background:var(--color-toolkit-checkbox-onoff-background);margin:8px 1rem;position:relative;border-radius:50px}.checkbox-onoff label{display:block;width:20px;height:20px;position:absolute;top:-5px;cursor:pointer;border-radius:50px;transition:all .4s ease;left:27px;background-color:var(--color-toolkit-checkbox-onoff-label-background)}.checkbox-onoff input[type=checkbox]{visibility:hidden}.checkbox-onoff input[type=checkbox]:checked+label{left:-5px;background:var(--color-toolkit-checkbox-onoff-checked-background)}}@supports (transform:rotate(-45deg)){.checkbox{width:20px;position:relative;margin:20px auto}.checkbox label{width:20px;height:20px;cursor:pointer;position:absolute;top:0;left:0;background:var(--color-toolkit-checkbox-label-background);border-radius:10px}.checkbox label::after{content:'';width:9px;height:5px;position:absolute;top:4px;left:4px;border:3px solid var(--color-toolkit-checkbox-label-border);border-top:none;border-right:none;background:0 0;opacity:0;transform:rotate(-45deg)}.checkbox input[type=checkbox]{visibility:hidden}.checkbox input[type=checkbox]:checked+label::after{border-color:var(--color-toolkit-checkbox-input-border);opacity:1}.checkbox input[disabled]+label{background-color:transparent!important;cursor:inherit}.checkbox input:not(:checked):not([readonly]):not([disabled])+label:hover::after{opacity:.5}}@media screen and (max-width:50em){.tabs>label{width:100%}}.loader,.loader::after{border-radius:50%;width:2em;height:2em}.loader{margin:1em auto;font-size:10px;position:relative;text-indent:-9999em;border-top:.5em solid var(--color-toolkit-loader-border);border-right:.5em solid var(--color-toolkit-loader-border);border-bottom:.5em solid var(--color-toolkit-loader-border);border-left:.5em solid var(--color-toolkit-loader-borderleft);-webkit-transform:translateZ(0);-ms-transform:translateZ(0);transform:translateZ(0);-webkit-animation:load8 1.2s infinite linear;animation:load8 1.2s infinite linear}@-webkit-keyframes load8{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes load8{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}.engine-tooltip{display:none;position:absolute;padding:.5rem 1rem;margin:0 0 0 2rem;border:1px solid var(--color-toolkit-engine-tooltip-border);background:var(--color-toolkit-engine-tooltip-background);font-size:14px;font-weight:400;z-index:1000000;text-align:left;border-radius:10px}.engine-tooltip:hover,td:hover .engine-tooltip,th:hover .engine-tooltip{display:inline-block}.stacked-bar-chart{margin:0;padding:0 .125rem 0 4rem;width:100%;width:-moz-available;width:-webkit-fill-available;width:fill;flex-direction:row;flex-wrap:nowrap;align-items:center;display:inline-flex}.stacked-bar-chart-value{width:3rem;display:inline-block;position:absolute;padding:0 .5rem;text-align:right}.stacked-bar-chart-base{display:flex;flex-shrink:0;flex-grow:0;flex-basis:unset}.stacked-bar-chart-median{display:flex;flex-shrink:0;flex-grow:0;flex-basis:unset;background:var(--color-base-font);border:1px solid rgba(var(--color-base-font-rgb),.9);padding:.3rem 0}.stacked-bar-chart-rate80{display:flex;flex-shrink:0;flex-grow:0;flex-basis:unset;background:0 0;border:1px solid rgba(var(--color-base-font-rgb),.3);padding:.3rem 0}.stacked-bar-chart-rate95{display:flex;flex-shrink:0;flex-grow:0;flex-basis:unset;background:0 0;border-bottom:1px dotted rgba(var(--color-base-font-rgb),.5);padding:0}.stacked-bar-chart-rate100{display:flex;flex-shrink:0;flex-grow:0;flex-basis:unset;background:0 0;border-left:1px solid rgba(var(--color-base-font-rgb),.9);padding:.4rem 0;width:1px}/*! Autocomplete.js v2.6.3 | license MIT | (c) 2017, Baptiste Donaux | http://autocomplete-js.com */.autocomplete{position:absolute;max-height:0;overflow-y:hidden;text-align:left;border-radius:10px}.autocomplete:active,.autocomplete:focus,.autocomplete:hover{background-color:var(--color-autocomplete-background)}.autocomplete:empty{display:none}.autocomplete>ul{list-style-type:none;margin:0;padding:0}.autocomplete>ul>li{cursor:pointer;padding:8px 0 8px 8px}.autocomplete>ul>li.active,.autocomplete>ul>li:active,.autocomplete>ul>li:focus,.autocomplete>ul>li:hover{background-color:var(--color-autocomplete-background-hover)}.autocomplete>ul>li.active a:active,.autocomplete>ul>li.active a:focus,.autocomplete>ul>li.active a:hover,.autocomplete>ul>li:active a:active,.autocomplete>ul>li:active a:focus,.autocomplete>ul>li:active a:hover,.autocomplete>ul>li:focus a:active,.autocomplete>ul>li:focus a:focus,.autocomplete>ul>li:focus a:hover,.autocomplete>ul>li:hover a:active,.autocomplete>ul>li:hover a:focus,.autocomplete>ul>li:hover a:hover{text-decoration:none}.autocomplete>ul>li.locked{cursor:inherit}.autocomplete.open{display:block;background-color:var(--color-autocomplete-background);color:var(--color-autocomplete-font);border:1px solid var(--color-autocomplete-border);max-height:500px;overflow-y:auto;z-index:100}.autocomplete.open:empty{display:none}@media screen and (max-width:50em){.autocomplete{bottom:0}.autocomplete>ul>li{border-bottom:1px solid var(--color-result-top-border);text-align:left}}#main_results #results.image-detail-open.only_template_images{width:min(98%,59.25rem)!important}#main_results #results.only_template_images.image-detail-open #backToTop{left:56.75rem!important;right:inherit}article.result-images .detail{display:none}#results.image-detail-open article.result-images[data-vim-selected] .detail{display:flex;flex-direction:column;position:fixed;left:60rem;right:0;top:7.75rem;transition:top 64ms ease-in 0s;bottom:0;background:var(--color-result-detail-background);border:1px solid var(--color-result-detail-background);z-index:10000;padding:4rem 3rem 3rem 3rem}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-images-source{display:block;flex:1;text-align:left;width:100%;border:none;text-decoration:none}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-images-source img{padding:0;margin:0;border:none;object-fit:contain;width:inherit;max-width:100%;min-height:inherit;max-height:calc(100vh - 25rem - 7rem);background:inherit}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels{color:var(--color-result-detail-font);max-height:16rem;min-height:16rem}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels hr{border-top:1px solid var(--color-result-detail-hr);border-bottom:none}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels h4{height:2rem;overflow:hidden;text-overflow:ellipsis;font-size:.9rem}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p{color:var(--color-result-detail-label-font);font-size:.9rem}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p span{display:inline-block;width:12rem}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels a,#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels h4,#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p{text-align:left}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p.result-content{height:2rem;overflow:hidden;text-overflow:ellipsis}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p.result-url{white-space:nowrap;overflow-x:hidden;text-overflow:ellipsis}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p.result-content:hover,#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p.result-url:hover{position:relative;overflow:inherit!important;background:var(--color-result-detail-background);text-overflow:inherit!important}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels a,#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels a:active,#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels a:hover,#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels a:visited{color:var(--color-result-detail-link)}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels a:hover{text-decoration:underline}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close{top:1rem;left:1rem;padding:.4rem}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous{top:1rem;right:6rem;padding:.4rem .5rem .4rem .3rem}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next{top:1rem;right:2rem;padding:.4rem}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous{border-radius:50%;display:block;width:1.5rem;height:1.5rem;position:absolute;filter:opacity(40%);z-index:2000002}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close span,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next span,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous span{display:block;width:1.5rem;height:1.5rem;text-align:center}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next span::before,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous span::before{vertical-align:sub}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close:active,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close:hover,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close:visited,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next:active,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next:hover,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next:visited,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous:active,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous:hover,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous:visited{color:var(--color-result-detail-font);background:var(--color-result-detail-background);border:1px solid var(--color-result-detail-font)}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close:focus,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close:hover,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next:focus,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next:hover,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous:focus,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous:hover{filter:opacity(80%)}#results.image-detail-open article.result-images[data-vim-selected] .detail .loader{position:absolute;top:1rem;right:50%;border-top:.5em solid var(--color-result-detail-loader-border);border-right:.5em solid var(--color-result-detail-loader-border);border-bottom:.5em solid var(--color-result-detail-loader-border);border-left:.5em solid var(--color-result-detail-loader-borderleft)}#results.image-detail-open.scrolling article.result-images[data-vim-selected] .detail{top:0}#results.image-detail-open.scrolling article.result-images[data-vim-selected] .detail a.result-images-source img{max-height:calc(100vh - 25rem)}@media screen and (max-width:80em){#results.image-detail-open article.result-images[data-vim-selected] .detail{top:0;left:0}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-images-source{display:flex;flex-direction:column;justify-content:center}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-images-source img{width:100%;max-height:calc(100vh - 24rem)}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next{right:1rem}}@media screen and (max-width:50em){#results.image-detail-open article.result-images[data-vim-selected] .detail{top:0;left:0;padding:1rem}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-images-source img{width:100%;max-height:calc(100vh - 20rem);margin:0}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p span{width:inherit;margin-right:1rem}}.dialog-modal{animation-name:dialogmodal;animation-duration:.13s}@keyframes dialogmodal{0%{opacity:0}50%{opacity:.5;transform:translate(-50%,-50%) scale(1.05)}}#main_index{margin-top:26vh}#main_index #linkto_preferences{right:1.8rem}.index{text-align:center}.index .title{background:url(../img/searxng.png) no-repeat;min-height:4rem;margin:4rem auto;background-position:center;background-size:contain}.index h1{font-size:4em;visibility:hidden}.index #search,.index #search_header{margin:0 auto;background:inherit;border:inherit;padding:0;display:block}.index .search_filters{display:block;margin:1em 0}.index .category label{padding:6px 10px;border-bottom:initial!important}@media screen and (max-width:80em){div.title h1{font-size:1em}#main_index{margin-top:6em}}@media screen and (max-width:50em){#main_index{margin-top:0}}#tab-contentquery table td,#tab-contentquery table th{text-align:left!important;height:3rem}#main_preferences form{width:100%}#main_preferences fieldset{margin:8px;border:none}#main_preferences legend{margin:0;padding:5px 0 0 0;display:block;float:left;width:300px}#main_preferences .value{margin:0;padding:0;float:left;width:15em}#main_preferences .value input[type=text],#main_preferences .value select{font-size:inherit!important;margin:0 1rem 0 0}#main_preferences .value select{width:14rem}#main_preferences .value input[type=text]{width:13.25rem;color:var(--color-toolkit-input-text-font);border:none;background:none repeat scroll 0 0 var(--color-toolkit-select-background);padding:.2rem .4rem;height:2rem;border-radius:5px}#main_preferences .value input[type=text]:focus,#main_preferences .value input[type=text]:hover{background-color:var(--color-toolkit-select-background-hover)}#main_preferences .value input:focus,#main_preferences .value select:focus{outline:0;box-shadow:0 0 1px 1px var(--color-btn-background)}#main_preferences .description{margin:0;padding:5px 0 0 0;float:left;width:50%;color:var(--color-settings-engine-description-font);font-size:90%}#main_preferences table{border-collapse:collapse}#main_preferences table td{text-align:center}#main_preferences table.cookies{width:100%}#main_preferences table.cookies td,#main_preferences table.cookies th{text-align:left;font-family:monospace;font-size:1rem;padding:.5em;vertical-align:top}#main_preferences table.cookies td:first-child{word-break:keep-all;width:14rem;padding-right:1rem}#main_preferences table.cookies td:last-child{word-break:break-all}#main_preferences table.cookies>tbody>tr:nth-child(even)>td,#main_preferences table.cookies>tbody>tr:nth-child(even)>th{background-color:var(--color-settings-tr-hover)}#main_preferences .category{margin-right:.5rem}#main_preferences .category label{border:2px solid transparent;padding:.2rem .4rem;border-radius:5px}#main_preferences .category input[type=checkbox]:checked+label{border:2px solid var(--color-categories-item-border-selected)}#main_preferences .name,#main_preferences .shortcut{text-align:left}#main_preferences .preferences_back{background:none repeat scroll 0 0 var(--color-btn-background);color:var(--color-btn-font);border:0 none;border-radius:10px;cursor:pointer;display:inline-block;margin:2px 4px;padding:.7em}#main_preferences .preferences_back a{color:var(--color-settings-return-font)}#main_preferences .preferences_back a::first-letter{text-transform:uppercase}#main_preferences div.selectable_url pre{width:100%}#main_preferences th.name .engine-tooltip{margin-top:1.8rem;left:calc((100% - 85em)/ 2 + 10em);max-width:40rem}#main_preferences th.name .engine-tooltip .engine-description{margin-top:.5rem}@media screen and (max-width:80em){.preferences_back{clear:both}.engine-tooltip{left:10em!important}}#search{padding:0;margin:0}#search_header{padding:1.5em 2em 0 7rem;margin:0;background:var(--color-header-background);border-bottom:1px solid var(--color-header-border);display:grid;column-gap:1.2rem;row-gap:1rem;grid-template-columns:3rem 1fr;grid-template-areas:"logo search" "spacer categories"}.category{display:inline-block;position:relative;margin-right:1rem;padding:0}.category input{display:none}.category label{cursor:pointer;padding:.2rem 0;display:inline-flex;text-transform:capitalize;font-size:.9em;border-bottom:2px solid transparent;-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.category label svg{padding-right:.2rem}.category label div.category_name{margin:auto 0}.category input[type=checkbox]:checked+label{color:var(--color-categories-item-selected-font);border-bottom:2px solid var(--color-categories-item-border-selected)}#search_logo{grid-area:logo;display:flex;align-items:center;justify-content:center}#search_logo svg{flex:1;width:30px;height:30px;margin:.5rem 0 auto 0}.search_categories{grid-area:categories}.search_box{margin:0;padding:0;grid-area:search;display:inline-flex;flex-direction:row;white-space:nowrap}#clear_search{display:block;border-collapse:separate;box-sizing:border-box;width:1.8em;margin:0;padding:8px 2px;background:none repeat scroll 0 0 var(--color-search-background);border-top:1px solid var(--color-search-border);border-bottom:1px solid var(--color-search-border);border-right:none;border-left:none;border-radius:0;outline:0;color:var(--color-search-font);font-size:16px;z-index:10000}#clear_search:hover{color:var(--color-search-background-hover)}#clear_search.empty *{display:none}#q,#send_search{display:block!important;border-collapse:separate;box-sizing:border-box;margin:0;padding:10px;background:none repeat scroll 0 0 var(--color-search-background);border:1px solid var(--color-search-border);border-radius:0;outline:0;color:var(--color-search-font);font-size:16px;z-index:2}#q{outline:medium none;padding-left:12px;padding-right:0!important;border-right:none;width:40rem;border-radius:10px 0 0 10px}#q::-ms-clear,#q::-webkit-search-cancel-button{display:none}#send_search{border-left:none;border-radius:0 10px 10px 0}#send_search:hover{cursor:pointer;background-color:var(--color-search-background-hover);color:var(--color-search-background)}.no-js #clear_search,.no-js #send_search{width:auto!important;border-left:1px solid var(--color-search-border);padding:10px}.search_filters{margin:.6rem 0 0 10.6rem}.search_filters select{background-color:inherit}.search_filters select:focus,.search_filters select:hover{color:var(--color-base-font)}@media screen and (max-width:80em){#search_header{padding:1.5em .5rem 0 .5rem;column-gap:.5rem}.search_filters{margin:.6rem 0 0 3.5rem}#categories{font-size:90%;clear:both}#categories .checkbox_container{margin:auto;margin-top:2px}html.touch #main_index #categories_container,html.touch #main_results #categories_container{width:1000px;width:-moz-max-content;width:-webkit-max-content;width:max-content}html.touch #main_index #categories_container .category,html.touch #main_results #categories_container .category{display:inline-block;width:auto}html.touch #main_index #categories,html.touch #main_results #categories{width:100%;text-align:left;overflow-x:scroll;overflow-y:hidden;-webkit-overflow-scrolling:touch}}@media screen and (max-width:50em){#search_header{width:100%;margin:0;padding:.1rem 0 0 0;column-gap:0;row-gap:0;grid-template-areas:"logo search" "categories categories"}.search_logo{padding:0}.search_box{width:99%;display:flex;flex-direction:row}#q{width:100%;flex:1}#main_results #q:placeholder-shown~#send_search{margin-right:2.6rem;transition:margin-right .1s}.search_filters{margin:0}.language,.time_range{width:45%}.category{display:block;width:100%;margin:0}.category label{padding:.8rem!important;margin:0!important}.category label svg{display:none}}@media screen and (max-width:20rem){#search_header{grid-template-areas:"search search" "categories categories"}#search_logo{display:none}}#categories{-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}#categories::-webkit-scrollbar{width:0;height:0}#categories_container{position:relative}.ion-icon{display:inline-block;vertical-align:bottom;line-height:1;text-decoration:inherit}.ion-icon-small{width:1rem;height:1rem;display:inline-block;vertical-align:bottom;line-height:1;text-decoration:inherit}.ion-icon-big{width:1.5rem;height:1.5rem;display:inline-block;vertical-align:bottom;line-height:1;text-decoration:inherit}html{font-family:sans-serif;font-size:.9em;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%;color:var(--color-base-font);background-color:var(--color-base-background);padding:0;margin:0}body,main{padding:0;margin:0}body{display:flex;flex-direction:column;height:100vh;margin:0}main{width:100%;margin-bottom:2rem;flex:1}#main_about,#main_preferences,#main_stats{margin:2em auto;width:85em}footer{clear:both;min-height:4rem;padding:1rem 0;width:100%;text-align:center;background-color:var(--color-footer-background);border-top:1px solid var(--color-footer-border);overflow:hidden}footer p{font-size:.9em}#main_preferences h1,#main_stats h1{background:url(../img/searxng.png) no-repeat;background-size:contain;min-height:40px;margin:0 auto}#main_preferences h1 span,#main_stats h1 span{visibility:hidden}#results button[type=submit],input[type=submit]{padding:.7rem;display:inline-block;background:var(--color-btn-background);color:var(--color-btn-font);border-radius:10px;border:0;cursor:pointer}a{text-decoration:none;color:var(--color-url-font)}a:visited{color:var(--color-url-visited-font)}a:visited .highlight{color:var(--color-url-visited-font)}article[data-vim-selected]{background:var(--color-result-vim-selected);border-left:.2rem solid var(--color-result-vim-arrow);border-radius:0 10px 10px 0}article.result-images[data-vim-selected]{background:var(--color-result-vim-arrow);border:none;border-radius:10px}article.result-images[data-vim-selected] .image_thumbnail{filter:opacity(60%)}article[data-vim-selected].category-files,article[data-vim-selected].category-map,article[data-vim-selected].category-music,article[data-vim-selected].category-news,article[data-vim-selected].category-social,article[data-vim-selected].category-videos{border:1px solid var(--color-result-vim-arrow);border-radius:10px}.result{margin:.125rem 0;padding:1rem;border-left:.2rem solid transparent}.result h3{font-size:1.2rem;word-wrap:break-word;margin:.4rem 0 .4rem 0;padding:0}.result h3 a{color:var(--color-result-link-font);font-weight:400;font-size:1.1em}.result h3 a:visited{color:var(--color-result-link-visited-font)}.result h3 a:focus,.result h3 a:hover{text-decoration:underline;border:none;outline:0}.result .cache_link,.result .proxyfied_link{font-size:.9em!important}.result .altlink,.result .content,.result .stat{font-size:.9em;margin:0;padding:0;max-width:54em;word-wrap:break-word;line-height:1.24}.result .altlink .highlight,.result .content .highlight,.result .stat .highlight{color:var(--color-result-description-highlight-font);background:inherit;font-weight:700}.result .codelines .highlight{color:inherit;background:inherit;font-weight:400}.result .url_wrapper{display:flex;font-size:1rem;color:var(--color-result-url-font);flex-wrap:nowrap;overflow:hidden;flex-direction:row;margin:0;padding:0}.result .url_wrapper .url_o1{white-space:nowrap;flex-shrink:1}.result .url_wrapper .url_o1::after{content:" ";width:1ch;display:inline-block}.result .url_wrapper .url_o2{overflow:hidden;white-space:nowrap;flex-basis:content;flex-grow:0;flex-shrink:1;text-align:right}.result .url_wrapper .url_o2 .url_i2{float:right}.result .published_date{font-size:.8em;color:var(--color-result-publishdate-font)}.result img.thumbnail{float:left;padding:.6rem 1rem 0 0;width:20rem}.result img.image{float:left;padding:.6rem 1rem 0 0;width:7rem;max-height:7rem;object-fit:scale-down;object-position:right top}.result .break{clear:both}.category-files,.category-map,.category-music,.category-news,.category-social,.category-videos{border:1px solid var(--color-result-border);margin:1rem 0;border-radius:10px}.category-social .image{width:auto!important;min-width:48px;min-height:48px;padding:0 5px 25px 0!important}.result-videos .content{overflow:hidden}.engines{float:right;color:var(--color-result-engines-font)}.engines span{font-size:smaller;margin:0 .5em 0 0}.small_font{font-size:.8em}.highlight{color:var(--color-result-link-font-highlight);background:inherit}.empty_element{font-style:italic}.result-images{display:inline-block;margin:0;padding:0;position:relative;max-height:200px;border:none!important}.result-images img{float:inherit;margin:.125rem;padding:0;border:none;max-height:200px;background:var(--color-result-image-background)}.result-images span.title{display:none;color:var(--color-result-image-span-font)}.result-images:hover span.title{display:block;position:absolute;bottom:0;right:0;padding:4px;margin:0 0 4px 4px;background-color:var(--color-result-image-span-background-hover);font-size:.7em}.result-map img.image{float:right!important;height:100px!important;width:auto!important}.result-map table{font-size:.9em;width:auto;border-collapse:separate;border-spacing:0 .35rem}.result-map table th{font-weight:inherit;width:17rem;vertical-align:top;text-align:left}.result-map table td{vertical-align:top;text-align:left}.hidden{display:none!important}#results{margin:1rem 2rem 0 10rem;display:grid;grid-template-columns:45rem 25rem;grid-template-rows:min-content min-content 1fr min-content;gap:0 5rem;grid-template-areas:"corrections sidebar" "answers sidebar" "urls sidebar" "pagination sidebar"}#results #sidebar :first-child,#results #urls :first-child{margin-top:0}#urls{padding:0;grid-area:urls}#suggestions .wrapper{display:flex;flex-flow:row wrap;justify-content:flex-end}#suggestions .wrapper form{display:inline-block;flex:1 1 50%}#infoboxes input,#suggestions input{padding:0;margin:3px;font-size:.9em;display:inline-block;background:0 0;color:var(--color-result-search-url-font);cursor:pointer}#infoboxes .infobox .url a,#infoboxes input[type=submit],#suggestions .infobox .url a,#suggestions input[type=submit]{color:var(--color-result-link-font);text-decoration:none;font-size:.9rem}#infoboxes .infobox .url a:hover,#infoboxes input[type=submit]:hover,#suggestions .infobox .url a:hover,#suggestions input[type=submit]:hover{text-decoration:underline}#corrections{grid-area:corrections;display:flex;flex-flow:row wrap;margin:0 0 1em 0}#corrections h4,#corrections input[type=submit]{display:inline-block;padding:.5rem;margin:.5rem}#corrections input[type=submit]{font-size:.8rem;border-radius:5px}#apis .title,#search_url .title,#suggestions .title{margin:2em 0 .5em 0;color:var(--color-base-font)}#answers{grid-area:answers;border:1px solid var(--color-answer-border);background:var(--color-answer-background);padding:1rem;margin:1rem 0;margin-top:0;color:var(--color-answer-font);border-radius:10px}#answers h4{display:none}#infoboxes form{min-width:210px}#sidebar{grid-area:sidebar;word-wrap:break-word;color:var(--color-sidebar-font)}#sidebar .infobox{margin:10px 0 10px;border:1px solid var(--color-sidebar-border);padding:1rem;font-size:.9em;border-radius:10px}#sidebar .infobox h2{margin:0 0 .5em 0}#sidebar .infobox img{max-width:100%;max-height:12em;display:block;margin:0 auto;padding:0}#sidebar .infobox dl{margin:.5em 0}#sidebar .infobox dt{display:inline;margin:.5em .25em .5em 0;padding:0;font-weight:700}#sidebar .infobox dd{display:inline;margin:.5em 0;padding:0}#sidebar .infobox input{font-size:1em}#sidebar .infobox br{clear:both}#sidebar .infobox .attributes,#sidebar .infobox .urls{clear:both}#search_url{margin-top:8px}#search_url div.selectable_url pre{width:200em}#linkto_preferences{position:absolute;right:10px;top:2.2rem;padding:0;border:0;display:block;font-size:1.2em;color:var(--color-search-font)}#linkto_preferences a:active *,#linkto_preferences a:hover *,#linkto_preferences a:link *,#linkto_preferences a:visited *{color:var(--color-search-font)}#pagination{grid-area:pagination}#pagination br{clear:both}#apis{margin-top:8px;clear:both}#backToTop{border:1px solid var(--color-backtotop-border);margin:0;padding:0;font-size:1em;background:var(--color-backtotop-background);position:fixed;bottom:8rem;left:56.3rem;transition:opacity .5s;opacity:0;border-radius:10px}#backToTop a{display:block;margin:0;padding:.7em}#backToTop a,#backToTop a:active,#backToTop a:hover,#backToTop a:visited{color:var(--color-backtotop-font)}#results.scrolling #backToTop{opacity:1}@media screen and (max-width:80em){#main_about,#main_preferences,#main_stats{margin:2rem .5rem;width:auto}#infoboxes{position:inherit;max-width:inherit}#infoboxes .infobox{clear:both}#infoboxes .infobox img{float:left;max-width:10em;margin:.5em .5em .5em 0}#sidebar{margin-bottom:.125rem;padding:0;float:none;border:none;width:auto}#sidebar input{border:0}#apis{display:none}#search_url{display:none}.result .thumbnail{max-width:98%}.result .url span.url{display:block;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;width:100%}.result .engines{float:right;padding:0 0 3px 0}.result-images{border-bottom:none!important}.image_result{max-width:98%}.image_result img{max-width:98%}#backToTop{display:none}#pagination{margin:2rem 0 0 0!important}#main_results div#results{margin:1rem auto 0 auto;justify-content:center;display:grid;grid-template-columns:45rem;grid-template-rows:min-content min-content min-content 1fr min-content min-content;gap:0;grid-template-areas:"corrections" "answers" "sidebar" "urls" "pagination"}}#main_results div#results.only_template_images{margin:1rem .5rem 0 .5rem;display:grid;grid-template-columns:100%;grid-template-rows:min-content min-content 1fr min-content min-content;gap:0;grid-template-areas:"corrections" "urls" "answers" "sidebar" "pagination"}#main_results div#results.only_template_images #urls{width:inherit;margin:0}#main_results div#results.only_template_images #backToTop{left:auto;right:1rem}#main_results div#results.only_template_images #pagination{margin-right:4rem}@media screen and (max-width:50em){#main_results div#results{grid-template-columns:100%;margin:2rem .5rem 0 .5rem}#linkto_preferences{top:.8rem;right:.7rem}#main_index #linkto_preferences{top:.5rem;right:.5rem}#results{margin:0;padding:0}#pagination{margin:2rem 1rem 0 1rem!important}article[data-vim-selected]{border:1px solid var(--color-result-vim-arrow);border-radius:10px}.result{border:1px solid var(--color-result-border);margin:1rem 0;border-radius:10px}.result-images{margin:0;padding:0;border:none}}@media screen and (max-width:35em){.result-videos img.thumbnail{float:none!important}.result-videos .content{overflow:inherit}}pre code{white-space:pre-wrap}#search_submit{left:1px;right:auto}/*# sourceMappingURL=searxng-rtl.min.css.map */
\ No newline at end of file diff --git a/searx/static/themes/simple/css/searxng-rtl.min.css.map b/searx/static/themes/simple/css/searxng-rtl.min.css.map index c552ee16c..6e9a63254 100644 --- a/searx/static/themes/simple/css/searxng-rtl.min.css.map +++ b/searx/static/themes/simple/css/searxng-rtl.min.css.map @@ -1 +1 @@ -{"version":3,"sources":["../../__common__/less/new_issue.less","../../__common__/less/stats.less","../src/generated/pygments.less","../../__common__/less/result_templates.less","../node_modules/normalize.css/normalize.css","../src/generated/ion.less","../src/less/definitions.less","../src/less/code.less","../src/less/toolkit.less","../src/less/mixins.less","../src/less/autocomplete.less","../src/less/detail.less","../src/less/index.less","../src/less/preferences.less","../src/less/search.less","../src/less/style.less","../src/less/style-rtl.less"],"names":[],"mappings":"AAAA,qBACI,QAAA,MACA,QAAA,IAAA,KACA,YAAA,WACA,UAAA,KACA,MAAA,KACA,iBAAA,kBACA,OAAA,QACA,cAAA,eACA,WAAA,YAAA,EAAA,EAAA,EAAA,EAGgB,2BAChB,iBAAA,QAGJ,YACI,QAAA,KCfA,2BACI,MAAA,MAGJ,4BACI,MAAA,KACA,WAAA,MASJ,kCACI,WAAA,MAGC,iCACD,UAAA,OACA,OAAA,KACA,OAAA,IAAA,MAAA,KAKJ,0BADqB,sDADA,sDAGjB,MAAA,MAGmB,qDAEnB,aAAA,IAAA,MAAA,KACA,QAAA,EAAA,KAAA,EAAA,EACA,OAAA,EAAA,EAAA,EAAA,MAIR,iBACI,MAAA,IACA,QAAA,aACA,WAAA,MACA,cAAA,MAGJ,iBACI,MAAO,kBACP,QAAA,aAGJ,eACI,OAAA,IAAA,MAAA,QACA,OAAA,IAAA,EAGJ,kBACI,OAAA,IAAA,MAAA,QACA,OAAA,IAAA,EACA,MAAA,KAGJ,kBACI,OAAA,IAAA,MAAA,QACA,OAAA,IAAA,EACA,MAAA,KAGJ,MACI,MAAA,EACA,OAAA,ECxEH,MD+EO,MAAA,GC/EP,MD+EO,MAAA,GC/EP,MD+EO,MAAA,GC/EP,MD+EO,MAAA,GC/EP,MD+EO,MAAA,GC/EP,MD+EO,MAAA,GC/EP,MD+EO,MAAA,GC/EP,MD+EO,MAAA,GC/EP,MD+EO,MAAA,GC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,QD+EO,MAAA,KE/ER,aACI,OAAA,MACA,MAAA,KACA,OAAA,KAAA,8ECOJ,KACE,YAAa,KACb,yBAAqC,KAUvC,KACE,OAAQ,EAOV,K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"}
\ No newline at end of file +{"version":3,"sources":["../../__common__/less/new_issue.less","../../__common__/less/stats.less","../src/generated/pygments.less","../../__common__/less/result_templates.less","../node_modules/normalize.css/normalize.css","../src/less/definitions.less","../src/less/code.less","../src/less/toolkit.less","../src/less/mixins.less","../src/less/autocomplete.less","../src/less/detail.less","../src/less/animations.less","../src/less/index.less","../src/less/preferences.less","../src/less/search.less","../src/less/style.less","../src/less/style-rtl.less"],"names":[],"mappings":"AAAA,qBACI,QAAA,MACA,QAAA,IAAA,KACA,YAAA,WACA,UAAA,KACA,MAAA,KACA,iBAAA,kBACA,OAAA,QACA,cAAA,eACA,WAAA,YAAA,EAAA,EAAA,EAAA,EAGgB,2BAChB,iBAAA,QAGJ,YACI,QAAA,KCfA,2BACI,MAAA,MAGJ,4BACI,MAAA,KACA,WAAA,MASJ,kCACI,WAAA,MAGC,iCACD,UAAA,OACA,OAAA,KACA,OAAA,IAAA,MAAA,KAKJ,0BADqB,sDADA,sDAGjB,MAAA,MAGmB,qDAEnB,aAAA,IAAA,MAAA,KACA,QAAA,EAAA,KAAA,EAAA,EACA,OAAA,EAAA,EAAA,EAAA,MAIR,iBACI,MAAA,IACA,QAAA,aACA,WAAA,MACA,cAAA,MAGJ,iBACI,MAAO,kBACP,QAAA,aAGJ,eACI,OAAA,IAAA,MAAA,QACA,OAAA,IAAA,EAGJ,kBACI,OAAA,IAAA,MAAA,QACA,OAAA,IAAA,EACA,MAAA,KAGJ,kBACI,OAAA,IAAA,MAAA,QACA,OAAA,IAAA,EACA,MAAA,KAGJ,MACI,MAAA,EACA,OAAA,ECxEH,MD+EO,MAAA,GC/EP,MD+EO,MAAA,GC/EP,MD+EO,MAAA,GC/EP,MD+EO,MAAA,GC/EP,MD+EO,MAAA,GC/EP,MD+EO,MAAA,GC/EP,MD+EO,MAAA,GC/EP,MD+EO,MAAA,GC/EP,MD+EO,MAAA,GC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,QD+EO,MAAA,KE/ER,aACI,OAAA,MACA,MAAA,KACA,OAAA,KAAA,8ECOJ,KACE,YAAa,KACb,yBAAqC,KAUvC,KACE,OAAQ,EAOV,K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"}
\ No newline at end of file diff --git a/searx/static/themes/simple/css/searxng.css b/searx/static/themes/simple/css/searxng.css index cae7a11be..c7319320c 100644 --- a/searx/static/themes/simple/css/searxng.css +++ b/searx/static/themes/simple/css/searxng.css @@ -729,91 +729,6 @@ template { display: none; } -@font-face { - font-family: "ion"; - src: url("../fonts/ion.eot?31a1b735188db616a2142d17947e8a45"); - src: url("../fonts/ion.eot?31a1b735188db616a2142d17947e8a45#iefix") format("embedded-opentype"), url("../fonts/ion.woff2?31a1b735188db616a2142d17947e8a45") format("woff2"), url("../fonts/ion.woff?31a1b735188db616a2142d17947e8a45") format("woff"), url("../fonts/ion.ttf?31a1b735188db616a2142d17947e8a45") format("truetype"), url("../fonts/ion.svg?31a1b735188db616a2142d17947e8a45#ion") format("svg"); - font-weight: normal; - font-style: normal; -} -.ion-icon { - display: inline-block; - line-height: 1; - font-weight: normal; - font-style: normal; - speak: none; - text-decoration: inherit; - text-transform: none; - text-rendering: auto; - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; -} -.ion-icon:before { - font-family: "ion"; -} -.ion-navicon-round:before { - content: "\f101"; -} -.ion-search:before { - content: "\f102"; -} -.ion-play:before { - content: "\f103"; -} -.ion-link:before { - content: "\f104"; -} -.ion-chevron-up:before { - content: "\f105"; -} -.ion-chevron-left:before { - content: "\f106"; -} -.ion-chevron-right:before { - content: "\f107"; -} -.ion-arrow-down-a:before { - content: "\f108"; -} -.ion-arrow-up-a:before { - content: "\f109"; -} -.ion-arrow-swap:before { - content: "\f10a"; -} -.ion-arrow-dropdown:before { - content: "\f10b"; -} -.ion-globe:before { - content: "\f10c"; -} -.ion-time:before { - content: "\f10d"; -} -.ion-location:before { - content: "\f10e"; -} -.ion-warning:before { - content: "\f10f"; -} -.ion-error:before { - content: "\f110"; -} -.ion-film-outline:before { - content: "\f111"; -} -.ion-music-note:before { - content: "\f112"; -} -.ion-more-vertical:before { - content: "\f113"; -} -.ion-magnet:before { - content: "\f114"; -} -.ion-close:before { - content: "\f115"; -} /* * SearXNG, A privacy-respecting, hackable metasearch engine * @@ -887,8 +802,10 @@ template { --color-toolkit-dialog-background: #fff; --color-toolkit-tabs-label-border: #fff; --color-toolkit-tabs-section-border: #ddd; + --color-toolkit-select-background: #f7f7f7; --color-toolkit-select-border: #ddd; - --color-toolkit-select-border-hover: #bbb; + --color-toolkit-select-background-hover: #bbb; + --color-toolkit-input-text-font: #222; --color-toolkit-checkbox-onoff-background: #ddd; --color-toolkit-checkbox-onoff-label-background: #3050ff; --color-toolkit-checkbox-onoff-checked-background: #aaa; @@ -901,7 +818,7 @@ template { --color-toolkit-loader-borderleft: rgba(255, 255, 255, 0); } @media (prefers-color-scheme: dark) { - :root { + :root.theme-auto { --color-base-font: #bbb; --color-base-font-rgb: 187, 187, 187; --color-base-background: #222; @@ -945,8 +862,8 @@ template { --color-result-link-font: #8af; --color-result-link-font-highlight: #8af; --color-result-link-visited-font: #96b; - --color-result-publishdate-font: #777; - --color-result-engines-font: #777; + --color-result-publishdate-font: #888; + --color-result-engines-font: #888; --color-result-search-url-border: #555; --color-result-search-url-font: #fff; --color-result-detail-font: #fff; @@ -969,8 +886,10 @@ template { --color-toolkit-dialog-background: #222; --color-toolkit-tabs-label-border: #222; --color-toolkit-tabs-section-border: #555; + --color-toolkit-select-background: #3c3b31; --color-toolkit-select-border: #555; - --color-toolkit-select-border-hover: #777; + --color-toolkit-select-background-hover: #333; + --color-toolkit-input-text-font: #fff; --color-toolkit-checkbox-onoff-background: #3c3b31; --color-toolkit-checkbox-onoff-label-background: #58f; --color-toolkit-checkbox-onoff-checked-background: #ddd; @@ -983,6 +902,89 @@ template { --color-toolkit-loader-borderleft: rgba(0, 0, 0, 0); } } +:root.theme-dark { + --color-base-font: #bbb; + --color-base-font-rgb: 187, 187, 187; + --color-base-background: #222; + --color-url-font: #8af; + --color-url-visited-font: #96b; + --color-header-background: #181818; + --color-header-border: #333; + --color-footer-background: #181818; + --color-footer-border: #333; + --color-sidebar-border: #555; + --color-sidebar-font: #fff; + --color-backtotop-font: #bbb; + --color-backtotop-border: #333; + --color-backtotop-background: #181818; + --color-btn-background: #58f; + --color-btn-font: #222; + --color-search-border: #555; + --color-search-background: #222; + --color-search-font: #fff; + --color-search-background-hover: #58f; + --color-error: #f55b5b; + --color-error-background: #390a0a; + --color-warning: #f1d561; + --color-warning-background: #39300a; + --color-success: #79f56e; + --color-success-background: #0e390a; + --color-categories-item-selected-font: #58f; + --color-categories-item-border-selected: #58f; + --color-autocomplete-font: #fff; + --color-autocomplete-border: #555; + --color-autocomplete-background: #222; + --color-autocomplete-background-hover: #181818; + --color-answer-border: #333; + --color-answer-font: #bbb; + --color-answer-background: #181818; + --color-result-border: #333; + --color-result-url-font: #fff; + --color-result-vim-selected: #181818; + --color-result-vim-arrow: #8af; + --color-result-description-highlight-font: #fff; + --color-result-link-font: #8af; + --color-result-link-font-highlight: #8af; + --color-result-link-visited-font: #96b; + --color-result-publishdate-font: #888; + --color-result-engines-font: #888; + --color-result-search-url-border: #555; + --color-result-search-url-font: #fff; + --color-result-detail-font: #fff; + --color-result-detail-label-font: lightgray; + --color-result-detail-background: #000; + --color-result-detail-hr: #555; + --color-result-detail-link: #8af; + --color-result-detail-loader-border: rgba(255, 255, 255, 0.2); + --color-result-detail-loader-borderleft: rgba(0, 0, 0, 0); + --color-result-image-span-background-hover: rgba(0, 0, 0, 0.6); + --color-result-image-span-font: #fff; + --color-result-image-background: #8af; + --color-settings-tr-hover: #2d2d2d; + --color-settings-engine-description-font: #909090; + --color-toolkit-badge-font: #fff; + --color-toolkit-badge-background: #777; + --color-toolkit-kbd-font: #000; + --color-toolkit-kbd-background: #fff; + --color-toolkit-dialog-border: #555; + --color-toolkit-dialog-background: #222; + --color-toolkit-tabs-label-border: #222; + --color-toolkit-tabs-section-border: #555; + --color-toolkit-select-background: #3c3b31; + --color-toolkit-select-border: #555; + --color-toolkit-select-background-hover: #333; + --color-toolkit-input-text-font: #fff; + --color-toolkit-checkbox-onoff-background: #3c3b31; + --color-toolkit-checkbox-onoff-label-background: #58f; + --color-toolkit-checkbox-onoff-checked-background: #ddd; + --color-toolkit-checkbox-label-background: #fff; + --color-toolkit-checkbox-label-border: #333; + --color-toolkit-checkbox-input-border: #58f; + --color-toolkit-engine-tooltip-border: #333; + --color-toolkit-engine-tooltip-background: #222; + --color-toolkit-loader-border: rgba(255, 255, 255, 0.2); + --color-toolkit-loader-borderleft: rgba(0, 0, 0, 0); +} /* * SearXNG, A privacy-respecting, hackable metasearch engine */ @@ -1415,8 +1417,6 @@ div.selectable_url { overflow: hidden; height: 1.2em; line-height: 1.2em; - -webkit-border-radius: 5px; - -moz-border-radius: 5px; border-radius: 5px; } div.selectable_url pre { @@ -1431,24 +1431,16 @@ div.selectable_url pre { } .dialog-error { position: relative; - padding: 1em 1em 1em 2.7em; + display: flex; + padding: 1rem; margin: 0 0 1em 0; border: 1px solid var(--color-toolkit-dialog-border); text-align: left; - -webkit-border-radius: 10px; - -moz-border-radius: 10px; border-radius: 10px; color: var(--color-error); background: var(--color-error-background); border-color: var(--color-error); } -.dialog-error::before { - position: absolute; - top: 0.5em; - left: 0.5em; - font-family: "ion"; - font-size: 1.5em; -} .dialog-error .close { float: right; position: relative; @@ -1468,7 +1460,7 @@ div.selectable_url pre { vertical-align: text-top; } .dialog-error tr:hover { - background: transparent; + background: transparent !important; } .dialog-error td { padding: 0 1em 0 0; @@ -1477,29 +1469,18 @@ div.selectable_url pre { margin-top: 0.3em; margin-bottom: 0.3em; } -.dialog-error:before { - content: "\f110"; -} .dialog-warning { position: relative; - padding: 1em 1em 1em 2.7em; + display: flex; + padding: 1rem; margin: 0 0 1em 0; border: 1px solid var(--color-toolkit-dialog-border); text-align: left; - -webkit-border-radius: 10px; - -moz-border-radius: 10px; border-radius: 10px; color: var(--color-warning); background: var(--color-warning-background); border-color: var(--color-warning); } -.dialog-warning::before { - position: absolute; - top: 0.5em; - left: 0.5em; - font-family: "ion"; - font-size: 1.5em; -} .dialog-warning .close { float: right; position: relative; @@ -1519,7 +1500,7 @@ div.selectable_url pre { vertical-align: text-top; } .dialog-warning tr:hover { - background: transparent; + background: transparent !important; } .dialog-warning td { padding: 0 1em 0 0; @@ -1528,18 +1509,15 @@ div.selectable_url pre { margin-top: 0.3em; margin-bottom: 0.3em; } -.dialog-warning:before { - content: "\f10f"; -} .dialog-modal { position: relative; - padding: 1em 1em 1em 2.7em; + display: flex; + padding: 1rem; margin: 0 0 1em 0; border: 1px solid var(--color-toolkit-dialog-border); text-align: left; - -webkit-border-radius: 10px; - -moz-border-radius: 10px; border-radius: 10px; + display: block; background: var(--color-toolkit-dialog-background); position: fixed; top: 50%; @@ -1548,13 +1526,6 @@ div.selectable_url pre { transform: translate(-50%, -50%); z-index: 10000000; } -.dialog-modal::before { - position: absolute; - top: 0.5em; - left: 0.5em; - font-family: "ion"; - font-size: 1.5em; -} .dialog-modal .close { float: right; position: relative; @@ -1574,7 +1545,7 @@ div.selectable_url pre { vertical-align: text-top; } .dialog-modal tr:hover { - background: transparent; + background: transparent !important; } .dialog-modal td { padding: 0 1em 0 0; @@ -1583,6 +1554,9 @@ div.selectable_url pre { margin-top: 0.3em; margin-bottom: 0.3em; } +.dialog-modal h3 { + margin-top: 0; +} .btn-collapse { cursor: pointer; } @@ -1644,7 +1618,6 @@ div.selectable_url pre { border-bottom: 2px solid var(--color-categories-item-border-selected); background: var(--color-categories-item-selected); color: var(--color-categories-item-selected-font); - font-weight: bold; letter-spacing: -0.1px; } .tabs > section:last-of-type { @@ -1673,11 +1646,11 @@ html body .tabs > input:checked + label + section { } /* -- select -- */ select { - height: 28px; - margin: 0 1em 0 0; - padding: 2px 8px 2px 0 !important; + height: 2.4rem; + margin: 0 1rem 0 0; + padding: 0.2rem !important; color: var(--color-search-font); - font-size: 12px; + font-size: 0.9rem; z-index: 2; } select:hover, @@ -1689,26 +1662,33 @@ select:focus { appearance: none; -webkit-appearance: none; -moz-appearance: none; - border: none; - border-bottom: 1px solid var(--color-toolkit-select-border); + border-width: 0 2rem 0 0; + border-color: transparent; background: url("data:image/svg+xml;charset=UTF-8,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22utf-8%22%3F%3E%0A%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22512%22%20height%3D%22512%22%20viewBox%3D%220%200%20512%20512%22%3E%0A%3Cg%3E%3Cpolygon%20points%3D%22128%2C192%20256%2C320%20384%2C192%22%2F%3E%3C%2Fg%3E%0A%3C%2Fsvg%3E") no-repeat; - background-position-x: 105%; - background-size: 2em; + background-position-x: calc(100% + 2rem); + background-size: 2rem; background-origin: content-box; + background-color: var(--color-toolkit-select-background); outline: medium none; + text-overflow: ellipsis; + border-radius: 5px; } select:hover, select:focus { - border-bottom: 1px solid var(--color-toolkit-select-border-hover); + background-color: var(--color-toolkit-select-background-hover); } select option { background-color: var(--color-base-background); } @media (prefers-color-scheme: dark) { - select { + html.theme-auto select, + html.theme-dark select { background-image: url("data:image/svg+xml;charset=UTF-8,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22utf-8%22%3F%3E%0A%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22512%22%20height%3D%22512%22%20viewBox%3D%220%200%20512%20512%22%3E%0A%3Cg%3E%3Cpolygon%20fill%3D%22%23ddd%22%20points%3D%22128%2C192%20256%2C320%20384%2C192%22%2F%3E%3C%2Fg%3E%0A%3C%2Fsvg%3E"); } } + html.theme-dark select { + background-image: url("data:image/svg+xml;charset=UTF-8,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22utf-8%22%3F%3E%0A%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22512%22%20height%3D%22512%22%20viewBox%3D%220%200%20512%20512%22%3E%0A%3Cg%3E%3Cpolygon%20fill%3D%22%23ddd%22%20points%3D%22128%2C192%20256%2C320%20384%2C192%22%2F%3E%3C%2Fg%3E%0A%3C%2Fsvg%3E"); + } } /* -- checkbox-onoff -- */ @supports (border-radius: 50px) { @@ -1756,8 +1736,6 @@ select:focus { top: 0; left: 0; background: var(--color-toolkit-checkbox-label-background); - -webkit-border-radius: 10px; - -moz-border-radius: 10px; border-radius: 10px; } .checkbox label::after { @@ -1848,8 +1826,6 @@ select:focus { font-weight: normal; z-index: 1000000; text-align: left; - -webkit-border-radius: 10px; - -moz-border-radius: 10px; border-radius: 10px; } th:hover .engine-tooltip, @@ -1926,8 +1902,6 @@ td:hover .engine-tooltip, max-height: 0; overflow-y: hidden; text-align: left; - -webkit-border-radius: 10px; - -moz-border-radius: 10px; border-radius: 10px; } .autocomplete:active, @@ -1992,7 +1966,7 @@ td:hover .engine-tooltip, } } #main_results #results.image-detail-open.only_template_images { - width: 59.25rem !important; + width: min(98%, 59.25rem) !important; } #main_results #results.only_template_images.image-detail-open #backToTop { left: 56.75rem !important; @@ -2007,7 +1981,7 @@ article.result-images .detail { position: fixed; left: 60rem; right: 0; - top: 7.5rem; + top: 7.75rem; transition: top 0.064s ease-in 0s; bottom: 0; background: var(--color-result-detail-background); @@ -2199,6 +2173,19 @@ article.result-images .detail { margin-right: 1rem; } } +.dialog-modal { + animation-name: dialogmodal; + animation-duration: 0.13s; +} +@keyframes dialogmodal { + 0% { + opacity: 0; + } + 50% { + opacity: 0.5; + transform: translate(-50%, -50%) scale(1.05); + } +} #main_index { margin-top: 26vh; } @@ -2219,7 +2206,8 @@ article.result-images .detail { font-size: 4em; visibility: hidden; } -.index #search { +.index #search, +.index #search_header { margin: 0 auto; background: inherit; border: inherit; @@ -2272,6 +2260,32 @@ article.result-images .detail { float: left; width: 15em; } +#main_preferences .value select, +#main_preferences .value input[type="text"] { + font-size: inherit !important; + margin: 0 1rem 0 0; +} +#main_preferences .value select { + width: 14rem; +} +#main_preferences .value input[type="text"] { + width: 13.25rem; + color: var(--color-toolkit-input-text-font); + border: none; + background: none repeat scroll 0 0 var(--color-toolkit-select-background); + padding: 0.2rem 0.4rem; + height: 2rem; + border-radius: 5px; +} +#main_preferences .value input[type="text"]:hover, +#main_preferences .value input[type="text"]:focus { + background-color: var(--color-toolkit-select-background-hover); +} +#main_preferences .value select:focus, +#main_preferences .value input:focus { + outline: none; + box-shadow: 0 0 1px 1px var(--color-btn-background); +} #main_preferences .description { margin: 0; padding: 5px 0 0 0; @@ -2280,10 +2294,6 @@ article.result-images .detail { color: var(--color-settings-engine-description-font); font-size: 90%; } -#main_preferences select { - width: 200px; - font-size: inherit !important; -} #main_preferences table { border-collapse: collapse; } @@ -2313,6 +2323,17 @@ article.result-images .detail { #main_preferences table.cookies > tbody > tr:nth-child(even) > td { background-color: var(--color-settings-tr-hover); } +#main_preferences .category { + margin-right: 0.5rem; +} +#main_preferences .category label { + border: 2px solid transparent; + padding: 0.2rem 0.4rem; + border-radius: 5px; +} +#main_preferences .category input[type="checkbox"]:checked + label { + border: 2px solid var(--color-categories-item-border-selected); +} #main_preferences .name, #main_preferences .shortcut { text-align: left; @@ -2321,8 +2342,6 @@ article.result-images .detail { background: none repeat scroll 0 0 var(--color-btn-background); color: var(--color-btn-font); border: 0 none; - -webkit-border-radius: 10px; - -moz-border-radius: 10px; border-radius: 10px; cursor: pointer; display: inline-block; @@ -2358,6 +2377,10 @@ article.result-images .detail { * SearXNG, A privacy-respecting, hackable metasearch engine */ #search { + padding: 0; + margin: 0; +} +#search_header { padding: 1.5em 2em 0 7rem; margin: 0; background: var(--color-header-background); @@ -2368,21 +2391,58 @@ article.result-images .detail { grid-template-columns: 3rem 1fr; grid-template-areas: "logo search" "spacer categories"; } +.category { + display: inline-block; + position: relative; + margin-right: 1rem; + padding: 0; +} +.category input { + display: none; +} +.category label { + cursor: pointer; + padding: 0.2rem 0; + display: inline-flex; + text-transform: capitalize; + font-size: 0.9em; + border-bottom: 2px solid transparent; + -webkit-touch-callout: none; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} +.category label svg { + padding-right: 0.2rem; +} +.category label div.category_name { + margin: auto 0; +} +.category input[type="checkbox"]:checked + label { + color: var(--color-categories-item-selected-font); + border-bottom: 2px solid var(--color-categories-item-border-selected); +} #search_logo { grid-area: logo; + display: flex; + align-items: center; + justify-content: center; } -.search_logo_img { - width: 40px; +#search_logo svg { + flex: 1; + width: 30px; + height: 30px; + margin: 0.5rem 0 auto 0; } .search_categories { grid-area: categories; } -#search_wrapper { +.search_box { + margin: 0; padding: 0; grid-area: search; -} -.search_box { - margin: 0 12px 0 0; display: inline-flex; flex-direction: row; white-space: nowrap; @@ -2417,7 +2477,7 @@ article.result-images .detail { border-collapse: separate; box-sizing: border-box; margin: 0; - padding: 8px; + padding: 10px; background: none repeat scroll 0 0 var(--color-search-background); border: 1px solid var(--color-search-border); border-radius: 0; @@ -2447,18 +2507,30 @@ article.result-images .detail { background-color: var(--color-search-background-hover); color: var(--color-search-background); } +.no-js #clear_search, .no-js #send_search { width: auto !important; + border-left: 1px solid var(--color-search-border); + padding: 10px; } .search_filters { - display: inline-block; - margin: 0.8rem 0 0 0; + margin: 0.6rem 0 0 10.6rem; +} +.search_filters select { + background-color: inherit; +} +.search_filters select:hover, +.search_filters select:focus { + color: var(--color-base-font); } @media screen and (max-width: 80em) { - #search { + #search_header { padding: 1.5em 0.5rem 0 0.5rem; column-gap: 0.5rem; } + .search_filters { + margin: 0.6rem 0 0 3.5rem; + } #categories { font-size: 90%; clear: both; @@ -2482,7 +2554,6 @@ article.result-images .detail { html.touch #main_index #categories, html.touch #main_results #categories { width: 100%; - margin: 0; text-align: left; overflow-x: scroll; overflow-y: hidden; @@ -2490,10 +2561,10 @@ article.result-images .detail { } } @media screen and (max-width: 50em) { - #search { + #search_header { width: 100%; margin: 0; - padding: 0.1em 0 0 0; + padding: 0.1rem 0 0 0; column-gap: 0; row-gap: 0; grid-template-areas: "logo search" "categories categories"; @@ -2501,19 +2572,13 @@ article.result-images .detail { .search_logo { padding: 0; } - #search_wrapper { - width: 100%; - padding: 0; - } .search_box { width: 99%; - margin: 0.1em; - padding: 0 0.1em 0 0; display: flex; flex-direction: row; } #q { - width: auto !important; + width: 100%; flex: 1; } #main_results #q:placeholder-shown ~ #send_search { @@ -2521,8 +2586,7 @@ article.result-images .detail { transition: margin-right 0.1s; } .search_filters { - display: block; - margin: 0.8em 0; + margin: 0; } .language, .time_range { @@ -2531,13 +2595,25 @@ article.result-images .detail { .category { display: block; width: 100%; + margin: 0; } .category label { - padding: 10px !important; + padding: 0.8rem !important; + margin: 0 !important; + } + .category label svg { + display: none; + } +} +@media screen and (max-width: 20rem) { + #search_header { + grid-template-areas: "search search" "categories categories"; + } + #search_logo { + display: none; } } #categories { - margin: 0 10px 0 0; -webkit-touch-callout: none; -webkit-user-select: none; -khtml-user-select: none; @@ -2549,52 +2625,30 @@ article.result-images .detail { width: 0; height: 0; } -.category { - display: inline-block; +#categories_container { position: relative; - margin: 0 3px; - padding: 0; -} -.category input { - display: none; -} -.category label { - cursor: pointer; - padding: 0.3rem 0.75rem 0.5rem 0.75rem; - margin: 0; - display: block; - text-transform: capitalize; - font-size: 0.9em; - border-bottom: 2px solid transparent; - -webkit-touch-callout: none; - -webkit-user-select: none; - -khtml-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; } -.category input[type="checkbox"]:checked + label { - color: var(--color-categories-item-selected-font); - border-bottom: 2px solid var(--color-categories-item-border-selected); +.ion-icon { + display: inline-block; + vertical-align: bottom; + line-height: 1; + text-decoration: inherit; } -#categories_container { - position: relative; +.ion-icon-small { + width: 1rem; + height: 1rem; + display: inline-block; + vertical-align: bottom; + line-height: 1; + text-decoration: inherit; } .ion-icon-big { + width: 1.5rem; + height: 1.5rem; display: inline-block; + vertical-align: bottom; line-height: 1; - font-weight: normal; - font-style: normal; - speak: none; text-decoration: inherit; - text-transform: none; - text-rendering: auto; - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; - font-size: 149%; -} -.ion-icon-big:before { - font-family: "ion"; } html { font-family: sans-serif; @@ -2660,8 +2714,6 @@ input[type="submit"], display: inline-block; background: var(--color-btn-background); color: var(--color-btn-font); - -webkit-border-radius: 10px; - -moz-border-radius: 10px; border-radius: 10px; border: 0; cursor: pointer; @@ -2679,15 +2731,11 @@ a:visited .highlight { article[data-vim-selected] { background: var(--color-result-vim-selected); border-left: 0.2rem solid var(--color-result-vim-arrow); - -webkit-border-radius: 0 10px 10px 0; - -moz-border-radius: 0 10px 10px 0; border-radius: 0 10px 10px 0; } article.result-images[data-vim-selected] { background: var(--color-result-vim-arrow); border: none; - -webkit-border-radius: 10px; - -moz-border-radius: 10px; border-radius: 10px; } article.result-images[data-vim-selected] .image_thumbnail { @@ -2700,8 +2748,6 @@ article[data-vim-selected].category-music, article[data-vim-selected].category-files, article[data-vim-selected].category-social { border: 1px solid var(--color-result-vim-arrow); - -webkit-border-radius: 10px; - -moz-border-radius: 10px; border-radius: 10px; } .result { @@ -2710,7 +2756,7 @@ article[data-vim-selected].category-social { border-left: 0.2rem solid transparent; } .result h3 { - font-size: 1.1em; + font-size: 1.2rem; word-wrap: break-word; margin: 0.4rem 0 0.4rem 0; padding: 0; @@ -2755,13 +2801,35 @@ article[data-vim-selected].category-social { background: inherit; font-weight: normal; } -.result .url { - font-size: 0.96em; - margin: 0 0 3px 0; - padding: 0; - max-width: 54em; - word-wrap: break-word; +.result .url_wrapper { + display: flex; + font-size: 1rem; color: var(--color-result-url-font); + flex-wrap: nowrap; + overflow: hidden; + flex-direction: row; + margin: 0; + padding: 0; +} +.result .url_wrapper .url_o1 { + white-space: nowrap; + flex-shrink: 1; +} +.result .url_wrapper .url_o1::after { + content: " "; + width: 1ch; + display: inline-block; +} +.result .url_wrapper .url_o2 { + overflow: hidden; + white-space: nowrap; + flex-basis: content; + flex-grow: 0; + flex-shrink: 1; + text-align: right; +} +.result .url_wrapper .url_o2 .url_i2 { + float: right; } .result .published_date { font-size: 0.8em; @@ -2769,16 +2837,14 @@ article[data-vim-selected].category-social { } .result img.thumbnail { float: left; - padding: 0 5px 10px 0; - width: 20em; - min-width: 20em; - min-height: 8em; + padding: 0.6rem 1rem 0 0; + width: 20rem; } .result img.image { float: left; - padding: 0 5px 10px 0; - width: 100px; - max-height: 100px; + padding: 0.6rem 1rem 0 0; + width: 7rem; + max-height: 7rem; object-fit: scale-down; object-position: right top; } @@ -2793,8 +2859,6 @@ article[data-vim-selected].category-social { .category-social { border: 1px solid var(--color-result-border); margin: 1rem 0; - -webkit-border-radius: 10px; - -moz-border-radius: 10px; border-radius: 10px; } .category-social .image { @@ -2821,6 +2885,9 @@ article[data-vim-selected].category-social { color: var(--color-result-link-font-highlight); background: inherit; } +.empty_element { + font-style: italic; +} .result-images { display: inline-block; margin: 0; @@ -2876,7 +2943,7 @@ article[data-vim-selected].category-social { display: none !important; } #results { - margin: 2rem 2rem 0 10rem; + margin: 1rem 2rem 0 10rem; display: grid; grid-template-columns: 45rem 25rem; grid-template-rows: min-content min-content 1fr min-content; @@ -2938,8 +3005,6 @@ article[data-vim-selected].category-social { } #corrections input[type="submit"] { font-size: 0.8rem; - -webkit-border-radius: 5px; - -moz-border-radius: 5px; border-radius: 5px; } #suggestions .title, @@ -2953,11 +3018,9 @@ article[data-vim-selected].category-social { border: 1px solid var(--color-answer-border); background: var(--color-answer-background); padding: 1rem; - margin: 1rem 0.5rem; + margin: 1rem 0; margin-top: 0; color: var(--color-answer-font); - -webkit-border-radius: 10px; - -moz-border-radius: 10px; border-radius: 10px; } #answers h4 { @@ -2976,8 +3039,6 @@ article[data-vim-selected].category-social { border: 1px solid var(--color-sidebar-border); padding: 1rem; font-size: 0.9em; - -webkit-border-radius: 10px; - -moz-border-radius: 10px; border-radius: 10px; } #sidebar .infobox h2 { @@ -3023,7 +3084,7 @@ article[data-vim-selected].category-social { #linkto_preferences { position: absolute; right: 10px; - top: 2rem; + top: 2.2rem; padding: 0; border: 0; display: block; @@ -3057,8 +3118,6 @@ article[data-vim-selected].category-social { left: 56.3rem; transition: opacity 0.5s; opacity: 0; - -webkit-border-radius: 10px; - -moz-border-radius: 10px; border-radius: 10px; } #backToTop a { @@ -3140,7 +3199,7 @@ article[data-vim-selected].category-social { margin: 2rem 0 0 0 !important; } #main_results div#results { - margin: 2rem auto 0 auto; + margin: 1rem auto 0 auto; justify-content: center; display: grid; grid-template-columns: 45rem; @@ -3150,7 +3209,7 @@ article[data-vim-selected].category-social { } } #main_results div#results.only_template_images { - margin: 2rem 0.5rem 0 0.5rem; + margin: 1rem 0.5rem 0 0.5rem; display: grid; grid-template-columns: 100%; grid-template-rows: min-content min-content 1fr min-content min-content; @@ -3190,15 +3249,11 @@ article[data-vim-selected].category-social { } article[data-vim-selected] { border: 1px solid var(--color-result-vim-arrow); - -webkit-border-radius: 10px; - -moz-border-radius: 10px; border-radius: 10px; } .result { border: 1px solid var(--color-result-border); margin: 1rem 0; - -webkit-border-radius: 10px; - -moz-border-radius: 10px; border-radius: 10px; } .result-images { diff --git a/searx/static/themes/simple/css/searxng.min.css b/searx/static/themes/simple/css/searxng.min.css index 65d58f2ac..5100ae650 100644 --- a/searx/static/themes/simple/css/searxng.min.css +++ b/searx/static/themes/simple/css/searxng.min.css @@ -1 +1 @@ -.github-issue-button{display:block;padding:8px 16px;font-family:sans-serif;font-size:16px;color:#fff;background-color:#238636!important;border:#2ea043;border-radius:10px!important;box-shadow:transparent 0 0 0 0}.github-issue-button:hover{background-color:#2ea043}.issue-hide{display:none}.engine-stats .engine-name{width:20rem}.engine-stats .engine-score{width:7rem;text-align:right}.engine-stats .engine-reliability{text-align:right}.engine-stats table.engine-error{max-width:1280px;margin:1rem;border:1px solid gray}.engine-stats failed-test,.engine-stats table.engine-error td.engine-error-type,.engine-stats table.engine-error th.engine-error-type{width:10rem}.engine-stats table.engine-error span.log_parameters{border-right:1px solid gray;padding:0 1rem 0 0;margin:0 0 0 .5rem}.bar-chart-value{width:3em;display:inline-block;text-align:right;padding-right:.5rem}.bar-chart-graph{width:calc(100% - 5rem);display:inline-block}.bar-chart-bar{border:3px solid #5bc0de;margin:1px 0}.bar-chart-serie1{border:3px solid #5bc0de;margin:1px 0;float:left}.bar-chart-serie2{border:3px solid #deb15b;margin:1px 0;float:left}.bar0{width:0;border:0}.bar1{width:1%}.bar2{width:2%}.bar3{width:3%}.bar4{width:4%}.bar5{width:5%}.bar6{width:6%}.bar7{width:7%}.bar8{width:8%}.bar9{width:9%}.bar10{width:10%}.bar11{width:11%}.bar12{width:12%}.bar13{width:13%}.bar14{width:14%}.bar15{width:15%}.bar16{width:16%}.bar17{width:17%}.bar18{width:18%}.bar19{width:19%}.bar20{width:20%}.bar21{width:21%}.bar22{width:22%}.bar23{width:23%}.bar24{width:24%}.bar25{width:25%}.bar26{width:26%}.bar27{width:27%}.bar28{width:28%}.bar29{width:29%}.bar30{width:30%}.bar31{width:31%}.bar32{width:32%}.bar33{width:33%}.bar34{width:34%}.bar35{width:35%}.bar36{width:36%}.bar37{width:37%}.bar38{width:38%}.bar39{width:39%}.bar40{width:40%}.bar41{width:41%}.bar42{width:42%}.bar43{width:43%}.bar44{width:44%}.bar45{width:45%}.bar46{width:46%}.bar47{width:47%}.bar48{width:48%}.bar49{width:49%}.bar50{width:50%}.bar51{width:51%}.bar52{width:52%}.bar53{width:53%}.bar54{width:54%}.bar55{width:55%}.bar56{width:56%}.bar57{width:57%}.bar58{width:58%}.bar59{width:59%}.bar60{width:60%}.bar61{width:61%}.bar62{width:62%}.bar63{width:63%}.bar64{width:64%}.bar65{width:65%}.bar66{width:66%}.bar67{width:67%}.bar68{width:68%}.bar69{width:69%}.bar70{width:70%}.bar71{width:71%}.bar72{width:72%}.bar73{width:73%}.bar74{width:74%}.bar75{width:75%}.bar76{width:76%}.bar77{width:77%}.bar78{width:78%}.bar79{width:79%}.bar80{width:80%}.bar81{width:81%}.bar82{width:82%}.bar83{width:83%}.bar84{width:84%}.bar85{width:85%}.bar86{width:86%}.bar87{width:87%}.bar88{width:88%}.bar89{width:89%}.bar90{width:90%}.bar91{width:91%}.bar92{width:92%}.bar93{width:93%}.bar94{width:94%}.bar95{width:95%}.bar96{width:96%}.bar97{width:97%}.bar98{width:98%}.bar99{width:99%}.bar100{width:100%}.osm-map-box{height:300px;width:100%;margin:10px 0}/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0}main{display:block}h1{font-size:2em;margin:.67em 0}hr{box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring,button:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none}@font-face{font-family:ion;src:url(../fonts/ion.eot?31a1b735188db616a2142d17947e8a45);src:url(../fonts/ion.eot?31a1b735188db616a2142d17947e8a45#iefix) format("embedded-opentype"),url(../fonts/ion.woff2?31a1b735188db616a2142d17947e8a45) format("woff2"),url(../fonts/ion.woff?31a1b735188db616a2142d17947e8a45) format("woff"),url(../fonts/ion.ttf?31a1b735188db616a2142d17947e8a45) format("truetype"),url(../fonts/ion.svg?31a1b735188db616a2142d17947e8a45#ion) format("svg");font-weight:400;font-style:normal}.ion-icon{display:inline-block;line-height:1;font-weight:400;font-style:normal;speak:none;text-decoration:inherit;text-transform:none;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.ion-icon:before{font-family:ion}.ion-navicon-round:before{content:"\f101"}.ion-search:before{content:"\f102"}.ion-play:before{content:"\f103"}.ion-link:before{content:"\f104"}.ion-chevron-up:before{content:"\f105"}.ion-chevron-left:before{content:"\f106"}.ion-chevron-right:before{content:"\f107"}.ion-arrow-down-a:before{content:"\f108"}.ion-arrow-up-a:before{content:"\f109"}.ion-arrow-swap:before{content:"\f10a"}.ion-arrow-dropdown:before{content:"\f10b"}.ion-globe:before{content:"\f10c"}.ion-time:before{content:"\f10d"}.ion-location:before{content:"\f10e"}.ion-warning:before{content:"\f10f"}.ion-error:before{content:"\f110"}.ion-film-outline:before{content:"\f111"}.ion-music-note:before{content:"\f112"}.ion-more-vertical:before{content:"\f113"}.ion-magnet:before{content:"\f114"}.ion-close:before{content:"\f115"}:root{--color-base-font:#444;--color-base-font-rgb:68,68,68;--color-base-background:#fff;--color-url-font:#29314d;--color-url-visited-font:#80b;--color-header-background:#f7f7f7;--color-header-border:#ddd;--color-footer-background:#f7f7f7;--color-footer-border:#ddd;--color-sidebar-border:#ddd;--color-sidebar-font:#000;--color-backtotop-font:#444;--color-backtotop-border:#ddd;--color-backtotop-background:#fff;--color-btn-background:#3050ff;--color-btn-font:#fff;--color-search-border:#bbb;--color-search-background:#fff;--color-search-font:#222;--color-search-background-hover:#3050ff;--color-error:#db3434;--color-error-background:#fae1e1;--color-warning:#dbba34;--color-warning-background:#faf5e1;--color-success:#42db34;--color-success-background:#e3fae1;--color-categories-item-selected-font:#3050ff;--color-categories-item-border-selected:#3050ff;--color-autocomplete-font:#000;--color-autocomplete-border:#bbb;--color-autocomplete-background:#fff;--color-autocomplete-background-hover:#f7f7f7;--color-answer-border:#ddd;--color-answer-font:#444;--color-answer-background:#f7f7f7;--color-result-border:#ddd;--color-result-url-font:#000;--color-result-vim-selected:#f7f7f7;--color-result-vim-arrow:#000bbb;--color-result-description-highlight-font:#000;--color-result-link-font:#000bbb;--color-result-link-font-highlight:#000bbb;--color-result-link-visited-font:#80b;--color-result-publishdate-font:#777;--color-result-engines-font:#777;--color-result-search-url-border:#ddd;--color-result-search-url-font:#000;--color-result-image-span-background-hover:rgba(0, 0, 0, 0.6);--color-result-image-span-font:#fff;--color-result-image-background:#000bbb;--color-settings-tr-hover:#f7f7f7;--color-settings-engine-description-font:#909090;--color-result-detail-font:#fff;--color-result-detail-label-font:lightgray;--color-result-detail-background:#000;--color-result-detail-hr:#555;--color-result-detail-link:#8af;--color-result-detail-loader-border:rgba(255, 255, 255, 0.2);--color-result-detail-loader-borderleft:rgba(0, 0, 0, 0);--color-toolkit-badge-font:#fff;--color-toolkit-badge-background:#777;--color-toolkit-kbd-font:#fff;--color-toolkit-kbd-background:#000;--color-toolkit-dialog-border:#ddd;--color-toolkit-dialog-background:#fff;--color-toolkit-tabs-label-border:#fff;--color-toolkit-tabs-section-border:#ddd;--color-toolkit-select-border:#ddd;--color-toolkit-select-border-hover:#bbb;--color-toolkit-checkbox-onoff-background:#ddd;--color-toolkit-checkbox-onoff-label-background:#3050ff;--color-toolkit-checkbox-onoff-checked-background:#aaa;--color-toolkit-checkbox-label-background:#fff;--color-toolkit-checkbox-label-border:#ddd;--color-toolkit-checkbox-input-border:#3050ff;--color-toolkit-engine-tooltip-border:#ddd;--color-toolkit-engine-tooltip-background:#fff;--color-toolkit-loader-border:rgba(0, 0, 0, 0.2);--color-toolkit-loader-borderleft:rgba(255, 255, 255, 0)}@media (prefers-color-scheme:dark){:root{--color-base-font:#bbb;--color-base-font-rgb:187,187,187;--color-base-background:#222;--color-url-font:#8af;--color-url-visited-font:#96b;--color-header-background:#181818;--color-header-border:#333;--color-footer-background:#181818;--color-footer-border:#333;--color-sidebar-border:#555;--color-sidebar-font:#fff;--color-backtotop-font:#bbb;--color-backtotop-border:#333;--color-backtotop-background:#181818;--color-btn-background:#58f;--color-btn-font:#222;--color-search-border:#555;--color-search-background:#222;--color-search-font:#fff;--color-search-background-hover:#58f;--color-error:#f55b5b;--color-error-background:#390a0a;--color-warning:#f1d561;--color-warning-background:#39300a;--color-success:#79f56e;--color-success-background:#0e390a;--color-categories-item-selected-font:#58f;--color-categories-item-border-selected:#58f;--color-autocomplete-font:#fff;--color-autocomplete-border:#555;--color-autocomplete-background:#222;--color-autocomplete-background-hover:#181818;--color-answer-border:#333;--color-answer-font:#bbb;--color-answer-background:#181818;--color-result-border:#333;--color-result-url-font:#fff;--color-result-vim-selected:#181818;--color-result-vim-arrow:#8af;--color-result-description-highlight-font:#fff;--color-result-link-font:#8af;--color-result-link-font-highlight:#8af;--color-result-link-visited-font:#96b;--color-result-publishdate-font:#777;--color-result-engines-font:#777;--color-result-search-url-border:#555;--color-result-search-url-font:#fff;--color-result-detail-font:#fff;--color-result-detail-label-font:lightgray;--color-result-detail-background:#000;--color-result-detail-hr:#555;--color-result-detail-link:#8af;--color-result-detail-loader-border:rgba(255, 255, 255, 0.2);--color-result-detail-loader-borderleft:rgba(0, 0, 0, 0);--color-result-image-span-background-hover:rgba(0, 0, 0, 0.6);--color-result-image-span-font:#fff;--color-result-image-background:#8af;--color-settings-tr-hover:#2d2d2d;--color-settings-engine-description-font:#909090;--color-toolkit-badge-font:#fff;--color-toolkit-badge-background:#777;--color-toolkit-kbd-font:#000;--color-toolkit-kbd-background:#fff;--color-toolkit-dialog-border:#555;--color-toolkit-dialog-background:#222;--color-toolkit-tabs-label-border:#222;--color-toolkit-tabs-section-border:#555;--color-toolkit-select-border:#555;--color-toolkit-select-border-hover:#777;--color-toolkit-checkbox-onoff-background:#3c3b31;--color-toolkit-checkbox-onoff-label-background:#58f;--color-toolkit-checkbox-onoff-checked-background:#ddd;--color-toolkit-checkbox-label-background:#fff;--color-toolkit-checkbox-label-border:#333;--color-toolkit-checkbox-input-border:#58f;--color-toolkit-engine-tooltip-border:#333;--color-toolkit-engine-tooltip-background:#222;--color-toolkit-loader-border:rgba(255, 255, 255, 0.2);--color-toolkit-loader-borderleft:rgba(0, 0, 0, 0)}}.code-highlight pre{overflow:auto;background-color:inherit;color:inherit;border:inherit}.code-highlight .linenos{-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:default;margin-right:8px;text-align:right}.code-highlight .linenos::selection{background:0 0}.code-highlight .linenos::-moz-selection{background:0 0}.code-highlight pre{line-height:125%}.code-highlight td.linenos .normal{color:inherit;background-color:transparent;padding-left:5px;padding-right:5px}.code-highlight span.linenos{color:inherit;background-color:transparent;padding-left:5px;padding-right:5px}.code-highlight td.linenos .special{color:#000;background-color:#ffffc0;padding-left:5px;padding-right:5px}.code-highlight span.linenos.special{color:#000;background-color:#ffffc0;padding-left:5px;padding-right:5px}.code-highlight .hll{background-color:#ffc}.code-highlight{background:#f8f8f8}.code-highlight .c{color:#408080;font-style:italic}.code-highlight .err{border:1px solid red}.code-highlight .k{color:green;font-weight:700}.code-highlight .o{color:#666}.code-highlight .ch{color:#408080;font-style:italic}.code-highlight .cm{color:#408080;font-style:italic}.code-highlight .cp{color:#BC7A00}.code-highlight .cpf{color:#408080;font-style:italic}.code-highlight .c1{color:#408080;font-style:italic}.code-highlight .cs{color:#408080;font-style:italic}.code-highlight .gd{color:#A00000}.code-highlight .ge{font-style:italic}.code-highlight .gr{color:red}.code-highlight .gh{color:navy;font-weight:700}.code-highlight .gi{color:#00A000}.code-highlight .go{color:#888}.code-highlight .gp{color:navy;font-weight:700}.code-highlight .gs{font-weight:700}.code-highlight .gu{color:purple;font-weight:700}.code-highlight .gt{color:#04D}.code-highlight .kc{color:green;font-weight:700}.code-highlight .kd{color:green;font-weight:700}.code-highlight .kn{color:green;font-weight:700}.code-highlight .kp{color:green}.code-highlight .kr{color:green;font-weight:700}.code-highlight .kt{color:#B00040}.code-highlight .m{color:#666}.code-highlight .s{color:#BA2121}.code-highlight .na{color:#7D9029}.code-highlight .nb{color:green}.code-highlight .nc{color:#00F;font-weight:700}.code-highlight .no{color:#800}.code-highlight .nd{color:#A2F}.code-highlight .ni{color:#999;font-weight:700}.code-highlight .ne{color:#D2413A;font-weight:700}.code-highlight .nf{color:#00F}.code-highlight .nl{color:#A0A000}.code-highlight .nn{color:#00F;font-weight:700}.code-highlight .nt{color:green;font-weight:700}.code-highlight .nv{color:#19177C}.code-highlight .ow{color:#A2F;font-weight:700}.code-highlight .w{color:#bbb}.code-highlight .mb{color:#666}.code-highlight .mf{color:#666}.code-highlight .mh{color:#666}.code-highlight .mi{color:#666}.code-highlight .mo{color:#666}.code-highlight .sa{color:#BA2121}.code-highlight .sb{color:#BA2121}.code-highlight .sc{color:#BA2121}.code-highlight .dl{color:#BA2121}.code-highlight .sd{color:#BA2121;font-style:italic}.code-highlight .s2{color:#BA2121}.code-highlight .se{color:#B62;font-weight:700}.code-highlight .sh{color:#BA2121}.code-highlight .si{color:#B68;font-weight:700}.code-highlight .sx{color:green}.code-highlight .sr{color:#B68}.code-highlight .s1{color:#BA2121}.code-highlight .ss{color:#19177C}.code-highlight .bp{color:green}.code-highlight .fm{color:#00F}.code-highlight .vc{color:#19177C}.code-highlight .vg{color:#19177C}.code-highlight .vi{color:#19177C}.code-highlight .vm{color:#19177C}.code-highlight .il{color:#666}html.no-js .hide_if_nojs{display:none}html.js .show_if_nojs{display:none}.center{text-align:center}.right{float:right}.left{float:left}.invisible{display:none!important}.list-unstyled{list-style-type:none}.list-unstyled li{margin-top:4px;margin-bottom:4px}.danger{background-color:var(--color-error-background)}.warning{background:var(--color-warning-background)}.success{background:var(--color-success-background)}.badge{display:inline-block;color:var(--color-toolkit-badge-font);background-color:var(--color-toolkit-badge-background);text-align:center;white-space:nowrap;vertical-align:baseline;min-width:10px;padding:1px 5px;border-radius:5px}kbd{padding:2px 4px;margin:1px;font-size:90%;color:var(--color-toolkit-kbd-font);background:var(--color-toolkit-kbd-background)}table{width:100%}table.striped tr{border-bottom:1px solid var(--color-settings-tr-hover)}th{padding:.4em}td{padding:0 4px}tr:hover{background:var(--color-settings-tr-hover)!important}div.selectable_url{display:block;border:1px solid var(--color-result-search-url-border);padding:4px;color:var(--color-result-search-url-font);margin:.1em;overflow:hidden;height:1.2em;line-height:1.2em;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px}div.selectable_url pre{display:block;font-size:.8em;word-break:break-all;margin:.1em;-webkit-user-select:all;-moz-user-select:all;-ms-user-select:element;user-select:all}.dialog-error{position:relative;padding:1em 1em 1em 2.7em;margin:0 0 1em 0;border:1px solid var(--color-toolkit-dialog-border);text-align:left;-webkit-border-radius:10px;-moz-border-radius:10px;border-radius:10px;color:var(--color-error);background:var(--color-error-background);border-color:var(--color-error)}.dialog-error::before{position:absolute;top:.5em;left:.5em;font-family:ion;font-size:1.5em}.dialog-error .close{float:right;position:relative;top:-3px;color:inherit;font-size:1.5em}.dialog-error ol,.dialog-error p,.dialog-error ul{margin:1px 0 0 0}.dialog-error table{width:auto}.dialog-error tr{vertical-align:text-top}.dialog-error tr:hover{background:0 0}.dialog-error td{padding:0 1em 0 0}.dialog-error h4{margin-top:.3em;margin-bottom:.3em}.dialog-error:before{content:"\f110"}.dialog-warning{position:relative;padding:1em 1em 1em 2.7em;margin:0 0 1em 0;border:1px solid var(--color-toolkit-dialog-border);text-align:left;-webkit-border-radius:10px;-moz-border-radius:10px;border-radius:10px;color:var(--color-warning);background:var(--color-warning-background);border-color:var(--color-warning)}.dialog-warning::before{position:absolute;top:.5em;left:.5em;font-family:ion;font-size:1.5em}.dialog-warning .close{float:right;position:relative;top:-3px;color:inherit;font-size:1.5em}.dialog-warning ol,.dialog-warning p,.dialog-warning ul{margin:1px 0 0 0}.dialog-warning table{width:auto}.dialog-warning tr{vertical-align:text-top}.dialog-warning tr:hover{background:0 0}.dialog-warning td{padding:0 1em 0 0}.dialog-warning h4{margin-top:.3em;margin-bottom:.3em}.dialog-warning:before{content:"\f10f"}.dialog-modal{position:relative;padding:1em 1em 1em 2.7em;margin:0 0 1em 0;border:1px solid var(--color-toolkit-dialog-border);text-align:left;-webkit-border-radius:10px;-moz-border-radius:10px;border-radius:10px;background:var(--color-toolkit-dialog-background);position:fixed;top:50%;left:50%;margin:0 auto;transform:translate(-50%,-50%);z-index:10000000}.dialog-modal::before{position:absolute;top:.5em;left:.5em;font-family:ion;font-size:1.5em}.dialog-modal .close{float:right;position:relative;top:-3px;color:inherit;font-size:1.5em}.dialog-modal ol,.dialog-modal p,.dialog-modal ul{margin:1px 0 0 0}.dialog-modal table{width:auto}.dialog-modal tr{vertical-align:text-top}.dialog-modal tr:hover{background:0 0}.dialog-modal td{padding:0 1em 0 0}.dialog-modal h4{margin-top:.3em;margin-bottom:.3em}.btn-collapse{cursor:pointer}.scrollx{overflow-x:auto;overflow-y:hidden;display:block;padding:0;margin:0;border:none}.tabs .tabs>label{font-size:90%}.tabs{display:-webkit-box;display:-moz-box;display:-webkit-flex;display:-ms-flexbox;display:flex;flex-wrap:wrap;width:100%;min-width:100%}.tabs>*{order:2}.tabs>input[type=radio]{display:none}.tabs>label{order:1;padding:.7em;margin:0 .7em;letter-spacing:.5px;text-transform:uppercase;border:solid var(--color-toolkit-tabs-label-border);border-width:0 0 2px 0;-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:pointer}.tabs>label:hover{border-bottom:2px solid var(--color-categories-item-border-selected)}.tabs>section{min-width:100%;padding:.7rem 0;box-sizing:border-box;border-top:1px solid var(--color-toolkit-tabs-section-border);display:none}.tabs>label:last-of-type{border-bottom:2px solid var(--color-categories-item-border-selected);background:var(--color-categories-item-selected);color:var(--color-categories-item-selected-font);font-weight:700;letter-spacing:-.1px}.tabs>section:last-of-type{display:block}html body .tabs>input:checked~section{display:none}html body .tabs>input:checked~label{position:inherited;background:inherit;border-bottom:2px solid transparent;font-weight:400;color:inherit}html body .tabs>input:checked~label:hover{border-bottom:2px solid var(--color-categories-item-border-selected)}html body .tabs>input:checked+label{border-bottom:2px solid var(--color-categories-item-border-selected);background:var(--color-categories-item-selected);color:var(--color-categories-item-selected-font)}html body .tabs>input:checked+label+section{display:block}select{height:28px;margin:0 1em 0 0;padding:2px 8px 2px 0!important;color:var(--color-search-font);font-size:12px;z-index:2}select:focus,select:hover{cursor:pointer}@supports ((background-position-x:100%) and ((appearance:none) or (-webkit-appearance:none) or (-moz-appearance:none))){select{appearance:none;-webkit-appearance:none;-moz-appearance:none;border:none;border-bottom:1px solid var(--color-toolkit-select-border);background:url("data:image/svg+xml;charset=UTF-8,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22utf-8%22%3F%3E%0A%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22512%22%20height%3D%22512%22%20viewBox%3D%220%200%20512%20512%22%3E%0A%3Cg%3E%3Cpolygon%20points%3D%22128%2C192%20256%2C320%20384%2C192%22%2F%3E%3C%2Fg%3E%0A%3C%2Fsvg%3E") no-repeat;background-position-x:105%;background-size:2em;background-origin:content-box;outline:medium none}select:focus,select:hover{border-bottom:1px solid var(--color-toolkit-select-border-hover)}select option{background-color:var(--color-base-background)}@media (prefers-color-scheme:dark){select{background-image:url("data:image/svg+xml;charset=UTF-8,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22utf-8%22%3F%3E%0A%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22512%22%20height%3D%22512%22%20viewBox%3D%220%200%20512%20512%22%3E%0A%3Cg%3E%3Cpolygon%20fill%3D%22%23ddd%22%20points%3D%22128%2C192%20256%2C320%20384%2C192%22%2F%3E%3C%2Fg%3E%0A%3C%2Fsvg%3E")}}}@supports (border-radius:50px){.checkbox-onoff{display:inline-block;width:40px;height:10px;background:var(--color-toolkit-checkbox-onoff-background);margin:8px 1rem;position:relative;border-radius:50px}.checkbox-onoff label{display:block;width:20px;height:20px;position:absolute;top:-5px;cursor:pointer;border-radius:50px;transition:all .4s ease;left:27px;background-color:var(--color-toolkit-checkbox-onoff-label-background)}.checkbox-onoff input[type=checkbox]{visibility:hidden}.checkbox-onoff input[type=checkbox]:checked+label{left:-5px;background:var(--color-toolkit-checkbox-onoff-checked-background)}}@supports (transform:rotate(-45deg)){.checkbox{width:20px;position:relative;margin:20px auto}.checkbox label{width:20px;height:20px;cursor:pointer;position:absolute;top:0;left:0;background:var(--color-toolkit-checkbox-label-background);-webkit-border-radius:10px;-moz-border-radius:10px;border-radius:10px}.checkbox label::after{content:'';width:9px;height:5px;position:absolute;top:4px;left:4px;border:3px solid var(--color-toolkit-checkbox-label-border);border-top:none;border-right:none;background:0 0;opacity:0;transform:rotate(-45deg)}.checkbox input[type=checkbox]{visibility:hidden}.checkbox input[type=checkbox]:checked+label::after{border-color:var(--color-toolkit-checkbox-input-border);opacity:1}.checkbox input[disabled]+label{background-color:transparent!important;cursor:inherit}.checkbox input:not(:checked):not([readonly]):not([disabled])+label:hover::after{opacity:.5}}@media screen and (max-width:50em){.tabs>label{width:100%}}.loader,.loader::after{border-radius:50%;width:2em;height:2em}.loader{margin:1em auto;font-size:10px;position:relative;text-indent:-9999em;border-top:.5em solid var(--color-toolkit-loader-border);border-right:.5em solid var(--color-toolkit-loader-border);border-bottom:.5em solid var(--color-toolkit-loader-border);border-left:.5em solid var(--color-toolkit-loader-borderleft);-webkit-transform:translateZ(0);-ms-transform:translateZ(0);transform:translateZ(0);-webkit-animation:load8 1.2s infinite linear;animation:load8 1.2s infinite linear}@-webkit-keyframes load8{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes load8{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}.engine-tooltip{display:none;position:absolute;padding:.5rem 1rem;margin:0 0 0 2rem;border:1px solid var(--color-toolkit-engine-tooltip-border);background:var(--color-toolkit-engine-tooltip-background);font-size:14px;font-weight:400;z-index:1000000;text-align:left;-webkit-border-radius:10px;-moz-border-radius:10px;border-radius:10px}.engine-tooltip:hover,td:hover .engine-tooltip,th:hover .engine-tooltip{display:inline-block}.stacked-bar-chart{margin:0;padding:0 .125rem 0 4rem;width:100%;width:-moz-available;width:-webkit-fill-available;width:fill;flex-direction:row;flex-wrap:nowrap;align-items:center;display:inline-flex}.stacked-bar-chart-value{width:3rem;display:inline-block;position:absolute;padding:0 .5rem;text-align:right}.stacked-bar-chart-base{display:flex;flex-shrink:0;flex-grow:0;flex-basis:unset}.stacked-bar-chart-median{display:flex;flex-shrink:0;flex-grow:0;flex-basis:unset;background:var(--color-base-font);border:1px solid rgba(var(--color-base-font-rgb),.9);padding:.3rem 0}.stacked-bar-chart-rate80{display:flex;flex-shrink:0;flex-grow:0;flex-basis:unset;background:0 0;border:1px solid rgba(var(--color-base-font-rgb),.3);padding:.3rem 0}.stacked-bar-chart-rate95{display:flex;flex-shrink:0;flex-grow:0;flex-basis:unset;background:0 0;border-bottom:1px dotted rgba(var(--color-base-font-rgb),.5);padding:0}.stacked-bar-chart-rate100{display:flex;flex-shrink:0;flex-grow:0;flex-basis:unset;background:0 0;border-left:1px solid rgba(var(--color-base-font-rgb),.9);padding:.4rem 0;width:1px}/*! Autocomplete.js v2.6.3 | license MIT | (c) 2017, Baptiste Donaux | http://autocomplete-js.com */.autocomplete{position:absolute;max-height:0;overflow-y:hidden;text-align:left;-webkit-border-radius:10px;-moz-border-radius:10px;border-radius:10px}.autocomplete:active,.autocomplete:focus,.autocomplete:hover{background-color:var(--color-autocomplete-background)}.autocomplete:empty{display:none}.autocomplete>ul{list-style-type:none;margin:0;padding:0}.autocomplete>ul>li{cursor:pointer;padding:8px 0 8px 8px}.autocomplete>ul>li.active,.autocomplete>ul>li:active,.autocomplete>ul>li:focus,.autocomplete>ul>li:hover{background-color:var(--color-autocomplete-background-hover)}.autocomplete>ul>li.active a:active,.autocomplete>ul>li.active a:focus,.autocomplete>ul>li.active a:hover,.autocomplete>ul>li:active a:active,.autocomplete>ul>li:active a:focus,.autocomplete>ul>li:active a:hover,.autocomplete>ul>li:focus a:active,.autocomplete>ul>li:focus a:focus,.autocomplete>ul>li:focus a:hover,.autocomplete>ul>li:hover a:active,.autocomplete>ul>li:hover a:focus,.autocomplete>ul>li:hover a:hover{text-decoration:none}.autocomplete>ul>li.locked{cursor:inherit}.autocomplete.open{display:block;background-color:var(--color-autocomplete-background);color:var(--color-autocomplete-font);border:1px solid var(--color-autocomplete-border);max-height:500px;overflow-y:auto;z-index:100}.autocomplete.open:empty{display:none}@media screen and (max-width:50em){.autocomplete{bottom:0}.autocomplete>ul>li{border-bottom:1px solid var(--color-result-top-border);text-align:left}}#main_results #results.image-detail-open.only_template_images{width:59.25rem!important}#main_results #results.only_template_images.image-detail-open #backToTop{left:56.75rem!important;right:inherit}article.result-images .detail{display:none}#results.image-detail-open article.result-images[data-vim-selected] .detail{display:flex;flex-direction:column;position:fixed;left:60rem;right:0;top:7.5rem;transition:top 64ms ease-in 0s;bottom:0;background:var(--color-result-detail-background);border:1px solid var(--color-result-detail-background);z-index:10000;padding:4rem 3rem 3rem 3rem}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-images-source{display:block;flex:1;text-align:left;width:100%;border:none;text-decoration:none}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-images-source img{padding:0;margin:0;border:none;object-fit:contain;width:inherit;max-width:100%;min-height:inherit;max-height:calc(100vh - 25rem - 7rem);background:inherit}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels{color:var(--color-result-detail-font);max-height:16rem;min-height:16rem}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels hr{border-top:1px solid var(--color-result-detail-hr);border-bottom:none}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels h4{height:2rem;overflow:hidden;text-overflow:ellipsis;font-size:.9rem}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p{color:var(--color-result-detail-label-font);font-size:.9rem}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p span{display:inline-block;width:12rem}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels a,#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels h4,#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p{text-align:left}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p.result-content{height:2rem;overflow:hidden;text-overflow:ellipsis}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p.result-url{white-space:nowrap;overflow-x:hidden;text-overflow:ellipsis}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p.result-content:hover,#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p.result-url:hover{position:relative;overflow:inherit!important;background:var(--color-result-detail-background);text-overflow:inherit!important}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels a,#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels a:active,#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels a:hover,#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels a:visited{color:var(--color-result-detail-link)}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels a:hover{text-decoration:underline}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close{top:1rem;left:1rem;padding:.4rem}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous{top:1rem;right:6rem;padding:.4rem .5rem .4rem .3rem}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next{top:1rem;right:2rem;padding:.4rem}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous{border-radius:50%;display:block;width:1.5rem;height:1.5rem;position:absolute;filter:opacity(40%);z-index:2000002}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close span,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next span,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous span{display:block;width:1.5rem;height:1.5rem;text-align:center}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next span::before,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous span::before{vertical-align:sub}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close:active,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close:hover,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close:visited,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next:active,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next:hover,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next:visited,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous:active,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous:hover,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous:visited{color:var(--color-result-detail-font);background:var(--color-result-detail-background);border:1px solid var(--color-result-detail-font)}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close:focus,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close:hover,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next:focus,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next:hover,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous:focus,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous:hover{filter:opacity(80%)}#results.image-detail-open article.result-images[data-vim-selected] .detail .loader{position:absolute;top:1rem;right:50%;border-top:.5em solid var(--color-result-detail-loader-border);border-right:.5em solid var(--color-result-detail-loader-border);border-bottom:.5em solid var(--color-result-detail-loader-border);border-left:.5em solid var(--color-result-detail-loader-borderleft)}#results.image-detail-open.scrolling article.result-images[data-vim-selected] .detail{top:0}#results.image-detail-open.scrolling article.result-images[data-vim-selected] .detail a.result-images-source img{max-height:calc(100vh - 25rem)}@media screen and (max-width:80em){#results.image-detail-open article.result-images[data-vim-selected] .detail{top:0;left:0}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-images-source{display:flex;flex-direction:column;justify-content:center}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-images-source img{width:100%;max-height:calc(100vh - 24rem)}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next{right:1rem}}@media screen and (max-width:50em){#results.image-detail-open article.result-images[data-vim-selected] .detail{top:0;left:0;padding:1rem}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-images-source img{width:100%;max-height:calc(100vh - 20rem);margin:0}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p span{width:inherit;margin-right:1rem}}#main_index{margin-top:26vh}#main_index #linkto_preferences{right:1.8rem}.index{text-align:center}.index .title{background:url(../img/searxng.png) no-repeat;min-height:4rem;margin:4rem auto;background-position:center;background-size:contain}.index h1{font-size:4em;visibility:hidden}.index #search{margin:0 auto;background:inherit;border:inherit;padding:0;display:block}.index .search_filters{display:block;margin:1em 0}.index .category label{padding:6px 10px;border-bottom:initial!important}@media screen and (max-width:80em){div.title h1{font-size:1em}#main_index{margin-top:6em}}@media screen and (max-width:50em){#main_index{margin-top:0}}#tab-contentquery table td,#tab-contentquery table th{text-align:left!important;height:3rem}#main_preferences form{width:100%}#main_preferences fieldset{margin:8px;border:none}#main_preferences legend{margin:0;padding:5px 0 0 0;display:block;float:left;width:300px}#main_preferences .value{margin:0;padding:0;float:left;width:15em}#main_preferences .description{margin:0;padding:5px 0 0 0;float:left;width:50%;color:var(--color-settings-engine-description-font);font-size:90%}#main_preferences select{width:200px;font-size:inherit!important}#main_preferences table{border-collapse:collapse}#main_preferences table td{text-align:center}#main_preferences table.cookies{width:100%}#main_preferences table.cookies td,#main_preferences table.cookies th{text-align:left;font-family:monospace;font-size:1rem;padding:.5em;vertical-align:top}#main_preferences table.cookies td:first-child{word-break:keep-all;width:14rem;padding-right:1rem}#main_preferences table.cookies td:last-child{word-break:break-all}#main_preferences table.cookies>tbody>tr:nth-child(even)>td,#main_preferences table.cookies>tbody>tr:nth-child(even)>th{background-color:var(--color-settings-tr-hover)}#main_preferences .name,#main_preferences .shortcut{text-align:left}#main_preferences .preferences_back{background:none repeat scroll 0 0 var(--color-btn-background);color:var(--color-btn-font);border:0 none;-webkit-border-radius:10px;-moz-border-radius:10px;border-radius:10px;cursor:pointer;display:inline-block;margin:2px 4px;padding:.7em}#main_preferences .preferences_back a{color:var(--color-settings-return-font)}#main_preferences .preferences_back a::first-letter{text-transform:uppercase}#main_preferences div.selectable_url pre{width:100%}#main_preferences th.name .engine-tooltip{margin-top:1.8rem;left:calc((100% - 85em)/ 2 + 10em);max-width:40rem}#main_preferences th.name .engine-tooltip .engine-description{margin-top:.5rem}@media screen and (max-width:80em){.preferences_back{clear:both}.engine-tooltip{left:10em!important}}#search{padding:1.5em 2em 0 7rem;margin:0;background:var(--color-header-background);border-bottom:1px solid var(--color-header-border);display:grid;column-gap:1.2rem;row-gap:1rem;grid-template-columns:3rem 1fr;grid-template-areas:"logo search" "spacer categories"}#search_logo{grid-area:logo}.search_logo_img{width:40px}.search_categories{grid-area:categories}#search_wrapper{padding:0;grid-area:search}.search_box{margin:0 12px 0 0;display:inline-flex;flex-direction:row;white-space:nowrap}#clear_search{display:block;border-collapse:separate;box-sizing:border-box;width:1.8em;margin:0;padding:8px 2px;background:none repeat scroll 0 0 var(--color-search-background);border-top:1px solid var(--color-search-border);border-bottom:1px solid var(--color-search-border);border-right:none;border-left:none;border-radius:0;outline:0;color:var(--color-search-font);font-size:16px;z-index:10000}#clear_search:hover{color:var(--color-search-background-hover)}#clear_search.empty *{display:none}#q,#send_search{display:block!important;border-collapse:separate;box-sizing:border-box;margin:0;padding:8px;background:none repeat scroll 0 0 var(--color-search-background);border:1px solid var(--color-search-border);border-radius:0;outline:0;color:var(--color-search-font);font-size:16px;z-index:2}#q{outline:medium none;padding-left:12px;padding-right:0!important;border-right:none;width:40rem;border-radius:10px 0 0 10px}#q::-ms-clear,#q::-webkit-search-cancel-button{display:none}#send_search{border-left:none;border-radius:0 10px 10px 0}#send_search:hover{cursor:pointer;background-color:var(--color-search-background-hover);color:var(--color-search-background)}.no-js #send_search{width:auto!important}.search_filters{display:inline-block;margin:.8rem 0 0 0}@media screen and (max-width:80em){#search{padding:1.5em .5rem 0 .5rem;column-gap:.5rem}#categories{font-size:90%;clear:both}#categories .checkbox_container{margin:auto;margin-top:2px}html.touch #main_index #categories_container,html.touch #main_results #categories_container{width:1000px;width:-moz-max-content;width:-webkit-max-content;width:max-content}html.touch #main_index #categories_container .category,html.touch #main_results #categories_container .category{display:inline-block;width:auto}html.touch #main_index #categories,html.touch #main_results #categories{width:100%;margin:0;text-align:left;overflow-x:scroll;overflow-y:hidden;-webkit-overflow-scrolling:touch}}@media screen and (max-width:50em){#search{width:100%;margin:0;padding:.1em 0 0 0;column-gap:0;row-gap:0;grid-template-areas:"logo search" "categories categories"}.search_logo{padding:0}#search_wrapper{width:100%;padding:0}.search_box{width:99%;margin:.1em;padding:0 .1em 0 0;display:flex;flex-direction:row}#q{width:auto!important;flex:1}#main_results #q:placeholder-shown~#send_search{margin-right:2.6rem;transition:margin-right .1s}.search_filters{display:block;margin:.8em 0}.language,.time_range{width:45%}.category{display:block;width:100%}.category label{padding:10px!important}}#categories{margin:0 10px 0 0;-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}#categories::-webkit-scrollbar{width:0;height:0}.category{display:inline-block;position:relative;margin:0 3px;padding:0}.category input{display:none}.category label{cursor:pointer;padding:.3rem .75rem .5rem .75rem;margin:0;display:block;text-transform:capitalize;font-size:.9em;border-bottom:2px solid transparent;-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.category input[type=checkbox]:checked+label{color:var(--color-categories-item-selected-font);border-bottom:2px solid var(--color-categories-item-border-selected)}#categories_container{position:relative}.ion-icon-big{display:inline-block;line-height:1;font-weight:400;font-style:normal;speak:none;text-decoration:inherit;text-transform:none;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:149%}.ion-icon-big:before{font-family:ion}html{font-family:sans-serif;font-size:.9em;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%;color:var(--color-base-font);background-color:var(--color-base-background);padding:0;margin:0}body,main{padding:0;margin:0}body{display:flex;flex-direction:column;height:100vh;margin:0}main{width:100%;margin-bottom:2rem;flex:1}#main_about,#main_preferences,#main_stats{margin:2em auto;width:85em}footer{clear:both;min-height:4rem;padding:1rem 0;width:100%;text-align:center;background-color:var(--color-footer-background);border-top:1px solid var(--color-footer-border);overflow:hidden}footer p{font-size:.9em}#main_preferences h1,#main_stats h1{background:url(../img/searxng.png) no-repeat;background-size:contain;min-height:40px;margin:0 auto}#main_preferences h1 span,#main_stats h1 span{visibility:hidden}#results button[type=submit],input[type=submit]{padding:.7rem;display:inline-block;background:var(--color-btn-background);color:var(--color-btn-font);-webkit-border-radius:10px;-moz-border-radius:10px;border-radius:10px;border:0;cursor:pointer}a{text-decoration:none;color:var(--color-url-font)}a:visited{color:var(--color-url-visited-font)}a:visited .highlight{color:var(--color-url-visited-font)}article[data-vim-selected]{background:var(--color-result-vim-selected);border-left:.2rem solid var(--color-result-vim-arrow);-webkit-border-radius:0 10px 10px 0;-moz-border-radius:0 10px 10px 0;border-radius:0 10px 10px 0}article.result-images[data-vim-selected]{background:var(--color-result-vim-arrow);border:none;-webkit-border-radius:10px;-moz-border-radius:10px;border-radius:10px}article.result-images[data-vim-selected] .image_thumbnail{filter:opacity(60%)}article[data-vim-selected].category-files,article[data-vim-selected].category-map,article[data-vim-selected].category-music,article[data-vim-selected].category-news,article[data-vim-selected].category-social,article[data-vim-selected].category-videos{border:1px solid var(--color-result-vim-arrow);-webkit-border-radius:10px;-moz-border-radius:10px;border-radius:10px}.result{margin:.125rem 0;padding:1rem;border-left:.2rem solid transparent}.result h3{font-size:1.1em;word-wrap:break-word;margin:.4rem 0 .4rem 0;padding:0}.result h3 a{color:var(--color-result-link-font);font-weight:400;font-size:1.1em}.result h3 a:visited{color:var(--color-result-link-visited-font)}.result h3 a:focus,.result h3 a:hover{text-decoration:underline;border:none;outline:0}.result .cache_link,.result .proxyfied_link{font-size:.9em!important}.result .altlink,.result .content,.result .stat{font-size:.9em;margin:0;padding:0;max-width:54em;word-wrap:break-word;line-height:1.24}.result .altlink .highlight,.result .content .highlight,.result .stat .highlight{color:var(--color-result-description-highlight-font);background:inherit;font-weight:700}.result .codelines .highlight{color:inherit;background:inherit;font-weight:400}.result .url{font-size:.96em;margin:0 0 3px 0;padding:0;max-width:54em;word-wrap:break-word;color:var(--color-result-url-font)}.result .published_date{font-size:.8em;color:var(--color-result-publishdate-font)}.result img.thumbnail{float:left;padding:0 5px 10px 0;width:20em;min-width:20em;min-height:8em}.result img.image{float:left;padding:0 5px 10px 0;width:100px;max-height:100px;object-fit:scale-down;object-position:right top}.result .break{clear:both}.category-files,.category-map,.category-music,.category-news,.category-social,.category-videos{border:1px solid var(--color-result-border);margin:1rem 0;-webkit-border-radius:10px;-moz-border-radius:10px;border-radius:10px}.category-social .image{width:auto!important;min-width:48px;min-height:48px;padding:0 5px 25px 0!important}.result-videos .content{overflow:hidden}.engines{float:right;color:var(--color-result-engines-font)}.engines span{font-size:smaller;margin:0 .5em 0 0}.small_font{font-size:.8em}.highlight{color:var(--color-result-link-font-highlight);background:inherit}.result-images{display:inline-block;margin:0;padding:0;position:relative;max-height:200px;border:none!important}.result-images img{float:inherit;margin:.125rem;padding:0;border:none;max-height:200px;background:var(--color-result-image-background)}.result-images span.title{display:none;color:var(--color-result-image-span-font)}.result-images:hover span.title{display:block;position:absolute;bottom:0;right:0;padding:4px;margin:0 0 4px 4px;background-color:var(--color-result-image-span-background-hover);font-size:.7em}.result-map img.image{float:right!important;height:100px!important;width:auto!important}.result-map table{font-size:.9em;width:auto;border-collapse:separate;border-spacing:0 .35rem}.result-map table th{font-weight:inherit;width:17rem;vertical-align:top;text-align:left}.result-map table td{vertical-align:top;text-align:left}.hidden{display:none!important}#results{margin:2rem 2rem 0 10rem;display:grid;grid-template-columns:45rem 25rem;grid-template-rows:min-content min-content 1fr min-content;gap:0 5rem;grid-template-areas:"corrections sidebar" "answers sidebar" "urls sidebar" "pagination sidebar"}#results #sidebar :first-child,#results #urls :first-child{margin-top:0}#urls{padding:0;grid-area:urls}#suggestions .wrapper{display:flex;flex-flow:row wrap;justify-content:flex-end}#suggestions .wrapper form{display:inline-block;flex:1 1 50%}#infoboxes input,#suggestions input{padding:0;margin:3px;font-size:.9em;display:inline-block;background:0 0;color:var(--color-result-search-url-font);cursor:pointer}#infoboxes .infobox .url a,#infoboxes input[type=submit],#suggestions .infobox .url a,#suggestions input[type=submit]{color:var(--color-result-link-font);text-decoration:none;font-size:.9rem}#infoboxes .infobox .url a:hover,#infoboxes input[type=submit]:hover,#suggestions .infobox .url a:hover,#suggestions input[type=submit]:hover{text-decoration:underline}#corrections{grid-area:corrections;display:flex;flex-flow:row wrap;margin:0 0 1em 0}#corrections h4,#corrections input[type=submit]{display:inline-block;padding:.5rem;margin:.5rem}#corrections input[type=submit]{font-size:.8rem;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px}#apis .title,#search_url .title,#suggestions .title{margin:2em 0 .5em 0;color:var(--color-base-font)}#answers{grid-area:answers;border:1px solid var(--color-answer-border);background:var(--color-answer-background);padding:1rem;margin:1rem .5rem;margin-top:0;color:var(--color-answer-font);-webkit-border-radius:10px;-moz-border-radius:10px;border-radius:10px}#answers h4{display:none}#infoboxes form{min-width:210px}#sidebar{grid-area:sidebar;word-wrap:break-word;color:var(--color-sidebar-font)}#sidebar .infobox{margin:10px 0 10px;border:1px solid var(--color-sidebar-border);padding:1rem;font-size:.9em;-webkit-border-radius:10px;-moz-border-radius:10px;border-radius:10px}#sidebar .infobox h2{margin:0 0 .5em 0}#sidebar .infobox img{max-width:100%;max-height:12em;display:block;margin:0 auto;padding:0}#sidebar .infobox dl{margin:.5em 0}#sidebar .infobox dt{display:inline;margin:.5em .25em .5em 0;padding:0;font-weight:700}#sidebar .infobox dd{display:inline;margin:.5em 0;padding:0}#sidebar .infobox input{font-size:1em}#sidebar .infobox br{clear:both}#sidebar .infobox .attributes,#sidebar .infobox .urls{clear:both}#search_url{margin-top:8px}#search_url div.selectable_url pre{width:200em}#linkto_preferences{position:absolute;right:10px;top:2rem;padding:0;border:0;display:block;font-size:1.2em;color:var(--color-search-font)}#linkto_preferences a:active *,#linkto_preferences a:hover *,#linkto_preferences a:link *,#linkto_preferences a:visited *{color:var(--color-search-font)}#pagination{grid-area:pagination}#pagination br{clear:both}#apis{margin-top:8px;clear:both}#backToTop{border:1px solid var(--color-backtotop-border);margin:0;padding:0;font-size:1em;background:var(--color-backtotop-background);position:fixed;bottom:8rem;left:56.3rem;transition:opacity .5s;opacity:0;-webkit-border-radius:10px;-moz-border-radius:10px;border-radius:10px}#backToTop a{display:block;margin:0;padding:.7em}#backToTop a,#backToTop a:active,#backToTop a:hover,#backToTop a:visited{color:var(--color-backtotop-font)}#results.scrolling #backToTop{opacity:1}@media screen and (max-width:80em){#main_about,#main_preferences,#main_stats{margin:2rem .5rem;width:auto}#infoboxes{position:inherit;max-width:inherit}#infoboxes .infobox{clear:both}#infoboxes .infobox img{float:left;max-width:10em;margin:.5em .5em .5em 0}#sidebar{margin-bottom:.125rem;padding:0;float:none;border:none;width:auto}#sidebar input{border:0}#apis{display:none}#search_url{display:none}.result .thumbnail{max-width:98%}.result .url span.url{display:block;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;width:100%}.result .engines{float:right;padding:0 0 3px 0}.result-images{border-bottom:none!important}.image_result{max-width:98%}.image_result img{max-width:98%}#backToTop{display:none}#pagination{margin:2rem 0 0 0!important}#main_results div#results{margin:2rem auto 0 auto;justify-content:center;display:grid;grid-template-columns:45rem;grid-template-rows:min-content min-content min-content 1fr min-content min-content;gap:0;grid-template-areas:"corrections" "answers" "sidebar" "urls" "pagination"}}#main_results div#results.only_template_images{margin:2rem .5rem 0 .5rem;display:grid;grid-template-columns:100%;grid-template-rows:min-content min-content 1fr min-content min-content;gap:0;grid-template-areas:"corrections" "urls" "answers" "sidebar" "pagination"}#main_results div#results.only_template_images #urls{width:inherit;margin:0}#main_results div#results.only_template_images #backToTop{left:auto;right:1rem}#main_results div#results.only_template_images #pagination{margin-right:4rem}@media screen and (max-width:50em){#main_results div#results{grid-template-columns:100%;margin:2rem .5rem 0 .5rem}#linkto_preferences{top:.8rem;right:.7rem}#main_index #linkto_preferences{top:.5rem;right:.5rem}#results{margin:0;padding:0}#pagination{margin:2rem 1rem 0 1rem!important}article[data-vim-selected]{border:1px solid var(--color-result-vim-arrow);-webkit-border-radius:10px;-moz-border-radius:10px;border-radius:10px}.result{border:1px solid var(--color-result-border);margin:1rem 0;-webkit-border-radius:10px;-moz-border-radius:10px;border-radius:10px}.result-images{margin:0;padding:0;border:none}}@media screen and (max-width:35em){.result-videos img.thumbnail{float:none!important}.result-videos .content{overflow:inherit}}pre code{white-space:pre-wrap}/*# sourceMappingURL=searxng.min.css.map */
\ No newline at end of file +.github-issue-button{display:block;padding:8px 16px;font-family:sans-serif;font-size:16px;color:#fff;background-color:#238636!important;border:#2ea043;border-radius:10px!important;box-shadow:transparent 0 0 0 0}.github-issue-button:hover{background-color:#2ea043}.issue-hide{display:none}.engine-stats .engine-name{width:20rem}.engine-stats .engine-score{width:7rem;text-align:right}.engine-stats .engine-reliability{text-align:right}.engine-stats table.engine-error{max-width:1280px;margin:1rem;border:1px solid gray}.engine-stats failed-test,.engine-stats table.engine-error td.engine-error-type,.engine-stats table.engine-error th.engine-error-type{width:10rem}.engine-stats table.engine-error span.log_parameters{border-right:1px solid gray;padding:0 1rem 0 0;margin:0 0 0 .5rem}.bar-chart-value{width:3em;display:inline-block;text-align:right;padding-right:.5rem}.bar-chart-graph{width:calc(100% - 5rem);display:inline-block}.bar-chart-bar{border:3px solid #5bc0de;margin:1px 0}.bar-chart-serie1{border:3px solid #5bc0de;margin:1px 0;float:left}.bar-chart-serie2{border:3px solid #deb15b;margin:1px 0;float:left}.bar0{width:0;border:0}.bar1{width:1%}.bar2{width:2%}.bar3{width:3%}.bar4{width:4%}.bar5{width:5%}.bar6{width:6%}.bar7{width:7%}.bar8{width:8%}.bar9{width:9%}.bar10{width:10%}.bar11{width:11%}.bar12{width:12%}.bar13{width:13%}.bar14{width:14%}.bar15{width:15%}.bar16{width:16%}.bar17{width:17%}.bar18{width:18%}.bar19{width:19%}.bar20{width:20%}.bar21{width:21%}.bar22{width:22%}.bar23{width:23%}.bar24{width:24%}.bar25{width:25%}.bar26{width:26%}.bar27{width:27%}.bar28{width:28%}.bar29{width:29%}.bar30{width:30%}.bar31{width:31%}.bar32{width:32%}.bar33{width:33%}.bar34{width:34%}.bar35{width:35%}.bar36{width:36%}.bar37{width:37%}.bar38{width:38%}.bar39{width:39%}.bar40{width:40%}.bar41{width:41%}.bar42{width:42%}.bar43{width:43%}.bar44{width:44%}.bar45{width:45%}.bar46{width:46%}.bar47{width:47%}.bar48{width:48%}.bar49{width:49%}.bar50{width:50%}.bar51{width:51%}.bar52{width:52%}.bar53{width:53%}.bar54{width:54%}.bar55{width:55%}.bar56{width:56%}.bar57{width:57%}.bar58{width:58%}.bar59{width:59%}.bar60{width:60%}.bar61{width:61%}.bar62{width:62%}.bar63{width:63%}.bar64{width:64%}.bar65{width:65%}.bar66{width:66%}.bar67{width:67%}.bar68{width:68%}.bar69{width:69%}.bar70{width:70%}.bar71{width:71%}.bar72{width:72%}.bar73{width:73%}.bar74{width:74%}.bar75{width:75%}.bar76{width:76%}.bar77{width:77%}.bar78{width:78%}.bar79{width:79%}.bar80{width:80%}.bar81{width:81%}.bar82{width:82%}.bar83{width:83%}.bar84{width:84%}.bar85{width:85%}.bar86{width:86%}.bar87{width:87%}.bar88{width:88%}.bar89{width:89%}.bar90{width:90%}.bar91{width:91%}.bar92{width:92%}.bar93{width:93%}.bar94{width:94%}.bar95{width:95%}.bar96{width:96%}.bar97{width:97%}.bar98{width:98%}.bar99{width:99%}.bar100{width:100%}.osm-map-box{height:300px;width:100%;margin:10px 0}/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0}main{display:block}h1{font-size:2em;margin:.67em 0}hr{box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring,button:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none}:root{--color-base-font:#444;--color-base-font-rgb:68,68,68;--color-base-background:#fff;--color-url-font:#29314d;--color-url-visited-font:#80b;--color-header-background:#f7f7f7;--color-header-border:#ddd;--color-footer-background:#f7f7f7;--color-footer-border:#ddd;--color-sidebar-border:#ddd;--color-sidebar-font:#000;--color-backtotop-font:#444;--color-backtotop-border:#ddd;--color-backtotop-background:#fff;--color-btn-background:#3050ff;--color-btn-font:#fff;--color-search-border:#bbb;--color-search-background:#fff;--color-search-font:#222;--color-search-background-hover:#3050ff;--color-error:#db3434;--color-error-background:#fae1e1;--color-warning:#dbba34;--color-warning-background:#faf5e1;--color-success:#42db34;--color-success-background:#e3fae1;--color-categories-item-selected-font:#3050ff;--color-categories-item-border-selected:#3050ff;--color-autocomplete-font:#000;--color-autocomplete-border:#bbb;--color-autocomplete-background:#fff;--color-autocomplete-background-hover:#f7f7f7;--color-answer-border:#ddd;--color-answer-font:#444;--color-answer-background:#f7f7f7;--color-result-border:#ddd;--color-result-url-font:#000;--color-result-vim-selected:#f7f7f7;--color-result-vim-arrow:#000bbb;--color-result-description-highlight-font:#000;--color-result-link-font:#000bbb;--color-result-link-font-highlight:#000bbb;--color-result-link-visited-font:#80b;--color-result-publishdate-font:#777;--color-result-engines-font:#777;--color-result-search-url-border:#ddd;--color-result-search-url-font:#000;--color-result-image-span-background-hover:rgba(0, 0, 0, 0.6);--color-result-image-span-font:#fff;--color-result-image-background:#000bbb;--color-settings-tr-hover:#f7f7f7;--color-settings-engine-description-font:#909090;--color-result-detail-font:#fff;--color-result-detail-label-font:lightgray;--color-result-detail-background:#000;--color-result-detail-hr:#555;--color-result-detail-link:#8af;--color-result-detail-loader-border:rgba(255, 255, 255, 0.2);--color-result-detail-loader-borderleft:rgba(0, 0, 0, 0);--color-toolkit-badge-font:#fff;--color-toolkit-badge-background:#777;--color-toolkit-kbd-font:#fff;--color-toolkit-kbd-background:#000;--color-toolkit-dialog-border:#ddd;--color-toolkit-dialog-background:#fff;--color-toolkit-tabs-label-border:#fff;--color-toolkit-tabs-section-border:#ddd;--color-toolkit-select-background:#f7f7f7;--color-toolkit-select-border:#ddd;--color-toolkit-select-background-hover:#bbb;--color-toolkit-input-text-font:#222;--color-toolkit-checkbox-onoff-background:#ddd;--color-toolkit-checkbox-onoff-label-background:#3050ff;--color-toolkit-checkbox-onoff-checked-background:#aaa;--color-toolkit-checkbox-label-background:#fff;--color-toolkit-checkbox-label-border:#ddd;--color-toolkit-checkbox-input-border:#3050ff;--color-toolkit-engine-tooltip-border:#ddd;--color-toolkit-engine-tooltip-background:#fff;--color-toolkit-loader-border:rgba(0, 0, 0, 0.2);--color-toolkit-loader-borderleft:rgba(255, 255, 255, 0)}@media (prefers-color-scheme:dark){:root.theme-auto{--color-base-font:#bbb;--color-base-font-rgb:187,187,187;--color-base-background:#222;--color-url-font:#8af;--color-url-visited-font:#96b;--color-header-background:#181818;--color-header-border:#333;--color-footer-background:#181818;--color-footer-border:#333;--color-sidebar-border:#555;--color-sidebar-font:#fff;--color-backtotop-font:#bbb;--color-backtotop-border:#333;--color-backtotop-background:#181818;--color-btn-background:#58f;--color-btn-font:#222;--color-search-border:#555;--color-search-background:#222;--color-search-font:#fff;--color-search-background-hover:#58f;--color-error:#f55b5b;--color-error-background:#390a0a;--color-warning:#f1d561;--color-warning-background:#39300a;--color-success:#79f56e;--color-success-background:#0e390a;--color-categories-item-selected-font:#58f;--color-categories-item-border-selected:#58f;--color-autocomplete-font:#fff;--color-autocomplete-border:#555;--color-autocomplete-background:#222;--color-autocomplete-background-hover:#181818;--color-answer-border:#333;--color-answer-font:#bbb;--color-answer-background:#181818;--color-result-border:#333;--color-result-url-font:#fff;--color-result-vim-selected:#181818;--color-result-vim-arrow:#8af;--color-result-description-highlight-font:#fff;--color-result-link-font:#8af;--color-result-link-font-highlight:#8af;--color-result-link-visited-font:#96b;--color-result-publishdate-font:#888;--color-result-engines-font:#888;--color-result-search-url-border:#555;--color-result-search-url-font:#fff;--color-result-detail-font:#fff;--color-result-detail-label-font:lightgray;--color-result-detail-background:#000;--color-result-detail-hr:#555;--color-result-detail-link:#8af;--color-result-detail-loader-border:rgba(255, 255, 255, 0.2);--color-result-detail-loader-borderleft:rgba(0, 0, 0, 0);--color-result-image-span-background-hover:rgba(0, 0, 0, 0.6);--color-result-image-span-font:#fff;--color-result-image-background:#8af;--color-settings-tr-hover:#2d2d2d;--color-settings-engine-description-font:#909090;--color-toolkit-badge-font:#fff;--color-toolkit-badge-background:#777;--color-toolkit-kbd-font:#000;--color-toolkit-kbd-background:#fff;--color-toolkit-dialog-border:#555;--color-toolkit-dialog-background:#222;--color-toolkit-tabs-label-border:#222;--color-toolkit-tabs-section-border:#555;--color-toolkit-select-background:#3c3b31;--color-toolkit-select-border:#555;--color-toolkit-select-background-hover:#333;--color-toolkit-input-text-font:#fff;--color-toolkit-checkbox-onoff-background:#3c3b31;--color-toolkit-checkbox-onoff-label-background:#58f;--color-toolkit-checkbox-onoff-checked-background:#ddd;--color-toolkit-checkbox-label-background:#fff;--color-toolkit-checkbox-label-border:#333;--color-toolkit-checkbox-input-border:#58f;--color-toolkit-engine-tooltip-border:#333;--color-toolkit-engine-tooltip-background:#222;--color-toolkit-loader-border:rgba(255, 255, 255, 0.2);--color-toolkit-loader-borderleft:rgba(0, 0, 0, 0)}}:root.theme-dark{--color-base-font:#bbb;--color-base-font-rgb:187,187,187;--color-base-background:#222;--color-url-font:#8af;--color-url-visited-font:#96b;--color-header-background:#181818;--color-header-border:#333;--color-footer-background:#181818;--color-footer-border:#333;--color-sidebar-border:#555;--color-sidebar-font:#fff;--color-backtotop-font:#bbb;--color-backtotop-border:#333;--color-backtotop-background:#181818;--color-btn-background:#58f;--color-btn-font:#222;--color-search-border:#555;--color-search-background:#222;--color-search-font:#fff;--color-search-background-hover:#58f;--color-error:#f55b5b;--color-error-background:#390a0a;--color-warning:#f1d561;--color-warning-background:#39300a;--color-success:#79f56e;--color-success-background:#0e390a;--color-categories-item-selected-font:#58f;--color-categories-item-border-selected:#58f;--color-autocomplete-font:#fff;--color-autocomplete-border:#555;--color-autocomplete-background:#222;--color-autocomplete-background-hover:#181818;--color-answer-border:#333;--color-answer-font:#bbb;--color-answer-background:#181818;--color-result-border:#333;--color-result-url-font:#fff;--color-result-vim-selected:#181818;--color-result-vim-arrow:#8af;--color-result-description-highlight-font:#fff;--color-result-link-font:#8af;--color-result-link-font-highlight:#8af;--color-result-link-visited-font:#96b;--color-result-publishdate-font:#888;--color-result-engines-font:#888;--color-result-search-url-border:#555;--color-result-search-url-font:#fff;--color-result-detail-font:#fff;--color-result-detail-label-font:lightgray;--color-result-detail-background:#000;--color-result-detail-hr:#555;--color-result-detail-link:#8af;--color-result-detail-loader-border:rgba(255, 255, 255, 0.2);--color-result-detail-loader-borderleft:rgba(0, 0, 0, 0);--color-result-image-span-background-hover:rgba(0, 0, 0, 0.6);--color-result-image-span-font:#fff;--color-result-image-background:#8af;--color-settings-tr-hover:#2d2d2d;--color-settings-engine-description-font:#909090;--color-toolkit-badge-font:#fff;--color-toolkit-badge-background:#777;--color-toolkit-kbd-font:#000;--color-toolkit-kbd-background:#fff;--color-toolkit-dialog-border:#555;--color-toolkit-dialog-background:#222;--color-toolkit-tabs-label-border:#222;--color-toolkit-tabs-section-border:#555;--color-toolkit-select-background:#3c3b31;--color-toolkit-select-border:#555;--color-toolkit-select-background-hover:#333;--color-toolkit-input-text-font:#fff;--color-toolkit-checkbox-onoff-background:#3c3b31;--color-toolkit-checkbox-onoff-label-background:#58f;--color-toolkit-checkbox-onoff-checked-background:#ddd;--color-toolkit-checkbox-label-background:#fff;--color-toolkit-checkbox-label-border:#333;--color-toolkit-checkbox-input-border:#58f;--color-toolkit-engine-tooltip-border:#333;--color-toolkit-engine-tooltip-background:#222;--color-toolkit-loader-border:rgba(255, 255, 255, 0.2);--color-toolkit-loader-borderleft:rgba(0, 0, 0, 0)}.code-highlight pre{overflow:auto;background-color:inherit;color:inherit;border:inherit}.code-highlight .linenos{-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:default;margin-right:8px;text-align:right}.code-highlight .linenos::selection{background:0 0}.code-highlight .linenos::-moz-selection{background:0 0}.code-highlight pre{line-height:125%}.code-highlight td.linenos .normal{color:inherit;background-color:transparent;padding-left:5px;padding-right:5px}.code-highlight span.linenos{color:inherit;background-color:transparent;padding-left:5px;padding-right:5px}.code-highlight td.linenos .special{color:#000;background-color:#ffffc0;padding-left:5px;padding-right:5px}.code-highlight span.linenos.special{color:#000;background-color:#ffffc0;padding-left:5px;padding-right:5px}.code-highlight .hll{background-color:#ffc}.code-highlight{background:#f8f8f8}.code-highlight .c{color:#408080;font-style:italic}.code-highlight .err{border:1px solid red}.code-highlight .k{color:green;font-weight:700}.code-highlight .o{color:#666}.code-highlight .ch{color:#408080;font-style:italic}.code-highlight .cm{color:#408080;font-style:italic}.code-highlight .cp{color:#BC7A00}.code-highlight .cpf{color:#408080;font-style:italic}.code-highlight .c1{color:#408080;font-style:italic}.code-highlight .cs{color:#408080;font-style:italic}.code-highlight .gd{color:#A00000}.code-highlight .ge{font-style:italic}.code-highlight .gr{color:red}.code-highlight .gh{color:navy;font-weight:700}.code-highlight .gi{color:#00A000}.code-highlight .go{color:#888}.code-highlight .gp{color:navy;font-weight:700}.code-highlight .gs{font-weight:700}.code-highlight .gu{color:purple;font-weight:700}.code-highlight .gt{color:#04D}.code-highlight .kc{color:green;font-weight:700}.code-highlight .kd{color:green;font-weight:700}.code-highlight .kn{color:green;font-weight:700}.code-highlight .kp{color:green}.code-highlight .kr{color:green;font-weight:700}.code-highlight .kt{color:#B00040}.code-highlight .m{color:#666}.code-highlight .s{color:#BA2121}.code-highlight .na{color:#7D9029}.code-highlight .nb{color:green}.code-highlight .nc{color:#00F;font-weight:700}.code-highlight .no{color:#800}.code-highlight .nd{color:#A2F}.code-highlight .ni{color:#999;font-weight:700}.code-highlight .ne{color:#D2413A;font-weight:700}.code-highlight .nf{color:#00F}.code-highlight .nl{color:#A0A000}.code-highlight .nn{color:#00F;font-weight:700}.code-highlight .nt{color:green;font-weight:700}.code-highlight .nv{color:#19177C}.code-highlight .ow{color:#A2F;font-weight:700}.code-highlight .w{color:#bbb}.code-highlight .mb{color:#666}.code-highlight .mf{color:#666}.code-highlight .mh{color:#666}.code-highlight .mi{color:#666}.code-highlight .mo{color:#666}.code-highlight .sa{color:#BA2121}.code-highlight .sb{color:#BA2121}.code-highlight .sc{color:#BA2121}.code-highlight .dl{color:#BA2121}.code-highlight .sd{color:#BA2121;font-style:italic}.code-highlight .s2{color:#BA2121}.code-highlight .se{color:#B62;font-weight:700}.code-highlight .sh{color:#BA2121}.code-highlight .si{color:#B68;font-weight:700}.code-highlight .sx{color:green}.code-highlight .sr{color:#B68}.code-highlight .s1{color:#BA2121}.code-highlight .ss{color:#19177C}.code-highlight .bp{color:green}.code-highlight .fm{color:#00F}.code-highlight .vc{color:#19177C}.code-highlight .vg{color:#19177C}.code-highlight .vi{color:#19177C}.code-highlight .vm{color:#19177C}.code-highlight .il{color:#666}html.no-js .hide_if_nojs{display:none}html.js .show_if_nojs{display:none}.center{text-align:center}.right{float:right}.left{float:left}.invisible{display:none!important}.list-unstyled{list-style-type:none}.list-unstyled li{margin-top:4px;margin-bottom:4px}.danger{background-color:var(--color-error-background)}.warning{background:var(--color-warning-background)}.success{background:var(--color-success-background)}.badge{display:inline-block;color:var(--color-toolkit-badge-font);background-color:var(--color-toolkit-badge-background);text-align:center;white-space:nowrap;vertical-align:baseline;min-width:10px;padding:1px 5px;border-radius:5px}kbd{padding:2px 4px;margin:1px;font-size:90%;color:var(--color-toolkit-kbd-font);background:var(--color-toolkit-kbd-background)}table{width:100%}table.striped tr{border-bottom:1px solid var(--color-settings-tr-hover)}th{padding:.4em}td{padding:0 4px}tr:hover{background:var(--color-settings-tr-hover)!important}div.selectable_url{display:block;border:1px solid var(--color-result-search-url-border);padding:4px;color:var(--color-result-search-url-font);margin:.1em;overflow:hidden;height:1.2em;line-height:1.2em;border-radius:5px}div.selectable_url pre{display:block;font-size:.8em;word-break:break-all;margin:.1em;-webkit-user-select:all;-moz-user-select:all;-ms-user-select:element;user-select:all}.dialog-error{position:relative;display:flex;padding:1rem;margin:0 0 1em 0;border:1px solid var(--color-toolkit-dialog-border);text-align:left;border-radius:10px;color:var(--color-error);background:var(--color-error-background);border-color:var(--color-error)}.dialog-error .close{float:right;position:relative;top:-3px;color:inherit;font-size:1.5em}.dialog-error ol,.dialog-error p,.dialog-error ul{margin:1px 0 0 0}.dialog-error table{width:auto}.dialog-error tr{vertical-align:text-top}.dialog-error tr:hover{background:0 0!important}.dialog-error td{padding:0 1em 0 0}.dialog-error h4{margin-top:.3em;margin-bottom:.3em}.dialog-warning{position:relative;display:flex;padding:1rem;margin:0 0 1em 0;border:1px solid var(--color-toolkit-dialog-border);text-align:left;border-radius:10px;color:var(--color-warning);background:var(--color-warning-background);border-color:var(--color-warning)}.dialog-warning .close{float:right;position:relative;top:-3px;color:inherit;font-size:1.5em}.dialog-warning ol,.dialog-warning p,.dialog-warning ul{margin:1px 0 0 0}.dialog-warning table{width:auto}.dialog-warning tr{vertical-align:text-top}.dialog-warning tr:hover{background:0 0!important}.dialog-warning td{padding:0 1em 0 0}.dialog-warning h4{margin-top:.3em;margin-bottom:.3em}.dialog-modal{position:relative;display:flex;padding:1rem;margin:0 0 1em 0;border:1px solid var(--color-toolkit-dialog-border);text-align:left;border-radius:10px;display:block;background:var(--color-toolkit-dialog-background);position:fixed;top:50%;left:50%;margin:0 auto;transform:translate(-50%,-50%);z-index:10000000}.dialog-modal .close{float:right;position:relative;top:-3px;color:inherit;font-size:1.5em}.dialog-modal ol,.dialog-modal p,.dialog-modal ul{margin:1px 0 0 0}.dialog-modal table{width:auto}.dialog-modal tr{vertical-align:text-top}.dialog-modal tr:hover{background:0 0!important}.dialog-modal td{padding:0 1em 0 0}.dialog-modal h4{margin-top:.3em;margin-bottom:.3em}.dialog-modal h3{margin-top:0}.btn-collapse{cursor:pointer}.scrollx{overflow-x:auto;overflow-y:hidden;display:block;padding:0;margin:0;border:none}.tabs .tabs>label{font-size:90%}.tabs{display:-webkit-box;display:-moz-box;display:-webkit-flex;display:-ms-flexbox;display:flex;flex-wrap:wrap;width:100%;min-width:100%}.tabs>*{order:2}.tabs>input[type=radio]{display:none}.tabs>label{order:1;padding:.7em;margin:0 .7em;letter-spacing:.5px;text-transform:uppercase;border:solid var(--color-toolkit-tabs-label-border);border-width:0 0 2px 0;-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:pointer}.tabs>label:hover{border-bottom:2px solid var(--color-categories-item-border-selected)}.tabs>section{min-width:100%;padding:.7rem 0;box-sizing:border-box;border-top:1px solid var(--color-toolkit-tabs-section-border);display:none}.tabs>label:last-of-type{border-bottom:2px solid var(--color-categories-item-border-selected);background:var(--color-categories-item-selected);color:var(--color-categories-item-selected-font);letter-spacing:-.1px}.tabs>section:last-of-type{display:block}html body .tabs>input:checked~section{display:none}html body .tabs>input:checked~label{position:inherited;background:inherit;border-bottom:2px solid transparent;font-weight:400;color:inherit}html body .tabs>input:checked~label:hover{border-bottom:2px solid var(--color-categories-item-border-selected)}html body .tabs>input:checked+label{border-bottom:2px solid var(--color-categories-item-border-selected);background:var(--color-categories-item-selected);color:var(--color-categories-item-selected-font)}html body .tabs>input:checked+label+section{display:block}select{height:2.4rem;margin:0 1rem 0 0;padding:.2rem!important;color:var(--color-search-font);font-size:.9rem;z-index:2}select:focus,select:hover{cursor:pointer}@supports ((background-position-x:100%) and ((appearance:none) or (-webkit-appearance:none) or (-moz-appearance:none))){select{appearance:none;-webkit-appearance:none;-moz-appearance:none;border-width:0 2rem 0 0;border-color:transparent;background:url("data:image/svg+xml;charset=UTF-8,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22utf-8%22%3F%3E%0A%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22512%22%20height%3D%22512%22%20viewBox%3D%220%200%20512%20512%22%3E%0A%3Cg%3E%3Cpolygon%20points%3D%22128%2C192%20256%2C320%20384%2C192%22%2F%3E%3C%2Fg%3E%0A%3C%2Fsvg%3E") no-repeat;background-position-x:calc(100% + 2rem);background-size:2rem;background-origin:content-box;background-color:var(--color-toolkit-select-background);outline:medium none;text-overflow:ellipsis;border-radius:5px}select:focus,select:hover{background-color:var(--color-toolkit-select-background-hover)}select option{background-color:var(--color-base-background)}@media (prefers-color-scheme:dark){html.theme-auto select,html.theme-dark select{background-image:url("data:image/svg+xml;charset=UTF-8,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22utf-8%22%3F%3E%0A%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22512%22%20height%3D%22512%22%20viewBox%3D%220%200%20512%20512%22%3E%0A%3Cg%3E%3Cpolygon%20fill%3D%22%23ddd%22%20points%3D%22128%2C192%20256%2C320%20384%2C192%22%2F%3E%3C%2Fg%3E%0A%3C%2Fsvg%3E")}}html.theme-dark select{background-image:url("data:image/svg+xml;charset=UTF-8,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22utf-8%22%3F%3E%0A%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22512%22%20height%3D%22512%22%20viewBox%3D%220%200%20512%20512%22%3E%0A%3Cg%3E%3Cpolygon%20fill%3D%22%23ddd%22%20points%3D%22128%2C192%20256%2C320%20384%2C192%22%2F%3E%3C%2Fg%3E%0A%3C%2Fsvg%3E")}}@supports (border-radius:50px){.checkbox-onoff{display:inline-block;width:40px;height:10px;background:var(--color-toolkit-checkbox-onoff-background);margin:8px 1rem;position:relative;border-radius:50px}.checkbox-onoff label{display:block;width:20px;height:20px;position:absolute;top:-5px;cursor:pointer;border-radius:50px;transition:all .4s ease;left:27px;background-color:var(--color-toolkit-checkbox-onoff-label-background)}.checkbox-onoff input[type=checkbox]{visibility:hidden}.checkbox-onoff input[type=checkbox]:checked+label{left:-5px;background:var(--color-toolkit-checkbox-onoff-checked-background)}}@supports (transform:rotate(-45deg)){.checkbox{width:20px;position:relative;margin:20px auto}.checkbox label{width:20px;height:20px;cursor:pointer;position:absolute;top:0;left:0;background:var(--color-toolkit-checkbox-label-background);border-radius:10px}.checkbox label::after{content:'';width:9px;height:5px;position:absolute;top:4px;left:4px;border:3px solid var(--color-toolkit-checkbox-label-border);border-top:none;border-right:none;background:0 0;opacity:0;transform:rotate(-45deg)}.checkbox input[type=checkbox]{visibility:hidden}.checkbox input[type=checkbox]:checked+label::after{border-color:var(--color-toolkit-checkbox-input-border);opacity:1}.checkbox input[disabled]+label{background-color:transparent!important;cursor:inherit}.checkbox input:not(:checked):not([readonly]):not([disabled])+label:hover::after{opacity:.5}}@media screen and (max-width:50em){.tabs>label{width:100%}}.loader,.loader::after{border-radius:50%;width:2em;height:2em}.loader{margin:1em auto;font-size:10px;position:relative;text-indent:-9999em;border-top:.5em solid var(--color-toolkit-loader-border);border-right:.5em solid var(--color-toolkit-loader-border);border-bottom:.5em solid var(--color-toolkit-loader-border);border-left:.5em solid var(--color-toolkit-loader-borderleft);-webkit-transform:translateZ(0);-ms-transform:translateZ(0);transform:translateZ(0);-webkit-animation:load8 1.2s infinite linear;animation:load8 1.2s infinite linear}@-webkit-keyframes load8{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes load8{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}.engine-tooltip{display:none;position:absolute;padding:.5rem 1rem;margin:0 0 0 2rem;border:1px solid var(--color-toolkit-engine-tooltip-border);background:var(--color-toolkit-engine-tooltip-background);font-size:14px;font-weight:400;z-index:1000000;text-align:left;border-radius:10px}.engine-tooltip:hover,td:hover .engine-tooltip,th:hover .engine-tooltip{display:inline-block}.stacked-bar-chart{margin:0;padding:0 .125rem 0 4rem;width:100%;width:-moz-available;width:-webkit-fill-available;width:fill;flex-direction:row;flex-wrap:nowrap;align-items:center;display:inline-flex}.stacked-bar-chart-value{width:3rem;display:inline-block;position:absolute;padding:0 .5rem;text-align:right}.stacked-bar-chart-base{display:flex;flex-shrink:0;flex-grow:0;flex-basis:unset}.stacked-bar-chart-median{display:flex;flex-shrink:0;flex-grow:0;flex-basis:unset;background:var(--color-base-font);border:1px solid rgba(var(--color-base-font-rgb),.9);padding:.3rem 0}.stacked-bar-chart-rate80{display:flex;flex-shrink:0;flex-grow:0;flex-basis:unset;background:0 0;border:1px solid rgba(var(--color-base-font-rgb),.3);padding:.3rem 0}.stacked-bar-chart-rate95{display:flex;flex-shrink:0;flex-grow:0;flex-basis:unset;background:0 0;border-bottom:1px dotted rgba(var(--color-base-font-rgb),.5);padding:0}.stacked-bar-chart-rate100{display:flex;flex-shrink:0;flex-grow:0;flex-basis:unset;background:0 0;border-left:1px solid rgba(var(--color-base-font-rgb),.9);padding:.4rem 0;width:1px}/*! Autocomplete.js v2.6.3 | license MIT | (c) 2017, Baptiste Donaux | http://autocomplete-js.com */.autocomplete{position:absolute;max-height:0;overflow-y:hidden;text-align:left;border-radius:10px}.autocomplete:active,.autocomplete:focus,.autocomplete:hover{background-color:var(--color-autocomplete-background)}.autocomplete:empty{display:none}.autocomplete>ul{list-style-type:none;margin:0;padding:0}.autocomplete>ul>li{cursor:pointer;padding:8px 0 8px 8px}.autocomplete>ul>li.active,.autocomplete>ul>li:active,.autocomplete>ul>li:focus,.autocomplete>ul>li:hover{background-color:var(--color-autocomplete-background-hover)}.autocomplete>ul>li.active a:active,.autocomplete>ul>li.active a:focus,.autocomplete>ul>li.active a:hover,.autocomplete>ul>li:active a:active,.autocomplete>ul>li:active a:focus,.autocomplete>ul>li:active a:hover,.autocomplete>ul>li:focus a:active,.autocomplete>ul>li:focus a:focus,.autocomplete>ul>li:focus a:hover,.autocomplete>ul>li:hover a:active,.autocomplete>ul>li:hover a:focus,.autocomplete>ul>li:hover a:hover{text-decoration:none}.autocomplete>ul>li.locked{cursor:inherit}.autocomplete.open{display:block;background-color:var(--color-autocomplete-background);color:var(--color-autocomplete-font);border:1px solid var(--color-autocomplete-border);max-height:500px;overflow-y:auto;z-index:100}.autocomplete.open:empty{display:none}@media screen and (max-width:50em){.autocomplete{bottom:0}.autocomplete>ul>li{border-bottom:1px solid var(--color-result-top-border);text-align:left}}#main_results #results.image-detail-open.only_template_images{width:min(98%,59.25rem)!important}#main_results #results.only_template_images.image-detail-open #backToTop{left:56.75rem!important;right:inherit}article.result-images .detail{display:none}#results.image-detail-open article.result-images[data-vim-selected] .detail{display:flex;flex-direction:column;position:fixed;left:60rem;right:0;top:7.75rem;transition:top 64ms ease-in 0s;bottom:0;background:var(--color-result-detail-background);border:1px solid var(--color-result-detail-background);z-index:10000;padding:4rem 3rem 3rem 3rem}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-images-source{display:block;flex:1;text-align:left;width:100%;border:none;text-decoration:none}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-images-source img{padding:0;margin:0;border:none;object-fit:contain;width:inherit;max-width:100%;min-height:inherit;max-height:calc(100vh - 25rem - 7rem);background:inherit}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels{color:var(--color-result-detail-font);max-height:16rem;min-height:16rem}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels hr{border-top:1px solid var(--color-result-detail-hr);border-bottom:none}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels h4{height:2rem;overflow:hidden;text-overflow:ellipsis;font-size:.9rem}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p{color:var(--color-result-detail-label-font);font-size:.9rem}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p span{display:inline-block;width:12rem}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels a,#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels h4,#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p{text-align:left}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p.result-content{height:2rem;overflow:hidden;text-overflow:ellipsis}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p.result-url{white-space:nowrap;overflow-x:hidden;text-overflow:ellipsis}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p.result-content:hover,#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p.result-url:hover{position:relative;overflow:inherit!important;background:var(--color-result-detail-background);text-overflow:inherit!important}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels a,#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels a:active,#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels a:hover,#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels a:visited{color:var(--color-result-detail-link)}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels a:hover{text-decoration:underline}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close{top:1rem;left:1rem;padding:.4rem}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous{top:1rem;right:6rem;padding:.4rem .5rem .4rem .3rem}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next{top:1rem;right:2rem;padding:.4rem}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous{border-radius:50%;display:block;width:1.5rem;height:1.5rem;position:absolute;filter:opacity(40%);z-index:2000002}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close span,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next span,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous span{display:block;width:1.5rem;height:1.5rem;text-align:center}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next span::before,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous span::before{vertical-align:sub}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close:active,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close:hover,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close:visited,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next:active,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next:hover,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next:visited,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous:active,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous:hover,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous:visited{color:var(--color-result-detail-font);background:var(--color-result-detail-background);border:1px solid var(--color-result-detail-font)}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close:focus,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close:hover,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next:focus,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next:hover,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous:focus,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous:hover{filter:opacity(80%)}#results.image-detail-open article.result-images[data-vim-selected] .detail .loader{position:absolute;top:1rem;right:50%;border-top:.5em solid var(--color-result-detail-loader-border);border-right:.5em solid var(--color-result-detail-loader-border);border-bottom:.5em solid var(--color-result-detail-loader-border);border-left:.5em solid var(--color-result-detail-loader-borderleft)}#results.image-detail-open.scrolling article.result-images[data-vim-selected] .detail{top:0}#results.image-detail-open.scrolling article.result-images[data-vim-selected] .detail a.result-images-source img{max-height:calc(100vh - 25rem)}@media screen and (max-width:80em){#results.image-detail-open article.result-images[data-vim-selected] .detail{top:0;left:0}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-images-source{display:flex;flex-direction:column;justify-content:center}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-images-source img{width:100%;max-height:calc(100vh - 24rem)}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next{right:1rem}}@media screen and (max-width:50em){#results.image-detail-open article.result-images[data-vim-selected] .detail{top:0;left:0;padding:1rem}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-images-source img{width:100%;max-height:calc(100vh - 20rem);margin:0}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p span{width:inherit;margin-right:1rem}}.dialog-modal{animation-name:dialogmodal;animation-duration:.13s}@keyframes dialogmodal{0%{opacity:0}50%{opacity:.5;transform:translate(-50%,-50%) scale(1.05)}}#main_index{margin-top:26vh}#main_index #linkto_preferences{right:1.8rem}.index{text-align:center}.index .title{background:url(../img/searxng.png) no-repeat;min-height:4rem;margin:4rem auto;background-position:center;background-size:contain}.index h1{font-size:4em;visibility:hidden}.index #search,.index #search_header{margin:0 auto;background:inherit;border:inherit;padding:0;display:block}.index .search_filters{display:block;margin:1em 0}.index .category label{padding:6px 10px;border-bottom:initial!important}@media screen and (max-width:80em){div.title h1{font-size:1em}#main_index{margin-top:6em}}@media screen and (max-width:50em){#main_index{margin-top:0}}#tab-contentquery table td,#tab-contentquery table th{text-align:left!important;height:3rem}#main_preferences form{width:100%}#main_preferences fieldset{margin:8px;border:none}#main_preferences legend{margin:0;padding:5px 0 0 0;display:block;float:left;width:300px}#main_preferences .value{margin:0;padding:0;float:left;width:15em}#main_preferences .value input[type=text],#main_preferences .value select{font-size:inherit!important;margin:0 1rem 0 0}#main_preferences .value select{width:14rem}#main_preferences .value input[type=text]{width:13.25rem;color:var(--color-toolkit-input-text-font);border:none;background:none repeat scroll 0 0 var(--color-toolkit-select-background);padding:.2rem .4rem;height:2rem;border-radius:5px}#main_preferences .value input[type=text]:focus,#main_preferences .value input[type=text]:hover{background-color:var(--color-toolkit-select-background-hover)}#main_preferences .value input:focus,#main_preferences .value select:focus{outline:0;box-shadow:0 0 1px 1px var(--color-btn-background)}#main_preferences .description{margin:0;padding:5px 0 0 0;float:left;width:50%;color:var(--color-settings-engine-description-font);font-size:90%}#main_preferences table{border-collapse:collapse}#main_preferences table td{text-align:center}#main_preferences table.cookies{width:100%}#main_preferences table.cookies td,#main_preferences table.cookies th{text-align:left;font-family:monospace;font-size:1rem;padding:.5em;vertical-align:top}#main_preferences table.cookies td:first-child{word-break:keep-all;width:14rem;padding-right:1rem}#main_preferences table.cookies td:last-child{word-break:break-all}#main_preferences table.cookies>tbody>tr:nth-child(even)>td,#main_preferences table.cookies>tbody>tr:nth-child(even)>th{background-color:var(--color-settings-tr-hover)}#main_preferences .category{margin-right:.5rem}#main_preferences .category label{border:2px solid transparent;padding:.2rem .4rem;border-radius:5px}#main_preferences .category input[type=checkbox]:checked+label{border:2px solid var(--color-categories-item-border-selected)}#main_preferences .name,#main_preferences .shortcut{text-align:left}#main_preferences .preferences_back{background:none repeat scroll 0 0 var(--color-btn-background);color:var(--color-btn-font);border:0 none;border-radius:10px;cursor:pointer;display:inline-block;margin:2px 4px;padding:.7em}#main_preferences .preferences_back a{color:var(--color-settings-return-font)}#main_preferences .preferences_back a::first-letter{text-transform:uppercase}#main_preferences div.selectable_url pre{width:100%}#main_preferences th.name .engine-tooltip{margin-top:1.8rem;left:calc((100% - 85em)/ 2 + 10em);max-width:40rem}#main_preferences th.name .engine-tooltip .engine-description{margin-top:.5rem}@media screen and (max-width:80em){.preferences_back{clear:both}.engine-tooltip{left:10em!important}}#search{padding:0;margin:0}#search_header{padding:1.5em 2em 0 7rem;margin:0;background:var(--color-header-background);border-bottom:1px solid var(--color-header-border);display:grid;column-gap:1.2rem;row-gap:1rem;grid-template-columns:3rem 1fr;grid-template-areas:"logo search" "spacer categories"}.category{display:inline-block;position:relative;margin-right:1rem;padding:0}.category input{display:none}.category label{cursor:pointer;padding:.2rem 0;display:inline-flex;text-transform:capitalize;font-size:.9em;border-bottom:2px solid transparent;-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.category label svg{padding-right:.2rem}.category label div.category_name{margin:auto 0}.category input[type=checkbox]:checked+label{color:var(--color-categories-item-selected-font);border-bottom:2px solid var(--color-categories-item-border-selected)}#search_logo{grid-area:logo;display:flex;align-items:center;justify-content:center}#search_logo svg{flex:1;width:30px;height:30px;margin:.5rem 0 auto 0}.search_categories{grid-area:categories}.search_box{margin:0;padding:0;grid-area:search;display:inline-flex;flex-direction:row;white-space:nowrap}#clear_search{display:block;border-collapse:separate;box-sizing:border-box;width:1.8em;margin:0;padding:8px 2px;background:none repeat scroll 0 0 var(--color-search-background);border-top:1px solid var(--color-search-border);border-bottom:1px solid var(--color-search-border);border-right:none;border-left:none;border-radius:0;outline:0;color:var(--color-search-font);font-size:16px;z-index:10000}#clear_search:hover{color:var(--color-search-background-hover)}#clear_search.empty *{display:none}#q,#send_search{display:block!important;border-collapse:separate;box-sizing:border-box;margin:0;padding:10px;background:none repeat scroll 0 0 var(--color-search-background);border:1px solid var(--color-search-border);border-radius:0;outline:0;color:var(--color-search-font);font-size:16px;z-index:2}#q{outline:medium none;padding-left:12px;padding-right:0!important;border-right:none;width:40rem;border-radius:10px 0 0 10px}#q::-ms-clear,#q::-webkit-search-cancel-button{display:none}#send_search{border-left:none;border-radius:0 10px 10px 0}#send_search:hover{cursor:pointer;background-color:var(--color-search-background-hover);color:var(--color-search-background)}.no-js #clear_search,.no-js #send_search{width:auto!important;border-left:1px solid var(--color-search-border);padding:10px}.search_filters{margin:.6rem 0 0 10.6rem}.search_filters select{background-color:inherit}.search_filters select:focus,.search_filters select:hover{color:var(--color-base-font)}@media screen and (max-width:80em){#search_header{padding:1.5em .5rem 0 .5rem;column-gap:.5rem}.search_filters{margin:.6rem 0 0 3.5rem}#categories{font-size:90%;clear:both}#categories .checkbox_container{margin:auto;margin-top:2px}html.touch #main_index #categories_container,html.touch #main_results #categories_container{width:1000px;width:-moz-max-content;width:-webkit-max-content;width:max-content}html.touch #main_index #categories_container .category,html.touch #main_results #categories_container .category{display:inline-block;width:auto}html.touch #main_index #categories,html.touch #main_results #categories{width:100%;text-align:left;overflow-x:scroll;overflow-y:hidden;-webkit-overflow-scrolling:touch}}@media screen and (max-width:50em){#search_header{width:100%;margin:0;padding:.1rem 0 0 0;column-gap:0;row-gap:0;grid-template-areas:"logo search" "categories categories"}.search_logo{padding:0}.search_box{width:99%;display:flex;flex-direction:row}#q{width:100%;flex:1}#main_results #q:placeholder-shown~#send_search{margin-right:2.6rem;transition:margin-right .1s}.search_filters{margin:0}.language,.time_range{width:45%}.category{display:block;width:100%;margin:0}.category label{padding:.8rem!important;margin:0!important}.category label svg{display:none}}@media screen and (max-width:20rem){#search_header{grid-template-areas:"search search" "categories categories"}#search_logo{display:none}}#categories{-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}#categories::-webkit-scrollbar{width:0;height:0}#categories_container{position:relative}.ion-icon{display:inline-block;vertical-align:bottom;line-height:1;text-decoration:inherit}.ion-icon-small{width:1rem;height:1rem;display:inline-block;vertical-align:bottom;line-height:1;text-decoration:inherit}.ion-icon-big{width:1.5rem;height:1.5rem;display:inline-block;vertical-align:bottom;line-height:1;text-decoration:inherit}html{font-family:sans-serif;font-size:.9em;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%;color:var(--color-base-font);background-color:var(--color-base-background);padding:0;margin:0}body,main{padding:0;margin:0}body{display:flex;flex-direction:column;height:100vh;margin:0}main{width:100%;margin-bottom:2rem;flex:1}#main_about,#main_preferences,#main_stats{margin:2em auto;width:85em}footer{clear:both;min-height:4rem;padding:1rem 0;width:100%;text-align:center;background-color:var(--color-footer-background);border-top:1px solid var(--color-footer-border);overflow:hidden}footer p{font-size:.9em}#main_preferences h1,#main_stats h1{background:url(../img/searxng.png) no-repeat;background-size:contain;min-height:40px;margin:0 auto}#main_preferences h1 span,#main_stats h1 span{visibility:hidden}#results button[type=submit],input[type=submit]{padding:.7rem;display:inline-block;background:var(--color-btn-background);color:var(--color-btn-font);border-radius:10px;border:0;cursor:pointer}a{text-decoration:none;color:var(--color-url-font)}a:visited{color:var(--color-url-visited-font)}a:visited .highlight{color:var(--color-url-visited-font)}article[data-vim-selected]{background:var(--color-result-vim-selected);border-left:.2rem solid var(--color-result-vim-arrow);border-radius:0 10px 10px 0}article.result-images[data-vim-selected]{background:var(--color-result-vim-arrow);border:none;border-radius:10px}article.result-images[data-vim-selected] .image_thumbnail{filter:opacity(60%)}article[data-vim-selected].category-files,article[data-vim-selected].category-map,article[data-vim-selected].category-music,article[data-vim-selected].category-news,article[data-vim-selected].category-social,article[data-vim-selected].category-videos{border:1px solid var(--color-result-vim-arrow);border-radius:10px}.result{margin:.125rem 0;padding:1rem;border-left:.2rem solid transparent}.result h3{font-size:1.2rem;word-wrap:break-word;margin:.4rem 0 .4rem 0;padding:0}.result h3 a{color:var(--color-result-link-font);font-weight:400;font-size:1.1em}.result h3 a:visited{color:var(--color-result-link-visited-font)}.result h3 a:focus,.result h3 a:hover{text-decoration:underline;border:none;outline:0}.result .cache_link,.result .proxyfied_link{font-size:.9em!important}.result .altlink,.result .content,.result .stat{font-size:.9em;margin:0;padding:0;max-width:54em;word-wrap:break-word;line-height:1.24}.result .altlink .highlight,.result .content .highlight,.result .stat .highlight{color:var(--color-result-description-highlight-font);background:inherit;font-weight:700}.result .codelines .highlight{color:inherit;background:inherit;font-weight:400}.result .url_wrapper{display:flex;font-size:1rem;color:var(--color-result-url-font);flex-wrap:nowrap;overflow:hidden;flex-direction:row;margin:0;padding:0}.result .url_wrapper .url_o1{white-space:nowrap;flex-shrink:1}.result .url_wrapper .url_o1::after{content:" ";width:1ch;display:inline-block}.result .url_wrapper .url_o2{overflow:hidden;white-space:nowrap;flex-basis:content;flex-grow:0;flex-shrink:1;text-align:right}.result .url_wrapper .url_o2 .url_i2{float:right}.result .published_date{font-size:.8em;color:var(--color-result-publishdate-font)}.result img.thumbnail{float:left;padding:.6rem 1rem 0 0;width:20rem}.result img.image{float:left;padding:.6rem 1rem 0 0;width:7rem;max-height:7rem;object-fit:scale-down;object-position:right top}.result .break{clear:both}.category-files,.category-map,.category-music,.category-news,.category-social,.category-videos{border:1px solid var(--color-result-border);margin:1rem 0;border-radius:10px}.category-social .image{width:auto!important;min-width:48px;min-height:48px;padding:0 5px 25px 0!important}.result-videos .content{overflow:hidden}.engines{float:right;color:var(--color-result-engines-font)}.engines span{font-size:smaller;margin:0 .5em 0 0}.small_font{font-size:.8em}.highlight{color:var(--color-result-link-font-highlight);background:inherit}.empty_element{font-style:italic}.result-images{display:inline-block;margin:0;padding:0;position:relative;max-height:200px;border:none!important}.result-images img{float:inherit;margin:.125rem;padding:0;border:none;max-height:200px;background:var(--color-result-image-background)}.result-images span.title{display:none;color:var(--color-result-image-span-font)}.result-images:hover span.title{display:block;position:absolute;bottom:0;right:0;padding:4px;margin:0 0 4px 4px;background-color:var(--color-result-image-span-background-hover);font-size:.7em}.result-map img.image{float:right!important;height:100px!important;width:auto!important}.result-map table{font-size:.9em;width:auto;border-collapse:separate;border-spacing:0 .35rem}.result-map table th{font-weight:inherit;width:17rem;vertical-align:top;text-align:left}.result-map table td{vertical-align:top;text-align:left}.hidden{display:none!important}#results{margin:1rem 2rem 0 10rem;display:grid;grid-template-columns:45rem 25rem;grid-template-rows:min-content min-content 1fr min-content;gap:0 5rem;grid-template-areas:"corrections sidebar" "answers sidebar" "urls sidebar" "pagination sidebar"}#results #sidebar :first-child,#results #urls :first-child{margin-top:0}#urls{padding:0;grid-area:urls}#suggestions .wrapper{display:flex;flex-flow:row wrap;justify-content:flex-end}#suggestions .wrapper form{display:inline-block;flex:1 1 50%}#infoboxes input,#suggestions input{padding:0;margin:3px;font-size:.9em;display:inline-block;background:0 0;color:var(--color-result-search-url-font);cursor:pointer}#infoboxes .infobox .url a,#infoboxes input[type=submit],#suggestions .infobox .url a,#suggestions input[type=submit]{color:var(--color-result-link-font);text-decoration:none;font-size:.9rem}#infoboxes .infobox .url a:hover,#infoboxes input[type=submit]:hover,#suggestions .infobox .url a:hover,#suggestions input[type=submit]:hover{text-decoration:underline}#corrections{grid-area:corrections;display:flex;flex-flow:row wrap;margin:0 0 1em 0}#corrections h4,#corrections input[type=submit]{display:inline-block;padding:.5rem;margin:.5rem}#corrections input[type=submit]{font-size:.8rem;border-radius:5px}#apis .title,#search_url .title,#suggestions .title{margin:2em 0 .5em 0;color:var(--color-base-font)}#answers{grid-area:answers;border:1px solid var(--color-answer-border);background:var(--color-answer-background);padding:1rem;margin:1rem 0;margin-top:0;color:var(--color-answer-font);border-radius:10px}#answers h4{display:none}#infoboxes form{min-width:210px}#sidebar{grid-area:sidebar;word-wrap:break-word;color:var(--color-sidebar-font)}#sidebar .infobox{margin:10px 0 10px;border:1px solid var(--color-sidebar-border);padding:1rem;font-size:.9em;border-radius:10px}#sidebar .infobox h2{margin:0 0 .5em 0}#sidebar .infobox img{max-width:100%;max-height:12em;display:block;margin:0 auto;padding:0}#sidebar .infobox dl{margin:.5em 0}#sidebar .infobox dt{display:inline;margin:.5em .25em .5em 0;padding:0;font-weight:700}#sidebar .infobox dd{display:inline;margin:.5em 0;padding:0}#sidebar .infobox input{font-size:1em}#sidebar .infobox br{clear:both}#sidebar .infobox .attributes,#sidebar .infobox .urls{clear:both}#search_url{margin-top:8px}#search_url div.selectable_url pre{width:200em}#linkto_preferences{position:absolute;right:10px;top:2.2rem;padding:0;border:0;display:block;font-size:1.2em;color:var(--color-search-font)}#linkto_preferences a:active *,#linkto_preferences a:hover *,#linkto_preferences a:link *,#linkto_preferences a:visited *{color:var(--color-search-font)}#pagination{grid-area:pagination}#pagination br{clear:both}#apis{margin-top:8px;clear:both}#backToTop{border:1px solid var(--color-backtotop-border);margin:0;padding:0;font-size:1em;background:var(--color-backtotop-background);position:fixed;bottom:8rem;left:56.3rem;transition:opacity .5s;opacity:0;border-radius:10px}#backToTop a{display:block;margin:0;padding:.7em}#backToTop a,#backToTop a:active,#backToTop a:hover,#backToTop a:visited{color:var(--color-backtotop-font)}#results.scrolling #backToTop{opacity:1}@media screen and (max-width:80em){#main_about,#main_preferences,#main_stats{margin:2rem .5rem;width:auto}#infoboxes{position:inherit;max-width:inherit}#infoboxes .infobox{clear:both}#infoboxes .infobox img{float:left;max-width:10em;margin:.5em .5em .5em 0}#sidebar{margin-bottom:.125rem;padding:0;float:none;border:none;width:auto}#sidebar input{border:0}#apis{display:none}#search_url{display:none}.result .thumbnail{max-width:98%}.result .url span.url{display:block;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;width:100%}.result .engines{float:right;padding:0 0 3px 0}.result-images{border-bottom:none!important}.image_result{max-width:98%}.image_result img{max-width:98%}#backToTop{display:none}#pagination{margin:2rem 0 0 0!important}#main_results div#results{margin:1rem auto 0 auto;justify-content:center;display:grid;grid-template-columns:45rem;grid-template-rows:min-content min-content min-content 1fr min-content min-content;gap:0;grid-template-areas:"corrections" "answers" "sidebar" "urls" "pagination"}}#main_results div#results.only_template_images{margin:1rem .5rem 0 .5rem;display:grid;grid-template-columns:100%;grid-template-rows:min-content min-content 1fr min-content min-content;gap:0;grid-template-areas:"corrections" "urls" "answers" "sidebar" "pagination"}#main_results div#results.only_template_images #urls{width:inherit;margin:0}#main_results div#results.only_template_images #backToTop{left:auto;right:1rem}#main_results div#results.only_template_images #pagination{margin-right:4rem}@media screen and (max-width:50em){#main_results div#results{grid-template-columns:100%;margin:2rem .5rem 0 .5rem}#linkto_preferences{top:.8rem;right:.7rem}#main_index #linkto_preferences{top:.5rem;right:.5rem}#results{margin:0;padding:0}#pagination{margin:2rem 1rem 0 1rem!important}article[data-vim-selected]{border:1px solid var(--color-result-vim-arrow);border-radius:10px}.result{border:1px solid var(--color-result-border);margin:1rem 0;border-radius:10px}.result-images{margin:0;padding:0;border:none}}@media screen and (max-width:35em){.result-videos img.thumbnail{float:none!important}.result-videos .content{overflow:inherit}}pre code{white-space:pre-wrap}/*# sourceMappingURL=searxng.min.css.map */
\ No newline at end of file diff --git a/searx/static/themes/simple/css/searxng.min.css.map b/searx/static/themes/simple/css/searxng.min.css.map index 68421b245..977f6a105 100644 --- a/searx/static/themes/simple/css/searxng.min.css.map +++ b/searx/static/themes/simple/css/searxng.min.css.map @@ -1 +1 @@ -{"version":3,"sources":["../../__common__/less/new_issue.less","../../__common__/less/stats.less","../src/generated/pygments.less","../../__common__/less/result_templates.less","../node_modules/normalize.css/normalize.css","../src/generated/ion.less","../src/less/definitions.less","../src/less/code.less","../src/less/toolkit.less","../src/less/mixins.less","../src/less/autocomplete.less","../src/less/detail.less","../src/less/index.less","../src/less/preferences.less","../src/less/search.less","../src/less/style.less"],"names":[],"mappings":"AAAA,qBACI,QAAA,MACA,QAAA,IAAA,KACA,YAAA,WACA,UAAA,KACA,MAAA,KACA,iBAAA,kBACA,OAAA,QACA,cAAA,eACA,WAAA,YAAA,EAAA,EAAA,EAAA,EAGgB,2BAChB,iBAAA,QAGJ,YACI,QAAA,KCfA,2BACI,MAAA,MAGJ,4BACI,MAAA,KACA,WAAA,MASJ,kCACI,WAAA,MAGC,iCACD,UAAA,OACA,OAAA,KACA,OAAA,IAAA,MAAA,KAKJ,0BADqB,sDADA,sDAGjB,MAAA,MAGmB,qDAEnB,aAAA,IAAA,MAAA,KACA,QAAA,EAAA,KAAA,EAAA,EACA,OAAA,EAAA,EAAA,EAAA,MAIR,iBACI,MAAA,IACA,QAAA,aACA,WAAA,MACA,cAAA,MAGJ,iBACI,MAAO,kBACP,QAAA,aAGJ,eACI,OAAA,IAAA,MAAA,QACA,OAAA,IAAA,EAGJ,kBACI,OAAA,IAAA,MAAA,QACA,OAAA,IAAA,EACA,MAAA,KAGJ,kBACI,OAAA,IAAA,MAAA,QACA,OAAA,IAAA,EACA,MAAA,KAGJ,MACI,MAAA,EACA,OAAA,ECxEH,MD+EO,MAAA,GC/EP,MD+EO,MAAA,GC/EP,MD+EO,MAAA,GC/EP,MD+EO,MAAA,GC/EP,MD+EO,MAAA,GC/EP,MD+EO,MAAA,GC/EP,MD+EO,MAAA,GC/EP,MD+EO,MAAA,GC/EP,MD+EO,MAAA,GC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,QD+EO,MAAA,KE/ER,aACI,OAAA,MACA,MAAA,KACA,OAAA,KAAA,8ECOJ,KACE,YAAa,KACb,yBAAqC,KAUvC,KACE,OAAQ,EAOV,K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"}
\ No newline at end of file +{"version":3,"sources":["../../__common__/less/new_issue.less","../../__common__/less/stats.less","../src/generated/pygments.less","../../__common__/less/result_templates.less","../node_modules/normalize.css/normalize.css","../src/less/definitions.less","../src/less/code.less","../src/less/toolkit.less","../src/less/mixins.less","../src/less/autocomplete.less","../src/less/detail.less","../src/less/animations.less","../src/less/index.less","../src/less/preferences.less","../src/less/search.less","../src/less/style.less"],"names":[],"mappings":"AAAA,qBACI,QAAA,MACA,QAAA,IAAA,KACA,YAAA,WACA,UAAA,KACA,MAAA,KACA,iBAAA,kBACA,OAAA,QACA,cAAA,eACA,WAAA,YAAA,EAAA,EAAA,EAAA,EAGgB,2BAChB,iBAAA,QAGJ,YACI,QAAA,KCfA,2BACI,MAAA,MAGJ,4BACI,MAAA,KACA,WAAA,MASJ,kCACI,WAAA,MAGC,iCACD,UAAA,OACA,OAAA,KACA,OAAA,IAAA,MAAA,KAKJ,0BADqB,sDADA,sDAGjB,MAAA,MAGmB,qDAEnB,aAAA,IAAA,MAAA,KACA,QAAA,EAAA,KAAA,EAAA,EACA,OAAA,EAAA,EAAA,EAAA,MAIR,iBACI,MAAA,IACA,QAAA,aACA,WAAA,MACA,cAAA,MAGJ,iBACI,MAAO,kBACP,QAAA,aAGJ,eACI,OAAA,IAAA,MAAA,QACA,OAAA,IAAA,EAGJ,kBACI,OAAA,IAAA,MAAA,QACA,OAAA,IAAA,EACA,MAAA,KAGJ,kBACI,OAAA,IAAA,MAAA,QACA,OAAA,IAAA,EACA,MAAA,KAGJ,MACI,MAAA,EACA,OAAA,ECxEH,MD+EO,MAAA,GC/EP,MD+EO,MAAA,GC/EP,MD+EO,MAAA,GC/EP,MD+EO,MAAA,GC/EP,MD+EO,MAAA,GC/EP,MD+EO,MAAA,GC/EP,MD+EO,MAAA,GC/EP,MD+EO,MAAA,GC/EP,MD+EO,MAAA,GC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,QD+EO,MAAA,KE/ER,aACI,OAAA,MACA,MAAA,KACA,OAAA,KAAA,8ECOJ,KACE,YAAa,KACb,yBAAqC,KAUvC,KACE,OAAQ,EAOV,KACE,QAAS,MAQX,GACE,UAAW,IACX,OAAQ,MAAO,EAWjB,GACE,WAAY,YACZ,OAAmB,EACnB,SAA6B,QAQ/B,IACE,YAAa,UAAW,UACxB,UAAsB,IAUxB,EACE,iBAAkB,YAQpB,YACE,cAAe,KACf,gBAA4B,UAC5B,gBAAoC,UAAU,OAOhD,EACA,OACE,YAAa,OAQf,KACA,IACA,KACE,YAAa,UAAW,UACxB,UAAsB,IAOxB,MACE,UAAW,IAQb,IACA,IACE,UAAW,IACX,YAAa,EACb,SAAU,SACV,eAAgB,SAGlB,IACE,OAAQ,OAGV,IACE,IAAK,MAUP,IACE,aAAc,KAWhB,OACA,MACA,SACA,OACA,SACE,YAAa,QACb,UAAsB,KACtB,YAAgC,KAChC,OAAmC,EAQrC,OACA,MACE,SAAqB,QAQvB,OACA,OACE,eAA2B,KAQ7B,cACA,aACA,cAHA,OAIE,mBAAoB,OAQtB,gCACA,+BACA,gCAHA,yBAIE,aAAc,KACd,QAAS,EAQX,6BACA,4BACA,6BAHA,sBAIE,QAAS,IAAI,OAAO,WAOtB,SACE,QAAS,MAAO,MAAO,OAUzB,OACE,WAAY,WACZ,MAAkB,QAClB,QAA4B,MAC5B,UAAsC,KACtC,QAA4C,EAC5C,YAAwD,OAO1D,SACE,eAAgB,SAOlB,SACE,SAAU,KAQZ,gBACA,aACE,WAAY,WACZ,QAAoB,EAOtB,yCACA,yCACE,OAAQ,KAQV,cACE,mBAAoB,UACpB,eAA2B,KAO7B,yCACE,mBAAoB,KAQtB,6BACE,mBAAoB,OACpB,KAAiB,QAUnB,QACE,QAAS,MAOX,QACE,QAAS,UAUX,SACE,QAAS,KAOX,SACE,QAAS,KCpVX,MAEE,kBAAA,KACA,sBAAA,GAAA,GAAA,GACA,wBAAA,KACA,iBAAA,QACA,yBAAA,KAEA,0BAAA,QACA,sBAAA,KAEA,0BAAA,QACA,sBAAA,KAEA,uBAAA,KACA,qBAAA,KAEA,uBAAA,KACA,yBAAA,KACA,6BAAA,KAEA,uBAAA,QACA,iBAAA,KAEA,sBAAA,KACA,0BAAA,KACA,oBAAA,KACA,gCAAA,QAEA,cAAA,QACA,yBAAA,QACA,gBAAA,QACA,2BAAA,QACA,gBAAA,QACA,2BAAA,QAEA,sCAAA,QACA,wCAAA,QAEA,0BAAA,KACA,4BAAA,KACA,gCAAA,KACA,sCAAA,QAEA,sBAAA,KACA,oBAAA,KACA,0BAAA,QAEA,sBAAA,KACA,wBAAA,KACA,4BAAA,QACA,yBAAA,QACA,0CAAA,KACA,yBAAA,QACA,mCAAA,QACA,iCAAA,KACA,gCAAA,KACA,4BAAA,KACA,iCAAA,KACA,+BAAA,KAEA,2CAAA,mBACA,+BAAA,KACA,gCAAA,QAEA,0BAAA,QACA,yCAAA,QAEA,2BAAA,KACA,iCAAA,UACA,iCAAA,KACA,yBAAA,KACA,2BAAA,KACA,oCAAA,yBACA,wCAAA,iBAEA,2BAAA,KACA,iCAAA,KACA,yBAAA,KACA,+BAAA,KACA,8BAAA,KACA,kCAAA,KACA,kCAAA,KACA,oCAAA,KACA,kCAAA,QACA,8BAAA,KACA,wCAAA,KACA,gCAAA,KACA,0CAAA,KACA,gDAAA,QACA,kDAAA,KACA,0CAAA,KACA,sCAAA,KACA,sCAAA,QACA,sCAAA,KACA,0CAAA,KACA,8BAAA,mBACA,kCAAA,uBAwGkC,mCAC7B,iBApGL,kBAAA,KACA,sBAAA,IAAA,IAAA,IACA,wBAAA,KACA,iBAAA,KACA,yBAAA,KAEA,0BAAA,QACA,sBAAA,KAEA,0BAAA,QACA,sBAAA,KAEA,uBAAA,KACA,qBAAA,KAEA,uBAAA,KACA,yBAAA,KACA,6BAAA,QAEA,uBAAA,KACA,iBAAA,KAEA,sBAAA,KACA,0BAAA,KACA,oBAAA,KACA,gCAAA,KAEA,cAAA,QACA,yBAAA,QACA,gBAAA,QACA,2BAAA,QACA,gBAAA,QACA,2BAAA,QAEA,sCAAA,KACA,wCAAA,KAEA,0BAAA,KACA,4BAAA,KACA,gCAAA,KACA,sCAAA,QAEA,sBAAA,KACA,oBAAA,KACA,0BAAA,QAEA,sBAAA,KACA,wBAAA,KACA,4BAAA,QACA,yBAAA,KACA,0CAAA,KACA,yBAAA,KACA,mCAAA,KACA,iCAAA,KACA,gCAAA,KACA,4BAAA,KACA,iCAAA,KACA,+BAAA,KAEA,2BAAA,KACA,iCAAA,UACA,iCAAA,KACA,yBAAA,KACA,2BAAA,KACA,oCAAA,yBACA,wCAAA,iBAEA,2CAAA,mBACA,+BAAA,KACA,gCAAA,KAEA,0BAAA,QACA,yCAAA,QAEA,2BAAA,KACA,iCAAA,KACA,yBAAA,KACA,+BAAA,KACA,8BAAA,KACA,kCAAA,KACA,kCAAA,KACA,oCAAA,KACA,kCAAA,QACA,8BAAA,KACA,wCAAA,KACA,gCAAA,KACA,0CAAA,QACA,gDAAA,KACA,kDAAA,KACA,0CAAA,KACA,sCAAA,KACA,sCAAA,KACA,sCAAA,KACA,0CAAA,KACA,8BAAA,yBACA,kCAAA,kBAWG,iBA1GH,kBAAA,KACA,sBAAA,IAAA,IAAA,IACA,wBAAA,KACA,iBAAA,KACA,yBAAA,KAEA,0BAAA,QACA,sBAAA,KAEA,0BAAA,QACA,sBAAA,KAEA,uBAAA,KACA,qBAAA,KAEA,uBAAA,KACA,yBAAA,KACA,6BAAA,QAEA,uBAAA,KACA,iBAAA,KAEA,sBAAA,KACA,0BAAA,KACA,oBAAA,KACA,gCAAA,KAEA,cAAA,QACA,yBAAA,QACA,gBAAA,QACA,2BAAA,QACA,gBAAA,QACA,2BAAA,QAEA,sCAAA,KACA,wCAAA,KAEA,0BAAA,KACA,4BAAA,KACA,gCAAA,KACA,sCAAA,QAEA,sBAAA,KACA,oBAAA,KACA,0BAAA,QAEA,sBAAA,KACA,wBAAA,KACA,4BAAA,QACA,yBAAA,KACA,0CAAA,KACA,yBAAA,KACA,mCAAA,KACA,iCAAA,KACA,gCAAA,KACA,4BAAA,KACA,iCAAA,KACA,+BAAA,KAEA,2BAAA,KACA,iCAAA,UACA,iCAAA,KACA,yBAAA,KACA,2BAAA,KACA,oCAAA,yBACA,wCAAA,iBAEA,2CAAA,mBACA,+BAAA,KACA,gCAAA,KAEA,0BAAA,QACA,yCAAA,QAEA,2BAAA,KACA,iCAAA,KACA,yBAAA,KACA,+BAAA,KACA,8BAAA,KACA,kCAAA,KACA,kCAAA,KACA,oCAAA,KACA,kCAAA,QACA,8BAAA,KACA,wCAAA,KACA,gCAAA,KACA,0CAAA,QACA,gDAAA,KACA,kDAAA,KACA,0CAAA,KACA,sCAAA,KACA,sCAAA,KACA,sCAAA,KACA,0CAAA,KACA,8BAAA,yBACA,kCAAA,iBC5Mc,oBACd,SAAA,KACA,iBAAA,QACA,MAAA,QACA,OAAA,QJCc,yBACZ,sBAAA,KACA,oBAAA,KACA,mBAAA,KACA,iBAAA,KACA,gBAAA,KACA,YAAA,KACA,OAAA,QASA,aAAA,IACA,WAAA,MARC,oCACG,WAAA,IAEH,yCACG,WAAA,IAOQ,oBAAM,YAAA,KACK,mCAAU,MAAA,QAAgB,iBAAA,YAA+B,aAAA,IAAmB,cAAA,IACnF,6BAAW,MAAA,QAAgB,iBAAA,YAA+B,aAAA,IAAmB,cAAA,IACtE,oCAAW,MAAA,KAAgB,iBAAA,QAA2B,aAAA,IAAmB,cAAA,IACxE,qCAAW,MAAA,KAAgB,iBAAA,QAA2B,aAAA,IAAmB,cAAA,IACrF,qBAAO,iBAAA,KACvB,gBAAkB,WAAA,QACF,mBAAK,MAAA,QAAgB,WAAA,OACrB,qBAAO,OAAA,IAAA,MAAA,IACP,mBAAK,MAAA,MAAgB,YAAA,IACrB,mBAAK,MAAA,KACL,oBAAM,MAAA,QAAgB,WAAA,OACtB,oBAAM,MAAA,QAAgB,WAAA,OACtB,oBAAM,MAAA,QACN,qBAAO,MAAA,QAAgB,WAAA,OACvB,oBAAM,MAAA,QAAgB,WAAA,OACtB,oBAAM,MAAA,QAAgB,WAAA,OACtB,oBAAM,MAAA,QACN,oBAAM,WAAA,OACN,oBAAM,MAAA,IACN,oBAAM,MAAA,KAAgB,YAAA,IACtB,oBAAM,MAAA,QACN,oBAAM,MAAA,KACN,oBAAM,MAAA,KAAgB,YAAA,IACtB,oBAAM,YAAA,IACN,oBAAM,MAAA,OAAgB,YAAA,IACtB,oBAAM,MAAA,KACN,oBAAM,MAAA,MAAgB,YAAA,IACtB,oBAAM,MAAA,MAAgB,YAAA,IACtB,oBAAM,MAAA,MAAgB,YAAA,IACtB,oBAAM,MAAA,MACN,oBAAM,MAAA,MAAgB,YAAA,IACtB,oBAAM,MAAA,QACN,mBAAK,MAAA,KACL,mBAAK,MAAA,QACL,oBAAM,MAAA,QACN,oBAAM,MAAA,MACN,oBAAM,MAAA,KAAgB,YAAA,IACtB,oBAAM,MAAA,KACN,oBAAM,MAAA,KACN,oBAAM,MAAA,KAAgB,YAAA,IACtB,oBAAM,MAAA,QAAgB,YAAA,IACtB,oBAAM,MAAA,KACN,oBAAM,MAAA,QACN,oBAAM,MAAA,KAAgB,YAAA,IACtB,oBAAM,MAAA,MAAgB,YAAA,IACtB,oBAAM,MAAA,QACN,oBAAM,MAAA,KAAgB,YAAA,IACtB,mBAAK,MAAA,KACL,oBAAM,MAAA,KACN,oBAAM,MAAA,KACN,oBAAM,MAAA,KACN,oBAAM,MAAA,KACN,oBAAM,MAAA,KACN,oBAAM,MAAA,QACN,oBAAM,MAAA,QACN,oBAAM,MAAA,QACN,oBAAM,MAAA,QACN,oBAAM,MAAA,QAAgB,WAAA,OACtB,oBAAM,MAAA,QACN,oBAAM,MAAA,KAAgB,YAAA,IACtB,oBAAM,MAAA,QACN,oBAAM,MAAA,KAAgB,YAAA,IACtB,oBAAM,MAAA,MACN,oBAAM,MAAA,KACN,oBAAM,MAAA,QACN,oBAAM,MAAA,QACN,oBAAM,MAAA,MACN,oBAAM,MAAA,KACN,oBAAM,MAAA,QACN,oBAAM,MAAA,QACN,oBAAM,MAAA,QACN,oBAAM,MAAA,QACN,oBAAM,MAAA,KK9FX,yBACT,QAAA,KAGM,sBACN,QAAA,KAGF,QACE,WAAA,OAGF,OACE,MAAA,MAGF,MACE,MAAA,KAGF,WACE,QAAA,eAGF,eACE,gBAAA,KAEA,kBACE,WAAA,IACA,cAAA,IAIJ,QACE,iBAAkB,8BAGpB,SACE,WAAY,gCAGd,SACE,WAAY,gCAGd,OACE,QAAA,aACA,MAAO,gCACP,iBAAkB,sCAClB,WAAA,OACA,YAAA,OACA,eAAA,SACA,UAAA,KACA,QAAA,IAAA,IACA,cAAA,IAIF,IACE,QAAA,IAAA,IACA,OAAA,IACA,UAAA,IACA,MAAO,8BACP,WAAY,oCAId,MACE,MAAA,KAGE,iBACE,cAAA,IAAA,MAAyB,+BAK/B,GACE,QAAA,KAGF,GACE,QAAA,EAAA,IAIC,SACC,WAAA,yCAaD,mBACD,QAAA,MACA,OAAA,IAAA,MAAkB,sCAClB,QAAA,IACA,MAAO,oCACP,OAAA,KACA,SAAA,OACA,OAAA,MACA,YAAA,MC3FA,cAAA,ID8FA,uBAlBA,QAAA,MACA,UAAA,KACA,WAAA,UACA,OAAA,KChEA,oBAAA,IACA,iBAAA,IACA,gBAAA,QACA,YAAA,ID+HF,cA5CE,SAAA,SACA,QAAA,KACA,QAAA,KACA,OAAA,EAAA,EAAA,IAAA,EACA,OAAA,IAAA,MAAkB,mCAClB,WAAA,KClHA,cAAA,KD4JA,MAAO,mBACP,WAAY,8BACZ,aAAc,mBAzCd,qBACE,MAAA,MACA,SAAA,SACA,IAAA,KACA,MAAA,QACA,UAAA,MAIF,iBACA,gBAFA,iBAGE,OAAA,IAAA,EAAA,EAAA,EAGF,oBACE,MAAA,KAGF,iBACE,eAAA,SAEC,uBACC,WAAA,cAIJ,iBACE,QAAA,EAAA,IAAA,EAAA,EAGF,iBACE,WAAA,KACA,cAAA,KAYJ,gBApDE,SAAA,SACA,QAAA,KACA,QAAA,KACA,OAAA,EAAA,EAAA,IAAA,EACA,OAAA,IAAA,MAAkB,mCAClB,WAAA,KClHA,cAAA,KDoKA,MAAO,qBACP,WAAY,gCACZ,aAAc,qBAjDd,uBACE,MAAA,MACA,SAAA,SACA,IAAA,KACA,MAAA,QACA,UAAA,MAIF,mBACA,kBAFA,mBAGE,OAAA,IAAA,EAAA,EAAA,EAGF,sBACE,MAAA,KAGF,mBACE,eAAA,SAEC,yBACC,WAAA,cAIJ,mBACE,QAAA,EAAA,IAAA,EAAA,EAGF,mBACE,WAAA,KACA,cAAA,KAoBJ,cA5DE,SAAA,SACA,QAAA,KACA,QAAA,KACA,OAAA,EAAA,EAAA,IAAA,EACA,OAAA,IAAA,MAAkB,mCAClB,WAAA,KClHA,cAAA,KD4KA,QAAA,MACA,WAAY,uCACZ,SAAA,MACA,IAAA,IACA,KAAA,IACA,OAAA,EAAA,KACA,UAAW,qBACX,QAAA,SA9DA,qBACE,MAAA,MACA,SAAA,SACA,IAAA,KACA,MAAA,QACA,UAAA,MAIF,iBACA,gBAFA,iBAGE,OAAA,IAAA,EAAA,EAAA,EAGF,oBACE,MAAA,KAGF,iBACE,eAAA,SAEC,uBACC,WAAA,cAIJ,iBACE,QAAA,EAAA,IAAA,EAAA,EAGF,iBACE,WAAA,KACA,cAAA,KAgCF,iBACE,WAAA,EAKJ,cACE,OAAA,QAIF,SACE,WAAA,KACA,WAAA,OACA,QAAA,MACA,QAAA,EACA,OAAA,EACA,OAAA,KAIU,kBACV,UAAA,IAGF,MC/KE,QAAA,YACA,QAAA,SACA,QAAA,aACA,QAAA,YACA,QAAA,KD8KA,UAAA,KACA,MAAA,KACA,UAAA,KAEE,QACA,MAAA,EAGO,wBACP,QAAA,KAGA,YACA,MAAA,EACA,QAAA,KACA,OAAA,EAAA,KACA,eAAA,KACA,eAAA,UACA,OAAA,MAAc,uCACd,aAAA,EAAA,EAAA,IAAA,ECvNF,sBAAA,KACA,oBAAA,KACA,mBAAA,KACA,iBAAA,KACA,gBAAA,KACA,YAAA,KDsNE,OAAA,QAGO,kBACP,cAAA,IAAA,MAAyB,6CAGzB,cACA,UAAA,KACA,QAAA,MAAA,EACA,WAAA,WACA,WAAA,IAAA,MAAsB,yCACtB,QAAA,KAIO,yBACP,cAAA,IAAA,MAAyB,6CACzB,WAAY,sCACZ,MAAO,2CACP,eAAA,MAGS,2BACT,QAAA,MAKF,sCACE,QAAA,KAGF,oCACE,SAAA,UACA,WAAA,QACA,cAAA,IAAA,MAAA,YACA,YAAA,IACA,MAAA,QAEC,0CACC,cAAA,IAAA,MAAyB,6CAI7B,oCACE,cAAA,IAAA,MAAyB,6CACzB,WAAY,sCACZ,MAAO,2CAGD,4CACN,QAAA,MAKJ,OACE,OAAA,OACA,OAAA,EAAA,KAAA,EAAA,EACA,QAAA,gBACA,MAAO,yBACP,UAAA,MACA,QAAA,EAGC,aADA,aAEC,OAAA,QAIJ,wHACE,OACE,WAAA,KACA,mBAAA,KACA,gBAAA,KACA,aAAA,EAAA,KAAA,EAAA,EACA,aAAA,YACA,WAAY,2VAAA,UACZ,sBAAuB,kBACvB,gBAAA,KACA,kBAAA,YACA,iBAAkB,uCAClB,QAAA,OAAA,KACA,cAAA,SCpTF,cAAA,IDwTG,aADA,aAEC,iBAAkB,6CAGpB,cACE,iBAAkB,6BAIc,mCAClB,uBACA,uBACd,iBAAkB,kXAIN,uBACd,iBAAkB,kXAKtB,+BACE,gBACE,QAAA,aACA,MAAA,KACA,OAAA,KACA,WAAY,+CACZ,OAAA,IAAA,KACA,SAAA,SACA,cAAA,KAEA,sBACE,QAAA,MACA,MAAA,KACA,OAAA,KACA,SAAA,SACA,IAAA,KACA,OAAA,QACA,cAAA,KACA,WAAA,IAAA,IAAA,KACA,KAAA,KACA,iBAAkB,qDAGf,qCACH,WAAA,OAEU,mDACR,KAAA,KACA,WAAY,wDAOpB,qCACE,UACE,MAAA,KACA,SAAA,SACA,OAAA,KAAA,KAEA,gBACE,MAAA,KACA,OAAA,KACA,OAAA,QACA,SAAA,SACA,IAAA,EACA,KAAA,EACA,WAAY,+CCtYhB,cAAA,KDyYK,uBACC,QAAA,GACA,MAAA,IACA,OAAA,IACA,SAAA,SACA,IAAA,IACA,KAAA,IACA,OAAA,IAAA,MAAkB,2CAClB,WAAA,KACA,aAAA,KACA,WAAA,IACA,QAAA,EACA,UAAW,eAIV,+BACH,WAAA,OAEiB,oDACf,aAAc,2CACd,QAAA,EAKY,gCACd,iBAAA,sBACA,OAAA,QAI+D,iFAC/D,QAAA,IAKgC,mCAC9B,YACJ,MAAA,MAKJ,QACO,eACL,cAAA,IACA,MAAA,IACA,OAAA,IAGF,QACE,OAAA,IAAA,KACA,UAAA,KACA,SAAA,SACA,YAAA,QACA,WAAA,KAAA,MAAwB,mCACxB,aAAA,KAAA,MAA0B,mCAC1B,cAAA,KAAA,MAA2B,mCAC3B,YAAA,KAAA,MAAyB,uCACzB,kBAAmB,cACnB,cAAe,cACf,UAAW,cACX,kBAAA,MAAA,KAAA,SAAA,OACA,UAAA,MAAA,KAAA,SAAA,OAGF,yBACE,GACE,kBAAmB,UACnB,UAAW,UAGb,KACE,kBAAmB,eACnB,UAAW,gBAIf,iBACE,GACE,kBAAmB,UACnB,UAAW,UAGb,KACE,kBAAmB,eACnB,UAAW,gBAKf,gBACE,QAAA,KACA,SAAA,SACA,QAAA,MAAA,KACA,OAAA,EAAA,EAAA,EAAA,KACA,OAAA,IAAA,MAAkB,2CAClB,WAAY,+CACZ,UAAA,KACA,YAAA,IACA,QAAA,QACA,WAAA,KChfA,cAAA,KDsfa,sBADN,yBADA,yBAGP,QAAA,aAIF,mBACE,OAAA,EACA,QAAA,EAAA,QAAA,EAAA,KACA,MAAA,KACA,MAAA,eACA,MAAA,uBACA,MAAA,KACA,eAAA,IACA,UAAA,OACA,YAAA,OACA,QAAA,YAGF,yBACE,MAAA,KACA,QAAA,aACA,SAAA,SACA,QAAA,EAAA,MACA,WAAA,MAGF,wBACE,QAAA,KACA,YAAA,EACA,UAAA,EACA,WAAA,MAGF,0BANE,QAAA,KACA,YAAA,EACA,UAAA,EACA,WAAA,MAMA,WAAY,uBACZ,OAAA,IAAA,MAAuB,oCACvB,QAAA,MAAA,EAGF,0BAdE,QAAA,KACA,YAAA,EACA,UAAA,EACA,WAAA,MAcA,WAAA,IACA,OAAA,IAAA,MAAuB,oCACvB,QAAA,MAAA,EAGF,0BAtBE,QAAA,KACA,YAAA,EACA,UAAA,EACA,WAAA,MAsBA,WAAA,IACA,cAAA,IAAA,OAA+B,oCAC/B,QAAA,EAGF,2BA9BE,QAAA,KACA,YAAA,EACA,UAAA,EACA,WAAA,MA8BA,WAAA,IACA,YAAA,IAAA,MAA4B,oCAC5B,QAAA,MAAA,EACA,MAAA,wGEhkBF,cACE,SAAA,SACA,WAAA,EACA,WAAA,OACA,WAAA,KDOA,cAAA,KCJC,qBACA,oBACA,oBACC,iBAAkB,qCAGnB,oBACC,QAAA,KAGF,iBACE,gBAAA,KACA,OAAA,EACA,QAAA,EAEA,oBACE,OAAA,QACA,QAAA,IAAA,EAAA,IAAA,IAEC,2BACA,2BACA,0BACA,0BACC,iBAAkB,2CAEjB,oCACA,mCACA,mCAFA,oCACA,mCACA,mCAFA,mCACA,kCACA,kCAFA,mCACA,kCACA,kCACC,gBAAA,KAIH,2BACC,OAAA,QAKL,mBACC,QAAA,MACA,iBAAkB,qCAClB,MAAO,+BACP,OAAA,IAAA,MAAkB,iCAClB,WAAA,MACA,WAAA,KACA,QAAA,IAEC,yBACC,QAAA,KAKgC,mCACpC,cACE,OAAA,EAGiB,oBACjB,cAAA,IAAA,MAAyB,+BACzB,WAAA,MCrEoC,8DACtC,MAAA,4BAG4D,yEAC5D,KAAA,mBACA,MAAA,QAGoB,8BACpB,QAAA,KAGkE,4EAClE,QAAA,KACA,eAAA,OACA,SAAA,MACA,KAAA,MACA,MAAA,EACA,IAAA,QACA,WAAA,IAAA,KAAA,QAAA,GACA,OAAA,EACA,WAAY,sCACZ,OAAA,IAAA,MAAkB,sCAClB,QAAA,MACA,QAAA,KAAA,KAAA,KAAA,KAEC,mGACC,QAAA,MACA,KAAA,EACA,WAAA,KACA,MAAA,KACA,OAAA,KACA,gBAAA,KAEA,uGACE,QAAA,EACA,OAAA,EACA,OAAA,KACA,WAAA,QACA,MAAA,QACA,UAAA,KACA,WAAA,QACA,WAAY,2BACZ,WAAA,QAIJ,kGACE,MAAO,gCACP,WAAA,MACA,WAAA,MAEA,qGACE,WAAA,IAAA,MAAsB,8BACtB,cAAA,KAGF,qGACE,OAAA,KACA,SAAA,OACA,cAAA,SACA,UAAA,MAGF,oGACE,MAAO,sCACP,UAAA,MAEA,yGACE,QAAA,aACA,MAAA,MAMJ,oGAFA,qGACA,oGAEE,WAAA,KAGD,mHACC,OAAA,KACA,SAAA,OACA,cAAA,SAGD,+GACC,YAAA,OACA,WAAA,OACA,cAAA,SAGc,yHACJ,qHACV,SAAA,SACA,SAAA,kBACA,WAAY,sCACZ,cAAA,kBAGF,oGAGC,2GADA,0GADA,4GAGC,MAAO,gCAGR,0GACC,gBAAA,UAIH,kGACC,IAAA,KACA,KAAA,KACA,QAAA,MAGD,qGACC,IAAA,KACA,MAAA,KAEA,QAAA,MAAA,MAAA,MAAA,MAGD,iGACC,IAAA,KACA,MAAA,KACA,QAAA,MAGD,kGACA,iGACA,qGACC,cAAA,IACA,QAAA,MACA,MAAA,OACA,OAAA,OACA,SAAA,SACA,OAAQ,aACR,QAAA,QAEA,uGAAA,sGAAA,0GACE,QAAA,MACA,MAAA,OACA,OAAA,OACA,WAAA,OAME,8GAAA,kHAEF,eAAA,IAIH,kGAGoB,yGADA,wGADA,0GAOpB,iGAGmB,wGADA,uGADA,yGALnB,qGAGuB,4GADA,2GADA,6GAOtB,MAAO,gCACP,WAAY,sCACZ,OAAA,IAAA,MAAkB,gCAGC,wGACA,wGAGD,uGACA,uGAHI,2GACA,2GAGtB,OAAQ,aAGV,oFACE,SAAA,SACA,IAAA,KACA,MAAA,IACA,WAAA,KAAA,MAAwB,yCACxB,aAAA,KAAA,MAA0B,yCAC1B,cAAA,KAAA,MAA2B,yCAC3B,YAAA,KAAA,MAAyB,6CAIiD,sFAC5E,IAAA,EAEuB,iHACrB,WAAY,oBAIuB,mCAC+B,4EAClE,IAAA,EACA,KAAA,EAEC,mGACC,QAAA,KACA,eAAA,OACA,gBAAA,OAEA,uGACE,MAAA,KACA,WAAY,oBAIf,iGACC,MAAA,MAKgC,mCACgC,4EAClE,IAAA,EACA,KAAA,EACA,QAAA,KAEuB,uGACrB,MAAA,KACA,WAAY,oBACZ,OAAA,EAGsB,yGACtB,MAAA,QACA,aAAA,MChPN,cACE,eAAA,YACA,mBAAA,KAEA,uBACE,GACE,QAAA,EAGF,IACE,QAAA,GACA,UAAW,qBAAsB,aCXvC,YACE,WAAA,KAEA,gCACE,MAAA,OAIJ,OACE,WAAA,OAEA,cACE,WAAgB,wBAAA,UAChB,WAAA,KACA,OAAA,KAAA,KACA,oBAAA,OACA,gBAAA,QAGF,UACE,UAAA,IACA,WAAA,OAGF,eACA,sBACE,OAAA,EAAA,KACA,WAAA,QACA,OAAA,QACA,QAAA,EACA,QAAA,MAGF,uBACE,QAAA,MACA,OAAA,IAAA,EAGQ,uBACR,QAAA,IAAA,KACA,cAAA,kBAImC,mCAEnC,aACE,UAAA,IAIJ,YACE,WAAA,KAIkC,mCACpC,YACE,WAAA,GC1DoB,2BACA,2BACtB,WAAA,eACA,OAAA,KAIA,uBACE,MAAA,KAGF,2BACE,OAAA,IACA,OAAA,KAGF,yBACE,OAAA,EACA,QAAA,IAAA,EAAA,EAAA,EACA,QAAA,MACA,MAAA,KACA,MAAA,MAGF,yBACE,OAAA,EACA,QAAA,EACA,MAAA,KACA,MAAA,KAGK,0CADL,gCAEE,UAAA,kBACA,OAAA,EAAA,KAAA,EAAA,EAGF,gCACE,MAAA,MAGG,0CACH,MAAA,SACA,MAAO,qCACP,OAAA,KACA,WAAA,KAAA,OAAA,OAAA,EAAA,EAAmC,uCACnC,QAAA,MAAA,MACA,OAAA,KLzBJ,cAAA,IK6BK,gDADA,gDAEC,iBAAkB,6CAKjB,qCADC,sCAEJ,QAAA,EACA,WAAA,EAAA,EAAA,IAAA,IAAwB,4BAI5B,+BACE,OAAA,EACA,QAAA,IAAA,EAAA,EAAA,EACA,MAAA,KACA,MAAA,IACA,MAAO,8CACP,UAAA,IAGF,wBACE,gBAAA,SAGI,2BACJ,WAAA,OAGG,gCACH,MAAA,KAGA,mCADA,mCAEE,WAAA,KACA,YAAA,UACA,UAAA,KACA,QAAA,KACA,eAAA,IAGA,+CACA,WAAA,SACA,MAAA,MACA,cAAA,KAGA,8CACA,WAAA,UAI6B,4DADA,4DAE7B,iBAAkB,+BAItB,4BACE,aAAA,MAEA,kCACE,OAAA,IAAA,MAAA,YACA,QAAA,MAAA,ML3FJ,cAAA,IKgGyC,+DACvC,OAAA,IAAA,MAAkB,6CAGpB,wBACA,4BACE,WAAA,KAGF,oCACE,WAAA,KAAA,OAAA,OAAA,EAAA,EAAmC,4BACnC,MAAO,sBACP,OAAA,EAAA,KLpHF,cAAA,KKuHE,OAAA,QACA,QAAA,aACA,OAAA,IAAA,IACA,QAAA,KAEA,sCACE,MAAO,kCAGR,oDACC,eAAA,UAKF,yCACE,MAAA,KAKF,0CACE,WAAA,OACA,KAAM,8BACN,UAAA,MAEA,8DACE,WAAA,MAM+B,mCACrC,kBACE,MAAA,KAGF,gBACE,KAAA,gBCvKJ,QACE,QAAA,EACA,OAAA,EAGF,eACE,QAAA,MAAA,IAAA,EAAA,KACA,OAAA,EACA,WAAY,+BACZ,cAAA,IAAA,MAAyB,2BACzB,QAAA,KACA,WAAA,OACA,QAAA,KACA,sBAAA,KAAA,IACA,oBAAA,cAAA,oBAKF,UACE,QAAA,aACA,SAAA,SACA,aAAA,KACA,QAAA,EAEA,gBACE,QAAA,KAGF,gBAKE,OAAA,QACA,QAAA,MAAA,EACA,QAAA,YACA,eAAA,WACA,UAAA,KACA,cAAA,IAAA,MAAA,YNjBF,sBAAA,KACA,oBAAA,KACA,mBAAA,KACA,iBAAA,KACA,gBAAA,KACA,YAAA,KMGE,oBACE,cAAA,MAWC,kCACD,OAAA,KAAA,EAI2B,6CAC7B,MAAO,2CACP,cAAA,IAAA,MAAyB,6CAI7B,aACE,UAAA,KACA,QAAA,KACA,YAAA,OACA,gBAAA,OAEA,iBACE,KAAA,EACA,MAAA,KACA,OAAA,KACA,OAAA,MAAA,EAAA,KAAA,EAIJ,mBACE,UAAA,WAGF,YACE,OAAA,EACA,QAAA,EACA,UAAA,OACA,QAAA,YACA,eAAA,IACA,YAAA,OAGF,cACE,QAAA,MACA,gBAAA,SACA,WAAA,WACA,MAAA,MACA,OAAA,EACA,QAAA,IAAA,IACA,WAAA,KAAA,OAAA,OAAA,EAAA,EAAmC,+BACnC,WAAA,IAAA,MAAsB,2BACtB,cAAA,IAAA,MAAyB,2BACzB,aAAA,KACA,YAAA,KACA,cAAA,EACA,QAAA,EACA,MAAO,yBACP,UAAA,KACA,QAAA,MAEC,oBACC,MAAO,qCAGD,sBACN,QAAA,KAIJ,GACA,aACE,QAAA,gBACA,gBAAA,SACA,WAAA,WACA,OAAA,EACA,QAAA,KACA,WAAA,KAAA,OAAA,OAAA,EAAA,EAAmC,+BACnC,OAAA,IAAA,MAAkB,2BAClB,cAAA,EACA,QAAA,EACA,MAAO,yBACP,UAAA,KACA,QAAA,EAGF,GACE,QAAA,OAAA,KACA,aAAA,KACA,cAAA,YACA,aAAA,KACA,MAAA,MACA,cAAA,KAAA,EAAA,EAAA,KAGA,cACA,iCACA,QAAA,KAGF,aACE,YAAA,KACA,cAAA,EAAA,KAAA,KAAA,EAEC,mBACC,OAAA,QACA,iBAAkB,qCAClB,MAAO,+BAIJ,qBACA,oBACL,MAAA,eACA,YAAA,IAAA,MAAuB,2BACvB,QAAA,KAGF,gBACE,OAAA,MAAA,EAAA,EAAA,QAEA,uBACE,iBAAA,QAGC,6BADA,6BAEC,MAAO,uBAK0B,mCACrC,eACE,QAAA,MAAA,MAAA,EAAA,MACA,WAAA,MAGF,gBACE,OAAA,MAAA,EAAA,EAAA,OAGF,YACE,UAAA,IACA,MAAA,KAEA,gCACE,OAAA,KACA,WAAA,IAOA,6CAAA,+CACE,MAAA,OACA,MAAA,iBACA,MAAA,oBACA,MAAA,YAEA,uDAAA,yDACE,QAAA,aACA,MAAA,KAIJ,mCAAA,qCACE,MAAA,KACA,WAAA,KACA,WAAA,OACA,WAAA,OACA,2BAAA,OAM8B,mCACpC,eACE,MAAA,KACA,OAAA,EACA,QAAA,MAAA,EAAA,EAAA,EACA,WAAA,EACA,QAAA,EACA,oBAAA,cAAA,wBAKF,aACE,QAAA,EAGF,YAEE,MAAA,IACA,QAAA,KACA,eAAA,IAGF,GACE,MAAA,KACA,KAAA,EAGiC,gDACjC,aAAA,OACA,WAAA,aAAA,IAGF,gBACE,OAAA,EAGF,UACA,YACE,MAAA,IAGF,UACE,QAAA,MACA,MAAA,KACA,OAAA,EAEA,gBACE,QAAA,gBACA,OAAA,YAEA,oBACE,QAAA,MAM0C,oCAChD,eACE,oBAAA,gBAAA,wBAKF,aACE,QAAA,MAIJ,YNtQE,sBAAA,KACA,oBAAA,KACA,mBAAA,KACA,iBAAA,KACA,gBAAA,KACA,YAAA,KMoQC,+BACC,MAAA,EACA,OAAA,EAIJ,sBACE,SAAA,SC5QF,UACE,QAAA,aACA,eAAA,OACA,YAAA,EACA,gBAAA,QAGF,gBACE,MAAA,KACA,OAAA,KARA,QAAA,aACA,eAAA,OACA,YAAA,EACA,gBAAA,QASF,cACE,MAAA,OACA,OAAA,OAdA,QAAA,aACA,eAAA,OACA,YAAA,EACA,gBAAA,QAgBF,KACE,YAAA,WACA,UAAA,KP9CA,yBAAA,KACA,qBAAA,KACA,sBAAA,KACA,iBAAA,KO8CA,MAAO,uBACP,iBAAkB,6BAClB,QAAA,EACA,OAAA,EAGF,KACA,KACE,QAAA,EACA,OAAA,EAGF,KACE,QAAA,KACA,eAAA,OACA,OAAA,MACA,OAAA,EAGF,KACE,MAAA,KACA,cAAA,KACA,KAAA,EAIF,YADA,kBAEA,YACE,OAAA,IAAA,KACA,MAAA,KAGF,OACE,MAAA,KACA,WAAA,KACA,QAAA,KAAA,EACA,MAAA,KACA,WAAA,OACA,iBAAkB,+BAClB,WAAA,IAAA,MAAsB,2BACtB,SAAA,OAEA,SACE,UAAA,KAIc,qBACN,eACV,WAAgB,wBAAA,UAChB,gBAAA,QACA,WAAA,KACA,OAAA,EAAA,KAEA,0BAAA,oBACE,WAAA,OAKW,6BADV,mBAEH,QAAA,MACA,QAAA,aACA,WAAY,4BACZ,MAAO,sBP1GP,cAAA,KO6GA,OAAA,EACA,OAAA,QAGF,EACE,gBAAA,KACA,MAAO,sBAEN,UACC,MAAO,8BAEP,qBACE,MAAO,8BAKN,2BACL,WAAY,iCACZ,YAAA,MAAA,MAA0B,8BP5H1B,cAAA,EAAA,KAAA,KAAA,EOgImB,yCACnB,WAAY,8BACZ,OAAA,KPtIA,cAAA,KOyIA,0DACE,OAAQ,aAQc,0CAFA,wCACA,0CAFA,yCAIA,2CALA,2CAMxB,OAAA,IAAA,MAAkB,8BPpJlB,cAAA,KOwJF,QACE,OAAA,QAAA,EACA,QAAA,KACA,YAAA,MAAA,MAAA,YAEA,WACE,UAAA,OACA,UAAA,WACA,OAAA,MAAA,EAAA,MAAA,EACA,QAAA,EAEA,aACE,MAAO,8BACP,YAAA,IACA,UAAA,MAEC,qBACC,MAAO,sCAGR,mBACA,mBACC,gBAAA,UACA,OAAA,KACA,QAAA,EAKN,oBACA,wBACE,UAAA,eAKF,iBAFA,iBACA,cAEE,UAAA,KACA,OAAA,EACA,QAAA,EACA,UAAA,KACA,UAAA,WACA,YAAA,KAEA,4BAAA,4BAAA,yBACE,MAAO,+CACP,WAAA,QACA,YAAA,IAKF,8BACE,MAAA,QACA,WAAA,QACA,YAAA,IAIJ,qBACE,QAAA,KACA,UAAA,KACA,MAAO,6BACP,UAAA,OACA,SAAA,OACA,eAAA,IACA,OAAA,EACA,QAAA,EAEA,6BACE,YAAA,OACA,YAAA,EAGK,oCACL,QAAA,IACA,MAAA,IACA,QAAA,aAGF,6BACE,SAAA,OACA,YAAA,OACA,WAAA,QACA,UAAA,EACA,YAAA,EACA,WAAA,MAEA,qCACE,MAAA,MAKN,wBACE,UAAA,KACA,MAAO,qCAIN,sBACC,MAAA,KACA,QAAA,MAAA,KAAA,EAAA,EACA,MAAA,MAGD,kBACC,MAAA,KACA,QAAA,MAAA,KAAA,EAAA,EACA,MAAA,KACA,WAAA,KACA,WAAA,WACA,gBAAA,MAAA,IAIJ,eACE,MAAA,KAQJ,gBAFA,cACA,gBAFA,eAIA,iBALA,iBAME,OAAA,IAAA,MAAkB,2BAClB,OAAA,KAAA,EPxRA,cAAA,KO4Re,wBACf,MAAA,eACA,UAAA,KACA,WAAA,KACA,QAAA,EAAA,IAAA,KAAA,YAGa,wBACb,SAAA,OAGF,SACE,MAAA,MACA,MAAO,iCAEP,cACE,UAAA,QACA,OAAA,EAAA,KAAA,EAAA,EAIJ,YACE,UAAA,KAGF,WACE,MAAO,wCACP,WAAA,QAGF,eACE,WAAA,OAGF,eACE,QAAA,aACA,OAAA,EACA,QAAA,EACA,SAAA,SACA,WAAA,MACA,OAAA,eAEA,mBACE,MAAA,QACA,OAAA,QACA,QAAA,EACA,OAAA,KACA,WAAA,MACA,WAAY,qCAGV,0BACF,QAAA,KACA,MAAO,oCAGG,gCACV,QAAA,MACA,SAAA,SACA,OAAA,EACA,MAAA,EACA,QAAA,IACA,OAAA,EAAA,EAAA,IAAA,IAEA,iBAAkB,gDAClB,UAAA,KAKC,sBACD,MAAA,gBACA,OAAA,gBACA,MAAA,eAGF,kBACE,UAAA,KACA,MAAA,KACA,gBAAA,SACA,eAAA,EAAA,OAEA,qBACE,YAAA,QACA,MAAA,MACA,eAAA,IACA,WAAA,KAGF,qBACE,eAAA,IACA,WAAA,KAKN,QACE,QAAA,eAGF,SACE,OAAA,KAAA,KAAA,EAAA,MACA,QAAA,KACA,sBAAA,MAAA,MACA,mBAAA,YAAA,YAAA,IAAA,YACA,IAAA,EAAA,KACA,oBAEE,sBAEA,kBAJF,eAAA,qBAOiB,+BACH,4BACd,WAAA,EAGF,MACE,QAAA,EACA,UAAA,KAIA,sBACE,QAAA,KACA,UAAA,IAAA,KACA,gBAAA,SAEA,2BACE,QAAA,aACA,KAAA,EAAA,EAAA,IAOJ,iBAAA,mBACE,QAAA,EACA,OAAA,IACA,UAAA,KACA,QAAA,aACA,WAAA,IACA,MAAO,oCACP,OAAA,QAIY,2BADT,8BACS,6BADT,gCAEH,MAAO,8BACP,gBAAA,KACA,UAAA,MAEC,iCAAA,oCAAA,mCAAA,sCACC,gBAAA,UAKN,aACE,UAAA,YACA,QAAA,KACA,UAAA,IAAA,KACA,OAAA,EAAA,EAAA,IAAA,EAEA,gBACK,gCACH,QAAA,aACA,QAAA,MACA,OAAA,MAGG,gCACH,UAAA,MPlcF,cAAA,IOycI,aADM,mBADC,oBAGX,OAAA,IAAA,EAAA,KAAA,EACA,MAAO,uBAGT,SACE,UAAA,QACA,OAAA,IAAA,MAAkB,2BAClB,WAAY,+BACZ,QAAA,KACA,OAAA,KAAA,EACA,WAAA,EACA,MAAO,yBP7dP,cAAA,KOgeA,YACE,QAAA,KAKF,gBACE,UAAA,MAIJ,SACE,UAAA,QACA,UAAA,WACA,MAAO,0BAEP,kBACE,OAAA,KAAA,EAAA,KACA,OAAA,IAAA,MAAkB,4BAClB,QAAA,KACA,UAAA,KPpfF,cAAA,KOufE,qBACE,OAAA,EAAA,EAAA,KAAA,EAGF,sBACE,UAAA,KACA,WAAA,KACA,QAAA,MACA,OAAA,EAAA,KACA,QAAA,EAGF,qBACE,OAAA,KAAA,EAGF,qBACE,QAAA,OACA,OAAA,KAAA,MAAA,KAAA,EACA,QAAA,EACA,YAAA,IAGF,qBACE,QAAA,OACA,OAAA,KAAA,EACA,QAAA,EAGF,wBACE,UAAA,IAGF,qBACE,MAAA,KAGF,8BACA,wBACE,MAAA,KAKN,YACE,WAAA,IAGE,mCACE,MAAA,MAKN,oBACE,SAAA,SACA,MAAA,KACA,IAAA,OACA,QAAA,EACA,OAAA,EACA,QAAA,MACA,UAAA,MACA,MAAO,yBAKE,+BAFD,8BADD,6BAEG,gCAER,MAAO,yBAIX,YACE,UAAA,WAEA,eACE,MAAA,KAIJ,MACE,WAAA,IACA,MAAA,KAGF,WACE,OAAA,IAAA,MAAkB,8BAClB,OAAA,EACA,QAAA,EACA,UAAA,IACA,WAAY,kCACZ,SAAA,MACA,OAAA,KACA,KAAA,QACA,WAAA,QAAA,IACA,QAAA,EPtlBA,cAAA,KOylBA,aACE,QAAA,MACA,OAAA,EACA,QAAA,KAGF,aAGC,oBADA,mBADA,qBAGC,MAAO,4BAIQ,8BACjB,QAAA,EAGqC,mCAErC,YADA,kBAEA,YACE,OAAA,KAAA,MACA,MAAA,KAGF,WACE,SAAA,QACA,UAAA,QAEA,oBACE,MAAA,KAEA,wBACE,MAAA,KACA,UAAA,KACA,OAAA,KAAA,KAAA,KAAA,EAKN,SACE,cAAA,QACA,QAAA,EACA,MAAA,KACA,OAAA,KACA,MAAA,KAEA,eACE,OAAA,EAIJ,MACE,QAAA,KAGF,YACE,QAAA,KAIA,mBACE,UAAA,IAII,sBACF,QAAA,MACA,YAAA,OACA,cAAA,SACA,SAAA,OACA,MAAA,KAIJ,iBACE,MAAA,MACA,QAAA,EAAA,EAAA,IAAA,EAIJ,eACE,cAAA,eAGF,cACE,UAAA,IAEA,kBACE,UAAA,IAIJ,WACE,QAAA,KAGF,YACE,OAAA,KAAA,EAAA,EAAA,YAGe,0BACf,OAAA,KAAA,KAAA,EAAA,KACA,gBAAA,OACA,QAAA,KACA,sBAAA,MACA,mBAAA,YAAA,YAAA,YAAA,IAAA,YAAA,YACA,IAAA,EACA,oBAIE,cACA,UALF,UAAA,OAAA,cASqB,+CACvB,OAAA,KAAA,MAAA,EAAA,MACA,QAAA,KACA,sBAAA,KACA,mBAAA,YAAA,YAAA,IAAA,YAAA,YACA,IAAA,EACA,oBAIE,cACA,OALF,UAAA,UAAA,aAOA,qDACE,MAAA,QACA,OAAA,EAGF,0DACE,KAAA,KACA,MAAA,KAGF,2DACE,aAAA,KAIkC,mCACnB,0BACf,sBAAA,KACA,OAAA,KAAA,MAAA,EAAA,MAGF,oBACE,IAAA,MACA,MAAA,MAGU,gCACV,IAAA,MACA,MAAA,MAGF,SACE,OAAA,EACA,QAAA,EAGF,YACE,OAAA,KAAA,KAAA,EAAA,eAGK,2BACL,OAAA,IAAA,MAAkB,8BPrwBpB,cAAA,KOywBA,QACE,OAAA,IAAA,MAAkB,2BAClB,OAAA,KAAA,EP3wBF,cAAA,KO+wBA,eACE,OAAA,EACA,QAAA,EACA,OAAA,MAIwC,mCAErC,6BACD,MAAA,eAGF,wBACE,SAAA,SAKF,SACF,YAAA"}
\ No newline at end of file diff --git a/searx/static/themes/simple/fonts/ion.css b/searx/static/themes/simple/fonts/ion.css deleted file mode 100644 index 100524941..000000000 --- a/searx/static/themes/simple/fonts/ion.css +++ /dev/null @@ -1,139 +0,0 @@ -/* Generated by grunt-webfont */ - - - -@font-face { - font-family:"ion"; - src:url("../fonts/ion.eot?31a1b735188db616a2142d17947e8a45"); - src:url("../fonts/ion.eot?31a1b735188db616a2142d17947e8a45#iefix") format("embedded-opentype"), - url("../fonts/ion.woff2?31a1b735188db616a2142d17947e8a45") format("woff2"), - url("../fonts/ion.woff?31a1b735188db616a2142d17947e8a45") format("woff"), - url("../fonts/ion.ttf?31a1b735188db616a2142d17947e8a45") format("truetype"), - url("../fonts/ion.svg?31a1b735188db616a2142d17947e8a45#ion") format("svg"); - font-weight:normal; - font-style:normal; -} - -.ion-icon { - - font-family:"ion"; - - display:inline-block; - line-height:1; - font-weight:normal; - font-style:normal; - speak:none; - text-decoration:inherit; - text-transform:none; - text-rendering:auto; - -webkit-font-smoothing:antialiased; - -moz-osx-font-smoothing:grayscale; -} - - -/* Icons */ - - -.ion-navicon-round:before { - content:"\f101"; -} - - -.ion-search:before { - content:"\f102"; -} - - -.ion-play:before { - content:"\f103"; -} - - -.ion-link:before { - content:"\f104"; -} - - -.ion-chevron-up:before { - content:"\f105"; -} - - -.ion-chevron-left:before { - content:"\f106"; -} - - -.ion-chevron-right:before { - content:"\f107"; -} - - -.ion-arrow-down-a:before { - content:"\f108"; -} - - -.ion-arrow-up-a:before { - content:"\f109"; -} - - -.ion-arrow-swap:before { - content:"\f10a"; -} - - -.ion-arrow-dropdown:before { - content:"\f10b"; -} - - -.ion-globe:before { - content:"\f10c"; -} - - -.ion-time:before { - content:"\f10d"; -} - - -.ion-location:before { - content:"\f10e"; -} - - -.ion-warning:before { - content:"\f10f"; -} - - -.ion-error:before { - content:"\f110"; -} - - -.ion-film-outline:before { - content:"\f111"; -} - - -.ion-music-note:before { - content:"\f112"; -} - - -.ion-more-vertical:before { - content:"\f113"; -} - - -.ion-magnet:before { - content:"\f114"; -} - - -.ion-close:before { - content:"\f115"; -} diff --git a/searx/static/themes/simple/fonts/ion.html b/searx/static/themes/simple/fonts/ion.html deleted file mode 100644 index 0a7b49c60..000000000 --- a/searx/static/themes/simple/fonts/ion.html +++ /dev/null @@ -1,268 +0,0 @@ -<!doctype html> -<html> - <head> - <meta charset="utf-8"> - <title>ion</title> - <style> - body { - margin:0; - padding:10px 20px; - background:#fff; - color:#222; - } - h1, div, footer { - font-family:"Helvetica Neue", Arial, sans-serif; - } - h1 { - margin:0 0 20px; - font-size:32px; - font-weight:normal; - } - h1 small { - font-size: 0.8em; - padding-left: 2em; - } - .icons { - margin-bottom:40px; - -webkit-column-count:5; - -moz-column-count:5; - column-count:5; - -webkit-column-gap:20px; - -moz-column-gap:20px; - column-gap:20px; - } - .icons__item, - .icons__item i { - line-height:2em; - cursor:pointer; - overflow:hidden; - } - .icons__item:hover { - color:#3c90be; - } - .icons__item i { - display:inline-block; - width:32px; - text-align:center; - } - .icons__item:hover i { - -webkit-transform:scale(1.5); - transform:scale(1.5); - } - footer { - margin-top:40px; - font-size:14px; - color:#999; - } - - /* Generated by grunt-webfont */ - - - -@font-face { - font-family:"ion"; - src:url("ion.eot?31a1b735188db616a2142d17947e8a45"); - src:url("ion.eot?31a1b735188db616a2142d17947e8a45#iefix") format("embedded-opentype"), - url("ion.woff2?31a1b735188db616a2142d17947e8a45") format("woff2"), - url("ion.woff?31a1b735188db616a2142d17947e8a45") format("woff"), - url("ion.ttf?31a1b735188db616a2142d17947e8a45") format("truetype"), - url("ion.svg?31a1b735188db616a2142d17947e8a45#ion") format("svg"); - font-weight:normal; - font-style:normal; -} - -.ion-icon { - - font-family:"ion"; - - display:inline-block; - line-height:1; - font-weight:normal; - font-style:normal; - speak:none; - text-decoration:inherit; - text-transform:none; - text-rendering:auto; - -webkit-font-smoothing:antialiased; - -moz-osx-font-smoothing:grayscale; -} - - -/* Icons */ - - -.ion-navicon-round:before { - content:"\f101"; -} - - -.ion-search:before { - content:"\f102"; -} - - -.ion-play:before { - content:"\f103"; -} - - -.ion-link:before { - content:"\f104"; -} - - -.ion-chevron-up:before { - content:"\f105"; -} - - -.ion-chevron-left:before { - content:"\f106"; -} - - -.ion-chevron-right:before { - content:"\f107"; -} - - -.ion-arrow-down-a:before { - content:"\f108"; -} - - -.ion-arrow-up-a:before { - content:"\f109"; -} - - -.ion-arrow-swap:before { - content:"\f10a"; -} - - -.ion-arrow-dropdown:before { - content:"\f10b"; -} - - -.ion-globe:before { - content:"\f10c"; -} - - -.ion-time:before { - content:"\f10d"; -} - - -.ion-location:before { - content:"\f10e"; -} - - -.ion-warning:before { - content:"\f10f"; -} - - -.ion-error:before { - content:"\f110"; -} - - -.ion-film-outline:before { - content:"\f111"; -} - - -.ion-music-note:before { - content:"\f112"; -} - - -.ion-more-vertical:before { - content:"\f113"; -} - - -.ion-magnet:before { - content:"\f114"; -} - - -.ion-close:before { - content:"\f115"; -} - - </style> - </head> - <body> - <h1>ion</h1> - - <div class="icons" id="icons"> - - <div class="icons__item" data-name="navicon-round"><i class="ion-icon ion-navicon-round"></i> ion-navicon-round</div> - - <div class="icons__item" data-name="search"><i class="ion-icon ion-search"></i> ion-search</div> - - <div class="icons__item" data-name="play"><i class="ion-icon ion-play"></i> ion-play</div> - - <div class="icons__item" data-name="link"><i class="ion-icon ion-link"></i> ion-link</div> - - <div class="icons__item" data-name="chevron-up"><i class="ion-icon ion-chevron-up"></i> ion-chevron-up</div> - - <div class="icons__item" data-name="chevron-left"><i class="ion-icon ion-chevron-left"></i> ion-chevron-left</div> - - <div class="icons__item" data-name="chevron-right"><i class="ion-icon ion-chevron-right"></i> ion-chevron-right</div> - - <div class="icons__item" data-name="arrow-down-a"><i class="ion-icon ion-arrow-down-a"></i> ion-arrow-down-a</div> - - <div class="icons__item" data-name="arrow-up-a"><i class="ion-icon ion-arrow-up-a"></i> ion-arrow-up-a</div> - - <div class="icons__item" data-name="arrow-swap"><i class="ion-icon ion-arrow-swap"></i> ion-arrow-swap</div> - - <div class="icons__item" data-name="arrow-dropdown"><i class="ion-icon ion-arrow-dropdown"></i> ion-arrow-dropdown</div> - - <div class="icons__item" data-name="globe"><i class="ion-icon ion-globe"></i> ion-globe</div> - - <div class="icons__item" data-name="time"><i class="ion-icon ion-time"></i> ion-time</div> - - <div class="icons__item" data-name="location"><i class="ion-icon ion-location"></i> ion-location</div> - - <div class="icons__item" data-name="warning"><i class="ion-icon ion-warning"></i> ion-warning</div> - - <div class="icons__item" data-name="error"><i class="ion-icon ion-error"></i> ion-error</div> - - <div class="icons__item" data-name="film-outline"><i class="ion-icon ion-film-outline"></i> ion-film-outline</div> - - <div class="icons__item" data-name="music-note"><i class="ion-icon ion-music-note"></i> ion-music-note</div> - - <div class="icons__item" data-name="more-vertical"><i class="ion-icon ion-more-vertical"></i> ion-more-vertical</div> - - <div class="icons__item" data-name="magnet"><i class="ion-icon ion-magnet"></i> ion-magnet</div> - - <div class="icons__item" data-name="close"><i class="ion-icon ion-close"></i> ion-close</div> - - </div> - - - - <h1>Usage</h1> - <pre><code><i class="ion-icon ion-<span id="name">name</span>"></i></code></pre> - - - <footer>Generated by <a href="https://github.com/sapegin/grunt-webfont">grunt-webfont</a>.</footer> - - <script> - (function() { - document.getElementById('icons').onclick = function(e) { - e = e || window.event; - var name = e.target.getAttribute('data-name') || e.target.parentNode.getAttribute('data-name'); - document.getElementById('name').innerHTML = name; - - } - })(); - </script> - </body> -</html> diff --git a/searx/static/themes/simple/fonts/ion.svg b/searx/static/themes/simple/fonts/ion.svg deleted file mode 100644 index 01c2ce025..000000000 --- a/searx/static/themes/simple/fonts/ion.svg +++ /dev/null @@ -1,105 +0,0 @@ -<?xml version="1.0" standalone="no"?> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" > -<!-- -2021-6-21: Created with FontForge (http://fontforge.org) ---> -<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1"> -<metadata> -Created by FontForge 20190801 at Mon Jun 21 10:06:22 2021 - By alexandre - -</metadata> -<defs> -<font id="ion" horiz-adv-x="512" > - <font-face - font-family="ion" - font-weight="400" - font-stretch="normal" - units-per-em="512" - panose-1="2 0 5 9 0 0 0 0 0 0" - ascent="448" - descent="-64" - bbox="27.2368 -31.9632 479.993 415.9" - underline-thickness="25.6" - underline-position="-51.2" - unicode-range="U+F101-F115" - /> - <missing-glyph /> - <glyph glyph-name="arrow-down-a" unicode="" -d="M256.5 -0.5l-192 192h112v192h160v-192h112z" /> - <glyph glyph-name="arrow-dropdown" unicode="" -d="M128 256h256l-128 -128z" /> - <glyph glyph-name="arrow-swap" unicode="" -d="M64 120c0 4.40039 3.59961 8 8 8h248v64l128 -96l-128 -96v64h-248c-4.40039 0 -8 3.59961 -8 8v48zM448 264c0 -4.40039 -3.59961 -8 -8 -8h-248v-64l-128 96l128 96v-64h248c4.40039 0 8 -3.59961 8 -8v-48z" /> - <glyph glyph-name="arrow-up-a" unicode="" -d="M256.5 383.5l192 -192h-112v-192h-160v192h-112z" /> - <glyph glyph-name="chevron-left" unicode="" -d="M213.7 192l167.2 -174.2c4.19922 -4.2998 4.09961 -11.3994 -0.200195 -15.7998l-29.9004 -30.5996c-4.2998 -4.40039 -11.2998 -4.5 -15.5 -0.200195l-204.2 212.7c-2.09961 2.19922 -3.09961 5.09961 -3 8.09961c-0.199219 2.90039 0.800781 5.90039 3 8.09961 -l204.2 212.601c4.2002 4.2998 11.2002 4.2002 15.5 -0.200195l29.9004 -30.5996c4.2998 -4.40039 4.39941 -11.5 0.200195 -15.8008l-167.2 -174.1v0v0z" /> - <glyph glyph-name="chevron-right" unicode="" -d="M298.3 192v0v0l-167.2 174.1c-4.19922 4.30078 -4.09961 11.4004 0.200195 15.8008l29.9004 30.5996c4.2998 4.40039 11.2998 4.5 15.5 0.200195l204.2 -212.7c2.19922 -2.2002 3.19922 -5.2002 3 -8.09961c0.0996094 -3 -0.900391 -5.90039 -3 -8.10059l-204.2 -212.6 -c-4.2002 -4.2998 -11.2002 -4.2002 -15.5 0.200195l-29.9004 30.5996c-4.2998 4.40039 -4.39941 11.5 -0.200195 15.7998z" /> - <glyph glyph-name="chevron-up" unicode="" -d="M256 234.3l-174.2 -167.2c-4.2998 -4.19922 -11.3994 -4.09961 -15.7998 0.200195l-30.5996 29.9004c-4.40039 4.2998 -4.5 11.2998 -0.200195 15.5l212.7 204.2c2.19922 2.09961 5.09961 3.09961 8.09961 3c2.90039 0.199219 5.90039 -0.800781 8.09961 -3l212.7 -204.2 -c4.2998 -4.2002 4.2002 -11.2002 -0.200195 -15.5l-30.5996 -29.9004c-4.40039 -4.2998 -11.5 -4.39941 -15.7998 -0.200195l-174.2 167.2v0v0z" /> - <glyph glyph-name="close" unicode="" -d="M405 311.202l-119.202 -119.202l119.202 -119.202l-29.7979 -29.7979l-119.202 119.202l-119.202 -119.202l-29.7979 29.7979l119.202 119.202l-119.202 119.202l29.7979 29.7979l119.202 -119.202l119.202 119.202z" /> - <glyph glyph-name="error" unicode="" -d="M256 400c114.4 0 208 -93.6006 208 -208s-93.5996 -208 -208 -208s-208 93.6006 -208 208s93.5996 208 208 208zM280 88v40h-48v-40h48zM280 176v128h-48v-128h48z" /> - <glyph glyph-name="film-outline" unicode="" -d="M56 360h400v-336h-400v336zM128 40v48h-56v-48h56zM128 104v48h-56v-48h56zM128 168v48h-56v-48h56zM128 232v48h-56v-48h56zM128 296v48h-56v-48h56zM368 40v144h-224v-144h224zM368 200v144h-224v-144h224zM440 40v48h-56v-48h56zM440 104v48h-56v-48h56zM440 168v48 -h-56v-48h56zM440 232v48h-56v-48h56zM440 296v48h-56v-48h56z" /> - <glyph glyph-name="globe" unicode="" -d="M256 400c114.875 0 208 -93.125 208 -208s-93.125 -208 -208 -208c-114.876 0 -208 93.125 -208 208s93.124 208 208 208zM234.451 15.001c6.04297 15.0449 19.9453 28.6484 7.27344 39.1172c-8.17285 6.75 -15.6123 13.6279 -23.1104 21.125 -c-2.47461 2.47363 -9.9082 19.7109 -8.35156 22.3916c5.10254 8.78613 5.76367 14.8613 8.12988 24.7236c2.94336 12.2627 -3.33398 15.4434 -13.3828 21.8389c-15.2256 9.68848 -28.9629 22.4844 -43.3213 33.4941c-7.11719 5.45508 -17.4365 10.0986 -20.0195 18.9521 -c-2.64062 9.05078 -3.97363 20.2598 -9.40039 28.0781c-13.9277 20.0752 -11.5791 34.9678 -9.93945 58.7627c0.449219 6.52637 -1.30371 15.6572 -2.01367 24.1748c-27.5654 -32.2354 -42.6016 -72.7891 -42.6016 -115.659c0 -47.6221 18.5439 -92.3926 52.2178 -126.067 -c28.541 -28.54 65.0557 -46.2061 104.52 -50.9316zM382.067 65.9326c23.0352 23.0381 38.9873 51.2695 46.7686 82.0527c-8.34668 -1.19141 -18.3838 2.22754 -18.3838 2.22754s-21.7363 23.707 -23.5244 44.5723c-1.85645 21.667 0.498047 38.3945 -2.89551 56.8105 -c-2.87988 15.624 -19.2803 31.5 -26.6729 46.3018c-6.9209 13.8555 -13.7334 27.7031 -20.2646 41.7451c2.25098 -0.848633 4.90039 -1.40234 6.96484 -2.62305c4.99902 0.636719 9.43066 1.22949 13.4629 1.59082c-22.5381 15.6758 -48.2725 25.8418 -75.5225 29.7998 -v-8.33887l3.55273 -9.27734l-13.7783 -12.9951l-8.67578 2.79492l-9.92383 10.2334l-9.94336 11.8008l-14.084 5.66016c-15.7236 -2.36133 -30.9346 -6.78711 -45.3105 -13.1523c0.360352 -2.30762 0.662109 -4.64453 0.662109 -7.13281 -c7.17383 2.98926 15.2764 5.04883 22.4502 8.03906c2.96289 1.23438 12.7529 -7.1748 15.6221 -8.96777c-4.0957 -4.70996 -20.5576 -15.4434 -21.3574 -21.3574c-0.316406 -2.33984 6.50586 -6.06348 6.45117 -9.69141 -c-0.0878906 -5.74609 -0.173828 -11.4912 -0.259766 -17.2373c3.24414 2.76172 20.0342 20.3672 21.9404 20.8594c12.7256 3.2832 34.3916 -17.7646 36.249 -25.1934c1.8584 -7.42871 -21.6514 -23.6826 -32.6113 -34.0469 -c-8.39941 -7.94434 -24.8086 -12.5137 -19.8037 -24.2285c1.62695 -3.80957 10.0508 -20.0156 5.21191 -24.0586c-5.92188 -4.94824 -14.7686 8.97656 -17.3418 12.0938c-8.15332 9.87695 -25.626 6.02539 -37.9082 6.47852c0 -17.4209 -0.757812 -31.1885 14.9229 -42.9971 -c15.1943 -11.4434 29.5967 -24.7061 47.0771 -32.3389c12.7637 -5.57129 35.7158 6.53613 47.0205 -1.41699c15.8672 -11.165 29.3066 -21.624 47.1611 -29.375c7.93359 -3.44531 32.418 -19.8828 25.3525 -30.7812c-4.96582 -7.66211 -9.87305 -14.8848 -13.5771 -23.2168 -c-3.70703 -8.34375 -12.5957 -18.876 -19.6924 -24.3525c-8.15918 -6.29199 -16.9551 -17.1455 -21.8955 -29.3623c34.8574 6.5957 66.9229 23.4482 92.5566 49.0811z" /> - <glyph glyph-name="link" unicode="" -d="M256.5 240h-0.5v0h0.5zM368.5 288c44.2002 0 79.5 -35.2998 79.5 -79.5v-32c0 -44.2002 -35.2998 -80.5 -79.5 -80.5h-112c-32.7002 0 -61 19.7998 -73.5996 48c-4.40039 10 -6.90039 21 -6.90039 32.5v31.5h48v-31.5c0 -17.5996 14.9004 -32.5 32.5 -32.5h112 -c17.5996 0 31.5 14.9004 31.5 32.5v32c0 17.5996 -13.9004 31.5 -31.5 31.5h-0.5h-16.4004c-5.59961 31 -31.5996 48 -31.5996 48h48.5zM329.6 240c4.10059 -9.59961 6.40039 -20.2998 6.40039 -31.5v-32v-0.5h-48v0.5v32c0 17.5996 -13.9004 31.5 -31.5 31.5h-0.5h-111.5 -c-17.5996 0 -32.5 -13.9004 -32.5 -31.5v-32c0 -17.5996 14.9004 -32.5 32.5 -32.5h15.4004c6.2998 -31 32.0996 -48 32.0996 -48h-47.5c-44.2002 0 -80.5 36.2998 -80.5 80.5v32c0 44.2002 36.2998 79.5 80.5 79.5h112c33 0 61 -19.7002 73.0996 -48z" /> - <glyph glyph-name="location" unicode="" -d="M256 384c65.9004 0 119.3 -53.7002 119.3 -120c0 -114.6 -119.3 -264 -119.3 -264s-119.3 149.4 -119.3 264c0 66.2998 53.3994 120 119.3 120zM256 205.8c31.2002 0 56.4004 25.4004 56.4004 56.7002c0 31.4004 -25.2002 56.7998 -56.4004 56.7998 -c-31.0996 0 -56.4004 -25.5 -56.4004 -56.7998s25.2002 -56.7002 56.4004 -56.7002z" /> - <glyph glyph-name="magnet" unicode="" -d="M27.7061 117.644h86.2139v-67.7236h-86.2256zM184.326 327c0 -0.199219 0.166992 -0.366211 0.367188 -0.366211c27.7676 0 67.3604 -3.08398 67.3604 -42.7246v-141.625c0 -0.197266 0.163086 -0.362305 0.358398 -0.366211 -c28.75 -0.636719 57.4912 0.0107422 86.2236 0c0.208984 -0.000976562 0.366211 0.183594 0.367188 0.364258c0.238281 50.8672 0 101.591 0 150.867c-0.250977 43.4795 -13.5273 70.627 -43.2588 92.6426c-33.1963 25.7178 -71.71 27.2451 -112.575 27.3818 -c-40.8711 -0.136719 -79.3877 -1.66406 -112.583 -27.3818c-29.7207 -22.0166 -42.9971 -49.1611 -43.248 -92.6445c0 -49.2715 -0.227539 -99.999 0 -150.876c0.000976562 -0.208984 0.185547 -0.365234 0.367188 -0.365234c28.7324 0.0224609 57.4854 -0.625 86.2236 0 -c0.196289 0.00390625 0.358398 0.170898 0.358398 0.366211v141.625c0 39.6406 39.6045 42.7363 67.3604 42.7363c0.200195 0 0.367188 0.166992 0.367188 0.366211s-0.166992 0.366211 -0.367188 0.366211c-27.6299 0 -68.0938 -3.06348 -68.0938 -43.4688v-141.266 -c-28.2832 -0.604492 -56.9688 0.0244141 -85.4844 0.0078125c-0.223633 50.5547 0.00195312 101.386 0.00195312 150.508c0.249023 43.3125 13.4043 70.168 42.957 92.0605c32.9863 25.5547 71.2646 27.0957 112.144 27.2324 -c40.8623 -0.136719 79.1436 -1.67773 112.13 -27.2324c29.5645 -21.8926 42.7188 -48.7461 42.9678 -92.0625c0 -49.1631 0.238281 -99.6865 0.00195312 -150.495c-28.3008 0.00585938 -56.9746 -0.62793 -85.4844 -0.0078125v141.267 -c0 40.4043 -40.4521 43.457 -68.0938 43.457c-0.200195 0 -0.367188 -0.166992 -0.367188 -0.366211zM184.692 327.005c27.7061 0 67.7236 -3.07227 67.7236 -43.1006v-141.615c28.7422 -0.639648 57.4834 0.0117188 86.2256 0c0.232422 50.8633 0 101.586 0 150.854 -c-0.255859 43.4033 -13.4746 70.3994 -43.1133 92.3574c-33.0938 25.6348 -71.4932 27.1709 -112.36 27.3105c-40.8672 -0.139648 -79.2666 -1.67578 -112.36 -27.3105c-29.6377 -21.958 -42.8574 -48.9541 -43.1016 -92.3574c0 -49.2686 -0.232422 -99.9912 0 -150.866 -c28.7422 0.0234375 57.4834 -0.62793 86.2139 0v141.615c0 40.0293 40.0293 43.1123 67.7236 43.1123zM252.463 117.644h86.2021v-67.7236h-86.2021v67.7236z" /> - <glyph glyph-name="more-vertical" unicode="" -d="M296 312c0 -22.002 -17.998 -40 -40 -40s-40 17.998 -40 40s17.998 40 40 40s40 -17.998 40 -40zM296 72c0 -22.002 -17.998 -40 -40 -40s-40 17.998 -40 40s17.998 40 40 40s40 -17.998 40 -40zM296 192c0 -22.002 -17.998 -40 -40 -40s-40 17.998 -40 40 -s17.998 40 40 40s40 -17.998 40 -40z" /> - <glyph glyph-name="music-note" unicode="" -d="M426 415.9c12.0996 0 22 -9.5 22.0996 -21.2002v-302.8c0 -24.7002 -3 -42.9004 -12 -54.9004h-0.199219c-9.10059 -15 -25 -21 -43.2002 -21h-37.2002c-28.2998 0 -51.2002 19.9004 -51.2002 48s22.9004 48 51.2002 48h60.5v192l-208 -38v-232 -c0 -8.2998 -3.40039 -27 -13 -41.0996c-1 -1.80078 -2.09961 -3.40039 -3.40039 -5c-0.5 -0.600586 -0.899414 -1.5 -1.5 -2.10059c-0.0996094 -0.0996094 -0.299805 -0.0996094 -0.399414 -0.200195c-9.40039 -10.5996 -23 -17.5 -38.2998 -17.5h-36.2002 -c-28.2002 0 -51.2998 20 -51.2998 48s23.0996 48 51.0996 48v-0.0996094h61v286.5c1 14.5 13.5 27.9004 27.2998 31.5996l217.601 33.2002s2.89941 0.600586 5.09961 0.600586z" /> - <glyph glyph-name="navicon-round" unicode="" -d="M417.4 224c16.8994 0 30.5996 -14.2998 30.5996 -32s-13.7002 -32 -30.5996 -32h-322.801c-16.8994 0 -30.5996 14.2998 -30.5996 32s13.7002 32 30.5996 32h322.801zM417.4 352c16.8994 0 30.5996 -14.2998 30.5996 -32s-13.7002 -32 -30.5996 -32h-322.801 -c-16.8994 0 -30.5996 14.2998 -30.5996 32s13.7002 32 30.5996 32h322.801zM417.4 96c16.8994 0 30.5996 -14.2998 30.5996 -32s-13.7002 -32 -30.5996 -32h-322.801c-16.8994 0 -30.5996 14.2998 -30.5996 32s13.7002 32 30.5996 32h322.801z" /> - <glyph glyph-name="play" unicode="" -d="M405.2 215.1c6.59961 -5.59961 10.7998 -13.7998 10.7998 -23.0996s-4.2002 -17.5996 -10.7998 -23.0996l-278.101 -165.5c-3.69922 -2 -7.09961 -3.40039 -11.1992 -3.40039c-10.9004 0 -19.8008 9 -19.8008 20h-0.0996094v344h0.0996094c0 11 8.90039 20 19.8008 20 -c4 0 7.5 -1.2002 10.8994 -3.2002z" /> - <glyph glyph-name="search" unicode="" -d="M445 61.2998c4 -4 4 -10.3994 0 -14.5l-43.2998 -43.7998c-1.90039 -2 -4.60059 -3.09961 -7.2998 -3.09961c-2.7002 0 -5.40039 1.19922 -7.30078 3.09961l-84.3994 85.5996c-24.6006 -14.6992 -52.2002 -22.3994 -80.1006 -22.3994 -c-87.3994 0 -158.6 71.2998 -158.6 158.899c0 87.6006 71.2002 158.9 158.6 158.9c87.4004 0 158.601 -71.2998 158.601 -158.9c0 -27 -7.2002 -53.7998 -21 -77.8994zM222.6 322.1c-53.3994 0 -96.7998 -43.5 -96.7998 -97s43.4004 -97 96.7998 -97 -c53.4004 0 96.8008 43.5 96.8008 97s-43.4004 97 -96.8008 97z" /> - <glyph glyph-name="time" unicode="" -d="M256 405c117.149 0 213 -95.8506 213 -213s-94.7891 -213 -213 -213s-213 95.8506 -213 213s94.7891 213 213 213zM256 21.5996c93.7178 0 170.4 76.6826 170.4 170.4s-76.6826 170.4 -170.4 170.4s-170.4 -76.6836 -170.4 -170.4s76.6826 -170.4 170.4 -170.4z -M266.65 298.5v-111.824l95.8496 -56.4434l-15.9746 -26.625l-111.825 67.0928v127.8h31.9502z" /> - <glyph glyph-name="warning" unicode="" -d="M476.7 25.7998c2.7998 -4.89941 4.7998 -13 1.7998 -17.8994c-2.90039 -4.90039 -8.2002 -7.90039 -14 -7.90039h-417.1c-5.80078 0 -11.1006 3 -14 7.90039c-2.90039 4.89941 -0.900391 12.8994 1.89941 17.8994l206.601 349.5c2.7998 5 8.19922 8.7002 14.0996 8.7002 -c5.7998 0 11.2002 -3.7002 14.0996 -8.7002zM288 48v48h-64v-48h64zM288 128v144h-64v-144h64z" /> - </font> -</defs></svg> diff --git a/searx/static/themes/simple/fonts/ion.ttf b/searx/static/themes/simple/fonts/ion.ttf Binary files differdeleted file mode 100644 index 78264a571..000000000 --- a/searx/static/themes/simple/fonts/ion.ttf +++ /dev/null diff --git a/searx/static/themes/simple/fonts/ion.woff b/searx/static/themes/simple/fonts/ion.woff Binary files differdeleted file mode 100644 index 84dd55888..000000000 --- a/searx/static/themes/simple/fonts/ion.woff +++ /dev/null diff --git a/searx/static/themes/simple/fonts/ion.woff2 b/searx/static/themes/simple/fonts/ion.woff2 Binary files differdeleted file mode 100644 index 1ab664a67..000000000 --- a/searx/static/themes/simple/fonts/ion.woff2 +++ /dev/null diff --git a/searx/static/themes/simple/gruntfile.js b/searx/static/themes/simple/gruntfile.js index 325a973b4..006d64417 100644 --- a/searx/static/themes/simple/gruntfile.js +++ b/searx/static/themes/simple/gruntfile.js @@ -5,19 +5,24 @@ module.exports = function(grunt) { const path = require('path'); grunt.initConfig({ + + _brand: '../../../../src/brand', + _templates: '../../../templates', + pkg: grunt.file.readJSON('package.json'), watch: { scripts: { - files: ['src/**'], - tasks: ['eslint', 'copy', 'concat', 'uglify', 'less:development', 'less:production'] + files: ['gruntfile.js', 'src/**'], + tasks: ['eslint', 'copy', 'concat', 'svg2jinja', 'uglify', 'image', 'less:development', 'less:production'] } }, eslint: { options: { - configFile: '.eslintrc.json', + overrideConfigFile: '.eslintrc.json', failOnError: false }, target: [ + 'svg4web.svgo.js', 'src/js/main/*.js', 'src/js/head/*.js', '../__common__/js/*.js' @@ -95,67 +100,13 @@ module.exports = function(grunt) { } } }, - webfont: { - icons: { - // src: 'node_modules/ionicons-npm/src/*.svg', - src: [ - 'node_modules/ionicons-npm/src/navicon-round.svg', - 'node_modules/ionicons-npm/src/search.svg', - 'node_modules/ionicons-npm/src/play.svg', - 'node_modules/ionicons-npm/src/link.svg', - 'node_modules/ionicons-npm/src/chevron-up.svg', - 'node_modules/ionicons-npm/src/chevron-left.svg', - 'node_modules/ionicons-npm/src/chevron-right.svg', - 'node_modules/ionicons-npm/src/arrow-down-a.svg', - 'node_modules/ionicons-npm/src/arrow-up-a.svg', - 'node_modules/ionicons-npm/src/arrow-swap.svg', - 'node_modules/ionicons-npm/src/telephone.svg', - 'node_modules/ionicons-npm/src/android-arrow-dropdown.svg', - 'node_modules/ionicons-npm/src/android-globe.svg', - 'node_modules/ionicons-npm/src/android-time.svg', - 'node_modules/ionicons-npm/src/location.svg', - 'node_modules/ionicons-npm/src/alert-circled.svg', - 'node_modules/ionicons-npm/src/android-alert.svg', - 'node_modules/ionicons-npm/src/ios-film-outline.svg', - 'node_modules/ionicons-npm/src/music-note.svg', - 'node_modules/ionicons-npm/src/ion-close-round.svg', - 'node_modules/ionicons-npm/src/android-more-vertical.svg', - 'src/fonts/magnet.svg', - 'node_modules/ionicons-npm/src/android-close.svg', - ], - dest: 'fonts', - destLess: 'src/generated', + image: { + svg4web: { options: { - font: 'ion', - hashes : true, - syntax: 'bem', - styles : 'font,icon', - types : 'eot,woff2,woff,ttf,svg', - order : 'eot,woff2,woff,ttf,svg', - stylesheets : ['css', 'less'], - relativeFontPath : '../fonts/', - autoHint : false, - normalize : false, - // ligatures : true, - optimize : true, - // fontHeight : 400, - rename : function(name) { - basename = path.basename(name); - if (basename === 'android-alert.svg') { - return 'error.svg'; - } - if (basename === 'alert-circled.svg') { - return 'warning.svg'; - } - if (basename === 'ion-close-round.svg') { - return 'close.svg'; - } - return basename.replace(/(ios|md|android)-/i, ''); - }, - templateOptions: { - baseClass: 'ion-icon', - classPrefix: 'ion-' - } + svgo: ['--config', 'svg4web.svgo.js'] + }, + files: { + '<%= _templates %>/__common__/searxng-wordmark.min.svg': '<%= _brand %>/searxng-wordmark.svg' } } }, @@ -186,16 +137,99 @@ module.exports = function(grunt) { } }, }, + svg2jinja: { + all: { + src: { + 'warning': 'node_modules/ionicons/dist/svg/alert-outline.svg', + 'close': 'node_modules/ionicons/dist/svg/close-outline.svg', + 'chevron-up-outline': 'node_modules/ionicons/dist/svg/chevron-up-outline.svg', + 'chevron-right': 'node_modules/ionicons/dist/svg/chevron-forward-outline.svg', + 'chevron-left': 'node_modules/ionicons/dist/svg/chevron-back-outline.svg', + 'menu-outline': 'node_modules/ionicons/dist/svg/menu-outline.svg', + 'ellipsis-vertical-outline': 'node_modules/ionicons/dist/svg/ellipsis-vertical-outline.svg', + 'magnet-outline': 'node_modules/ionicons/dist/svg/magnet-outline.svg', + 'globe-outline': 'node_modules/ionicons/dist/svg/globe-outline.svg', + 'search-outline': 'node_modules/ionicons/dist/svg/search-outline.svg', + 'image-outline': 'node_modules/ionicons/dist/svg/image-outline.svg', + 'play-outline': 'node_modules/ionicons/dist/svg/play-outline.svg', + 'newspaper-outline': 'node_modules/ionicons/dist/svg/newspaper-outline.svg', + 'location-outline': 'node_modules/ionicons/dist/svg/location-outline.svg', + 'musical-notes-outline': 'node_modules/ionicons/dist/svg/musical-notes-outline.svg', + 'layers-outline': 'node_modules/ionicons/dist/svg/layers-outline.svg', + 'school-outline': 'node_modules/ionicons/dist/svg/school-outline.svg', + 'file-tray-full-outline': 'node_modules/ionicons/dist/svg/file-tray-full-outline.svg', + 'people-outline': 'node_modules/ionicons/dist/svg/people-outline.svg', + }, + dest: '../../../templates/simple/icons.html', + }, + }, + }); + + + grunt.registerMultiTask('svg2jinja', 'Create Jinja2 macro', function() { + const ejs = require('ejs'), svgo = require('svgo'); + const icons = {} + for(const iconName in this.data.src) { + const svgFileName = this.data.src[iconName]; + try { + const svgContent = grunt.file.read(svgFileName, { encoding: 'utf8' }) + const svgoResult = svgo.optimize(svgContent, { + path: svgFileName, + multipass: true, + plugins: [ + { + name: "removeTitle", + }, + { + name: "removeXMLNS", + }, + { + name: "addAttributesToSVGElement", + params: { + attributes: [ + { "aria-hidden": "true" } + ] + } + } + ] + }); + icons[iconName] = svgoResult.data.replace("'", "\\'"); + } catch (err) { + grunt.log.error(err); + } + } + const template = `{# this file was generated by searx/static/themes/simple/gruntfile.js #} +{%- set icons = { +<% for (const iconName in icons) { %> '<%- iconName %>':'<%- icons[iconName] %>', +<% } %> +} +-%} + +{% macro icon(action, alt) -%} + {{ icons[action] | replace("ionicon", "ion-icon") | safe }} +{%- endmacro %} + +{% macro icon_small(action) -%} + {{ icons[action] | replace("ionicon", "ion-icon-small") | safe }} +{%- endmacro %} + +{% macro icon_big(action, alt) -%} + {{ icons[action] | replace("ionicon", "ion-icon-big") | safe }} +{%- endmacro %} +`; + const result = ejs.render(template, { icons }); + grunt.file.write(this.data.dest, result, { encoding: 'utf8' }); + grunt.log.ok(this.data.dest + " created"); }); grunt.loadNpmTasks('grunt-contrib-watch'); grunt.loadNpmTasks('grunt-contrib-copy'); grunt.loadNpmTasks('grunt-contrib-uglify'); + grunt.loadNpmTasks('grunt-image'); grunt.loadNpmTasks('grunt-contrib-jshint'); grunt.loadNpmTasks('grunt-contrib-concat'); grunt.loadNpmTasks('grunt-contrib-less'); grunt.loadNpmTasks('grunt-contrib-cssmin'); - grunt.loadNpmTasks('grunt-webfont'); grunt.loadNpmTasks('grunt-stylelint'); grunt.loadNpmTasks('grunt-eslint'); @@ -206,7 +240,9 @@ module.exports = function(grunt) { 'stylelint', 'copy', 'concat', + 'svg2jinja', 'uglify', + 'image', 'less:development', 'less:production' ]); diff --git a/searx/static/themes/simple/img/favicon.png b/searx/static/themes/simple/img/favicon.png Binary files differindex 36be5fc01..3b961014b 100644 --- a/searx/static/themes/simple/img/favicon.png +++ b/searx/static/themes/simple/img/favicon.png diff --git a/searx/static/themes/simple/js/searxng.head.js b/searx/static/themes/simple/js/searxng.head.js index d359a9174..21b1754bf 100644 --- a/searx/static/themes/simple/js/searxng.head.js +++ b/searx/static/themes/simple/js/searxng.head.js @@ -27,5 +27,10 @@ }; // update the css - d.getElementsByTagName("html")[0].className = (w.searxng.touch)?"js touch":"js"; + var hmtlElement = d.getElementsByTagName("html")[0]; + hmtlElement.classList.remove('no-js'); + hmtlElement.classList.add('js'); + if (w.searxng.touch) { + hmtlElement.classList.add('touch'); + } })(window, document);
\ No newline at end of file diff --git a/searx/static/themes/simple/js/searxng.head.min.js b/searx/static/themes/simple/js/searxng.head.min.js index af2f861e8..f42fcbe77 100644 --- a/searx/static/themes/simple/js/searxng.head.min.js +++ b/searx/static/themes/simple/js/searxng.head.min.js @@ -4,5 +4,5 @@ * (C) Copyright Contributors to the searx project (2014 - 2021). * SPDX-License-Identifier: AGPL-3.0-or-later */ -(function(t,e){"use strict";var a=e.currentScript||function(){var t=e.getElementsByTagName("script");return t[t.length-1]}();t.searxng={touch:"ontouchstart"in t||t.DocumentTouch&&document instanceof DocumentTouch||false,method:a.getAttribute("data-method"),autocompleter:a.getAttribute("data-autocompleter")==="true",search_on_category_select:a.getAttribute("data-search-on-category-select")==="true",infinite_scroll:a.getAttribute("data-infinite-scroll")==="true",hotkeys:a.getAttribute("data-hotkeys")==="true",static_path:a.getAttribute("data-static-path"),translations:JSON.parse(a.getAttribute("data-translations"))};e.getElementsByTagName("html")[0].className=t.searxng.touch?"js touch":"js"})(window,document); +(function(t,e){"use strict";var a=e.currentScript||function(){var t=e.getElementsByTagName("script");return t[t.length-1]}();t.searxng={touch:"ontouchstart"in t||t.DocumentTouch&&document instanceof DocumentTouch||false,method:a.getAttribute("data-method"),autocompleter:a.getAttribute("data-autocompleter")==="true",search_on_category_select:a.getAttribute("data-search-on-category-select")==="true",infinite_scroll:a.getAttribute("data-infinite-scroll")==="true",hotkeys:a.getAttribute("data-hotkeys")==="true",static_path:a.getAttribute("data-static-path"),translations:JSON.parse(a.getAttribute("data-translations"))};var r=e.getElementsByTagName("html")[0];r.classList.remove("no-js");r.classList.add("js");if(t.searxng.touch){r.classList.add("touch")}})(window,document); //# sourceMappingURL=searxng.head.min.js.map
\ No newline at end of file diff --git a/searx/static/themes/simple/js/searxng.head.min.js.map b/searx/static/themes/simple/js/searxng.head.min.js.map index a7533ce8b..5c841a70d 100644 --- a/searx/static/themes/simple/js/searxng.head.min.js.map +++ b/searx/static/themes/simple/js/searxng.head.min.js.map @@ -1 +1 @@ -{"version":3,"file":"searxng.head.min.js","sources":["searxng.head.js"],"names":["w","d","script","currentScript","scripts","getElementsByTagName","length","searxng","touch","DocumentTouch","document","method","getAttribute","autocompleter","search_on_category_select","infinite_scroll","hotkeys","static_path","translations","JSON","parse","className","window"],"mappings":";;;;;;CAOA,SAAUA,EAAGC,gBAIT,IAAIC,EAASD,EAAEE,eAAkB,WAC7B,IAAIC,EAAUH,EAAEI,qBAAqB,UACrC,OAAOD,EAAQA,EAAQE,OAAS,GAFH,GAMjCN,EAAEO,QAAU,CACRC,MAAS,iBAAkBR,GAAMA,EAAES,eAAiBC,oBAAoBD,eAAkB,MAC1FE,OAAQT,EAAOU,aAAa,eAC5BC,cAAeX,EAAOU,aAAa,wBAA0B,OAC7DE,0BAA2BZ,EAAOU,aAAa,oCAAsC,OACrFG,gBAAiBb,EAAOU,aAAa,0BAA4B,OACjEI,QAASd,EAAOU,aAAa,kBAAoB,OACjDK,YAAaf,EAAOU,aAAa,oBACjCM,aAAcC,KAAKC,MAAMlB,EAAOU,aAAa,uBAIjDX,EAAEI,qBAAqB,QAAQ,GAAGgB,UAAarB,EAAEO,QAAa,MAAE,WAAW,MAtB/E,CAuBGe,OAAQZ"}
\ No newline at end of file +{"version":3,"file":"searxng.head.min.js","sources":["searxng.head.js"],"names":["w","d","script","currentScript","scripts","getElementsByTagName","length","searxng","touch","DocumentTouch","document","method","getAttribute","autocompleter","search_on_category_select","infinite_scroll","hotkeys","static_path","translations","JSON","parse","hmtlElement","classList","remove","add","window"],"mappings":";;;;;;CAOA,SAAUA,EAAGC,gBAIT,IAAIC,EAASD,EAAEE,eAAkB,WAC7B,IAAIC,EAAUH,EAAEI,qBAAqB,UACrC,OAAOD,EAAQA,EAAQE,OAAS,GAFH,GAMjCN,EAAEO,QAAU,CACRC,MAAS,iBAAkBR,GAAMA,EAAES,eAAiBC,oBAAoBD,eAAkB,MAC1FE,OAAQT,EAAOU,aAAa,eAC5BC,cAAeX,EAAOU,aAAa,wBAA0B,OAC7DE,0BAA2BZ,EAAOU,aAAa,oCAAsC,OACrFG,gBAAiBb,EAAOU,aAAa,0BAA4B,OACjEI,QAASd,EAAOU,aAAa,kBAAoB,OACjDK,YAAaf,EAAOU,aAAa,oBACjCM,aAAcC,KAAKC,MAAMlB,EAAOU,aAAa,uBAIjD,IAAIS,EAAcpB,EAAEI,qBAAqB,QAAQ,GACjDgB,EAAYC,UAAUC,OAAO,SAC7BF,EAAYC,UAAUE,IAAI,MAC1B,GAAIxB,EAAEO,QAAQC,MAAO,CACjBa,EAAYC,UAAUE,IAAI,WA1BlC,CA4BGC,OAAQf"}
\ No newline at end of file diff --git a/searx/static/themes/simple/js/searxng.js b/searx/static/themes/simple/js/searxng.js index a65165bae..830c21d61 100644 --- a/searx/static/themes/simple/js/searxng.js +++ b/searx/static/themes/simple/js/searxng.js @@ -861,6 +861,7 @@ searxng.ready(function() { return false; }); + searxng.on(d.getElementById('safesearch'), 'change', submitIfQuery); searxng.on(d.getElementById('time_range'), 'change', submitIfQuery); searxng.on(d.getElementById('language'), 'change', submitIfQuery); } diff --git a/searx/static/themes/simple/js/searxng.min.js b/searx/static/themes/simple/js/searxng.min.js index a739d75e0..eafe89618 100644 --- a/searx/static/themes/simple/js/searxng.min.js +++ b/searx/static/themes/simple/js/searxng.min.js @@ -4,7 +4,7 @@ * (C) Copyright Contributors to the searx project (2014 - 2021). * SPDX-License-Identifier: AGPL-3.0-or-later */ -window.searxng=function(t,o){"use strict";if(t.Element){(function(e){e.matches=e.matches||e.matchesSelector||e.webkitMatchesSelector||e.msMatchesSelector||function(e){var t=this,n=(t.parentNode||t.document).querySelectorAll(e),i=-1;while(n[++i]&&n[i]!=t);return!!n[i]}})(Element.prototype)}function a(e,t,n){try{e.call(t,n)}catch(e){console.log(e)}}var s=window.searxng||{};s.on=function(i,e,r,t){t=t||false;if(typeof i!=="string"){i.addEventListener(e,r,t)}else{o.addEventListener(e,function(e){var t=e.target||e.srcElement,n=false;while(t&&t.matches&&t!==o&&!(n=t.matches(i)))t=t.parentElement;if(n)a(r,t,e)},t)}};s.ready=function(e){if(document.readyState!="loading"){e.call(t)}else{t.addEventListener("DOMContentLoaded",e.bind(t))}};s.http=function(e,t){var n=new XMLHttpRequest,i=function(){},r=function(){},o={then:function(e){i=e;return o},catch:function(e){r=e;return o}};try{n.open(e,t,true);n.onload=function(){if(n.status==200){i(n.response,n.responseType)}else{r(Error(n.statusText))}};n.onerror=function(){r(Error("Network Error"))};n.onabort=function(){r(Error("Transaction is aborted"))};n.send()}catch(e){r(e)}return o};s.loadStyle=function(e){var t=s.static_path+e,n="style_"+e.replace(".","_"),i=o.getElementById(n);if(i===null){i=o.createElement("link");i.setAttribute("id",n);i.setAttribute("rel","stylesheet");i.setAttribute("type","text/css");i.setAttribute("href",t);o.body.appendChild(i)}};s.loadScript=function(e,t){var n=s.static_path+e,i="script_"+e.replace(".","_"),r=o.getElementById(i);if(r===null){r=o.createElement("script");r.setAttribute("id",i);r.setAttribute("src",n);r.onload=t;r.onerror=function(){r.setAttribute("error","1")};o.body.appendChild(r)}else if(!r.hasAttribute("error")){try{t.apply(r,[])}catch(e){console.log(e)}}else{console.log("callback not executed : script '"+n+"' not loaded.")}};s.insertBefore=function(e,t){t.parentNode.insertBefore(e,t)};s.insertAfter=function(e,t){t.parentNode.insertAfter(e,t.nextSibling)};s.on(".close","click",function(){this.parentNode.classList.add("invisible")});return s}(window,document);searxng.ready(function(){function e(e){while(e!==undefined){if(e.classList.contains("detail")){return true}if(e.classList.contains("result")){return false}e=e.parentNode}return false}function n(e){while(e!==undefined){if(e.classList.contains("result")){return e}e=e.parentNode}return undefined}function i(e){return e&&e.classList.contains("result-images")}searxng.on(".result","click",function(t){if(!e(t.target)){r(this)(true);let e=n(t.target);if(i(e)){t.preventDefault();searxng.selectImage(e)}}});searxng.on(".result a","focus",function(t){if(!e(t.target)){let e=n(t.target);if(e&&e.getAttribute("data-vim-selected")===null){r(e)(true)}if(i(e)){searxng.selectImage(e)}}},true);var d={27:{key:"Escape",fun:o,des:"remove focus from the focused input",cat:"Control"},73:{key:"i",fun:p,des:"focus on the search input",cat:"Control"},66:{key:"b",fun:u(-window.innerHeight),des:"scroll one page up",cat:"Navigation"},70:{key:"f",fun:u(window.innerHeight),des:"scroll one page down",cat:"Navigation"},85:{key:"u",fun:u(-window.innerHeight/2),des:"scroll half a page up",cat:"Navigation"},68:{key:"d",fun:u(window.innerHeight/2),des:"scroll half a page down",cat:"Navigation"},71:{key:"g",fun:c(-document.body.scrollHeight,"top"),des:"scroll to the top of the page",cat:"Navigation"},86:{key:"v",fun:c(document.body.scrollHeight,"bottom"),des:"scroll to the bottom of the page",cat:"Navigation"},75:{key:"k",fun:r("up"),des:"select previous search result",cat:"Results"},74:{key:"j",fun:r("down"),des:"select next search result",cat:"Results"},80:{key:"p",fun:l(),des:"go to previous page",cat:"Results"},78:{key:"n",fun:s(),des:"go to next page",cat:"Results"},79:{key:"o",fun:h(false),des:"open search result",cat:"Results"},84:{key:"t",fun:h(true),des:"open the result in a new tab",cat:"Results"},82:{key:"r",fun:t,des:"reload page from the server",cat:"Control"},72:{key:"h",fun:m,des:"toggle help window",cat:"Other"}};if(searxng.hotkeys){searxng.on(document,"keydown",function(e){if(Object.prototype.hasOwnProperty.call(d,e.keyCode)&&!e.ctrlKey&&!e.altKey&&!e.shiftKey&&!e.metaKey){var t=e.target.tagName.toLowerCase();if(e.keyCode===27){d[e.keyCode].fun(e)}else{if(e.target===document.body||t==="a"||t==="button"){e.preventDefault();d[e.keyCode].fun()}}}})}function r(d){return function(e){var t=document.querySelector(".result[data-vim-selected]"),n=d;if(t===null){t=document.querySelector(".result");if(t===null){return}if(d==="down"||d==="up"){n=t}}var i,r=document.querySelectorAll(".result");if(typeof n!=="string"){i=n}else{switch(n){case"visible":var o=document.documentElement.scrollTop||document.body.scrollTop;var a=o+document.documentElement.clientHeight;for(var s=0;s<r.length;s++){i=r[s];var l=i.offsetTop;var u=l+i.clientHeight;if(u<=a&&l>o){break}}break;case"down":i=t.nextElementSibling;if(i===null){i=r[0]}break;case"up":i=t.previousElementSibling;if(i===null){i=r[r.length-1]}break;case"bottom":i=r[r.length-1];break;case"top":default:i=r[0]}}if(i){t.removeAttribute("data-vim-selected");i.setAttribute("data-vim-selected","true");var c=i.querySelector("h3 a")||i.querySelector("a");if(c!==null){c.focus()}if(!e){f()}}}}function t(){document.location.reload(true)}function o(e){const t=e.target.tagName.toLowerCase();if(document.activeElement&&(t==="input"||t==="select"||t==="textarea")){document.activeElement.blur()}else{searxng.closeDetail()}}function a(t){return function(){var e=document.querySelector(t);if(e){e.click()}}}function s(){return a('nav#pagination .next_page button[type="submit"]')}function l(){return a('nav#pagination .previous_page button[type="submit"]')}function f(){var e=document.querySelector(".result[data-vim-selected]");if(e===null){return}var t=document.documentElement.scrollTop||document.body.scrollTop,n=document.documentElement.clientHeight,i=e.offsetTop,r=i+e.clientHeight,o=120;if(e.previousElementSibling===null&&r<n){window.scroll(window.scrollX,0);return}if(t>i-o){window.scroll(window.scrollX,i-o)}else{var a=t+n;if(a<r+o){window.scroll(window.scrollX,r-n+o)}}}function u(e){return function(){window.scrollBy(0,e);r("visible")()}}function c(e,t){return function(){window.scrollTo(0,e);r(t)()}}function p(){window.scrollTo(0,0);document.querySelector("#q").focus()}function h(n){return function(){var e=document.querySelector(".result[data-vim-selected] h3 a");if(e===null){e=document.querySelector(".result[data-vim-selected] > a")}if(e!==null){var t=e.getAttribute("href");if(n){window.open(t)}else{window.location.href=t}}}}function g(e){var n={};for(var t in d){var i=d[t];n[i.cat]=n[i.cat]||[];n[i.cat].push(i)}var r=Object.keys(n).sort(function(e,t){return n[t].length-n[e].length});if(r.length===0){return}var o='<a href="#" class="close" aria-label="close" title="close">×</a>';o+="<h3>How to navigate searx with Vim-like hotkeys</h3>";o+="<table>";for(var a=0;a<r.length;a++){var s=n[r[a]];var l=a===r.length-1;var u=a%2===0;if(u){o+="<tr>"}o+="<td>";o+="<h4>"+s[0].cat+"</h4>";o+='<ul class="list-unstyled">';for(var c in s){o+="<li><kbd>"+s[c].key+"</kbd> "+s[c].des+"</li>"}o+="</ul>";o+="</td>";if(!u||l){o+="</tr>"}}o+="</table>";e.innerHTML=o}function m(){var e=document.querySelector("#vim-hotkeys-help");if(e===undefined||e===null){e=document.createElement("div");e.id="vim-hotkeys-help";e.className="dialog-modal";g(e);g(e);g(e);var t=document.getElementsByTagName("body")[0];t.appendChild(e)}else{e.classList.toggle("invisible");return}}searxng.scrollPageToSelected=f;searxng.selectNext=r("down");searxng.selectPrevious=r("up")});(function(e,t,n){"use strict";n.ready(function(){n.on(".searxng_init_map","click",function(e){this.classList.remove("searxng_init_map");var d=this.dataset.leafletTarget;var f=parseFloat(this.dataset.mapLon);var p=parseFloat(this.dataset.mapLat);var h=parseFloat(this.dataset.mapZoom);var g=JSON.parse(this.dataset.mapBoundingbox);var m=JSON.parse(this.dataset.mapGeojson);n.loadStyle("css/leaflet.css");n.loadScript("js/leaflet.js",function(){var e=null;if(g){var t=L.latLng(g[0],g[2]);var n=L.latLng(g[1],g[3]);e=L.latLngBounds(t,n)}var i=L.map(d);var r="https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png";var o='Map data © <a href="https://openstreetmap.org">OpenStreetMap</a> contributors';var a=new L.TileLayer(r,{minZoom:1,maxZoom:19,attribution:o});var s="https://maps.wikimedia.org/osm-intl/{z}/{x}/{y}.png";var l='Wikimedia maps | Maps data © <a href="https://openstreetmap.org">OpenStreetMap contributors</a>';var u=new L.TileLayer(s,{minZoom:1,maxZoom:19,attribution:l});if(e){setTimeout(function(){i.fitBounds(e,{maxZoom:17})},0)}else if(f&&p){if(h){i.setView(new L.latLng(p,f),h)}else{i.setView(new L.latLng(p,f),8)}}i.addLayer(a);var c={"OSM Mapnik":a,"OSM Wikimedia":u};L.control.layers(c).addTo(i);if(m){L.geoJson(m).addTo(i)}});e.preventDefault()})})})(window,document,window.searxng);(function(e,o,a){"use strict";a.ready(function(){let r=null;function e(){if(r==null){a.http("GET","engine_descriptions.json").then(function(e){r=JSON.parse(e);for(const[t,n]of Object.entries(r)){let e=o.querySelectorAll('[data-engine-name="'+t+'"] .engine-description');for(const i of e){let e=" (<i>"+a.translations["Source"]+": "+n[1]+"</i>)";i.innerHTML=n[0]+e}}})}}if(o.querySelector('body[class="preferences_endpoint"]')){for(const t of o.querySelectorAll("[data-engine-name]")){a.on(t,"mouseenter",e)}}})})(window,document,window.searxng);(function(e,s,l){"use strict";l.ready(function(){l.image_thumbnail_layout=new l.ImageLayout("#urls","#urls .result-images","img.image_thumbnail",14,6,200);l.image_thumbnail_layout.watch();l.on(".btn-collapse","click",function(){var e=this.getAttribute("data-btn-text-collapsed");var t=this.getAttribute("data-btn-text-not-collapsed");var n=this.getAttribute("data-target");var i=s.querySelector(n);var r=this.innerHTML;if(this.classList.contains("collapsed")){r=r.replace(e,t)}else{r=r.replace(t,e)}this.innerHTML=r;this.classList.toggle("collapsed");i.classList.toggle("invisible")});l.on(".media-loader","click",function(){var e=this.getAttribute("data-target");var t=s.querySelector(e+" > iframe");var n=t.getAttribute("src");if(n===null||n===undefined||n===false){t.setAttribute("src",t.getAttribute("data-src"))}});l.selectImage=function(e){if(e){const t=e.querySelector(".result-images-source img");const n=e.querySelector(".image_thumbnail");const i=e.querySelector(".detail");if(t){const r=t.getAttribute("data-src");if(r){const o=s.createElement("div");const a=new Image;o.classList.add("loader");i.appendChild(o);a.onload=e=>{t.src=r;o.remove()};a.onerror=e=>{o.remove()};a.src=r;t.src=n.src;t.removeAttribute("data-src")}}}s.getElementById("results").classList.add("image-detail-open");l.image_thumbnail_layout.align();l.scrollPageToSelected()};l.closeDetail=function(e){s.getElementById("results").classList.remove("image-detail-open");l.image_thumbnail_layout.align();l.scrollPageToSelected()};l.on(".result-detail-close","click",e=>{e.preventDefault();l.closeDetail()});l.on(".result-detail-previous","click",e=>l.selectPrevious(false));l.on(".result-detail-next","click",e=>l.selectNext(false));e.addEventListener("scroll",function(){var e=s.getElementById("backToTop"),t=document.documentElement.scrollTop||document.body.scrollTop,n=s.getElementById("results");if(e!==null){if(t>=100){n.classList.add("scrolling")}else{n.classList.remove("scrolling")}}},true)})})(window,document,window.searxng);(function(t,n,i){"use strict";var r=true,o="q",a;function s(e){if(e.setSelectionRange){var t=e.value.length;e.setSelectionRange(t,t)}}function l(){if(a.value.length>0){var e=document.getElementById("search");setTimeout(e.submit.bind(e),0)}}function u(e){var t=document.getElementById("clear_search");var n=function(){if(e.value.length===0){t.classList.add("empty")}else{t.classList.remove("empty")}};n();t.addEventListener("click",function(){e.value="";e.focus();n()});e.addEventListener("keyup",n,false)}i.ready(function(){a=n.getElementById(o);function e(){if(r){s(a);r=false}else{}}if(a!==null){u(a);if(i.autocompleter){i.autocomplete=AutoComplete.call(t,{Url:"./autocompleter",EmptyMessage:i.translations.no_item_found,HttpMethod:i.method,HttpHeaders:{"Content-type":"application/x-www-form-urlencoded","X-Requested-With":"XMLHttpRequest"},MinChars:4,Delay:300},"#"+o);t.addEventListener("resize",function(){var e=new CustomEvent("position");a.dispatchEvent(e)})}a.addEventListener("focus",e,false);a.focus()}if(a!==null&&n.querySelector(".help")!=null&&i.search_on_category_select){n.querySelector(".help").className="invisible";i.on("#categories input","change",function(){var e,t=n.querySelectorAll('#categories input[type="checkbox"]');for(e=0;e<t.length;e++){if(t[e]!==this&&t[e].checked){t[e].click()}}if(!this.checked){this.click()}l();return false});i.on(n.getElementById("time_range"),"change",l);i.on(n.getElementById("language"),"change",l)}})})(window,document,window.searxng); +window.searxng=function(t,o){"use strict";if(t.Element){(function(e){e.matches=e.matches||e.matchesSelector||e.webkitMatchesSelector||e.msMatchesSelector||function(e){var t=this,n=(t.parentNode||t.document).querySelectorAll(e),i=-1;while(n[++i]&&n[i]!=t);return!!n[i]}})(Element.prototype)}function a(e,t,n){try{e.call(t,n)}catch(e){console.log(e)}}var s=window.searxng||{};s.on=function(i,e,r,t){t=t||false;if(typeof i!=="string"){i.addEventListener(e,r,t)}else{o.addEventListener(e,function(e){var t=e.target||e.srcElement,n=false;while(t&&t.matches&&t!==o&&!(n=t.matches(i)))t=t.parentElement;if(n)a(r,t,e)},t)}};s.ready=function(e){if(document.readyState!="loading"){e.call(t)}else{t.addEventListener("DOMContentLoaded",e.bind(t))}};s.http=function(e,t){var n=new XMLHttpRequest,i=function(){},r=function(){},o={then:function(e){i=e;return o},catch:function(e){r=e;return o}};try{n.open(e,t,true);n.onload=function(){if(n.status==200){i(n.response,n.responseType)}else{r(Error(n.statusText))}};n.onerror=function(){r(Error("Network Error"))};n.onabort=function(){r(Error("Transaction is aborted"))};n.send()}catch(e){r(e)}return o};s.loadStyle=function(e){var t=s.static_path+e,n="style_"+e.replace(".","_"),i=o.getElementById(n);if(i===null){i=o.createElement("link");i.setAttribute("id",n);i.setAttribute("rel","stylesheet");i.setAttribute("type","text/css");i.setAttribute("href",t);o.body.appendChild(i)}};s.loadScript=function(e,t){var n=s.static_path+e,i="script_"+e.replace(".","_"),r=o.getElementById(i);if(r===null){r=o.createElement("script");r.setAttribute("id",i);r.setAttribute("src",n);r.onload=t;r.onerror=function(){r.setAttribute("error","1")};o.body.appendChild(r)}else if(!r.hasAttribute("error")){try{t.apply(r,[])}catch(e){console.log(e)}}else{console.log("callback not executed : script '"+n+"' not loaded.")}};s.insertBefore=function(e,t){t.parentNode.insertBefore(e,t)};s.insertAfter=function(e,t){t.parentNode.insertAfter(e,t.nextSibling)};s.on(".close","click",function(){this.parentNode.classList.add("invisible")});return s}(window,document);searxng.ready(function(){function e(e){while(e!==undefined){if(e.classList.contains("detail")){return true}if(e.classList.contains("result")){return false}e=e.parentNode}return false}function n(e){while(e!==undefined){if(e.classList.contains("result")){return e}e=e.parentNode}return undefined}function i(e){return e&&e.classList.contains("result-images")}searxng.on(".result","click",function(t){if(!e(t.target)){r(this)(true);let e=n(t.target);if(i(e)){t.preventDefault();searxng.selectImage(e)}}});searxng.on(".result a","focus",function(t){if(!e(t.target)){let e=n(t.target);if(e&&e.getAttribute("data-vim-selected")===null){r(e)(true)}if(i(e)){searxng.selectImage(e)}}},true);var d={27:{key:"Escape",fun:o,des:"remove focus from the focused input",cat:"Control"},73:{key:"i",fun:p,des:"focus on the search input",cat:"Control"},66:{key:"b",fun:u(-window.innerHeight),des:"scroll one page up",cat:"Navigation"},70:{key:"f",fun:u(window.innerHeight),des:"scroll one page down",cat:"Navigation"},85:{key:"u",fun:u(-window.innerHeight/2),des:"scroll half a page up",cat:"Navigation"},68:{key:"d",fun:u(window.innerHeight/2),des:"scroll half a page down",cat:"Navigation"},71:{key:"g",fun:c(-document.body.scrollHeight,"top"),des:"scroll to the top of the page",cat:"Navigation"},86:{key:"v",fun:c(document.body.scrollHeight,"bottom"),des:"scroll to the bottom of the page",cat:"Navigation"},75:{key:"k",fun:r("up"),des:"select previous search result",cat:"Results"},74:{key:"j",fun:r("down"),des:"select next search result",cat:"Results"},80:{key:"p",fun:l(),des:"go to previous page",cat:"Results"},78:{key:"n",fun:s(),des:"go to next page",cat:"Results"},79:{key:"o",fun:h(false),des:"open search result",cat:"Results"},84:{key:"t",fun:h(true),des:"open the result in a new tab",cat:"Results"},82:{key:"r",fun:t,des:"reload page from the server",cat:"Control"},72:{key:"h",fun:m,des:"toggle help window",cat:"Other"}};if(searxng.hotkeys){searxng.on(document,"keydown",function(e){if(Object.prototype.hasOwnProperty.call(d,e.keyCode)&&!e.ctrlKey&&!e.altKey&&!e.shiftKey&&!e.metaKey){var t=e.target.tagName.toLowerCase();if(e.keyCode===27){d[e.keyCode].fun(e)}else{if(e.target===document.body||t==="a"||t==="button"){e.preventDefault();d[e.keyCode].fun()}}}})}function r(d){return function(e){var t=document.querySelector(".result[data-vim-selected]"),n=d;if(t===null){t=document.querySelector(".result");if(t===null){return}if(d==="down"||d==="up"){n=t}}var i,r=document.querySelectorAll(".result");if(typeof n!=="string"){i=n}else{switch(n){case"visible":var o=document.documentElement.scrollTop||document.body.scrollTop;var a=o+document.documentElement.clientHeight;for(var s=0;s<r.length;s++){i=r[s];var l=i.offsetTop;var u=l+i.clientHeight;if(u<=a&&l>o){break}}break;case"down":i=t.nextElementSibling;if(i===null){i=r[0]}break;case"up":i=t.previousElementSibling;if(i===null){i=r[r.length-1]}break;case"bottom":i=r[r.length-1];break;case"top":default:i=r[0]}}if(i){t.removeAttribute("data-vim-selected");i.setAttribute("data-vim-selected","true");var c=i.querySelector("h3 a")||i.querySelector("a");if(c!==null){c.focus()}if(!e){f()}}}}function t(){document.location.reload(true)}function o(e){const t=e.target.tagName.toLowerCase();if(document.activeElement&&(t==="input"||t==="select"||t==="textarea")){document.activeElement.blur()}else{searxng.closeDetail()}}function a(t){return function(){var e=document.querySelector(t);if(e){e.click()}}}function s(){return a('nav#pagination .next_page button[type="submit"]')}function l(){return a('nav#pagination .previous_page button[type="submit"]')}function f(){var e=document.querySelector(".result[data-vim-selected]");if(e===null){return}var t=document.documentElement.scrollTop||document.body.scrollTop,n=document.documentElement.clientHeight,i=e.offsetTop,r=i+e.clientHeight,o=120;if(e.previousElementSibling===null&&r<n){window.scroll(window.scrollX,0);return}if(t>i-o){window.scroll(window.scrollX,i-o)}else{var a=t+n;if(a<r+o){window.scroll(window.scrollX,r-n+o)}}}function u(e){return function(){window.scrollBy(0,e);r("visible")()}}function c(e,t){return function(){window.scrollTo(0,e);r(t)()}}function p(){window.scrollTo(0,0);document.querySelector("#q").focus()}function h(n){return function(){var e=document.querySelector(".result[data-vim-selected] h3 a");if(e===null){e=document.querySelector(".result[data-vim-selected] > a")}if(e!==null){var t=e.getAttribute("href");if(n){window.open(t)}else{window.location.href=t}}}}function g(e){var n={};for(var t in d){var i=d[t];n[i.cat]=n[i.cat]||[];n[i.cat].push(i)}var r=Object.keys(n).sort(function(e,t){return n[t].length-n[e].length});if(r.length===0){return}var o='<a href="#" class="close" aria-label="close" title="close">×</a>';o+="<h3>How to navigate searx with Vim-like hotkeys</h3>";o+="<table>";for(var a=0;a<r.length;a++){var s=n[r[a]];var l=a===r.length-1;var u=a%2===0;if(u){o+="<tr>"}o+="<td>";o+="<h4>"+s[0].cat+"</h4>";o+='<ul class="list-unstyled">';for(var c in s){o+="<li><kbd>"+s[c].key+"</kbd> "+s[c].des+"</li>"}o+="</ul>";o+="</td>";if(!u||l){o+="</tr>"}}o+="</table>";e.innerHTML=o}function m(){var e=document.querySelector("#vim-hotkeys-help");if(e===undefined||e===null){e=document.createElement("div");e.id="vim-hotkeys-help";e.className="dialog-modal";g(e);g(e);g(e);var t=document.getElementsByTagName("body")[0];t.appendChild(e)}else{e.classList.toggle("invisible");return}}searxng.scrollPageToSelected=f;searxng.selectNext=r("down");searxng.selectPrevious=r("up")});(function(e,t,n){"use strict";n.ready(function(){n.on(".searxng_init_map","click",function(e){this.classList.remove("searxng_init_map");var d=this.dataset.leafletTarget;var f=parseFloat(this.dataset.mapLon);var p=parseFloat(this.dataset.mapLat);var h=parseFloat(this.dataset.mapZoom);var g=JSON.parse(this.dataset.mapBoundingbox);var m=JSON.parse(this.dataset.mapGeojson);n.loadStyle("css/leaflet.css");n.loadScript("js/leaflet.js",function(){var e=null;if(g){var t=L.latLng(g[0],g[2]);var n=L.latLng(g[1],g[3]);e=L.latLngBounds(t,n)}var i=L.map(d);var r="https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png";var o='Map data © <a href="https://openstreetmap.org">OpenStreetMap</a> contributors';var a=new L.TileLayer(r,{minZoom:1,maxZoom:19,attribution:o});var s="https://maps.wikimedia.org/osm-intl/{z}/{x}/{y}.png";var l='Wikimedia maps | Maps data © <a href="https://openstreetmap.org">OpenStreetMap contributors</a>';var u=new L.TileLayer(s,{minZoom:1,maxZoom:19,attribution:l});if(e){setTimeout(function(){i.fitBounds(e,{maxZoom:17})},0)}else if(f&&p){if(h){i.setView(new L.latLng(p,f),h)}else{i.setView(new L.latLng(p,f),8)}}i.addLayer(a);var c={"OSM Mapnik":a,"OSM Wikimedia":u};L.control.layers(c).addTo(i);if(m){L.geoJson(m).addTo(i)}});e.preventDefault()})})})(window,document,window.searxng);(function(e,o,a){"use strict";a.ready(function(){let r=null;function e(){if(r==null){a.http("GET","engine_descriptions.json").then(function(e){r=JSON.parse(e);for(const[t,n]of Object.entries(r)){let e=o.querySelectorAll('[data-engine-name="'+t+'"] .engine-description');for(const i of e){let e=" (<i>"+a.translations["Source"]+": "+n[1]+"</i>)";i.innerHTML=n[0]+e}}})}}if(o.querySelector('body[class="preferences_endpoint"]')){for(const t of o.querySelectorAll("[data-engine-name]")){a.on(t,"mouseenter",e)}}})})(window,document,window.searxng);(function(e,s,l){"use strict";l.ready(function(){l.image_thumbnail_layout=new l.ImageLayout("#urls","#urls .result-images","img.image_thumbnail",14,6,200);l.image_thumbnail_layout.watch();l.on(".btn-collapse","click",function(){var e=this.getAttribute("data-btn-text-collapsed");var t=this.getAttribute("data-btn-text-not-collapsed");var n=this.getAttribute("data-target");var i=s.querySelector(n);var r=this.innerHTML;if(this.classList.contains("collapsed")){r=r.replace(e,t)}else{r=r.replace(t,e)}this.innerHTML=r;this.classList.toggle("collapsed");i.classList.toggle("invisible")});l.on(".media-loader","click",function(){var e=this.getAttribute("data-target");var t=s.querySelector(e+" > iframe");var n=t.getAttribute("src");if(n===null||n===undefined||n===false){t.setAttribute("src",t.getAttribute("data-src"))}});l.selectImage=function(e){if(e){const t=e.querySelector(".result-images-source img");const n=e.querySelector(".image_thumbnail");const i=e.querySelector(".detail");if(t){const r=t.getAttribute("data-src");if(r){const o=s.createElement("div");const a=new Image;o.classList.add("loader");i.appendChild(o);a.onload=e=>{t.src=r;o.remove()};a.onerror=e=>{o.remove()};a.src=r;t.src=n.src;t.removeAttribute("data-src")}}}s.getElementById("results").classList.add("image-detail-open");l.image_thumbnail_layout.align();l.scrollPageToSelected()};l.closeDetail=function(e){s.getElementById("results").classList.remove("image-detail-open");l.image_thumbnail_layout.align();l.scrollPageToSelected()};l.on(".result-detail-close","click",e=>{e.preventDefault();l.closeDetail()});l.on(".result-detail-previous","click",e=>l.selectPrevious(false));l.on(".result-detail-next","click",e=>l.selectNext(false));e.addEventListener("scroll",function(){var e=s.getElementById("backToTop"),t=document.documentElement.scrollTop||document.body.scrollTop,n=s.getElementById("results");if(e!==null){if(t>=100){n.classList.add("scrolling")}else{n.classList.remove("scrolling")}}},true)})})(window,document,window.searxng);(function(t,n,i){"use strict";var r=true,o="q",a;function s(e){if(e.setSelectionRange){var t=e.value.length;e.setSelectionRange(t,t)}}function l(){if(a.value.length>0){var e=document.getElementById("search");setTimeout(e.submit.bind(e),0)}}function u(e){var t=document.getElementById("clear_search");var n=function(){if(e.value.length===0){t.classList.add("empty")}else{t.classList.remove("empty")}};n();t.addEventListener("click",function(){e.value="";e.focus();n()});e.addEventListener("keyup",n,false)}i.ready(function(){a=n.getElementById(o);function e(){if(r){s(a);r=false}else{}}if(a!==null){u(a);if(i.autocompleter){i.autocomplete=AutoComplete.call(t,{Url:"./autocompleter",EmptyMessage:i.translations.no_item_found,HttpMethod:i.method,HttpHeaders:{"Content-type":"application/x-www-form-urlencoded","X-Requested-With":"XMLHttpRequest"},MinChars:4,Delay:300},"#"+o);t.addEventListener("resize",function(){var e=new CustomEvent("position");a.dispatchEvent(e)})}a.addEventListener("focus",e,false);a.focus()}if(a!==null&&n.querySelector(".help")!=null&&i.search_on_category_select){n.querySelector(".help").className="invisible";i.on("#categories input","change",function(){var e,t=n.querySelectorAll('#categories input[type="checkbox"]');for(e=0;e<t.length;e++){if(t[e]!==this&&t[e].checked){t[e].click()}}if(!this.checked){this.click()}l();return false});i.on(n.getElementById("safesearch"),"change",l);i.on(n.getElementById("time_range"),"change",l);i.on(n.getElementById("language"),"change",l)}})})(window,document,window.searxng); /** * * Google Image Layout v0.0.1 diff --git a/searx/static/themes/simple/js/searxng.min.js.map b/searx/static/themes/simple/js/searxng.min.js.map index 3f941fbce..dbf4eea89 100644 --- a/searx/static/themes/simple/js/searxng.min.js.map +++ b/searx/static/themes/simple/js/searxng.min.js.map @@ -1 +1 @@ -{"version":3,"file":"searxng.min.js","sources":["searxng.js"],"names":["window","searxng","w","d","Element","ElementPrototype","matches","matchesSelector","webkitMatchesSelector","msMatchesSelector","selector","node","this","nodes","parentNode","document","querySelectorAll","i","prototype","callbackSafe","callback","el","e","call","exception","console","log","on","obj","eventType","useCapture","addEventListener","target","srcElement","found","parentElement","ready","readyState","bind","http","method","url","req","XMLHttpRequest","resolve","reject","promise","then","catch","open","onload","status","response","responseType","Error","statusText","onerror","onabort","send","ex","loadStyle","src","path","static_path","id","replace","s","getElementById","createElement","setAttribute","body","appendChild","loadScript","hasAttribute","apply","insertBefore","newNode","referenceNode","insertAfter","nextSibling","classList","add","isElementInDetail","undefined","contains","getResultElement","isImageResult","resultElement","highlightResult","preventDefault","selectImage","getAttribute","vimKeys","27","key","fun","removeFocus","des","cat","73","searchInputFocus","66","scrollPage","innerHeight","70","85","68","71","scrollPageTo","scrollHeight","86","75","74","80","GoToPreviousPage","78","GoToNextPage","79","openResult","84","82","reloadPage","72","toggleHelp","hotkeys","Object","hasOwnProperty","keyCode","ctrlKey","altKey","shiftKey","metaKey","tagName","toLowerCase","which","noScroll","current","querySelector","effectiveWhich","next","results","top","documentElement","scrollTop","bot","clientHeight","length","etop","offsetTop","ebot","nextElementSibling","previousElementSibling","removeAttribute","link","focus","scrollPageToSelected","location","reload","activeElement","blur","closeDetail","pageButtonClick","css_selector","button","click","sel","wtop","wheight","offset","scroll","scrollX","wbot","amount","scrollBy","position","nav","scrollTo","newTab","href","initHelpContent","divElement","categories","k","push","sorted","keys","sort","a","b","html","lastCategory","first","cj","innerHTML","helpPanel","className","getElementsByTagName","toggle","selectNext","selectPrevious","event","remove","leaflet_target","dataset","leafletTarget","map_lon","parseFloat","mapLon","map_lat","mapLat","map_zoom","mapZoom","map_boundingbox","JSON","parse","mapBoundingbox","map_geojson","mapGeojson","map_bounds","southWest","L","latLng","northEast","latLngBounds","map","osmMapnikUrl","osmMapnikAttrib","osmMapnik","TileLayer","minZoom","maxZoom","attribution","osmWikimediaUrl","osmWikimediaAttrib","osmWikimedia","setTimeout","fitBounds","setView","addLayer","baseLayers","OSM Mapnik","OSM Wikimedia","control","layers","addTo","geoJson","engine_descriptions","load_engine_descriptions","content","engine_name","description","entries","elements","element","source","translations","image_thumbnail_layout","ImageLayout","watch","btnLabelCollapsed","btnLabelNotCollapsed","targetElement","iframe_load","srctest","imgElement","thumbnailElement","detailElement","imgSrc","loader","imgLoader","Image","align","firstFocus","qinput_id","qinput","placeCursorAtEnd","setSelectionRange","len","value","submitIfQuery","search","submit","createClearButton","cs","updateClearButton","placeCursorAtEndOnce","autocompleter","autocomplete","AutoComplete","Url","EmptyMessage","no_item_found","HttpMethod","HttpHeaders","Content-type","X-Requested-With","MinChars","Delay","CustomEvent","dispatchEvent","search_on_category_select","checked","container_selector","results_selector","img_selector","verticalMargin","horizontalMargin","maxHeight","isAlignDone","_getHeigth","images","width","img","r","naturalWidth","naturalHeight","_setSize","height","imgWidth","imagesLength","resultNode","style","marginLeft","marginTop","marginRight","marginBottom","_alignImgs","imgGroup","isSearching","slice","h","containerElement","containerCompStyles","getComputedStyle","containerPaddingLeft","parseInt","getPropertyValue","containerPaddingRight","containerWidth","clientWidth","Math","min","results_selectorNode","results_length","previous","results_nodes","throttleAlign","f","exports","module","define","amd","g","global","self","n","t","o","c","require","u","code","p","1","ConditionOperator","EventType","params","Array","isArray","forEach","input","specificParams","merge","defaults","DOMResults","create","Input","nodeName","match","_Position","$Listeners","_Blur","destroy","_Focus","keyup","KEYUP","keydown","KEYDOWN","getEventsByType","type","mappings","KeyboardMappings","Event","eventIdentifier","condition","mapping","Operator","AND","OR","Not","Is","From","To","name","Conditions","Callback","makeRequest","callbackErr","propertyHttpHeaders","getOwnPropertyNames","request","_HttpMethod","_Url","queryParams","_Pre","queryParamsStringify","encodeURIComponent","_QueryArg","indexOf","setRequestHeader","onreadystatechange","$Cache","ajax","timeout","$AjaxTimer","clearTimeout","Request","abort","cache","_Cache","removeEventListener","removeChild","tmp","arguments","Highlight","getRegex","RegExp","transform","Limit","QueryArg","Enter","liActive","_Select","KeyUpAndDown_down","KeyUpAndDown_up","last","active","currentIndex","children","lisCount","item","AlphaNum","oldValue","currentValue","_MinChars","_Render","_Post","_Open","_Error","_Close","_EmptyMessage","emptyMessage","_Limit","limit","isNaN","minchars","_Highlight","label","now","li","onclick","offsetHeight","offsetLeft","ul","_RenderRaw","_RenderResponseItems","hasChildNodes","childNodes","reverse","abs","Label","Value","returnResponse","json"],"mappings":"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"}
\ No newline at end of file +{"version":3,"file":"searxng.min.js","sources":["searxng.js"],"names":["window","searxng","w","d","Element","ElementPrototype","matches","matchesSelector","webkitMatchesSelector","msMatchesSelector","selector","node","this","nodes","parentNode","document","querySelectorAll","i","prototype","callbackSafe","callback","el","e","call","exception","console","log","on","obj","eventType","useCapture","addEventListener","target","srcElement","found","parentElement","ready","readyState","bind","http","method","url","req","XMLHttpRequest","resolve","reject","promise","then","catch","open","onload","status","response","responseType","Error","statusText","onerror","onabort","send","ex","loadStyle","src","path","static_path","id","replace","s","getElementById","createElement","setAttribute","body","appendChild","loadScript","hasAttribute","apply","insertBefore","newNode","referenceNode","insertAfter","nextSibling","classList","add","isElementInDetail","undefined","contains","getResultElement","isImageResult","resultElement","highlightResult","let","preventDefault","selectImage","getAttribute","vimKeys","27","key","fun","removeFocus","des","cat","73","searchInputFocus","66","scrollPage","innerHeight","70","85","68","71","scrollPageTo","scrollHeight","86","75","74","80","GoToPreviousPage","78","GoToNextPage","79","openResult","84","82","reloadPage","72","toggleHelp","hotkeys","Object","hasOwnProperty","keyCode","ctrlKey","altKey","shiftKey","metaKey","tagName","toLowerCase","which","noScroll","current","querySelector","effectiveWhich","next","results","top","documentElement","scrollTop","bot","clientHeight","length","etop","offsetTop","ebot","nextElementSibling","previousElementSibling","removeAttribute","link","focus","scrollPageToSelected","location","reload","activeElement","blur","closeDetail","pageButtonClick","css_selector","button","click","sel","wtop","wheight","offset","scroll","scrollX","wbot","amount","scrollBy","position","nav","scrollTo","newTab","href","initHelpContent","divElement","categories","k","push","sorted","keys","sort","a","b","html","lastCategory","first","cj","innerHTML","helpPanel","className","getElementsByTagName","toggle","selectNext","selectPrevious","event","remove","leaflet_target","dataset","leafletTarget","map_lon","parseFloat","mapLon","map_lat","mapLat","map_zoom","mapZoom","map_boundingbox","JSON","parse","mapBoundingbox","map_geojson","mapGeojson","map_bounds","southWest","L","latLng","northEast","latLngBounds","map","osmMapnikUrl","osmMapnikAttrib","osmMapnik","TileLayer","minZoom","maxZoom","attribution","osmWikimediaUrl","osmWikimediaAttrib","osmWikimedia","setTimeout","fitBounds","setView","addLayer","baseLayers","OSM Mapnik","OSM Wikimedia","control","layers","addTo","geoJson","engine_descriptions","load_engine_descriptions","content","engine_name","description","entries","elements","element","source","translations","image_thumbnail_layout","ImageLayout","watch","btnLabelCollapsed","btnLabelNotCollapsed","targetElement","iframe_load","srctest","imgElement","thumbnailElement","detailElement","imgSrc","loader","imgLoader","Image","align","firstFocus","qinput_id","qinput","placeCursorAtEnd","setSelectionRange","len","value","submitIfQuery","search","submit","createClearButton","cs","updateClearButton","placeCursorAtEndOnce","autocompleter","autocomplete","AutoComplete","Url","EmptyMessage","no_item_found","HttpMethod","HttpHeaders","Content-type","X-Requested-With","MinChars","Delay","CustomEvent","dispatchEvent","search_on_category_select","checked","container_selector","results_selector","img_selector","verticalMargin","horizontalMargin","maxHeight","isAlignDone","_getHeigth","images","width","img","r","naturalWidth","naturalHeight","_setSize","height","imgWidth","imagesLength","resultNode","style","marginLeft","marginTop","marginRight","marginBottom","_alignImgs","imgGroup","isSearching","slice","h","containerElement","containerCompStyles","getComputedStyle","containerPaddingLeft","parseInt","getPropertyValue","containerPaddingRight","containerWidth","clientWidth","Math","min","results_selectorNode","results_length","previous","results_nodes","throttleAlign","f","exports","module","define","amd","g","global","self","n","t","o","c","require","u","code","p","1","ConditionOperator","EventType","params","Array","isArray","forEach","input","specificParams","merge","defaults","DOMResults","create","Input","nodeName","match","_Position","$Listeners","_Blur","destroy","_Focus","keyup","KEYUP","keydown","KEYDOWN","getEventsByType","type","mappings","KeyboardMappings","Event","eventIdentifier","condition","mapping","Operator","AND","OR","Not","Is","From","To","name","Conditions","Callback","makeRequest","callbackErr","propertyHttpHeaders","getOwnPropertyNames","request","_HttpMethod","_Url","queryParams","_Pre","queryParamsStringify","encodeURIComponent","_QueryArg","indexOf","setRequestHeader","onreadystatechange","$Cache","ajax","timeout","$AjaxTimer","clearTimeout","Request","abort","cache","_Cache","removeEventListener","removeChild","tmp","arguments","Highlight","getRegex","RegExp","transform","Limit","QueryArg","Enter","liActive","_Select","KeyUpAndDown_down","KeyUpAndDown_up","last","active","currentIndex","children","lisCount","item","AlphaNum","oldValue","currentValue","_MinChars","_Render","_Post","_Open","_Error","_Close","_EmptyMessage","emptyMessage","_Limit","limit","isNaN","minchars","_Highlight","label","now","li","onclick","offsetHeight","offsetLeft","ul","_RenderRaw","_RenderResponseItems","hasChildNodes","childNodes","reverse","abs","Label","Value","returnResponse","json"],"mappings":"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"}
\ No newline at end of file diff --git a/searx/static/themes/simple/package.json b/searx/static/themes/simple/package.json index 4b0ffc4fd..25797b8fe 100644 --- a/searx/static/themes/simple/package.json +++ b/searx/static/themes/simple/package.json @@ -1,23 +1,25 @@ { "devDependencies": { - "grunt-cli": "^1.4.3", + "eslint": "^8.0.1", "grunt": "~1.4.1", - "grunt-contrib-copy": "^1.0.0", "grunt-contrib-concat": "~2.0.0", + "grunt-contrib-copy": "^1.0.0", "grunt-contrib-cssmin": "^4.0.0", "grunt-contrib-jshint": "~3.1.1", "grunt-contrib-less": "~3.0.0", "grunt-contrib-uglify": "~5.0.1", + "grunt-xmlmin": "~0.1.8", "grunt-contrib-watch": "~1.1.0", + "grunt-eslint": "^24.0.0", "grunt-stylelint": "^0.16.0", - "grunt-eslint": "^23.0.0", - "grunt-webfont": "^1.7.2", - "ionicons-npm": "^2.0.1", - "eslint": "^8.0.1", + "grunt-image": "^6.4.0", + "ionicons": "^6.0.0", "less": "^4.1.1", "less-plugin-clean-css": "^1.5.1", "stylelint": "^13.13.1", - "stylelint-config-standard": "^22.0.0" + "stylelint-config-standard": "^22.0.0", + "ejs": "^3.1.6", + "svgo": "^2.8.0" }, "dependencies": { "autocomplete-js": "2.7.1", diff --git a/searx/static/themes/simple/src/fonts/magnet.svg b/searx/static/themes/simple/src/fonts/magnet.svg deleted file mode 100644 index 1a1defdb8..000000000 --- a/searx/static/themes/simple/src/fonts/magnet.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://www.w3.org/2000/svg" width="31mm" height="44mm" viewBox="0 0 31 44" version="1.1"><metadata><rdf:RDF><cc:Work><dc:format>image/svg+xml</dc:format><dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/><dc:title/><cc:license rdf:resource="https://www.gnu.org/licenses/agpl-3.0.en.html"/><dc:creator><cc:Agent><dc:title>Alexandre Flament</dc:title></cc:Agent></dc:creator></cc:Work></rdf:RDF></metadata><g fill="#000"><path d="M2.381 28.39H9.79v5.82H2.38z" stroke-width=".049"/><path d="M15.872 10.398c2.381 0 5.82.264 5.82 3.704v12.17c2.47.055 4.94-.001 7.41 0 .02-4.371 0-8.73 0-12.964-.022-3.73-1.158-6.05-3.705-7.937-2.844-2.203-6.144-2.335-9.656-2.347-3.512.012-6.812.144-9.656 2.347-2.547 1.887-3.683 4.207-3.704 7.937 0 4.234-.02 8.593 0 12.965 2.47-.002 4.94.054 7.409 0v-12.17c0-3.44 3.44-3.705 5.82-3.705" stroke="#000" stroke-width=".063" stroke-linecap="butt" stroke-linejoin="miter" stroke-opacity="1"/><path d="M21.696 28.39h7.408v5.82h-7.408z" stroke-width=".049"/></g></svg> diff --git a/searx/static/themes/simple/src/generated/ion.less b/searx/static/themes/simple/src/generated/ion.less deleted file mode 100644 index 67158206f..000000000 --- a/searx/static/themes/simple/src/generated/ion.less +++ /dev/null @@ -1,181 +0,0 @@ -// Generated by grunt-webfont - - - -@font-face { - font-family:"ion"; - src:url("../fonts/ion.eot?31a1b735188db616a2142d17947e8a45"); - src:url("../fonts/ion.eot?31a1b735188db616a2142d17947e8a45#iefix") format("embedded-opentype"), - url("../fonts/ion.woff2?31a1b735188db616a2142d17947e8a45") format("woff2"), - url("../fonts/ion.woff?31a1b735188db616a2142d17947e8a45") format("woff"), - url("../fonts/ion.ttf?31a1b735188db616a2142d17947e8a45") format("truetype"), - url("../fonts/ion.svg?31a1b735188db616a2142d17947e8a45#ion") format("svg"); - font-weight:normal; - font-style:normal; -} - -.ion-icon { - &:before { - font-family:"ion"; - } - display:inline-block; - line-height:1; - font-weight:normal; - font-style:normal; - speak:none; - text-decoration:inherit; - text-transform:none; - text-rendering:auto; - -webkit-font-smoothing:antialiased; - -moz-osx-font-smoothing:grayscale; -} - - -// Icons - -.ion-navicon-round { - &:before { - content:"\f101"; - } -} - - -.ion-search { - &:before { - content:"\f102"; - } -} - - -.ion-play { - &:before { - content:"\f103"; - } -} - - -.ion-link { - &:before { - content:"\f104"; - } -} - - -.ion-chevron-up { - &:before { - content:"\f105"; - } -} - - -.ion-chevron-left { - &:before { - content:"\f106"; - } -} - - -.ion-chevron-right { - &:before { - content:"\f107"; - } -} - - -.ion-arrow-down-a { - &:before { - content:"\f108"; - } -} - - -.ion-arrow-up-a { - &:before { - content:"\f109"; - } -} - - -.ion-arrow-swap { - &:before { - content:"\f10a"; - } -} - - -.ion-arrow-dropdown { - &:before { - content:"\f10b"; - } -} - - -.ion-globe { - &:before { - content:"\f10c"; - } -} - - -.ion-time { - &:before { - content:"\f10d"; - } -} - - -.ion-location { - &:before { - content:"\f10e"; - } -} - - -.ion-warning { - &:before { - content:"\f10f"; - } -} - - -.ion-error { - &:before { - content:"\f110"; - } -} - - -.ion-film-outline { - &:before { - content:"\f111"; - } -} - - -.ion-music-note { - &:before { - content:"\f112"; - } -} - - -.ion-more-vertical { - &:before { - content:"\f113"; - } -} - - -.ion-magnet { - &:before { - content:"\f114"; - } -} - - -.ion-close { - &:before { - content:"\f115"; - } -} - diff --git a/searx/static/themes/simple/src/js/head/00_init.js b/searx/static/themes/simple/src/js/head/00_init.js index d359a9174..21b1754bf 100644 --- a/searx/static/themes/simple/src/js/head/00_init.js +++ b/searx/static/themes/simple/src/js/head/00_init.js @@ -27,5 +27,10 @@ }; // update the css - d.getElementsByTagName("html")[0].className = (w.searxng.touch)?"js touch":"js"; + var hmtlElement = d.getElementsByTagName("html")[0]; + hmtlElement.classList.remove('no-js'); + hmtlElement.classList.add('js'); + if (w.searxng.touch) { + hmtlElement.classList.add('touch'); + } })(window, document);
\ No newline at end of file diff --git a/searx/static/themes/simple/src/js/main/search.js b/searx/static/themes/simple/src/js/main/search.js index d3149340a..0244a90ea 100644 --- a/searx/static/themes/simple/src/js/main/search.js +++ b/searx/static/themes/simple/src/js/main/search.js @@ -98,6 +98,7 @@ return false; }); + searxng.on(d.getElementById('safesearch'), 'change', submitIfQuery); searxng.on(d.getElementById('time_range'), 'change', submitIfQuery); searxng.on(d.getElementById('language'), 'change', submitIfQuery); } diff --git a/searx/static/themes/simple/src/less/animations.less b/searx/static/themes/simple/src/less/animations.less new file mode 100644 index 000000000..750b7d255 --- /dev/null +++ b/searx/static/themes/simple/src/less/animations.less @@ -0,0 +1,15 @@ +.dialog-modal { + animation-name: dialogmodal; + animation-duration: 0.13s; + + @keyframes dialogmodal { + 0% { + opacity: 0; + } + + 50% { + opacity: 0.5; + transform: translate(-50%, -50%) scale(1.05); + } + } +} diff --git a/searx/static/themes/simple/src/less/definitions.less b/searx/static/themes/simple/src/less/definitions.less index 33b65a682..95370849d 100644 --- a/searx/static/themes/simple/src/less/definitions.less +++ b/searx/static/themes/simple/src/less/definitions.less @@ -89,8 +89,10 @@ --color-toolkit-dialog-background: #fff; --color-toolkit-tabs-label-border: #fff; --color-toolkit-tabs-section-border: #ddd; + --color-toolkit-select-background: #f7f7f7; --color-toolkit-select-border: #ddd; - --color-toolkit-select-border-hover: #bbb; + --color-toolkit-select-background-hover: #bbb; + --color-toolkit-input-text-font: #222; --color-toolkit-checkbox-onoff-background: #ddd; --color-toolkit-checkbox-onoff-label-background: #3050ff; --color-toolkit-checkbox-onoff-checked-background: #aaa; @@ -103,107 +105,118 @@ --color-toolkit-loader-borderleft: rgba(255, 255, 255, 0); } +.dark-themes() { + /// Base Colors + --color-base-font: #bbb; + --color-base-font-rgb: 187, 187, 187; + --color-base-background: #222; + --color-url-font: #8af; + --color-url-visited-font: #96b; + /// Header Colors + --color-header-background: #181818; + --color-header-border: #333; + /// Footer Colors + --color-footer-background: #181818; + --color-footer-border: #333; + /// Sidebar Colors + --color-sidebar-border: #555; + --color-sidebar-font: #fff; + /// BackToTop Colors + --color-backtotop-font: #bbb; + --color-backtotop-border: #333; + --color-backtotop-background: #181818; + /// Button Colors + --color-btn-background: #58f; + --color-btn-font: #222; + /// Search Input Colors + --color-search-border: #555; + --color-search-background: #222; + --color-search-font: #fff; + --color-search-background-hover: #58f; + /// Modal Colors + --color-error: #f55b5b; + --color-error-background: darken(#db3434, 40%); + --color-warning: #f1d561; + --color-warning-background: darken(#dbba34, 40%); + --color-success: #79f56e; + --color-success-background: darken(#42db34, 40%); + /// Categories Colors + --color-categories-item-selected-font: #58f; + --color-categories-item-border-selected: #58f; + /// Autocomplete Colors + --color-autocomplete-font: #fff; + --color-autocomplete-border: #555; + --color-autocomplete-background: #222; + --color-autocomplete-background-hover: #181818; + /// Answer Colors + --color-answer-border: #333; // same as --color-header-border + --color-answer-font: #bbb; // same as --color-base-font + --color-answer-background: #181818; // same as --color-header-background: + /// Results Colors + --color-result-border: #333; + --color-result-url-font: #fff; + --color-result-vim-selected: #181818; + --color-result-vim-arrow: #8af; + --color-result-description-highlight-font: #fff; + --color-result-link-font: #8af; + --color-result-link-font-highlight: #8af; + --color-result-link-visited-font: #96b; + --color-result-publishdate-font: #888; + --color-result-engines-font: #888; + --color-result-search-url-border: #555; + --color-result-search-url-font: #fff; + /// Detail modal : same as the light version + --color-result-detail-font: #fff; + --color-result-detail-label-font: lightgray; + --color-result-detail-background: #000; + --color-result-detail-hr: #555; + --color-result-detail-link: #8af; + --color-result-detail-loader-border: rgba(255, 255, 255, 0.2); + --color-result-detail-loader-borderleft: rgba(0, 0, 0, 0); + // Images Colors + --color-result-image-span-background-hover: rgba(0, 0, 0, 0.6); + --color-result-image-span-font: #fff; + --color-result-image-background: #8af; + /// Settings Colors + --color-settings-tr-hover: #2d2d2d; + --color-settings-engine-description-font: darken(#dcdcdc, 30%); + /// Toolkit Colors + --color-toolkit-badge-font: #fff; + --color-toolkit-badge-background: #777; + --color-toolkit-kbd-font: #000; + --color-toolkit-kbd-background: #fff; + --color-toolkit-dialog-border: #555; + --color-toolkit-dialog-background: #222; + --color-toolkit-tabs-label-border: #222; + --color-toolkit-tabs-section-border: #555; + --color-toolkit-select-background: #3c3b31; + --color-toolkit-select-border: #555; + --color-toolkit-select-background-hover: #333; + --color-toolkit-input-text-font: #fff; + --color-toolkit-checkbox-onoff-background: #3c3b31; + --color-toolkit-checkbox-onoff-label-background: #58f; + --color-toolkit-checkbox-onoff-checked-background: #ddd; + --color-toolkit-checkbox-label-background: #fff; + --color-toolkit-checkbox-label-border: #333; + --color-toolkit-checkbox-input-border: #58f; + --color-toolkit-engine-tooltip-border: #333; + --color-toolkit-engine-tooltip-background: #222; + --color-toolkit-loader-border: rgba(255, 255, 255, 0.2); + --color-toolkit-loader-borderleft: rgba(0, 0, 0, 0); +} + /// Dark Theme (autoswitch based on device pref) @media (prefers-color-scheme: dark) { - :root { - /// Base Colors - --color-base-font: #bbb; - --color-base-font-rgb: 187, 187, 187; - --color-base-background: #222; - --color-url-font: #8af; - --color-url-visited-font: #96b; - /// Header Colors - --color-header-background: #181818; - --color-header-border: #333; - /// Footer Colors - --color-footer-background: #181818; - --color-footer-border: #333; - /// Sidebar Colors - --color-sidebar-border: #555; - --color-sidebar-font: #fff; - /// BackToTop Colors - --color-backtotop-font: #bbb; - --color-backtotop-border: #333; - --color-backtotop-background: #181818; - /// Button Colors - --color-btn-background: #58f; - --color-btn-font: #222; - /// Search Input Colors - --color-search-border: #555; - --color-search-background: #222; - --color-search-font: #fff; - --color-search-background-hover: #58f; - /// Modal Colors - --color-error: #f55b5b; - --color-error-background: darken(#db3434, 40%); - --color-warning: #f1d561; - --color-warning-background: darken(#dbba34, 40%); - --color-success: #79f56e; - --color-success-background: darken(#42db34, 40%); - /// Categories Colors - --color-categories-item-selected-font: #58f; - --color-categories-item-border-selected: #58f; - /// Autocomplete Colors - --color-autocomplete-font: #fff; - --color-autocomplete-border: #555; - --color-autocomplete-background: #222; - --color-autocomplete-background-hover: #181818; - /// Answer Colors - --color-answer-border: #333; // same as --color-header-border - --color-answer-font: #bbb; // same as --color-base-font - --color-answer-background: #181818; // same as --color-header-background: - /// Results Colors - --color-result-border: #333; - --color-result-url-font: #fff; - --color-result-vim-selected: #181818; - --color-result-vim-arrow: #8af; - --color-result-description-highlight-font: #fff; - --color-result-link-font: #8af; - --color-result-link-font-highlight: #8af; - --color-result-link-visited-font: #96b; - --color-result-publishdate-font: #777; - --color-result-engines-font: #777; - --color-result-search-url-border: #555; - --color-result-search-url-font: #fff; - /// Detail modal : same as the light version - --color-result-detail-font: #fff; - --color-result-detail-label-font: lightgray; - --color-result-detail-background: #000; - --color-result-detail-hr: #555; - --color-result-detail-link: #8af; - --color-result-detail-loader-border: rgba(255, 255, 255, 0.2); - --color-result-detail-loader-borderleft: rgba(0, 0, 0, 0); - // Images Colors - --color-result-image-span-background-hover: rgba(0, 0, 0, 0.6); - --color-result-image-span-font: #fff; - --color-result-image-background: #8af; - /// Settings Colors - --color-settings-tr-hover: #2d2d2d; - --color-settings-engine-description-font: darken(#dcdcdc, 30%); - /// Toolkit Colors - --color-toolkit-badge-font: #fff; - --color-toolkit-badge-background: #777; - --color-toolkit-kbd-font: #000; - --color-toolkit-kbd-background: #fff; - --color-toolkit-dialog-border: #555; - --color-toolkit-dialog-background: #222; - --color-toolkit-tabs-label-border: #222; - --color-toolkit-tabs-section-border: #555; - --color-toolkit-select-border: #555; - --color-toolkit-select-border-hover: #777; - --color-toolkit-checkbox-onoff-background: #3c3b31; - --color-toolkit-checkbox-onoff-label-background: #58f; - --color-toolkit-checkbox-onoff-checked-background: #ddd; - --color-toolkit-checkbox-label-background: #fff; - --color-toolkit-checkbox-label-border: #333; - --color-toolkit-checkbox-input-border: #58f; - --color-toolkit-engine-tooltip-border: #333; - --color-toolkit-engine-tooltip-background: #222; - --color-toolkit-loader-border: rgba(255, 255, 255, 0.2); - --color-toolkit-loader-borderleft: rgba(0, 0, 0, 0); + :root.theme-auto { + .dark-themes(); } } +// Dark Theme by preferences +:root.theme-dark { + .dark-themes(); +} + /// General Size @results-width: 45rem; @results-offset: 10rem; @@ -213,13 +226,14 @@ @result-padding: 1rem; @search-width: 40rem; // heigh of #search, see detail.less -@search-height: 7.5rem; +@search-height: 7.75rem; /// Device Size /// @desktop > @tablet @tablet: 80em; @phone: 50em; @small-phone: 35em; +@ultra-small-phone: 20rem; /// From style.less @stacked-bar-chart: rgb(0, 0, 0); diff --git a/searx/static/themes/simple/src/less/detail.less b/searx/static/themes/simple/src/less/detail.less index 452544a34..ab15be1a3 100644 --- a/searx/static/themes/simple/src/less/detail.less +++ b/searx/static/themes/simple/src/less/detail.less @@ -1,5 +1,5 @@ #main_results #results.image-detail-open.only_template_images { - width: 59.25rem !important; + width: min(98%, 59.25rem) !important; } #main_results #results.only_template_images.image-detail-open #backToTop { diff --git a/searx/static/themes/simple/src/less/index.less b/searx/static/themes/simple/src/less/index.less index b30dad1d2..9a244da00 100644 --- a/searx/static/themes/simple/src/less/index.less +++ b/searx/static/themes/simple/src/less/index.less @@ -22,7 +22,8 @@ visibility: hidden; } - #search { + #search, + #search_header { margin: 0 auto; background: inherit; border: inherit; diff --git a/searx/static/themes/simple/src/less/mixins.less b/searx/static/themes/simple/src/less/mixins.less index cc4a5bc64..75c6703a1 100644 --- a/searx/static/themes/simple/src/less/mixins.less +++ b/searx/static/themes/simple/src/less/mixins.less @@ -11,20 +11,14 @@ } .rounded-corners (@radius: 10px) { - -webkit-border-radius: @radius; - -moz-border-radius: @radius; border-radius: @radius; } .rounded-right-corners (@radius: 0 10px 10px 0) { - -webkit-border-radius: @radius; - -moz-border-radius: @radius; border-radius: @radius; } .rounded-corners-tiny (@radius: 5px) { - -webkit-border-radius: @radius; - -moz-border-radius: @radius; border-radius: @radius; } diff --git a/searx/static/themes/simple/src/less/preferences.less b/searx/static/themes/simple/src/less/preferences.less index e0e3dec4b..c6e691b9d 100644 --- a/searx/static/themes/simple/src/less/preferences.less +++ b/searx/static/themes/simple/src/less/preferences.less @@ -27,6 +27,37 @@ padding: 0; float: left; width: 15em; + + select, + input[type="text"] { + font-size: inherit !important; + margin: 0 1rem 0 0; + } + + select { + width: 14rem; + } + + input[type="text"] { + width: 13.25rem; + color: var(--color-toolkit-input-text-font); + border: none; + background: none repeat scroll 0 0 var(--color-toolkit-select-background); + padding: 0.2rem 0.4rem; + height: 2rem; + .rounded-corners-tiny; + + &:hover, + &:focus { + background-color: var(--color-toolkit-select-background-hover); + } + } + + select:focus, + input:focus { + outline: none; + box-shadow: 0 0 1px 1px var(--color-btn-background); + } } .description { @@ -38,11 +69,6 @@ font-size: 90%; } - select { - width: 200px; - font-size: inherit !important; - } - table { border-collapse: collapse; } @@ -79,6 +105,20 @@ } } + .category { + margin-right: 0.5rem; + + label { + border: 2px solid transparent; + padding: 0.2rem 0.4rem; + .rounded-corners-tiny; + } + } + + .category input[type="checkbox"]:checked + label { + border: 2px solid var(--color-categories-item-border-selected); + } + .name, .shortcut { text-align: left; diff --git a/searx/static/themes/simple/src/less/search.less b/searx/static/themes/simple/src/less/search.less index 794958594..04ee2cea8 100644 --- a/searx/static/themes/simple/src/less/search.less +++ b/searx/static/themes/simple/src/less/search.less @@ -3,6 +3,11 @@ */ #search { + padding: 0; + margin: 0; +} + +#search_header { padding: 1.5em 2em 0 @results-offset - 3rem; margin: 0; background: var(--color-header-background); @@ -16,25 +21,62 @@ "spacer categories"; } +.category { + display: inline-block; + position: relative; + margin-right: 1rem; + padding: 0; + + input { + display: none; + } + + label { + svg { + padding-right: 0.2rem; + } + + cursor: pointer; + padding: 0.2rem 0; + display: inline-flex; + text-transform: capitalize; + font-size: 0.9em; + border-bottom: 2px solid transparent; + .disable-user-select; + + div.category_name { + margin: auto 0; + } + } + + input[type="checkbox"]:checked + label { + color: var(--color-categories-item-selected-font); + border-bottom: 2px solid var(--color-categories-item-border-selected); + } +} + #search_logo { grid-area: logo; -} + display: flex; + align-items: center; + justify-content: center; -.search_logo_img { - width: 40px; + svg { + flex: 1; + width: 30px; + height: 30px; + margin: 0.5rem 0 auto 0; + } } .search_categories { grid-area: categories; } -#search_wrapper { +.search_box { + margin: 0; padding: 0; grid-area: search; -} - -.search_box { - margin: 0 12px 0 0; display: inline-flex; flex-direction: row; white-space: nowrap; @@ -73,7 +115,7 @@ border-collapse: separate; box-sizing: border-box; margin: 0; - padding: 8px; + padding: 10px; background: none repeat scroll 0 0 var(--color-search-background); border: 1px solid var(--color-search-border); border-radius: 0; @@ -108,21 +150,36 @@ } } +.no-js #clear_search, .no-js #send_search { width: auto !important; + border-left: 1px solid var(--color-search-border); + padding: 10px; } .search_filters { - display: inline-block; - margin: 0.8rem 0 0 0; + margin: 0.6rem 0 0 @results-offset + 0.6rem; + + select { + background-color: inherit; + + &:hover, + &:focus { + color: var(--color-base-font); + } + } } @media screen and (max-width: @tablet) { - #search { + #search_header { padding: 1.5em @results-tablet-offset 0 @results-tablet-offset; column-gap: @results-tablet-offset; } + .search_filters { + margin: 0.6rem 0 0 @results-tablet-offset + 3rem; + } + #categories { font-size: 90%; clear: both; @@ -150,7 +207,6 @@ #categories { width: 100%; - margin: 0; text-align: left; overflow-x: scroll; overflow-y: hidden; @@ -161,10 +217,10 @@ } @media screen and (max-width: @phone) { - #search { + #search_header { width: 100%; margin: 0; - padding: 0.1em 0 0 0; + padding: 0.1rem 0 0 0; column-gap: 0; row-gap: 0; grid-template-areas: @@ -176,22 +232,15 @@ padding: 0; } - #search_wrapper { - width: 100%; - padding: 0; - } - .search_box { - // hack, should bew 100% ? + // hack, should be 100% ? width: 99%; - margin: 0.1em; - padding: 0 0.1em 0 0; display: flex; flex-direction: row; } #q { - width: auto !important; + width: 100%; flex: 1; } @@ -201,8 +250,7 @@ } .search_filters { - display: block; - margin: 0.8em 0; + margin: 0; } .language, @@ -213,47 +261,37 @@ .category { display: block; width: 100%; + margin: 0; label { - padding: 10px !important; + padding: 0.8rem !important; + margin: 0 !important; + + svg { + display: none; + } } } } -#categories { - margin: 0 10px 0 0; - .disable-user-select; - - &::-webkit-scrollbar { - width: 0; - height: 0; +@media screen and (max-width: @ultra-small-phone) { + #search_header { + grid-template-areas: + "search search" + "categories categories"; } -} -.category { - display: inline-block; - position: relative; - margin: 0 3px; - padding: 0; - - input { + #search_logo { display: none; } +} - label { - cursor: pointer; - padding: 0.3rem 0.75rem 0.5rem 0.75rem; - margin: 0; - display: block; - text-transform: capitalize; - font-size: 0.9em; - border-bottom: 2px solid transparent; - .disable-user-select; - } +#categories { + .disable-user-select; - input[type="checkbox"]:checked + label { - color: var(--color-categories-item-selected-font); - border-bottom: 2px solid var(--color-categories-item-border-selected); + &::-webkit-scrollbar { + width: 0; + height: 0; } } diff --git a/searx/static/themes/simple/src/less/style.less b/searx/static/themes/simple/src/less/style.less index 0d57772e1..5e015579c 100644 --- a/searx/static/themes/simple/src/less/style.less +++ b/searx/static/themes/simple/src/less/style.less @@ -10,13 +10,13 @@ @import "../../__common__/less/stats.less"; @import "../../__common__/less/result_templates.less"; @import (inline) "../../node_modules/normalize.css/normalize.css"; -@import "../generated/ion.less"; @import "definitions.less"; @import "mixins.less"; @import "code.less"; @import "toolkit.less"; @import "autocomplete.less"; @import "detail.less"; +@import "animations.less"; // for index.html template @import "index.less"; @@ -28,10 +28,23 @@ @import "search.less"; // ion-icon -.ion-icon-big { +.ion-icon { + display: inline-block; + vertical-align: bottom; + line-height: 1; + text-decoration: inherit; +} + +.ion-icon-small { + width: 1rem; + height: 1rem; .ion-icon; +} - font-size: 149%; +.ion-icon-big { + width: 1.5rem; + height: 1.5rem; + .ion-icon; } // Main LESS-Code @@ -156,7 +169,7 @@ article[data-vim-selected].category-social { border-left: 0.2rem solid transparent; h3 { - font-size: 1.1em; + font-size: 1.2rem; word-wrap: break-word; margin: 0.4rem 0 0.4rem 0; padding: 0; @@ -209,13 +222,39 @@ article[data-vim-selected].category-social { } } - .url { - font-size: 0.96em; - margin: 0 0 3px 0; - padding: 0; - max-width: 54em; - word-wrap: break-word; + .url_wrapper { + display: flex; + font-size: 1rem; color: var(--color-result-url-font); + flex-wrap: nowrap; + overflow: hidden; + flex-direction: row; + margin: 0; + padding: 0; + + .url_o1 { + white-space: nowrap; + flex-shrink: 1; + } + + .url_o1::after { + content: " "; + width: 1ch; + display: inline-block; + } + + .url_o2 { + overflow: hidden; + white-space: nowrap; + flex-basis: content; + flex-grow: 0; + flex-shrink: 1; + text-align: right; + + .url_i2 { + float: right; + } + } } .published_date { @@ -226,17 +265,15 @@ article[data-vim-selected].category-social { img { &.thumbnail { float: left; - padding: 0 5px 10px 0; - width: 20em; - min-width: 20em; - min-height: 8em; + padding: 0.6rem 1rem 0 0; + width: 20rem; } &.image { float: left; - padding: 0 5px 10px 0; - width: 100px; - max-height: 100px; + padding: 0.6rem 1rem 0 0; + width: 7rem; + max-height: 7rem; object-fit: scale-down; object-position: right top; } @@ -288,6 +325,10 @@ article[data-vim-selected].category-social { background: inherit; } +.empty_element { + font-style: italic; +} + .result-images { display: inline-block; margin: 0; @@ -355,7 +396,7 @@ article[data-vim-selected].category-social { } #results { - margin: 2rem 2rem 0 @results-offset; + margin: 1rem 2rem 0 @results-offset; display: grid; grid-template-columns: @results-width 25rem; grid-template-rows: min-content min-content 1fr min-content; @@ -445,7 +486,7 @@ article[data-vim-selected].category-social { border: 1px solid var(--color-answer-border); background: var(--color-answer-background); padding: @result-padding; - margin: 1rem @results-tablet-offset; + margin: 1rem 0; margin-top: 0; color: var(--color-answer-font); .rounded-corners; @@ -530,7 +571,7 @@ article[data-vim-selected].category-social { #linkto_preferences { position: absolute; right: 10px; - top: 2rem; + top: 2.2rem; padding: 0; border: 0; display: block; @@ -674,7 +715,7 @@ article[data-vim-selected].category-social { } #main_results div#results { - margin: 2rem auto 0 auto; + margin: 1rem auto 0 auto; justify-content: center; display: grid; grid-template-columns: @results-width; @@ -690,7 +731,7 @@ article[data-vim-selected].category-social { } #main_results div#results.only_template_images { - margin: 2rem @results-tablet-offset 0 @results-tablet-offset; + margin: 1rem @results-tablet-offset 0 @results-tablet-offset; display: grid; grid-template-columns: 100%; grid-template-rows: min-content min-content 1fr min-content min-content; diff --git a/searx/static/themes/simple/src/less/toolkit.less b/searx/static/themes/simple/src/less/toolkit.less index faed6ea9f..924c81a08 100644 --- a/searx/static/themes/simple/src/less/toolkit.less +++ b/searx/static/themes/simple/src/less/toolkit.less @@ -121,20 +121,13 @@ div.selectable_url { // dialog .dialog() { position: relative; - padding: 1em 1em 1em 2.7em; + display: flex; + padding: 1rem; margin: 0 0 1em 0; border: 1px solid var(--color-toolkit-dialog-border); text-align: left; .rounded-corners; - &::before { - position: absolute; - top: 0.5em; - left: 0.5em; - font-family: "ion"; // stylelint-disable font-family-no-missing-generic-family-keyword - font-size: 1.5em; - } - .close { float: right; position: relative; @@ -157,7 +150,7 @@ div.selectable_url { vertical-align: text-top; &:hover { - background: transparent; + background: transparent !important; } } @@ -177,7 +170,6 @@ div.selectable_url { color: var(--color-error); background: var(--color-error-background); border-color: var(--color-error); - .ion-error(); } .dialog-warning { @@ -186,12 +178,12 @@ div.selectable_url { color: var(--color-warning); background: var(--color-warning-background); border-color: var(--color-warning); - .ion-warning(); } .dialog-modal { .dialog(); + display: block; background: var(--color-toolkit-dialog-background); position: fixed; top: 50%; @@ -199,6 +191,10 @@ div.selectable_url { margin: 0 auto; transform: translate(-50%, -50%); z-index: 10000000; + + h3 { + margin-top: 0; + } } // btn-collapse @@ -267,7 +263,6 @@ div.selectable_url { border-bottom: 2px solid var(--color-categories-item-border-selected); background: var(--color-categories-item-selected); color: var(--color-categories-item-selected-font); - font-weight: bold; letter-spacing: -0.1px; } @@ -306,11 +301,11 @@ html body .tabs > input:checked { /* -- select -- */ select { - height: 28px; - margin: 0 1em 0 0; - padding: 2px 8px 2px 0 !important; + height: 2.4rem; + margin: 0 1rem 0 0; + padding: 0.2rem !important; color: var(--color-search-font); - font-size: 12px; + font-size: 0.9rem; z-index: 2; &:hover, @@ -324,17 +319,20 @@ select { appearance: none; -webkit-appearance: none; -moz-appearance: none; - border: none; - border-bottom: 1px solid var(--color-toolkit-select-border); + border-width: 0 2rem 0 0; + border-color: transparent; background: data-uri('image/svg+xml;charset=UTF-8', @select-light-svg-path) no-repeat; - background-position-x: 105%; - background-size: 2em; + background-position-x: calc(100% + 2rem); + background-size: 2rem; background-origin: content-box; + background-color: var(--color-toolkit-select-background); outline: medium none; + text-overflow: ellipsis; + .rounded-corners-tiny; &:hover, &:focus { - border-bottom: 1px solid var(--color-toolkit-select-border-hover); + background-color: var(--color-toolkit-select-background-hover); } option { @@ -343,10 +341,15 @@ select { } @media (prefers-color-scheme: dark) { - select { + html.theme-auto select, + html.theme-dark select { background-image: data-uri('image/svg+xml;charset=UTF-8', @select-dark-svg-path); } } + + html.theme-dark select { + background-image: data-uri('image/svg+xml;charset=UTF-8', @select-dark-svg-path); + } } /* -- checkbox-onoff -- */ diff --git a/searx/static/themes/simple/svg4web.svgo.js b/searx/static/themes/simple/svg4web.svgo.js new file mode 100644 index 000000000..5b985adfe --- /dev/null +++ b/searx/static/themes/simple/svg4web.svgo.js @@ -0,0 +1,19 @@ +/** + * @license + * SPDX-License-Identifier: AGPL-3.0-or-later + * + * svgo config: Optimize SVG for WEB usage + */ + +module.exports = { + plugins: [ + { + name: 'preset-default', + }, + // make diff friendly + 'sortAttrs', + // Optimize SVG for WEB usage + 'convertStyleToAttrs', + 'removeXMLNS' + ], +}; diff --git a/searx/templates/__common__/searxng-wordmark.min.svg b/searx/templates/__common__/searxng-wordmark.min.svg new file mode 100644 index 000000000..45cc2c05b --- /dev/null +++ b/searx/templates/__common__/searxng-wordmark.min.svg @@ -0,0 +1 @@ +<svg width="92mm" height="92mm" viewBox="0 0 92 92"><g transform="translate(-40.921 -17.417)"><circle cx="75.921" cy="53.903" r="30" fill="none" fill-opacity="1" stroke="#3050ff" stroke-width="10" stroke-miterlimit="4" stroke-dasharray="none" stroke-opacity="1"/><path d="M67.515 37.915a18 18 0 0 1 21.051 3.313 18 18 0 0 1 3.138 21.078" fill="none" fill-opacity="1" stroke="#3050ff" stroke-width="5" stroke-miterlimit="4" stroke-dasharray="none" stroke-opacity="1"/><rect width="18.846" height="39.963" x="3.706" y="122.09" ry="0" transform="rotate(-46.235)" opacity="1" fill="#3050ff" fill-opacity="1" stroke="none" stroke-width="8" stroke-miterlimit="4" stroke-dasharray="none" stroke-opacity="1"/></g></svg>
\ No newline at end of file diff --git a/searx/templates/oscar/preferences.html b/searx/templates/oscar/preferences.html index a54ca25d9..e5a7a9423 100644 --- a/searx/templates/oscar/preferences.html +++ b/searx/templates/oscar/preferences.html @@ -183,7 +183,7 @@ {% set label = _('Engine tokens') %} {% set info = _('Access tokens for private engines') %} {{ preferences_item_header(info, label, rtl, 'tokens') }} - <input class="form-control" id="tokens" name="tokens" value='{{ preferences.tokens.get_value() }}'/> + <input class="form-control" id="tokens" name="tokens" value='{{ preferences.tokens.get_value() }}' autocomplete="off" spellcheck="false" autocorrect="off" /> {{ preferences_item_footer(info, label, rtl) }} </div> </fieldset> diff --git a/searx/templates/simple/base.html b/searx/templates/simple/base.html index f6594041d..52a5e5192 100644 --- a/searx/templates/simple/base.html +++ b/searx/templates/simple/base.html @@ -1,5 +1,5 @@ <!DOCTYPE html> -<html class="no-js" lang="{{ locale_rfc5646 }}" {% if rtl %} dir="rtl"{% endif %}> +<html class="no-js theme-{{ preferences.get_value('simple_style') or 'auto' }}" lang="{{ locale_rfc5646 }}" {% if rtl %} dir="rtl"{% endif %}> <head> <meta charset="UTF-8" /> <meta name="description" content="SearXNG — a privacy-respecting, hackable metasearch engine"> @@ -7,7 +7,7 @@ <meta name="generator" content="searxng/{{ searx_version }}"> <meta name="referrer" content="no-referrer"> <meta name="robots" content="noarchive"> - <meta name="viewport" content="width=device-width, maximum-scale=1.0, user-scalable=1"> + <meta name="viewport" content="width=device-width, initial-scale=1"> <meta name="HandheldFriendly" content="True"> <meta http-equiv="X-UA-Compatible" content="IE=edge, chrome=1"> <title>{% block title %}{% endblock %}{{ instance_name }}</title> diff --git a/searx/templates/simple/categories.html b/searx/templates/simple/categories.html index 0c121eaed..ae8b2ec09 100644 --- a/searx/templates/simple/categories.html +++ b/searx/templates/simple/categories.html @@ -1,8 +1,26 @@ +{% from 'simple/icons.html' import icon_big %} +{%- set category_icons = { + 'general': 'search-outline', + 'images': 'image-outline', + 'videos': 'play-outline', + 'news': 'newspaper-outline', + 'map': 'location-outline', + 'music': 'musical-notes-outline', + 'it': 'layers-outline', + 'science': 'school-outline', + 'files': 'file-tray-full-outline', + 'social media': 'people-outline', +} -%} <div id="categories" class="search_categories">{{- '' -}} <div id="categories_container"> + {%- if display_tooltip %}<div class="help">{{ _('Click on the magnifier to perform search') }}</div>{% endif -%} {%- for category in categories -%} - <div class="category"><input type="checkbox" id="checkbox_{{ category|replace(' ', '_') }}" name="category_{{ category }}"{% if category in selected_categories %} checked="checked"{% endif %}/><label for="checkbox_{{ category|replace(' ', '_') }}" class="tooltips">{{ _(category) }}</label></div> + <div class="category"><input type="checkbox" id="checkbox_{{ category|replace(' ', '_') }}" name="category_{{ category }}"{% if category in selected_categories %} checked="checked"{% endif %}/> + <label for="checkbox_{{ category|replace(' ', '_') }}" class="tooltips"> + {{- icon_big(category_icons[category]) if category in category_icons else icon_big('globe-outline') -}} + <div class="category_name">{{- _(category) -}}</div> + </label> + </div> {%- endfor -%} - {%- if display_tooltip %}<div class="help">{{ _('Click on the magnifier to perform search') }}</div>{% endif -%} </div>{{- '' -}} </div> diff --git a/searx/templates/simple/languages.html b/searx/templates/simple/filters/languages.html index dd928ff68..710c18c92 100644 --- a/searx/templates/simple/languages.html +++ b/searx/templates/simple/filters/languages.html @@ -1,4 +1,4 @@ -<select class="language" id="language" name="language" tabindex="2">{{- '' -}} +<select class="language" id="language" name="language" tabindex="1">{{- '' -}} <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) -%} <option value="{{ lang_id }}" {% if lang_id == current_language %}selected="selected"{% endif %}> diff --git a/searx/templates/simple/filters/safesearch.html b/searx/templates/simple/filters/safesearch.html new file mode 100644 index 000000000..a146e6710 --- /dev/null +++ b/searx/templates/simple/filters/safesearch.html @@ -0,0 +1,5 @@ +<select name="safesearch" id="safesearch" class="safesearch" tabindex="3"> + <option value="2" {% if safesearch == '2' %}selected="selected"{% endif %}>{{ _("SafeSearch") + ": " + _('Strict') }}</option> + <option value="1" {% if safesearch == '1' %}selected="selected"{% endif %}>{{ _("SafeSearch") + ": " + _('Moderate') }}</option> + <option value="0" {% if safesearch == '0' %}selected="selected"{% endif %}>{{ _("SafeSearch") + ": " + _('None') }}</option> +</select> diff --git a/searx/templates/simple/time-range.html b/searx/templates/simple/filters/time_range.html index a9fc9f165..2c85edf92 100644 --- a/searx/templates/simple/time-range.html +++ b/searx/templates/simple/filters/time_range.html @@ -1,4 +1,4 @@ -<select name="time_range" id="time_range" class="time_range" tabindex="3">{{- '' -}} +<select name="time_range" id="time_range" class="time_range" tabindex="2">{{- '' -}} <option id="time-range-anytime" value="" {{ "selected" if time_range=="" or not time_range else ""}}> {{- _('Anytime') -}} </option>{{- '' -}} diff --git a/searx/templates/simple/icons.html b/searx/templates/simple/icons.html new file mode 100644 index 000000000..3093e3e29 --- /dev/null +++ b/searx/templates/simple/icons.html @@ -0,0 +1,36 @@ +{# this file was generated by searx/static/themes/simple/gruntfile.js #} +{%- set icons = { + 'warning':'<svg class="ionicon" viewBox="0 0 512 512" aria-hidden="true"><path d="M256 80c-8.66 0-16.58 7.36-16 16l8 216a8 8 0 008 8h0a8 8 0 008-8l8-216c.58-8.64-7.34-16-16-16z" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="32"/><circle cx="256" cy="416" r="16" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="32"/></svg>', + 'close':'<svg class="ionicon" viewBox="0 0 512 512" aria-hidden="true"><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="32" d="M368 368L144 144M368 144L144 368"/></svg>', + 'chevron-up-outline':'<svg class="ionicon" viewBox="0 0 512 512" aria-hidden="true"><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="48" d="M112 328l144-144 144 144"/></svg>', + 'chevron-right':'<svg class="ionicon" viewBox="0 0 512 512" aria-hidden="true"><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="48" d="M184 112l144 144-144 144"/></svg>', + 'chevron-left':'<svg class="ionicon" viewBox="0 0 512 512" aria-hidden="true"><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="48" d="M328 112L184 256l144 144"/></svg>', + 'menu-outline':'<svg class="ionicon" viewBox="0 0 512 512" aria-hidden="true"><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="32" d="M80 160h352M80 256h352M80 352h352"/></svg>', + 'ellipsis-vertical-outline':'<svg class="ionicon" viewBox="0 0 512 512" aria-hidden="true"><circle cx="256" cy="256" r="32" fill="none" stroke="currentColor" stroke-miterlimit="10" stroke-width="32"/><circle cx="256" cy="416" r="32" fill="none" stroke="currentColor" stroke-miterlimit="10" stroke-width="32"/><circle cx="256" cy="96" r="32" fill="none" stroke="currentColor" stroke-miterlimit="10" stroke-width="32"/></svg>', + 'magnet-outline':'<svg class="ionicon" viewBox="0 0 512 512" aria-hidden="true"><path d="M421.83 293.82A144 144 0 00218.18 90.17M353.94 225.94a48 48 0 00-67.88-67.88" fill="none" stroke="currentColor" stroke-miterlimit="10" stroke-width="32"/><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="32" d="M192 464v-48M90.18 421.82l33.94-33.94M48 320h48"/><path d="M286.06 158.06L172.92 271.19a32 32 0 01-45.25 0L105 248.57a32 32 0 010-45.26L218.18 90.17M421.83 293.82L308.69 407a32 32 0 01-45.26 0l-22.62-22.63a32 32 0 010-45.26l113.13-113.17M139.6 169.98l67.88 67.89M275.36 305.75l67.89 67.88" fill="none" stroke="currentColor" stroke-linejoin="round" stroke-width="32"/></svg>', + 'globe-outline':'<svg class="ionicon" viewBox="0 0 512 512" aria-hidden="true"><path d="M256 48C141.13 48 48 141.13 48 256s93.13 208 208 208 208-93.13 208-208S370.87 48 256 48z" fill="none" stroke="currentColor" stroke-miterlimit="10" stroke-width="32"/><path d="M256 48c-58.07 0-112.67 93.13-112.67 208S197.93 464 256 464s112.67-93.13 112.67-208S314.07 48 256 48z" fill="none" stroke="currentColor" stroke-miterlimit="10" stroke-width="32"/><path d="M117.33 117.33c38.24 27.15 86.38 43.34 138.67 43.34s100.43-16.19 138.67-43.34M394.67 394.67c-38.24-27.15-86.38-43.34-138.67-43.34s-100.43 16.19-138.67 43.34" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="32"/><path fill="none" stroke="currentColor" stroke-miterlimit="10" stroke-width="32" d="M256 48v416M464 256H48"/></svg>', + 'search-outline':'<svg class="ionicon" viewBox="0 0 512 512" aria-hidden="true"><path d="M221.09 64a157.09 157.09 0 10157.09 157.09A157.1 157.1 0 00221.09 64z" fill="none" stroke="currentColor" stroke-miterlimit="10" stroke-width="32"/><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="32" d="M338.29 338.29L448 448"/></svg>', + 'image-outline':'<svg class="ionicon" viewBox="0 0 512 512" aria-hidden="true"><rect x="48" y="80" width="416" height="352" rx="48" ry="48" fill="none" stroke="currentColor" stroke-linejoin="round" stroke-width="32"/><circle cx="336" cy="176" r="32" fill="none" stroke="currentColor" stroke-miterlimit="10" stroke-width="32"/><path d="M304 335.79l-90.66-90.49a32 32 0 00-43.87-1.3L48 352M224 432l123.34-123.34a32 32 0 0143.11-2L464 368" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="32"/></svg>', + 'play-outline':'<svg class="ionicon" viewBox="0 0 512 512" aria-hidden="true"><path d="M112 111v290c0 17.44 17 28.52 31 20.16l247.9-148.37c12.12-7.25 12.12-26.33 0-33.58L143 90.84c-14-8.36-31 2.72-31 20.16z" fill="none" stroke="currentColor" stroke-miterlimit="10" stroke-width="32"/></svg>', + 'newspaper-outline':'<svg class="ionicon" viewBox="0 0 512 512" aria-hidden="true"><path d="M368 415.86V72a24.07 24.07 0 00-24-24H72a24.07 24.07 0 00-24 24v352a40.12 40.12 0 0040 40h328" fill="none" stroke="currentColor" stroke-linejoin="round" stroke-width="32"/><path d="M416 464h0a48 48 0 01-48-48V128h72a24 24 0 0124 24v264a48 48 0 01-48 48z" fill="none" stroke="currentColor" stroke-linejoin="round" stroke-width="32"/><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="32" d="M240 128h64M240 192h64M112 256h192M112 320h192M112 384h192"/><path d="M176 208h-64a16 16 0 01-16-16v-64a16 16 0 0116-16h64a16 16 0 0116 16v64a16 16 0 01-16 16z"/></svg>', + 'location-outline':'<svg class="ionicon" viewBox="0 0 512 512" aria-hidden="true"><path d="M256 48c-79.5 0-144 61.39-144 137 0 87 96 224.87 131.25 272.49a15.77 15.77 0 0025.5 0C304 409.89 400 272.07 400 185c0-75.61-64.5-137-144-137z" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="32"/><circle cx="256" cy="192" r="48" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="32"/></svg>', + 'musical-notes-outline':'<svg class="ionicon" viewBox="0 0 512 512" aria-hidden="true"><path d="M192 218v-6c0-14.84 10-27 24.24-30.59l174.59-46.68A20 20 0 01416 154v22" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="32"/><path d="M416 295.94v80c0 13.91-8.93 25.59-22 30l-22 8c-25.9 8.72-52-10.42-52-38h0a33.37 33.37 0 0123-32l51-18.15c13.07-4.4 22-15.94 22-29.85V58a10 10 0 00-12.6-9.61L204 102a16.48 16.48 0 00-12 16v226c0 13.91-8.93 25.6-22 30l-52 18c-13.88 4.68-22 17.22-22 32h0c0 27.58 26.52 46.55 52 38l22-8c13.07-4.4 22-16.08 22-30v-80" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="32"/></svg>', + 'layers-outline':'<svg class="ionicon" viewBox="0 0 512 512" aria-hidden="true"><path d="M434.8 137.65l-149.36-68.1c-16.19-7.4-42.69-7.4-58.88 0L77.3 137.65c-17.6 8-17.6 21.09 0 29.09l148 67.5c16.89 7.7 44.69 7.7 61.58 0l148-67.5c17.52-8 17.52-21.1-.08-29.09zM160 308.52l-82.7 37.11c-17.6 8-17.6 21.1 0 29.1l148 67.5c16.89 7.69 44.69 7.69 61.58 0l148-67.5c17.6-8 17.6-21.1 0-29.1l-79.94-38.47" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="32"/><path d="M160 204.48l-82.8 37.16c-17.6 8-17.6 21.1 0 29.1l148 67.49c16.89 7.7 44.69 7.7 61.58 0l148-67.49c17.7-8 17.7-21.1.1-29.1L352 204.48" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="32"/></svg>', + 'school-outline':'<svg class="ionicon" viewBox="0 0 512 512" aria-hidden="true"><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="32" d="M32 192L256 64l224 128-224 128L32 192z"/><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="32" d="M112 240v128l144 80 144-80V240M480 368V192M256 320v128"/></svg>', + 'file-tray-full-outline':'<svg class="ionicon" viewBox="0 0 512 512" aria-hidden="true"><path d="M384 80H128c-26 0-43 14-48 40L48 272v112a48.14 48.14 0 0048 48h320a48.14 48.14 0 0048-48V272l-32-152c-5-27-23-40-48-40z" fill="none" stroke="currentColor" stroke-linejoin="round" stroke-width="32"/><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="32" d="M48 272h144M320 272h144M192 272a64 64 0 00128 0M144 144h224M128 208h256"/></svg>', + 'people-outline':'<svg class="ionicon" viewBox="0 0 512 512" aria-hidden="true"><path d="M402 168c-2.93 40.67-33.1 72-66 72s-63.12-31.32-66-72c-3-42.31 26.37-72 66-72s69 30.46 66 72z" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="32"/><path d="M336 304c-65.17 0-127.84 32.37-143.54 95.41-2.08 8.34 3.15 16.59 11.72 16.59h263.65c8.57 0 13.77-8.25 11.72-16.59C463.85 335.36 401.18 304 336 304z" fill="none" stroke="currentColor" stroke-miterlimit="10" stroke-width="32"/><path d="M200 185.94c-2.34 32.48-26.72 58.06-53 58.06s-50.7-25.57-53-58.06C91.61 152.15 115.34 128 147 128s55.39 24.77 53 57.94z" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="32"/><path d="M206 306c-18.05-8.27-37.93-11.45-59-11.45-52 0-102.1 25.85-114.65 76.2-1.65 6.66 2.53 13.25 9.37 13.25H154" fill="none" stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="32"/></svg>', + +} +-%} + +{% macro icon(action, alt) -%} + {{ icons[action] | replace("ionicon", "ion-icon") | safe }} +{%- endmacro %} + +{% macro icon_small(action) -%} + {{ icons[action] | replace("ionicon", "ion-icon-small") | safe }} +{%- endmacro %} + +{% macro icon_big(action, alt) -%} + {{ icons[action] | replace("ionicon", "ion-icon-big") | safe }} +{%- endmacro %} diff --git a/searx/templates/simple/index.html b/searx/templates/simple/index.html index 8a017694e..1e4ea0c48 100644 --- a/searx/templates/simple/index.html +++ b/searx/templates/simple/index.html @@ -1,10 +1,10 @@ {% extends "simple/base.html" %} -{% from 'simple/macros.html' import icon %} +{% from 'simple/icons.html' import icon_big %} {% block meta %} <link rel="preload" href="{{ url_for('static', filename='img/searxng.png') }}" as="image" /> {% endblock %} {% block content %} -<nav id="linkto_preferences"><a href="{{ url_for('preferences') }}">{{ icon('navicon-round') }}</a></nav> +<nav id="linkto_preferences"><a href="{{ url_for('preferences') }}">{{ icon_big('menu-outline') }}</a></nav> <div class="index"> <div class="title"><h1>SearXNG</h1></div> {% include 'simple/simple_search.html' %} diff --git a/searx/templates/simple/macros.html b/searx/templates/simple/macros.html index 92c6c9ef2..7a3a4ff9f 100644 --- a/searx/templates/simple/macros.html +++ b/searx/templates/simple/macros.html @@ -1,12 +1,3 @@ -<!-- Draw glyphicon icon from bootstrap-theme --> -{% macro icon(action, alt) -%} - <span title="{{ alt }}" class="ion-icon-big ion-{{ action }}"></span> -{%- endmacro %} - -{% macro icon_small(action) -%} - <span class="ion-icon ion-{{ action }}"></span> -{%- endmacro %} - <!-- Draw favicon --> {% macro draw_favicon(favicon) -%} <img width="14" height="14" class="favicon" src="{{ url_for('static', filename='themes/simple/img/icons/' + favicon + '.png') }}" alt="{{ favicon }}" /> @@ -27,7 +18,11 @@ <!-- Draw result header --> {% macro result_header(result, favicons, image_proxify) -%} <article class="result {% if result['template'] %}result-{{ result.template|replace('.html', '') }}{% else %}result-default{% endif %} {% if result['category'] %}category-{{ result['category'] }}{% endif %}{% for e in result.engines %} {{ e }}{% endfor %}"> - <p class="url">{{ result_link(result.url, result.pretty_url, 'url') }}</p> + {{- result_open_link(result.url, "url_wrapper") -}} + {%- for part in get_pretty_url(result.parsed_url) -%} + <span class="url_o{{loop.index}}"><span class="url_i{{loop.index}}">{{- part -}}</span></span> + {%- endfor %} + {{- result_close_link() -}} {%- if result.img_src %}{{ result_open_link(result.url) }}<img class="image" src="{{ image_proxify(result.img_src) }}" alt="{{ result.title|striptags }}" title="{{ result.title|striptags }}" class="image" />{{ result_close_link() }}{% endif -%} {%- if result.thumbnail %}{{ result_open_link(result.url) }}<img class="thumbnail" src="{{ image_proxify(result.thumbnail) }}" title="{{ result.title|striptags }}" alt="{{ result.title|striptags }}"/>{{ result_close_link() }}{% endif -%} <h3>{{ result_link(result.url, result.title|safe) }}</h3> @@ -43,7 +38,7 @@ {%- macro result_sub_footer(result, proxify) -%} <div class="engines"> {% for engine in result.engines %}<span>{{ engine }}</span>{% endfor %} - {{ result_link("https://web.archive.org/web/" + result.url, icon('link') + _('cached'), "cache_link") }}‎ {% if proxify and proxify_results %} {{ result_link(proxify(result.url), icon('link') + _('proxied'), "proxyfied_link") }} {% endif %} + {{ result_link("https://web.archive.org/web/" + result.url, icon_small('ellipsis-vertical-outline') + _('cached'), "cache_link") }}‎ {% if proxify and proxify_results %} {{ result_link(proxify(result.url), icon('link') + _('proxied'), "proxyfied_link") }} {% endif %} </div>{{- '' -}} <div class="break"></div>{{- '' -}} {%- endmacro -%} diff --git a/searx/templates/simple/messages/no_results.html b/searx/templates/simple/messages/no_results.html index a3ab97758..b98f834e6 100644 --- a/searx/templates/simple/messages/no_results.html +++ b/searx/templates/simple/messages/no_results.html @@ -1,17 +1,19 @@ -{% from 'simple/macros.html' import icon %} +{% from 'simple/icons.html' import icon_big %} {% if unresponsive_engines %} <div class="dialog-error" role="alert"> - <p><strong>{{ _('Error!') }}</strong> {{ _('Engines cannot retrieve results.') }}</p> - {% for engine_name, error_type in unresponsive_engines %} - <p>{{- '' -}} - {{- engine_name }} ( + {{ icon_big('warning') }} + <div> + <p><strong>{{ _('Error!') }}</strong> {{ _('Engines cannot retrieve results.') }}</p> + {% for engine_name, error_type in unresponsive_engines %} + <p>{{- '' -}} + {{- engine_name }} ( <a href="{{ url_for('stats', engine=engine_name|e) }}" title="{{ _('View error logs and submit a bug report') }}"> - {{- error_type -}} + {{- error_type -}} </a> ){{- '' -}} - </p> - {%- endfor %} - - <p><small>{{ _('Please, try again later or find another SearXNG instance.') }} (<a href="{{ get_setting('brand.public_instances') }}">{{ _('Public instances') }}</a>) </small></p> + </p> + {%- endfor %} + <p><small>{{ _('Please, try again later or find another SearXNG instance.') }} (<a href="{{ get_setting('brand.public_instances') }}">{{ _('Public instances') }}</a>) </small></p> + </div> </div> {% else %} <div class="dialog-error" role="alert"> diff --git a/searx/templates/simple/preferences.html b/searx/templates/simple/preferences.html index 995170754..3fb962bd3 100644 --- a/searx/templates/simple/preferences.html +++ b/searx/templates/simple/preferences.html @@ -1,4 +1,5 @@ -{% from 'simple/macros.html' import icon, tabs_open, tabs_close, tab_header, tab_footer, checkbox_onoff, checkbox %} +{% from 'simple/macros.html' import tabs_open, tabs_close, tab_header, tab_footer, checkbox_onoff, checkbox %} +{% from 'simple/icons.html' import icon_big %} {% extends "simple/base.html" %} @@ -25,7 +26,7 @@ <p class="engine-description"></p> <p><a href="{{about.website}}" rel="noreferrer">{{about.website}}</a></p> {%- if about.wikidata_id -%}<p><a href="https://www.wikidata.org/wiki/{{about.wikidata_id}}" rel="noreferrer">wikidata.org/wiki/{{about.wikidata_id}}</a></p>{%- endif -%} - {%- if search_engine.enable_http %}<p>{{ icon('exclamation-sign', 'No HTTPS') }}{{ _('No HTTPS')}}</p>{% endif -%} + {%- if search_engine.enable_http %}<p>{{ icon_big('exclamation-sign', 'No HTTPS') }}{{ _('No HTTPS')}}</p>{% endif -%} {%- if reliabilities.get(search_engine.name, {}).errors or reliabilities.get(search_engine.name, {}).checker -%} <a href="{{ url_for('stats', engine=search_engine.name|e) }}" title="{{ _('View error logs and submit a bug report') }}"> {{ _('View error logs and submit a bug report') }} @@ -74,7 +75,7 @@ <td class="{{ label }} column-reliability">{{- "" -}} <a href="{{ url_for('stats', engine=engine_name|e) }}">{{- "" -}} <span aria-labelledby="{{engine_name}}_reliability"> - {{ icon('warning', 'The engine is not reliabled') }} {{ r -}} + {{ icon_big('warning', 'The engine is not reliabled') }} {{ r -}} </span>{{- "" -}} </a>{{- "" -}} <div class="engine-tooltip" role="tooltip" id="{{engine_name}}_reliability"> @@ -168,6 +169,13 @@ <div class="description"><!-- {{ _('Redirect to open-access versions of publications when available (plugin required)') }} --></div> </fieldset> {% endif %} + <fieldset> + <legend>{{ _('Engine tokens') }}</legend> + <p class="value"> + <input name="tokens" type="text" autocomplete="off" spellcheck="false" autocorrect="off" value='{{ preferences.tokens.get_value() }}'/> + </p> + <p class="description">{{ _('Access tokens for private engines') }}</p> + </fieldset> {{ tab_footer() }} {{ tab_header('maintab', 'ui', _('User interface')) }} @@ -196,6 +204,17 @@ </p> <div class="description">{{ _('Change SearXNG layout') }}</div> </fieldset> + <fieldset> + <legend>{{ _('Theme style') }}</legend> + <p class="value"> + <select name="simple_style"> + {%- for name in ['auto', 'light', 'dark'] -%} + <option value="{{ name }}" {% if name == preferences.get_value('simple_style') %}selected="selected"{% endif %}>{{ _(name) }}</option> + {%- endfor -%} + </select> + </p> + <div class="description">{{ _('Choose auto to follow your browser settings') }}</div> + </fieldset> {% endif %} {% if 'results_on_new_tab' not in locked_preferences %} <fieldset> @@ -275,7 +294,7 @@ {% set engine_id = 'engine_' + search_engine.name|replace(' ', '_') + '__' + categ|replace(' ', '_') %} <tr> <td class="engine_checkbox">{{ checkbox_onoff(engine_id, (search_engine.name, categ) in disabled_engines) }}</td> - <th class="name" data-engine-name="{{ search_engine.name }}">{% if search_engine.enable_http %}{{ icon('warning', 'No HTTPS') }}{% endif %} {{ search_engine.name }} {{ engine_about(search_engine) }}</th> + <th class="name" data-engine-name="{{ search_engine.name }}">{% if search_engine.enable_http %}{{ icon_big('warning', 'No HTTPS') }}{% endif %} {{ search_engine.name }} {{ engine_about(search_engine) }}</th> <td class="shortcut">{{ shortcuts[search_engine.name] }}</td> <td>{{ checkbox(engine_id + '_supported_languages', supports[search_engine.name]['supports_selected_language'], true, true) }}</td> <td>{{ checkbox(engine_id + '_safesearch', supports[search_engine.name]['safesearch'], true, true) }}</td> diff --git a/searx/templates/simple/result_templates/default.html b/searx/templates/simple/result_templates/default.html index 8cd985b1b..7c74a06d0 100644 --- a/searx/templates/simple/result_templates/default.html +++ b/searx/templates/simple/result_templates/default.html @@ -5,9 +5,15 @@ {% if result.embedded -%} <p class="altlink"> • <a class="btn-collapse collapsed media-loader disabled_if_nojs" data-target="#result-media-{{ index }}" data-btn-text-collapsed="{{ _('show media') }}" data-btn-text-not-collapsed="{{ _('hide media') }}">{{ icon('music-note') }} {{ _('show media') }}</a></p> {%- endif %} -<p class="content"> - {%- if result.content %}{{ result.content|safe }}{% endif -%} -</p> +{%- if result.content %} + <p class="content"> + {{ result.content|safe }} + </p> +{%- else %} + <p class="content empty_element"> + {{ _('This site did not provide any description.')|safe }} + </p> +{% endif -%} {{- result_sub_footer(result, proxify) -}} {% if result.embedded -%} <div id="result-media-{{ index }}" class="invisible"> diff --git a/searx/templates/simple/result_templates/images.html b/searx/templates/simple/result_templates/images.html index f905cd6d7..82cfcdde5 100644 --- a/searx/templates/simple/result_templates/images.html +++ b/searx/templates/simple/result_templates/images.html @@ -5,8 +5,8 @@ </a>{{- "" -}} <div class="detail">{{- "" -}} <a class="result-detail-close" href="#">{{ icon('close') }}</a>{{- "" -}} - <a class="result-detail-previous" href="#">{{ icon_small('chevron-left') }}</a>{{- "" -}} - <a class="result-detail-next" href="#">{{ icon_small('chevron-right') }}</a>{{- "" -}} + <a class="result-detail-previous" href="#">{{ icon('chevron-left') }}</a>{{- "" -}} + <a class="result-detail-next" href="#">{{ icon('chevron-right') }}</a>{{- "" -}} <a class="result-images-source" {% if results_on_new_tab %}target="_blank" rel="noopener noreferrer"{% else %}rel="noreferrer"{% endif %} href="{{ result.img_src }}"> {%- if result.thumbnail_src -%} <img src="" data-src="{{ image_proxify(result.img_src) }}" alt="{{ result.title|striptags }}"> diff --git a/searx/templates/simple/result_templates/map.html b/searx/templates/simple/result_templates/map.html index 244483a1d..3492d5d5f 100644 --- a/searx/templates/simple/result_templates/map.html +++ b/searx/templates/simple/result_templates/map.html @@ -1,4 +1,5 @@ -{% from 'simple/macros.html' import result_header, result_sub_header, result_sub_footer, result_footer, result_footer_rtl, icon with context %} +{% from 'simple/macros.html' import result_header, result_sub_header, result_sub_footer, result_footer, result_footer_rtl with context %} +{% from 'simple/icons.html' import icon_small %} {{ result_header(result, favicons, image_proxify) -}} {{- result_sub_header(result) -}} @@ -39,7 +40,7 @@ </table> {%- if (result.latitude and result.longitude) or result.boundingbox -%} - <small> <a class="btn-collapse collapsed searxng_init_map hide_if_nojs" data-target="#result-map-{{ index }}" data-btn-text-collapsed="{{ _('show map') }}" data-btn-text-not-collapsed="{{ _('hide map') }}" data-leaflet-target="osm-map-{{ index }}" data-map-lon="{{ result.longitude }}" data-map-lat="{{ result.latitude }}" {% if result.boundingbox %}data-map-boundingbox='{{ result.boundingbox|tojson|safe }}'{% endif %} {% if result.geojson %}data-map-geojson='{{ result.geojson|tojson|safe }}'{% endif %}>{{ icon( 'globe') }} {{ _('show map') }}</a></small> + <small> <a class="btn-collapse collapsed searxng_init_map hide_if_nojs" data-target="#result-map-{{ index }}" data-btn-text-collapsed="{{ _('show map') }}" data-btn-text-not-collapsed="{{ _('hide map') }}" data-leaflet-target="osm-map-{{ index }}" data-map-lon="{{ result.longitude }}" data-map-lat="{{ result.latitude }}" {% if result.boundingbox %}data-map-boundingbox='{{ result.boundingbox|tojson|safe }}'{% endif %} {% if result.geojson %}data-map-geojson='{{ result.geojson|tojson|safe }}'{% endif %}>{{ icon_small( 'globe-outline') }} {{ _('show map') }}</a></small> {%- endif -%} {{- result_sub_footer(result, proxify) -}} diff --git a/searx/templates/simple/result_templates/torrent.html b/searx/templates/simple/result_templates/torrent.html index ffb51588b..ecca0fdec 100644 --- a/searx/templates/simple/result_templates/torrent.html +++ b/searx/templates/simple/result_templates/torrent.html @@ -3,12 +3,12 @@ {{ result_header(result, favicons, image_proxify) -}} {{- result_sub_header(result) -}} -{% if result.magnetlink %}<p class="altlink"> • {{ result_link(result.magnetlink, icon('magnet') + _('magnet link'), "magnetlink") }}</p>{% endif %} -{% if result.torrentfile %}<p class="altlink"> • {{ result_link(result.torrentfile, icon('download-alt') + _('torrent file'), "torrentfile") }}</p>{% endif %} +{% if result.magnetlink %}<p class="altlink"> • {{ result_link(result.magnetlink, icon_big('magnet-outline') + _('magnet link'), "magnetlink") }}</p>{% endif %} +{% if result.torrentfile %}<p class="altlink"> • {{ result_link(result.torrentfile, icon_big('download-alt') + _('torrent file'), "torrentfile") }}</p>{% endif %} -{% if result.seed is defined %}<p class="stat"> • {{ icon('arrow-swap') }} {{ _('Seeder') }} <span class="badge">{{ result.seed }}</span> • {{ _('Leecher') }} <span class="badge">{{ result.leech }}</span></p>{% endif %} +{% if result.seed is defined %}<p class="stat"> • {{ icon_big('arrow-swap') }} {{ _('Seeder') }} <span class="badge">{{ result.seed }}</span> • {{ _('Leecher') }} <span class="badge">{{ result.leech }}</span></p>{% endif %} -{%- if result.filesize %}<p class="stat">{{ icon('floppy-disk') }} {{ _('Filesize') }}<span class="badge"> +{%- if result.filesize %}<p class="stat">{{ icon_big('floppy-disk') }} {{ _('Filesize') }}<span class="badge"> {%- if result.filesize < 1024 %}{{ result.filesize }} {{ _('Bytes') }} {%- elif result.filesize < 1024*1024 %}{{ '{0:0.2f}'.format(result.filesize/1024) }} {{ _('kiB') }} {%- elif result.filesize < 1024*1024*1024 %}{{ '{0:0.2f}'.format(result.filesize/1024/1024) }} {{ _('MiB') }} @@ -17,7 +17,7 @@ </span></p> {%- endif -%} -{%- if result.files %}<p class="stat">{{ icon('file') }} {{ _('Number of Files') }} <span class="badge">{{ result.files }}</span></p>{% endif -%} +{%- if result.files %}<p class="stat">{{ icon_big('file') }} {{ _('Number of Files') }} <span class="badge">{{ result.files }}</span></p>{% endif -%} {%- if result.content %}<p class="content">{{ result.content|safe }}</p>{% endif -%} {{- result_sub_footer(result, proxify) -}} diff --git a/searx/templates/simple/result_templates/videos.html b/searx/templates/simple/result_templates/videos.html index 8127b3d4e..1b2e1c84e 100644 --- a/searx/templates/simple/result_templates/videos.html +++ b/searx/templates/simple/result_templates/videos.html @@ -5,7 +5,16 @@ {% if result.embedded -%} <p class="altlink"> • <a class="btn-collapse collapsed media-loader disabled_if_nojs" data-target="#result-video-{{ index }}" data-btn-text-collapsed="{{ _('show video') }}" data-btn-text-not-collapsed="{{ _('hide video') }}">{{ icon('film-outline') }} {{ _('show video') }}</a></p> {%- endif %} -{% if result.content %}<p class="content">{{ result.content|safe }}</p>{% endif %} +{%- if result.content %} + <p class="content"> + {{ result.content|safe }} + </p> +{%- else %} + <p class="content empty_element"> + {{ _('This site did not provide any description.')|safe }} + </p> +{% endif -%} +</p> {{- result_sub_footer(result, proxify) -}} {% if result.embedded -%} <div id="result-video-{{ index }}" class="invisible"> diff --git a/searx/templates/simple/results.html b/searx/templates/simple/results.html index 05cbc45d7..5a279bd7d 100644 --- a/searx/templates/simple/results.html +++ b/searx/templates/simple/results.html @@ -1,5 +1,5 @@ {% extends "simple/base.html" %} -{% from 'simple/macros.html' import icon, icon_small %} +{% from 'simple/icons.html' import icon, icon_big, icon_small %} {% macro engine_data_form(engine_data) -%} {% for engine_name, kv_data in engine_data.items() %} {% for k, v in kv_data.items() %} @@ -10,7 +10,7 @@ {% block title %}{% if query_in_title %}{{- q|e -}} - {% endif %}{% endblock %} {% block meta %}<link rel="alternate" type="application/rss+xml" title="Searx search: {{ q|e }}" href="{{ url_for('search', _external=True) }}?q={{ q|urlencode }}&categories={{ selected_categories|join(",") | replace(' ','+') }}&pageno={{ pageno }}&time_range={{ time_range }}&language={{ current_language }}&safesearch={{ safesearch }}&format=rss">{% endblock %} {% block content %} -<nav id="linkto_preferences"><a href="{{ url_for('preferences') }}">{{ icon('navicon-round') }}</a></nav> +<nav id="linkto_preferences"><a href="{{ url_for('preferences') }}">{{ icon_big('menu-outline') }}</a></nav> {% include 'simple/search.html' %} {% if results and results|map(attribute='template')|unique|list|count == 1 %} @@ -42,14 +42,17 @@ {% if unresponsive_engines and results|length >= 1 %} <div class="dialog-error" role="alert"> - <p><strong>{{ _('Error!') }}</strong> {{ _('Engines cannot retrieve results') }}:</p> - {%- for engine_name, error_type in unresponsive_engines -%} - <p>{{- engine_name }} ( - <a href="{{ url_for('stats', engine=engine_name|e) }}" title="{{ _('View error logs and submit a bug report') }}"> + {{ icon_big('warning') }} + <div> + <p><strong>{{ _('Error!') }}</strong> {{ _('Engines cannot retrieve results') }}:</p> + {%- for engine_name, error_type in unresponsive_engines -%} + <p>{{- engine_name }} ( + <a href="{{ url_for('stats', engine=engine_name|e) }}" title="{{ _('View error logs and submit a bug report') }}"> {{- error_type -}} - </a> ){{- '' -}} - </p> - {% endfor %} + </a> ){{- '' -}} + </p> + {% endfor %} + </div> </div> {% endif %} @@ -141,7 +144,7 @@ {% endif %} </div> <div id="backToTop"> - <a href="#">{{ icon_small('chevron-up') }}</a> + <a href="#">{{ icon_small('chevron-up-outline') }}</a> </div> {% if paging %} <nav id="pagination"> diff --git a/searx/templates/simple/search.html b/searx/templates/simple/search.html index f8c82cd1b..1df55e782 100644 --- a/searx/templates/simple/search.html +++ b/searx/templates/simple/search.html @@ -1,21 +1,22 @@ <form id="search" method="{{ method or 'POST' }}" action="{{ url_for('search') }}"> - <a id="search_logo" href="{{ url_for('index') }}"> - <img class="search_logo_img" src="{{ url_for('static', filename='img/favicon.png') }}"> - </a> - <div id="search_wrapper"> + <div id="search_header"> + <a id="search_logo" href="{{ url_for('index') }}"> + <span hidden>SearXNG</span> + {% include '__common__/searxng-wordmark.min.svg' without context %} + </a> <div class="search_box"> <input id="q" autofocus name="q" type="text" placeholder="{{ _('Search for...') }}" tabindex="1" autocomplete="off" spellcheck="false" dir="auto" {% if q %}value="{{ q }}"{% endif %} > - <button id="clear_search" type="button" tabindex="-1"><span class="hide_if_nojs">{{ icon('close') }}</span><span class="show_if_nojs">{{ _('Clear search') }}</span></button> - <button id="send_search" type="submit" tabindex="-1"><span class="hide_if_nojs">{{ icon('search') }}</span><span class="show_if_nojs">{{ _('Start search') }}</span></button> - </div> - <div class="search_filters"> - {% include 'simple/languages.html' %} - {% include 'simple/time-range.html' %} + <button id="clear_search" type="button" tabindex="-1"><span class="hide_if_nojs">{{ icon_big('close') }}</span><span class="show_if_nojs">{{ _('clear') }}</span></button> + <button id="send_search" type="submit" tabindex="-1"><span class="hide_if_nojs">{{ icon_big('search-outline') }}</span><span class="show_if_nojs">{{ _('search') }}</span></button> </div> + {% set display_tooltip = true %} + {% include 'simple/categories.html' %} + </div> + <div class="search_filters"> + {% include 'simple/filters/languages.html' %} + {% include 'simple/filters/time_range.html' %} + {% include 'simple/filters/safesearch.html' %} </div> - {% set display_tooltip = true %} - {% include 'simple/categories.html' %} - <input type="hidden" name="safesearch" value="{{ safesearch }}" > <input type="hidden" name="theme" value="{{ theme }}" > {% if timeout_limit %}<input type="hidden" name="timeout_limit" value="{{ timeout_limit|e }}" >{% endif %} </form> diff --git a/searx/templates/simple/simple_search.html b/searx/templates/simple/simple_search.html index 3d0e11834..6a5cdd9e7 100644 --- a/searx/templates/simple/simple_search.html +++ b/searx/templates/simple/simple_search.html @@ -1,9 +1,9 @@ <form id="search" method="{{ method or 'POST' }}" action="{{ url_for('search') }}"> - <div id="search_wrapper"> + <div id="search_header"> <div class="search_box"> <input id="q" autofocus name="q" type="text" placeholder="{{ _('Search for...') }}" tabindex="1" autocomplete="off" spellcheck="false" dir="auto" {% if q %}value="{{ q }}"{% endif %} > - <button id="clear_search" type="button" tabindex="-1"><span class="hide_if_nojs">{{ icon('close') }}</span><span class="show_if_nojs">{{ _('Clear search') }}</span></button> - <button id="send_search" type="submit" tabindex="-1"><span class="hide_if_nojs">{{ icon('search') }}</span><span class="show_if_nojs">{{ _('Start search') }}</span></button> + <button id="clear_search" type="button" tabindex="-1"><span class="hide_if_nojs">{{ icon_big('close') }}</span><span class="show_if_nojs">{{ _('clear') }}</span></button> + <button id="send_search" type="submit" tabindex="-1"><span class="hide_if_nojs">{{ icon_big('search-outline') }}</span><span class="show_if_nojs">{{ _('search') }}</span></button> </div> </div> </form> diff --git a/searx/templates/simple/stats.html b/searx/templates/simple/stats.html index c023cfdd2..1e905790a 100644 --- a/searx/templates/simple/stats.html +++ b/searx/templates/simple/stats.html @@ -1,4 +1,4 @@ -{% from 'simple/macros.html' import icon %} +{% from 'simple/icons.html' import icon_big %} {% from '__common__/new_issue.html' import new_issue with context %} {% extends "simple/base.html" %} @@ -7,7 +7,7 @@ {% if selected_engine_name %} {{ column_name }} {% elif column_order==sort_order %} - {{ column_name }} {{ icon('arrow-dropdown') }} + {{ column_name }} {{ icon_big('arrow-dropdown') }} {% else %} <a href="{{ url_for('stats', sort=column_order) }}">{{ column_name }}</a> {% endif %} diff --git a/searx/webapp.py b/searx/webapp.py index ff4bf694c..94d421eb0 100755 --- a/searx/webapp.py +++ b/searx/webapp.py @@ -174,6 +174,12 @@ _category_names = ( gettext('science') ) +_simple_style = ( + gettext('auto'), + gettext('light'), + gettext('dark') +) + # timeout_text = gettext('timeout') parsing_error_text = gettext('parsing error') @@ -413,6 +419,16 @@ def _get_enable_categories(all_categories): return [x for x in all_categories if x in enabled_categories] +def get_pretty_url(parsed_url): + path = parsed_url.path + path = path[:-1] if len(path) > 0 and path[-1] == '/' else path + path = path.replace("/", " › ") + return [ + parsed_url.scheme + "://" + parsed_url.netloc, + path + ] + + def render(template_name, override_theme=None, **kwargs): # values from the HTTP requests kwargs['endpoint'] = 'results' if 'q' in kwargs else request.endpoint @@ -452,6 +468,7 @@ def render(template_name, override_theme=None, **kwargs): kwargs['searx_version'] = VERSION_STRING kwargs['searx_git_url'] = GIT_URL kwargs['get_setting'] = get_setting + kwargs['get_pretty_url'] = get_pretty_url # helpers to create links to other pages kwargs['url_for'] = url_for_theme # override url_for function in templates diff --git a/src/brand/searxng-wordmark.svg b/src/brand/searxng-wordmark.svg new file mode 100644 index 000000000..b94fe3728 --- /dev/null +++ b/src/brand/searxng-wordmark.svg @@ -0,0 +1,56 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + id="svg8" + version="1.1" + viewBox="0 0 92 92" + height="92mm" + width="92mm"> + <defs + id="defs2" /> + <metadata + id="metadata5"> + <rdf:RDF> + <cc:Work + rdf:about=""> + <dc:format>image/svg+xml</dc:format> + <dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> + <dc:title></dc:title> + </cc:Work> + </rdf:RDF> + </metadata> + <g + transform="translate(-40.921303,-17.416526)" + id="layer1"> + <circle + r="0" + style="fill:none;stroke:#000000;stroke-width:12;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + cy="92" + cx="75" + id="path3713" /> + <circle + r="30" + cy="53.902557" + cx="75.921303" + id="path834" + style="fill:none;fill-opacity:1;stroke:#3050ff;stroke-width:10;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + <path + d="m 67.514849,37.91524 a 18,18 0 0 1 21.051475,3.312407 18,18 0 0 1 3.137312,21.078282" + id="path852" + style="fill:none;fill-opacity:1;stroke:#3050ff;stroke-width:5;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + <rect + transform="rotate(-46.234709)" + ry="1.8669105e-13" + y="122.08995" + x="3.7063529" + height="39.963303" + width="18.846331" + id="rect912" + style="opacity:1;fill:#3050ff;fill-opacity:1;stroke:none;stroke-width:8;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + </g> +</svg> diff --git a/utils/filtron.sh b/utils/filtron.sh index 4e8d6aa5d..2536214e4 100755 --- a/utils/filtron.sh +++ b/utils/filtron.sh @@ -4,6 +4,8 @@ # shellcheck source=utils/lib.sh source "$(dirname "${BASH_SOURCE[0]}")/lib.sh" +# shellcheck source=utils/lib_go.sh +source "${REPO_ROOT}/utils/lib_go.sh" # shellcheck source=utils/lib_install.sh source "${REPO_ROOT}/utils/lib_install.sh" @@ -43,8 +45,6 @@ SERVICE_GROUP="${SERVICE_USER}" GO_ENV="${SERVICE_HOME}/.go_env" GO_VERSION="go1.17.2" -GO_PKG_URL="https://golang.org/dl/${GO_VERSION}.linux-amd64.tar.gz" -GO_TAR=$(basename "$GO_PKG_URL") APACHE_FILTRON_SITE="searxng.conf" NGINX_FILTRON_SITE="searxng.conf" @@ -218,7 +218,7 @@ install_all() { rst_title "Install $SERVICE_NAME (service)" assert_user wait_key - install_go "${GO_PKG_URL}" "${GO_TAR}" "${SERVICE_USER}" + go.golang "${GO_VERSION}" "${SERVICE_USER}" wait_key install_filtron install_rules @@ -301,9 +301,7 @@ install_check() { } go_version(){ - sudo -i -u "$SERVICE_USER" <<EOF -go version | cut -d' ' -f 3 -EOF + go.version "${SERVICE_USER}" } remove_all() { @@ -338,14 +336,9 @@ EOF export SERVICE_HOME echo "export SERVICE_HOME=$SERVICE_HOME" - cat > "$GO_ENV" <<EOF -export GOPATH=\$HOME/go-apps -export PATH=\$HOME/local/go/bin:\$GOPATH/bin:\$PATH -EOF - echo "Environment $GO_ENV has been setup." - tee_stderr <<EOF | sudo -i -u "$SERVICE_USER" -grep -qFs -- 'source $GO_ENV' ~/.profile || echo 'source $GO_ENV' >> ~/.profile +touch "$GO_ENV" +grep -qFs -- 'source "$GO_ENV"' ~/.profile || echo 'source "$GO_ENV"' >> ~/.profile EOF } @@ -353,22 +346,16 @@ filtron_is_installed() { [[ -f $SERVICE_HOME/go-apps/bin/filtron ]] } -_svcpr=" ${_Yellow}|${SERVICE_USER}|${_creset} " - install_filtron() { rst_title "Install filtron in user's ~/go-apps" section echo - tee_stderr <<EOF | sudo -i -u "$SERVICE_USER" 2>&1 | prefix_stdout "$_svcpr" -go install -v github.com/asciimoo/filtron@latest -EOF + go.install github.com/searxng/filtron@latest "${SERVICE_USER}" } update_filtron() { rst_title "Update filtron" section echo - tee_stderr <<EOF | sudo -i -u "$SERVICE_USER" 2>&1 | prefix_stdout "$_svcpr" -go install -v github.com/asciimoo/filtron@latest -EOF + go.install github.com/searxng/filtron@latest "${SERVICE_USER}" } install_rules() { diff --git a/utils/lib.sh b/utils/lib.sh index 7f6ff58c4..4472b9d32 100755 --- a/utils/lib.sh +++ b/utils/lib.sh @@ -504,7 +504,6 @@ install_template() { done } - service_is_available() { # usage: service_is_available <URL> @@ -825,40 +824,6 @@ EOF build_msg GH-PAGES "deployed" } -# golang -# ------ - -go_is_available() { - - # usage: go_is_available $SERVICE_USER && echo "go is installed!" - - sudo -i -u "${1}" which go &>/dev/null -} - -install_go() { - - # usage: install_go "${GO_PKG_URL}" "${GO_TAR}" "${SERVICE_USER}" - - local _svcpr=" ${_Yellow}|${3}|${_creset} " - - rst_title "Install Go in user's HOME" section - - rst_para "download and install go binary .." - cache_download "${1}" "${2}" - - tee_stderr 0.1 <<EOF | sudo -i -u "${3}" | prefix_stdout "$_svcpr" -echo \$PATH -echo \$GOPATH -mkdir -p \$HOME/local -rm -rf \$HOME/local/go -tar -C \$HOME/local -xzf ${CACHE}/${2} -EOF - sudo -i -u "${3}" <<EOF | prefix_stdout -! which go >/dev/null && echo "ERROR - Go Installation not found in PATH!?!" -which go >/dev/null && go version && echo "congratulations -- Go installation OK :)" -EOF -} - # system accounts # --------------- diff --git a/utils/lib_go.sh b/utils/lib_go.sh new file mode 100755 index 000000000..314204e1a --- /dev/null +++ b/utils/lib_go.sh @@ -0,0 +1,214 @@ +#!/usr/bin/env bash +# -*- coding: utf-8; mode: sh indent-tabs-mode: nil -*- +# SPDX-License-Identifier: AGPL-3.0-or-later +# +# Tools to install and maintain golang [1] binaries & packages. +# +# [1] https://golang.org/doc/devel/release#policy +# +# A simple *helloworld* test with user 'my_user' : +# +# sudo -H adduser my_user +# ./manage go.golang go1.17.3 my_user +# ./manage go.install github.com/go-training/helloworld@latest my_user +# ./manage go.bash my_user +# $ helloword +# Hello World!! +# +# Don't forget to remove 'my_user': sudo -H deluser --remove-home my_user + +# shellcheck source=utils/lib.sh +. /dev/null + +# shellcheck disable=SC2034 +declare main_cmd + +# configure golang environment +# ---------------------------- + +[[ -z "${GO_VERSION}" ]] && GO_VERSION="go1.17.3" + +GO_DL_URL="https://golang.org/dl" + +# implement go functions +# ----------------------- + +go.help(){ + cat <<EOF +go.: + ls : list golang binary archives (stable) + golang : (re-) install golang binary in user's \$HOME/local folder + install : install go package in user's \$HOME/go-apps folder + bash : start bash interpreter with golang environment sourced +EOF +} + +go.ls(){ + python3 <<EOF +import sys, json, requests +resp = requests.get("${GO_DL_URL}/?mode=json&include=all") +for ver in json.loads(resp.text): + if not ver['stable']: + continue + for f in ver['files']: + if f['kind'] != 'archive' or not f['size'] or not f['sha256'] or len(f['os']) < 2: + continue + print(" %(version)-10s|%(os)-8s|%(arch)-8s|%(filename)-30s|%(size)-10s|%(sha256)s" % f) +EOF +} + +go.ver_info(){ + + # print informations about a golang distribution. To print filename + # sha256 and size of the archive that fits to your OS and host: + # + # go.ver_info "${GO_VERSION}" archive "$(go.os)" "$(go.arch)" filename sha256 size + # + # usage: go.ver_info <go-vers> <kind> <os> <arch> [filename|sha256|size] + # + # kind: [archive|source|installer] + # os: [darwin|freebsd|linux|windows] + # arch: [amd64|arm64|386|armv6l|ppc64le|s390x] + + python3 - "$@" <<EOF +import sys, json, requests +resp = requests.get("${GO_DL_URL}/?mode=json&include=all") +for ver in json.loads(resp.text): + if ver['version'] != sys.argv[1]: + continue + for f in ver['files']: + if (f['kind'] != sys.argv[2] or f['os'] != sys.argv[3] or f['arch'] != sys.argv[4]): + continue + for x in sys.argv[5:]: + print(f[x]) + sys.exit(0) +sys.exit(42) +EOF +} + +go.os() { + local OS + case "$(command uname -a)xx" in + Linux\ *) OS=linux ;; + Darwin\ *) OS=darwin ;; + FreeBSD\ *) OS=freebsd ;; + CYGWIN* | MSYS* | MINGW*) OS=windows ;; + *) die 42 "OS is unknown: $(command uname -a)" ;; + esac + echo "${OS}" +} + +go.arch() { + local ARCH + case "$(command uname -m)" in + "x86_64") ARCH=amd64 ;; + "aarch64") ARCH=arm64 ;; + "armv6" | "armv7l") ARCH=armv6l ;; + "armv8") ARCH=arm64 ;; + .*386.*) ARCH=386 ;; + ppc64*) ARCH=ppc64le ;; + *) die 42 "ARCH is unknown: $(command uname -m)" ;; + esac + echo "${ARCH}" +} + +go.golang() { + + # install golang binary in user's $HOME/local folder: + # + # go.golang ${GO_VERSION} ${SERVICE_USER} + # + # usage: go.golang <go-vers> [<username>] + + local version fname sha size user userpr + local buf=() + + version="${1:-${GO_VERSION}}" + user="${2:-${USERNAME}}" + userpr=" ${_Yellow}|${user}|${_creset} " + + rst_title "Install Go in ${user}'s HOME" section + + mapfile -t buf < <( + go.ver_info "${version}" archive "$(go.os)" "$(go.arch)" filename sha256 size + ) + + if [ ${#buf[@]} -eq 0 ]; then + die 42 "can't find info of golang version: ${version}" + fi + fname="${buf[0]}" + sha="${buf[1]}" + size="$(numfmt --to=iec "${buf[2]}")" + + info_msg "Download go binary ${fname} (${size}B)" + cache_download "${GO_DL_URL}/${fname}" "${fname}" + + pushd "${CACHE}" &> /dev/null + echo "${sha} ${fname}" > "${fname}.sha256" + if ! sha256sum -c "${fname}.sha256" >/dev/null; then + die 42 "downloaded file ${fname} checksum does not match" + else + info_msg "${fname} checksum OK" + fi + popd &> /dev/null + + info_msg "install golang" + tee_stderr 0.1 <<EOF | sudo -i -u "${user}" | prefix_stdout "${userpr}" +mkdir -p \$HOME/local +rm -rf \$HOME/local/go +tar -C \$HOME/local -xzf ${CACHE}/${fname} +echo "export GOPATH=\$HOME/go-apps" > \$HOME/.go_env +echo "export PATH=\$HOME/local/go/bin:\\\$GOPATH/bin:\\\$PATH" >> \$HOME/.go_env +EOF + info_msg "test golang installation" + sudo -i -u "${user}" <<EOF +source \$HOME/.go_env +command -v go +go version +EOF +} + +go.install() { + + # install go package in user's $HOME/go-apps folder: + # + # go.install github.com/go-training/helloworld@lates ${SERVICE_USER} + # + # usage: go.install <package> [<username>] + + local package user userpr + + package="${1}" + user="${2:-${USERNAME}}" + userpr=" ${_Yellow}|${user}|${_creset} " + + if [ -z "${package}" ]; then + die 42 "${FUNCNAME[0]}() - missing argument: <package>" + fi + tee_stderr 0.1 <<EOF | sudo -i -u "${user}" | prefix_stdout "${userpr}" +source \$HOME/.go_env +go install -v ${package} +EOF +} + +go.bash() { + + # start bash interpreter with golang environment sourced + # + # go.bash ${SERVICE_USER} + # + # usage: go.bash [<username>] + + local user + user="${1:-${USERNAME}}" + sudo -i -u "${user}" bash --init-file "~${user}/.go_env" +} + +go.version(){ + local user + user="${1:-${USERNAME}}" + sudo -i -u "${user}" <<EOF +source \$HOME/.go_env +go version | cut -d' ' -f 3 +EOF +} diff --git a/utils/lib_install.sh b/utils/lib_install.sh index 4a251c096..e8e3297c5 100755 --- a/utils/lib_install.sh +++ b/utils/lib_install.sh @@ -121,10 +121,10 @@ install_log_searx_instance() { echo -e " SEARXNG_URL : ${_BBlue}${SEARXNG_URL:-none}${_creset}" if in_container; then - # searx is listening on 127.0.0.1 and not available from outside container + # SearXNG is listening on 127.0.0.1 and not available from outside container # in containers the service is listening on 0.0.0.0 (see lxc-searx.env) echo -e "---- container setup" - echo -e " ${_BBlack}HINT:${_creset} searx only listen on loopback device" \ + echo -e " ${_BBlack}HINT:${_creset} SearXNG only listen on loopback device" \ "${_BBlack}inside${_creset} the container." for ip in $(global_IPs) ; do if [[ $ip =~ .*:.* ]]; then diff --git a/utils/lib_nvm.sh b/utils/lib_nvm.sh new file mode 100755 index 000000000..267ba8a4a --- /dev/null +++ b/utils/lib_nvm.sh @@ -0,0 +1,182 @@ +#!/usr/bin/env bash +# -*- coding: utf-8; mode: sh indent-tabs-mode: nil -*- +# SPDX-License-Identifier: AGPL-3.0-or-later +# +# Tools to install and maintain NVM versions manager for Node.js +# +# [1] https://github.com/nvm-sh/nvm + +# https://github.com/koalaman/shellcheck/issues/356#issuecomment-853515285 +# shellcheck source=utils/lib.sh +. /dev/null + +declare main_cmd + +# configure nvm environment +# ------------------------- + +NVM_LOCAL_FOLDER=.nvm + +[[ -z "${NVM_GIT_URL}" ]] && NVM_GIT_URL="https://github.com/nvm-sh/nvm.git" +[[ -z "${NVM_MIN_NODE_VER}" ]] && NVM_MIN_NODE_VER="16.13.0" + +# initalize nvm environment +# ------------------------- + +nvm.env() { + source "${NVM_DIR}/nvm.sh" + source "${NVM_DIR}/bash_completion" +} + +nvm.is_installed() { + # is true if NVM is installed / in $HOME or even in <repo-root>/.nvm + [[ -d "${NVM_DIR}" ]] +} + +if [[ -z "${NVM_DIR}" ]]; then + # nvm is not pre-intalled in $HOME. Prepare for using nvm from <repo-root> + NVM_DIR="$(git rev-parse --show-toplevel)/${NVM_LOCAL_FOLDER}" +fi +export NVM_DIR + +if nvm.is_installed; then + [ "$VERBOSE" = "1" ] && info_msg "source NVM environment from ${NVM_DIR}" + nvm.env +else + # if nvm is not installed, use this function as a wrapper + nvm() { + nvm.ensure + nvm "$@" + } +fi + +# implement nvm functions +# ----------------------- + +nvm.is_local() { + # is true if NVM is installed in <repo-root>/.nvm + [ "${NVM_DIR}" = "$(git rev-parse --show-toplevel)/${NVM_LOCAL_FOLDER}" ] +} + +nvm.min_node(){ + + # usage: nvm.min_node 16.3.0 + # + # Is true if minimal Node.js version is installed. + + local min_v + local node_v + local higher_v + + if ! command -v node >/dev/null; then + wanr_msg "Node.js is not yet installed" + return 42 + fi + + min_v="${1}" + node_v="$(node --version)" + node_v="${node_v:1}" # remove 'v' from 'v16.3.0' + if ! [ "${min_v}" = "${node_v}" ]; then + higher_v="$(echo -e "$min_v\n${node_v}" | sort -Vr | head -1)" + if [ "${min_v}" = "${higher_v}" ]; then + return 42 + fi + fi +} + +# implement nvm command line +# -------------------------- + +nvm.help(){ + cat <<EOF +nvm.: use nvm (without dot) to execute nvm commands directly + install : install NVM locally at $(git rev-parse --show-toplevel)/${NVM_LOCAL_FOLDER} + clean : remove NVM installation + status : prompt some status informations about nvm & node + nodejs : install Node.js latest LTS + cmd ... : run command ... in NVM environment + bash : start bash interpreter with NVM environment sourced +EOF +} + +nvm.install() { + local NVM_VERSION_TAG + info_msg "install (update) NVM at ${NVM_DIR}" + if [[ -d "${NVM_DIR}" ]] ; then + info_msg "already cloned at: ${NVM_DIR}" + pushd "${NVM_DIR}" &> /dev/null + git fetch --all | prefix_stdout " ${_Yellow}||${_creset} " + else + info_msg "clone: ${NVM_GIT_URL}" + git clone "${NVM_GIT_URL}" "${NVM_DIR}" 2>&1 | prefix_stdout " ${_Yellow}||${_creset} " + pushd "${NVM_DIR}" &> /dev/null + git config --local advice.detachedHead false + fi + NVM_VERSION_TAG="$(git rev-list --tags --max-count=1)" + NVM_VERSION_TAG="$(git describe --abbrev=0 --tags --match "v[0-9]*" "${NVM_VERSION_TAG}")" + info_msg "checkout ${NVM_VERSION_TAG}" + git checkout "${NVM_VERSION_TAG}" 2>&1 | prefix_stdout " ${_Yellow}||${_creset} " + popd &> /dev/null + cp "${REPO_ROOT}/.nvm_packages" "${NVM_DIR}/default-packages" + nvm.env +} + +nvm.clean() { + if ! nvm.is_installed; then + build_msg CLEAN "[NVM] not installed" + return + fi + if ! nvm.is_local; then + build_msg CLEAN "[NVM] can't remove nvm from ${NVM_DIR}" + return + fi + if [ -n "${NVM_DIR}" ]; then + build_msg CLEAN "[NVM] drop $(realpath --relative-to=. "${NVM_DIR}")/" + rm -rf "${NVM_DIR}" + fi +} + +nvm.status() { + if command -v node >/dev/null; then + info_msg "Node.js is installed at $(command -v node)" + info_msg "Node.js is version $(node --version)" + if ! nvm.min_node "${NVM_MIN_NODE_VER}"; then + warn_msg "minimal Node.js version is ${NVM_MIN_NODE_VER}" + fi + else + warn_msg "Node.js is mot installed" + fi + if command -v npm >/dev/null; then + info_msg "npm is installed at $(command -v npm)" + info_msg "npm is version $(npm --version)" + else + warn_msg "npm is not installed" + fi + if nvm.is_installed; then + info_msg "NVM is installed at ${NVM_DIR}" + else + warn_msg "NVM is not installed" + info_msg "to install NVM and Node.js (LTS) use: ${main_cmd} nvm.nodejs" + fi +} + +nvm.nodejs() { + nvm install + nvm.status +} + +nvm.bash() { + nvm.ensure + bash --init-file <(cat "${NVM_DIR}/nvm.sh" "${NVM_DIR}/bash_completion") +} + +nvm.cmd() { + nvm.ensure + "$@" +} + +nvm.ensure() { + if ! nvm.is_installed; then + nvm.install + fi +} diff --git a/utils/lib_static.sh b/utils/lib_static.sh index 0d4ba9bad..32e0dc598 100755 --- a/utils/lib_static.sh +++ b/utils/lib_static.sh @@ -11,6 +11,9 @@ STATIC_BUILT_PATHS=( searx/static/themes/simple/css searx/static/themes/simple/js searx/static/themes/simple/src/generated/pygments.less + searx/static/themes/simple/img/favicon.png + searx/templates/__common__/searxng-wordmark.min.svg + searx/templates/simple/icons.html ) static_help(){ diff --git a/utils/morty.sh b/utils/morty.sh index c04df7a0c..25263a3d4 100755 --- a/utils/morty.sh +++ b/utils/morty.sh @@ -3,6 +3,8 @@ # shellcheck source=utils/lib.sh source "$(dirname "${BASH_SOURCE[0]}")/lib.sh" +# shellcheck source=utils/lib_go.sh +source "${REPO_ROOT}/utils/lib_go.sh" # shellcheck source=utils/lib_install.sh source "${REPO_ROOT}/utils/lib_install.sh" @@ -29,8 +31,6 @@ SERVICE_ENV_DEBUG=false GO_ENV="${SERVICE_HOME}/.go_env" GO_VERSION="go1.17.2" -GO_PKG_URL="https://golang.org/dl/${GO_VERSION}.linux-amd64.tar.gz" -GO_TAR=$(basename "$GO_PKG_URL") # shellcheck disable=SC2034 CONFIG_FILES=() @@ -234,7 +234,7 @@ install_all() { rst_title "Install $SERVICE_NAME (service)" assert_user wait_key - install_go "${GO_PKG_URL}" "${GO_TAR}" "${SERVICE_USER}" + go.golang "${GO_VERSION}" "${SERVICE_USER}" wait_key install_morty wait_key @@ -306,9 +306,7 @@ install_check() { } go_version(){ - sudo -i -u "$SERVICE_USER" <<EOF -go version | cut -d' ' -f 3 -EOF + go.version "${SERVICE_USER}" } remove_all() { @@ -338,14 +336,9 @@ EOF export SERVICE_HOME echo "export SERVICE_HOME=$SERVICE_HOME" - cat > "$GO_ENV" <<EOF -export GOPATH=\$HOME/go-apps -export PATH=\$HOME/local/go/bin:\$GOPATH/bin:\$PATH -EOF - echo "Environment $GO_ENV has been setup." - tee_stderr <<EOF | sudo -i -u "$SERVICE_USER" -grep -qFs -- 'source $GO_ENV' ~/.profile || echo 'source $GO_ENV' >> ~/.profile +touch $GO_ENV +grep -qFs -- 'source "$GO_ENV"' ~/.profile || echo 'source "$GO_ENV"' >> ~/.profile EOF } @@ -353,22 +346,16 @@ morty_is_installed() { [[ -f $SERVICE_HOME/go-apps/bin/morty ]] } -_svcpr=" ${_Yellow}|${SERVICE_USER}|${_creset} " - install_morty() { rst_title "Install morty in user's ~/go-apps" section echo - tee_stderr <<EOF | sudo -i -u "$SERVICE_USER" 2>&1 | prefix_stdout "$_svcpr" -go install -v github.com/asciimoo/morty@latest -EOF + go.install github.com/asciimoo/morty@latest "${SERVICE_USER}" } update_morty() { rst_title "Update morty" section echo - tee_stderr <<EOF | sudo -i -u "$SERVICE_USER" 2>&1 | prefix_stdout "$_svcpr" -go install -v github.com/asciimoo/morty@latest -EOF + go.install github.com/asciimoo/morty@latest "${SERVICE_USER}" } set_service_env_debug() { diff --git a/utils/searx.sh b/utils/searx.sh index 79cd2f26d..09af3819d 100755 --- a/utils/searx.sh +++ b/utils/searx.sh @@ -43,8 +43,7 @@ shellcheck" BUILD_PACKAGES_debian="\ firefox graphviz imagemagick texlive-xetex librsvg2-bin texlive-latex-recommended texlive-extra-utils fonts-dejavu -latexmk -npm" +latexmk" # pacman packages SEARX_PACKAGES_arch="\ @@ -55,8 +54,7 @@ shellcheck" BUILD_PACKAGES_arch="\ firefox graphviz imagemagick texlive-bin extra/librsvg -texlive-core texlive-latexextra ttf-dejavu -npm" +texlive-core texlive-latexextra ttf-dejavu" # dnf packages SEARX_PACKAGES_fedora="\ @@ -69,8 +67,7 @@ BUILD_PACKAGES_fedora="\ firefox graphviz graphviz-gd ImageMagick librsvg2-tools texlive-xetex-bin texlive-collection-fontsrecommended texlive-collection-latex dejavu-sans-fonts dejavu-serif-fonts -dejavu-sans-mono-fonts -npm" +dejavu-sans-mono-fonts" # yum packages # @@ -154,13 +151,13 @@ usage:: shell start interactive shell from user ${SERVICE_USER} install / remove - :all: complete (de-) installation of searx service + :all: complete (de-) installation of SearXNG service :user: add/remove service user '$SERVICE_USER' ($SERVICE_HOME) :dot-config: copy ./config.sh to ${SEARX_SRC} :searx-src: clone $GIT_URL :init-src: copy files (SEARX_SRC_INIT_FILES) to ${SEARX_SRC} :pyenv: create/remove virtualenv (python) in $SEARX_PYENV - :uwsgi: install searx uWSGI application + :uwsgi: install SearXNG uWSGI application :settings: reinstall settings from ${SEARXNG_SETTINGS_PATH} :packages: install needed packages from OS package manager :buildhost: install packages from OS package manager needed by buildhosts @@ -691,7 +688,7 @@ remove_settings() { } remove_searx() { - rst_title "Drop searx sources" section + rst_title "Drop SearXNG sources" section if ask_yn "Do you really want to drop SearXNG sources ($SEARX_SRC)?"; then rm -rf "$SEARX_SRC" else @@ -1038,7 +1035,7 @@ rst-doc() { [[ $DIST_VERS =~ $DIST_ID ]] && DIST_VERS= uWSGI_distro_setup - echo -e "\n.. START searx uwsgi-description $DIST_NAME" + echo -e "\n.. START searxng uwsgi-description $DIST_NAME" case $DIST_ID-$DIST_VERS in ubuntu-*|debian-*) cat <<EOF @@ -1091,13 +1088,13 @@ EOF EOF ;; esac - echo -e ".. END searx uwsgi-description $DIST_NAME" + echo -e ".. END searxng uwsgi-description $DIST_NAME" - echo -e "\n.. START searx uwsgi-appini $DIST_NAME" + echo -e "\n.. START searxng uwsgi-appini $DIST_NAME" echo ".. code:: bash" echo eval "echo \"$(< "${TEMPLATES}/${uWSGI_APPS_AVAILABLE}/${SEARXNG_UWSGI_APP}")\"" | prefix_stdout " " - echo -e "\n.. END searx uwsgi-appini $DIST_NAME" + echo -e "\n.. END searxng uwsgi-appini $DIST_NAME" ) done diff --git a/utils/templates/etc/uwsgi/apps-archlinux/searxng.ini b/utils/templates/etc/uwsgi/apps-archlinux/searxng.ini index dcb7d1a7d..ceaec19c2 100644 --- a/utils/templates/etc/uwsgi/apps-archlinux/searxng.ini +++ b/utils/templates/etc/uwsgi/apps-archlinux/searxng.ini @@ -17,7 +17,7 @@ env = LC_ALL=C.UTF-8 # chdir to specified directory before apps loading chdir = ${SEARX_SRC}/searx -# searx configuration (settings.yml) +# SearXNG configuration (settings.yml) env = SEARXNG_SETTINGS_PATH=${SEARXNG_SETTINGS_PATH} # disable logging for privacy diff --git a/utils/templates/etc/uwsgi/apps-archlinux/searxng.ini:socket b/utils/templates/etc/uwsgi/apps-archlinux/searxng.ini:socket index 580600072..fec553165 100644 --- a/utils/templates/etc/uwsgi/apps-archlinux/searxng.ini:socket +++ b/utils/templates/etc/uwsgi/apps-archlinux/searxng.ini:socket @@ -17,7 +17,7 @@ env = LC_ALL=C.UTF-8 # chdir to specified directory before apps loading chdir = ${SEARX_SRC}/searx -# searx configuration (settings.yml) +# SearXNG configuration (settings.yml) env = SEARXNG_SETTINGS_PATH=${SEARXNG_SETTINGS_PATH} # disable logging for privacy diff --git a/utils/templates/etc/uwsgi/apps-available/searxng.ini b/utils/templates/etc/uwsgi/apps-available/searxng.ini index 440c2e97d..db11df54f 100644 --- a/utils/templates/etc/uwsgi/apps-available/searxng.ini +++ b/utils/templates/etc/uwsgi/apps-available/searxng.ini @@ -17,7 +17,7 @@ env = LC_ALL=C.UTF-8 # chdir to specified directory before apps loading chdir = ${SEARX_SRC}/searx -# searx configuration (settings.yml) +# SearXNG configuration (settings.yml) env = SEARXNG_SETTINGS_PATH=${SEARXNG_SETTINGS_PATH} # disable logging for privacy diff --git a/utils/templates/etc/uwsgi/apps-available/searxng.ini:socket b/utils/templates/etc/uwsgi/apps-available/searxng.ini:socket index 08c98cf61..a9598b52b 100644 --- a/utils/templates/etc/uwsgi/apps-available/searxng.ini:socket +++ b/utils/templates/etc/uwsgi/apps-available/searxng.ini:socket @@ -17,7 +17,7 @@ env = LC_ALL=C.UTF-8 # chdir to specified directory before apps loading chdir = ${SEARX_SRC}/searx -# searx configuration (settings.yml) +# SearXNG configuration (settings.yml) env = SEARXNG_SETTINGS_PATH=${SEARXNG_SETTINGS_PATH} # disable logging for privacy |