From e12debe9ee971aebd74ae6326dbbc087922e5302 Mon Sep 17 00:00:00 2001 From: Markus Heiser Date: Mon, 29 Nov 2021 13:26:31 +0100 Subject: [PATCH 1/3] [brand] README: add SearXNG logo Signed-off-by: Markus Heiser --- README.rst | 44 +++++++++++++++++++++++++++++--------------- 1 file changed, 29 insertions(+), 15 deletions(-) diff --git a/README.rst b/README.rst index be45c9c41..308e4d0a9 100644 --- a/README.rst +++ b/README.rst @@ -1,24 +1,46 @@ .. SPDX-License-Identifier: AGPL-3.0-or-later -|searx install| -|searx homepage| -|searx wiki| +.. figure:: https://raw.githubusercontent.com/searxng/searxng/master/searx/static/themes/simple/img/searxng.svg + :target: https://searxng.github.io/searxng/ + :alt: SearXNG + :width: 100% + :align: center + + +|SearXNG install| +|SearXNG homepage| +|SearXNG wiki| |AGPL License| |Issues| |commits| |weblate| +|SearXNG logo| Privacy-respecting, hackable `metasearch engine`_ +If you are looking for running instances, ready to use, then visit searx.space_. + +Otherwise jump to the user_, admin_ and developer_ handbooks you will find on +our homepage_. + +.. _searx.space: https://searx.space +.. _user: https://searxng.github.io/searxng/user +.. _admin: https://searxng.github.io/searxng/admin +.. _developer: https://searxng.github.io/searxng/dev +.. _homepage: https://searxng.github.io/searxng .. _metasearch engine: https://en.wikipedia.org/wiki/Metasearch_engine -.. |searx install| image:: https://img.shields.io/badge/-install-blue +.. |SearXNG logo| image:: https://raw.githubusercontent.com/searxng/searxng/master/src/brand/searxng-wordmark.svg + :target: https://searxng.github.io/searxng + :width: 5% + +.. |SearXNG install| image:: https://img.shields.io/badge/-install-blue :target: https://searxng.github.io/searxng/admin/installation.html -.. |searx homepage| image:: https://img.shields.io/badge/-homepage-blue +.. |SearXNG homepage| image:: https://img.shields.io/badge/-homepage-blue :target: https://searxng.github.io/searxng -.. |searx wiki| image:: https://img.shields.io/badge/-wiki-blue +.. |SearXNG wiki| image:: https://img.shields.io/badge/-wiki-blue :target: https://github.com/searxng/searxng/wiki .. |AGPL License| image:: https://img.shields.io/badge/license-AGPL-blue.svg @@ -36,10 +58,7 @@ Privacy-respecting, hackable `metasearch engine`_ .. |weblate| image:: https://weblate.bubu1.eu/widgets/searxng/-/searxng/svg-badge.svg :target: https://weblate.bubu1.eu/projects/searxng/ -If you are looking for running instances, ready to use, then visit searx.space_. - -Otherwise jump to the user_, admin_ and developer_ handbooks you will find on -our homepage_. +---- SearXNG is a fork of `searx`_: @@ -47,8 +66,3 @@ SearXNG is a fork of `searx`_: * `exhaustive changelog `_ .. _searx: https://github.com/searx/searx -.. _searx.space: https://searx.space -.. _user: https://searxng.github.io/searxng/user -.. _admin: https://searxng.github.io/searxng/admin -.. _developer: https://searxng.github.io/searxng/dev -.. _homepage: https://searxng.github.io/searxng From 9349c71c54ef7ded18dff91c05b7583afa57c505 Mon Sep 17 00:00:00 2001 From: Markus Heiser Date: Mon, 29 Nov 2021 19:38:23 +0100 Subject: [PATCH 2/3] [mod] themes/simple/img/searxng.svg -> src/brand/searxng.svg * move `searx/static/themes/simple/img/searxng.svg` to `src/brand/searxng.svg` * README.rst can use it without a reference to a theme. * the simple theme can create `searx/static/themes/simple/img/searxng.png` using the svg2png task Suggested-by: @dalf https://github.com/searxng/searxng/pull/561#issuecomment-981747902 Signed-off-by: Markus Heiser --- README.rst | 2 +- docs/conf.py | 2 +- searx/static/themes/simple/gruntfile.js | 7 +++++-- searx/static/themes/simple/img/searxng.png | Bin 7698 -> 0 bytes .../themes/simple/img => src/brand}/searxng.svg | 0 utils/lib_static.sh | 2 +- 6 files changed, 8 insertions(+), 5 deletions(-) delete mode 100644 searx/static/themes/simple/img/searxng.png rename {searx/static/themes/simple/img => src/brand}/searxng.svg (100%) diff --git a/README.rst b/README.rst index 308e4d0a9..025569dfb 100644 --- a/README.rst +++ b/README.rst @@ -1,6 +1,6 @@ .. SPDX-License-Identifier: AGPL-3.0-or-later -.. figure:: https://raw.githubusercontent.com/searxng/searxng/master/searx/static/themes/simple/img/searxng.svg +.. figure:: https://raw.githubusercontent.com/searxng/searxng/master/src/brand/searxng.svg :target: https://searxng.github.io/searxng/ :alt: SearXNG :width: 100% diff --git a/docs/conf.py b/docs/conf.py index 5bc83ebe6..56f3e1d9f 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -133,7 +133,7 @@ html_sidebars = { "**": ["project.html", "relations.html", "searchbox.html", "sourcelink.html"], } singlehtml_sidebars = {"index": ["project.html", "localtoc.html"]} -html_logo = "../searx/static/themes/simple/src/svg/searxng-wordmark.svg" +html_logo = "../src/brand/searxng-wordmark.svg" html_title = "SearXNG Documentation ({})".format(VERSION_STRING) html_show_sourcelink = True diff --git a/searx/static/themes/simple/gruntfile.js b/searx/static/themes/simple/gruntfile.js index d51316dcf..8075e0797 100644 --- a/searx/static/themes/simple/gruntfile.js +++ b/searx/static/themes/simple/gruntfile.js @@ -147,14 +147,17 @@ module.exports = function(grunt) { svgo: ['--config', 'svg4web.svgo.js'] }, files: { - '<%= _templates %>/__common__/searxng-wordmark.min.svg': '<%= _brand %>/searxng-wordmark.svg' + '<%= _templates %>/__common__/searxng-wordmark.min.svg': '<%= _brand %>/searxng-wordmark.svg', + 'img/searxng.svg': '<%= _brand %>/searxng.svg' } } }, svg2png: { favicon: { files: { - 'img/favicon.png': '<%= _brand %>/searxng-wordmark.svg' + 'img/favicon.png': '<%= _brand %>/searxng-wordmark.svg', + 'img/searxng.png': '<%= _brand %>/searxng.svg' + } } }, diff --git a/searx/static/themes/simple/img/searxng.png b/searx/static/themes/simple/img/searxng.png deleted file mode 100644 index 20198639167310902be3b873133348b0e04dcb47..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7698 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 ZmU^1#ee@jr_kW6{B&RN0D{UV9{{X)=K_LJD diff --git a/searx/static/themes/simple/img/searxng.svg b/src/brand/searxng.svg similarity index 100% rename from searx/static/themes/simple/img/searxng.svg rename to src/brand/searxng.svg diff --git a/utils/lib_static.sh b/utils/lib_static.sh index 32e0dc598..785bb2687 100755 --- a/utils/lib_static.sh +++ b/utils/lib_static.sh @@ -11,7 +11,7 @@ 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/static/themes/simple/img searx/templates/__common__/searxng-wordmark.min.svg searx/templates/simple/icons.html ) From e2e585319e8f0685d749580619b94bcc5085eaf5 Mon Sep 17 00:00:00 2001 From: Markus Heiser Date: Mon, 29 Nov 2021 19:42:05 +0100 Subject: [PATCH 3/3] [build] /static --- searx/static/themes/simple/img/searxng.png | Bin 0 -> 8872 bytes searx/static/themes/simple/img/searxng.svg | 1 + 2 files changed, 1 insertion(+) create mode 100644 searx/static/themes/simple/img/searxng.png create mode 100644 searx/static/themes/simple/img/searxng.svg diff --git a/searx/static/themes/simple/img/searxng.png b/searx/static/themes/simple/img/searxng.png new file mode 100644 index 0000000000000000000000000000000000000000..36a88971164a1e301a7207fbccec6a4a501b9218 GIT binary patch literal 8872 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 \ No newline at end of file