summaryrefslogtreecommitdiff
path: root/searx/static/themes
diff options
context:
space:
mode:
Diffstat (limited to 'searx/static/themes')
-rw-r--r--searx/static/themes/__common__/js/image_layout.js (renamed from searx/static/themes/simple/js/searx_src/searx_imageresult.js)110
-rw-r--r--searx/static/themes/courgette/img/favicon.pngbin2039 -> 0 bytes
-rw-r--r--searx/static/themes/courgette/img/preference-icon.pngbin1315 -> 0 bytes
-rw-r--r--searx/static/themes/courgette/img/search-icon.pngbin3270 -> 0 bytes
-rw-r--r--searx/static/themes/courgette/img/searx-mobile.pngbin9415 -> 0 bytes
-rw-r--r--searx/static/themes/courgette/img/searx.pngbin3902 -> 0 bytes
-rw-r--r--searx/static/themes/courgette/img/searx_logo.svg203
-rw-r--r--searx/static/themes/courgette/js/searx.js45
-rw-r--r--searx/static/themes/courgette/less/style-rtl.less42
-rw-r--r--searx/static/themes/courgette/less/style.less695
-rw-r--r--searx/static/themes/legacy/img/favicon.pngbin2039 -> 0 bytes
-rw-r--r--searx/static/themes/legacy/img/preference-icon.pngbin532 -> 0 bytes
-rw-r--r--searx/static/themes/legacy/img/search-icon.pngbin2329 -> 0 bytes
-rw-r--r--searx/static/themes/legacy/img/searx.pngbin3902 -> 0 bytes
-rw-r--r--searx/static/themes/legacy/img/searx_logo.svg203
-rw-r--r--searx/static/themes/legacy/js/searx.js49
-rw-r--r--searx/static/themes/legacy/less/autocompleter.less61
-rw-r--r--searx/static/themes/legacy/less/code.less83
-rw-r--r--searx/static/themes/legacy/less/definitions.less119
-rw-r--r--searx/static/themes/legacy/less/mixins.less27
-rw-r--r--searx/static/themes/legacy/less/search.less68
-rw-r--r--searx/static/themes/legacy/less/style-rtl.less11
-rw-r--r--searx/static/themes/legacy/less/style.less743
-rw-r--r--searx/static/themes/oscar/.gitignore2
-rw-r--r--searx/static/themes/oscar/README.rst39
-rw-r--r--searx/static/themes/oscar/css/images/layers-2x.pngbin0 -> 1259 bytes
-rw-r--r--searx/static/themes/oscar/css/images/layers.pngbin0 -> 696 bytes
-rw-r--r--searx/static/themes/oscar/css/images/marker-icon-2x.pngbin0 -> 2464 bytes
-rw-r--r--searx/static/themes/oscar/css/images/marker-icon.pngbin0 -> 1466 bytes
-rw-r--r--searx/static/themes/oscar/css/images/marker-shadow.pngbin0 -> 618 bytes
-rw-r--r--searx/static/themes/oscar/css/pointhi.css706
-rw-r--r--searx/static/themes/oscar/gruntfile.js122
-rw-r--r--searx/static/themes/oscar/img/map/layers-2x.pngbin1763 -> 0 bytes
-rw-r--r--searx/static/themes/oscar/img/map/layers.pngbin1142 -> 0 bytes
-rw-r--r--searx/static/themes/oscar/img/map/marker-icon-2x-green.pngbin3753 -> 0 bytes
-rw-r--r--searx/static/themes/oscar/img/map/marker-icon-2x-orange.pngbin3691 -> 0 bytes
-rw-r--r--searx/static/themes/oscar/img/map/marker-icon-2x-red.pngbin3692 -> 0 bytes
-rw-r--r--searx/static/themes/oscar/img/map/marker-icon-2x.pngbin4033 -> 0 bytes
-rw-r--r--searx/static/themes/oscar/img/map/marker-icon-green.pngbin1696 -> 0 bytes
-rw-r--r--searx/static/themes/oscar/img/map/marker-icon-orange.pngbin1714 -> 0 bytes
-rw-r--r--searx/static/themes/oscar/img/map/marker-icon-red.pngbin1690 -> 0 bytes
-rw-r--r--searx/static/themes/oscar/img/map/marker-icon.pngbin1747 -> 0 bytes
-rw-r--r--searx/static/themes/oscar/img/map/marker-shadow.pngbin797 -> 0 bytes
-rw-r--r--searx/static/themes/oscar/js/searx.js356
-rw-r--r--searx/static/themes/oscar/js/searx_src/00_requirejs_config.js23
-rw-r--r--searx/static/themes/oscar/js/searx_src/autocompleter.js37
-rw-r--r--searx/static/themes/oscar/js/searx_src/leaflet_map.js167
-rw-r--r--searx/static/themes/oscar/less/logicodev/code.less101
-rw-r--r--searx/static/themes/oscar/less/logicodev/infobox.less37
-rw-r--r--searx/static/themes/oscar/less/logicodev/preferences.less3
-rw-r--r--searx/static/themes/oscar/less/logicodev/search.less80
-rw-r--r--searx/static/themes/oscar/less/pointhi/code.less79
-rw-r--r--searx/static/themes/oscar/less/pointhi/infobox.less11
-rw-r--r--searx/static/themes/oscar/less/pointhi/preferences.less3
-rw-r--r--searx/static/themes/oscar/less/pointhi/search.less33
-rw-r--r--searx/static/themes/oscar/package.json20
-rw-r--r--searx/static/themes/oscar/src/js/01_init.js (renamed from searx/static/themes/oscar/js/searx_src/01_init.js)6
-rw-r--r--searx/static/themes/oscar/src/js/autocompleter.js60
-rw-r--r--searx/static/themes/oscar/src/js/element_modifiers.js (renamed from searx/static/themes/oscar/js/searx_src/element_modifiers.js)18
-rw-r--r--searx/static/themes/oscar/src/js/infobox.js11
-rw-r--r--searx/static/themes/oscar/src/js/leaflet_map.js79
-rw-r--r--searx/static/themes/oscar/src/js/toggleall.js10
-rw-r--r--searx/static/themes/oscar/src/less/bootstrap/bootstrap.less3
-rw-r--r--searx/static/themes/oscar/src/less/bootstrap/typeahead.less154
-rw-r--r--searx/static/themes/oscar/src/less/logicodev-dark/oscar.less (renamed from searx/static/themes/oscar/less/logicodev-dark/oscar.less)22
-rw-r--r--searx/static/themes/oscar/src/less/logicodev/advanced.less (renamed from searx/static/themes/oscar/less/logicodev/advanced.less)4
-rw-r--r--searx/static/themes/oscar/src/less/logicodev/checkbox.less (renamed from searx/static/themes/oscar/less/logicodev/checkbox.less)0
-rw-r--r--searx/static/themes/oscar/src/less/logicodev/code.less14
-rw-r--r--searx/static/themes/oscar/src/less/logicodev/cursor.less (renamed from searx/static/themes/oscar/less/logicodev/cursor.less)0
-rw-r--r--searx/static/themes/oscar/src/less/logicodev/footer.less (renamed from searx/static/themes/oscar/less/logicodev/footer.less)0
-rw-r--r--searx/static/themes/oscar/src/less/logicodev/infobox.less92
-rw-r--r--searx/static/themes/oscar/src/less/logicodev/navbar.less (renamed from searx/static/themes/oscar/less/logicodev/navbar.less)0
-rw-r--r--searx/static/themes/oscar/src/less/logicodev/onoff.less (renamed from searx/static/themes/oscar/less/logicodev/onoff.less)21
-rw-r--r--searx/static/themes/oscar/src/less/logicodev/oscar.less (renamed from searx/static/themes/oscar/less/logicodev/oscar.less)0
-rw-r--r--searx/static/themes/oscar/src/less/logicodev/preferences.less31
-rw-r--r--searx/static/themes/oscar/src/less/logicodev/pygments.less99
-rw-r--r--searx/static/themes/oscar/src/less/logicodev/results.less (renamed from searx/static/themes/oscar/less/logicodev/results.less)98
-rw-r--r--searx/static/themes/oscar/src/less/logicodev/search.less113
-rw-r--r--searx/static/themes/oscar/src/less/logicodev/variables.less (renamed from searx/static/themes/oscar/less/logicodev/variables.less)9
-rw-r--r--searx/static/themes/oscar/src/less/pointhi/advanced.less (renamed from searx/static/themes/oscar/less/pointhi/advanced.less)0
-rw-r--r--searx/static/themes/oscar/src/less/pointhi/checkbox.less (renamed from searx/static/themes/oscar/less/pointhi/checkbox.less)0
-rw-r--r--searx/static/themes/oscar/src/less/pointhi/code.less2
-rw-r--r--searx/static/themes/oscar/src/less/pointhi/cursor.less (renamed from searx/static/themes/oscar/less/pointhi/cursor.less)0
-rw-r--r--searx/static/themes/oscar/src/less/pointhi/footer.less (renamed from searx/static/themes/oscar/less/pointhi/footer.less)0
-rw-r--r--searx/static/themes/oscar/src/less/pointhi/infobox.less62
-rw-r--r--searx/static/themes/oscar/src/less/pointhi/navbar.less (renamed from searx/static/themes/oscar/less/pointhi/navbar.less)0
-rw-r--r--searx/static/themes/oscar/src/less/pointhi/onoff.less (renamed from searx/static/themes/oscar/less/pointhi/onoff.less)0
-rw-r--r--searx/static/themes/oscar/src/less/pointhi/oscar.less (renamed from searx/static/themes/oscar/less/pointhi/oscar.less)4
-rw-r--r--searx/static/themes/oscar/src/less/pointhi/preferences.less19
-rw-r--r--searx/static/themes/oscar/src/less/pointhi/pygments.less99
-rw-r--r--searx/static/themes/oscar/src/less/pointhi/results.less (renamed from searx/static/themes/oscar/less/pointhi/results.less)4
-rw-r--r--searx/static/themes/oscar/src/less/pointhi/search.less56
-rw-r--r--searx/static/themes/pix-art/img/favicon.pngbin2039 -> 0 bytes
-rw-r--r--searx/static/themes/pix-art/img/preference-icon-pixel.pngbin242 -> 0 bytes
-rw-r--r--searx/static/themes/pix-art/img/search-icon-pixel.pngbin204 -> 0 bytes
-rw-r--r--searx/static/themes/pix-art/img/searx-pixel-small.pngbin236 -> 0 bytes
-rw-r--r--searx/static/themes/pix-art/img/searx-pixel.pngbin435 -> 0 bytes
-rw-r--r--searx/static/themes/pix-art/js/searx.js141
-rw-r--r--searx/static/themes/pix-art/less/definitions.less119
-rw-r--r--searx/static/themes/pix-art/less/mixins.less27
-rw-r--r--searx/static/themes/pix-art/less/search.less57
-rw-r--r--searx/static/themes/pix-art/less/style.less451
-rw-r--r--searx/static/themes/simple/.gitignore1
-rw-r--r--searx/static/themes/simple/fonts/ion.css139
-rw-r--r--searx/static/themes/simple/fonts/ion.eotbin0 -> 4094 bytes
-rw-r--r--searx/static/themes/simple/fonts/ion.html268
-rw-r--r--searx/static/themes/simple/fonts/ion.svg105
-rw-r--r--searx/static/themes/simple/fonts/ion.ttfbin0 -> 3936 bytes
-rw-r--r--searx/static/themes/simple/fonts/ion.woffbin0 -> 4856 bytes
-rw-r--r--searx/static/themes/simple/fonts/ion.woff2bin0 -> 2112 bytes
-rw-r--r--searx/static/themes/simple/gruntfile.js17
-rw-r--r--searx/static/themes/simple/js/searx.head.js2
-rw-r--r--searx/static/themes/simple/js/searx_head/00_init.js2
-rw-r--r--searx/static/themes/simple/js/searx_src/searx_mapresult.js87
-rw-r--r--searx/static/themes/simple/js/searx_src/searx_results.js2
-rw-r--r--searx/static/themes/simple/js/searx_src/searx_search.js8
-rw-r--r--searx/static/themes/simple/less/code.less85
-rw-r--r--searx/static/themes/simple/less/preferences.less17
-rw-r--r--searx/static/themes/simple/less/pygments.less99
-rw-r--r--searx/static/themes/simple/less/style.less36
120 files changed, 2667 insertions, 4364 deletions
diff --git a/searx/static/themes/simple/js/searx_src/searx_imageresult.js b/searx/static/themes/__common__/js/image_layout.js
index 7bbfc14..ea54cf5 100644
--- a/searx/static/themes/simple/js/searx_src/searx_imageresult.js
+++ b/searx/static/themes/__common__/js/image_layout.js
@@ -3,21 +3,21 @@
* Google Image Layout v0.0.1
* Description, by Anh Trinh.
* Heavily modified for searx
-* http://trinhtrunganh.com
+* https://ptgamr.github.io/2014-09-12-google-image-layout/
+* https://ptgamr.github.io/google-image-layout/src/google-image-layout.js
*
* @license Free to use under the MIT License.
*
*/
-(function(w, d) {
- 'use strict';
-
- function ImageLayout(container_selector, results_selector, img_selector, maxHeight) {
+
+(function (w, d) {
+ function ImageLayout(container_selector, results_selector, img_selector, margin, maxHeight) {
this.container_selector = container_selector;
this.results_selector = results_selector;
this.img_selector = img_selector;
- this.margin = 10;
+ this.margin = margin;
this.maxHeight = maxHeight;
- this._alignAllDone = true;
+ this.isAlignDone = true;
}
/**
@@ -31,12 +31,11 @@
*
* @return {[type]} the height
*/
- ImageLayout.prototype._getHeigth = function(images, width) {
- var r = 0,
- img;
+ ImageLayout.prototype._getHeigth = function (images, width) {
+ var i, img;
+ var r = 0;
- width -= images.length * this.margin;
- for (var i = 0; i < images.length; i++) {
+ for (i = 0; i < images.length; i++) {
img = images[i];
if ((img.naturalWidth > 0) && (img.naturalHeight > 0)) {
r += img.naturalWidth / img.naturalHeight;
@@ -46,12 +45,14 @@
}
}
- return width / r; //have to round down because Firefox will automatically roundup value with number of decimals > 3
+ return (width - images.length * this.margin) / r; //have to round down because Firefox will automatically roundup value with number of decimals > 3
};
- ImageLayout.prototype._setSize = function(images, height) {
- var img, imgWidth, imagesLength = images.length;
- for (var i = 0; i < imagesLength; i++) {
+ ImageLayout.prototype._setSize = function (images, height) {
+ var i, img, imgWidth;
+ var imagesLength = images.length, resultNode;
+
+ for (i = 0; i < imagesLength; i++) {
img = images[i];
if ((img.naturalWidth > 0) && (img.naturalHeight > 0)) {
imgWidth = height * img.naturalWidth / img.naturalHeight;
@@ -65,38 +66,52 @@
img.style.marginTop = '3px';
img.style.marginRight = this.margin - 7 + 'px'; // -4 is the negative margin of the inline element
img.style.marginBottom = this.margin - 7 + 'px';
+ resultNode = img.parentNode.parentNode;
+ if (!resultNode.classList.contains('js')) {
+ resultNode.classList.add('js');
+ }
}
};
- ImageLayout.prototype._alignImgs = function(imgGroup) {
- var slice, h,
- containerWidth = d.querySelector(this.container_selector).clientWidth;
+ ImageLayout.prototype._alignImgs = function (imgGroup) {
+ var isSearching, slice, i, h;
+ var containerElement = d.querySelector(this.container_selector);
+ var containerCompStyles = window.getComputedStyle(containerElement);
+ var containerPaddingLeft = parseInt(containerCompStyles.getPropertyValue('padding-left'), 10);
+ var containerPaddingRight = parseInt(containerCompStyles.getPropertyValue('padding-right'), 10);
+ var containerWidth = containerElement.clientWidth - containerPaddingLeft - containerPaddingRight;
- w: while (imgGroup.length > 0) {
- for (var i = 1; i <= imgGroup.length; i++) {
+ while (imgGroup.length > 0) {
+ isSearching = true;
+ for (i = 1; i <= imgGroup.length && isSearching; i++) {
slice = imgGroup.slice(0, i);
h = this._getHeigth(slice, containerWidth);
if (h < this.maxHeight) {
this._setSize(slice, h);
+ // continue with the remaining images
imgGroup = imgGroup.slice(i);
- continue w;
+ isSearching = false;
}
}
- this._setSize(slice, Math.min(this.maxHeight, h));
- break;
+ if (isSearching) {
+ this._setSize(slice, Math.min(this.maxHeight, h));
+ break;
+ }
}
};
- ImageLayout.prototype.align = function(results_selector) {
- var results_selectorNode = d.querySelectorAll(this.results_selector),
- results_length = results_selectorNode.length,
- previous = null,
- current = null,
- imgGroup = [];
- for (var i = 0; i < results_length; i++) {
+ ImageLayout.prototype.align = function () {
+ var i;
+ var results_selectorNode = d.querySelectorAll(this.results_selector);
+ var results_length = results_selectorNode.length;
+ var previous = null;
+ var current = null;
+ var imgGroup = [];
+
+ for (i = 0; i < results_length; i++) {
current = results_selectorNode[i];
if (current.previousElementSibling !== previous && imgGroup.length > 0) {
- // the current image is not conected to previous one
+ // the current image is not connected to previous one
// so the current image is the start of a new group of images.
// so call _alignImgs to align the current group
this._alignImgs(imgGroup);
@@ -114,32 +129,29 @@
}
};
- ImageLayout.prototype.watch = function() {
- var i, img, imgGroup, imgNodeLength,
- obj = this,
- results_nodes = d.querySelectorAll(this.results_selector),
- results_length = results_nodes.length;
-
- function align(e) {
- obj.align();
- }
+ ImageLayout.prototype.watch = function () {
+ var i, img;
+ var obj = this;
+ var results_nodes = d.querySelectorAll(this.results_selector);
+ var results_length = results_nodes.length;
- function throttleAlign(e) {
- if (obj._alignAllDone) {
- obj._alignAllDone = false;
- setTimeout(function() {
+ function throttleAlign() {
+ if (obj.isAlignDone) {
+ obj.isAlignDone = false;
+ setTimeout(function () {
obj.align();
- obj._alignAllDone = true;
+ obj.isAlignDone = true;
}, 100);
}
}
+ w.addEventListener('pageshow', throttleAlign);
+ w.addEventListener('load', throttleAlign);
w.addEventListener('resize', throttleAlign);
- w.addEventListener('pageshow', align);
for (i = 0; i < results_length; i++) {
img = results_nodes[i].querySelector(this.img_selector);
- if (typeof img !== 'undefined') {
+ if (img !== null && img !== undefined) {
img.addEventListener('load', throttleAlign);
img.addEventListener('error', throttleAlign);
}
@@ -148,4 +160,4 @@
w.searx.ImageLayout = ImageLayout;
-})(window, document);
+}(window, document));
diff --git a/searx/static/themes/courgette/img/favicon.png b/searx/static/themes/courgette/img/favicon.png
deleted file mode 100644
index 3818d3d..0000000
--- a/searx/static/themes/courgette/img/favicon.png
+++ /dev/null
Binary files differ
diff --git a/searx/static/themes/courgette/img/preference-icon.png b/searx/static/themes/courgette/img/preference-icon.png
deleted file mode 100644
index 57e991c..0000000
--- a/searx/static/themes/courgette/img/preference-icon.png
+++ /dev/null
Binary files differ
diff --git a/searx/static/themes/courgette/img/search-icon.png b/searx/static/themes/courgette/img/search-icon.png
deleted file mode 100644
index 9bc7a22..0000000
--- a/searx/static/themes/courgette/img/search-icon.png
+++ /dev/null
Binary files differ
diff --git a/searx/static/themes/courgette/img/searx-mobile.png b/searx/static/themes/courgette/img/searx-mobile.png
deleted file mode 100644
index 31dd7d1..0000000
--- a/searx/static/themes/courgette/img/searx-mobile.png
+++ /dev/null
Binary files differ
diff --git a/searx/static/themes/courgette/img/searx.png b/searx/static/themes/courgette/img/searx.png
deleted file mode 100644
index 68c2e4f..0000000
--- a/searx/static/themes/courgette/img/searx.png
+++ /dev/null
Binary files differ
diff --git a/searx/static/themes/courgette/img/searx_logo.svg b/searx/static/themes/courgette/img/searx_logo.svg
deleted file mode 100644
index 67a2d45..0000000
--- a/searx/static/themes/courgette/img/searx_logo.svg
+++ /dev/null
@@ -1,203 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<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"
- xmlns:xlink="http://www.w3.org/1999/xlink"
- xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
- xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
- width="744.09448819"
- height="1052.3622047"
- id="svg2"
- version="1.1"
- inkscape:version="0.48.4 r9939"
- sodipodi:docname="searx_logo.svg"
- inkscape:export-filename="/home/a/magnif.png"
- inkscape:export-xdpi="203.1774"
- inkscape:export-ydpi="203.1774">
- <defs
- id="defs4">
- <linearGradient
- inkscape:collect="always"
- id="linearGradient3857">
- <stop
- style="stop-color:#ffffff;stop-opacity:1;"
- offset="0"
- id="stop3859" />
- <stop
- style="stop-color:#ffffff;stop-opacity:0;"
- offset="1"
- id="stop3861" />
- </linearGradient>
- <linearGradient
- id="linearGradient3790">
- <stop
- style="stop-color:#a9a9a9;stop-opacity:1;"
- offset="0"
- id="stop3792" />
- <stop
- style="stop-color:#000000;stop-opacity:1;"
- offset="1"
- id="stop3794" />
- </linearGradient>
- <radialGradient
- inkscape:collect="always"
- xlink:href="#linearGradient3790"
- id="radialGradient3798"
- cx="294.45947"
- cy="208.37973"
- fx="294.45947"
- fy="208.37973"
- r="107.58125"
- gradientUnits="userSpaceOnUse" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient3857"
- id="linearGradient3865"
- x1="120.68947"
- y1="239.61774"
- x2="120.68947"
- y2="602.17517"
- gradientUnits="userSpaceOnUse" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient3790"
- id="linearGradient3912"
- x1="186.74416"
- y1="354.42426"
- x2="255.84358"
- y2="254.35953"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(1.2227304,0,0,0.89945099,-289.31433,113.40259)" />
- <filter
- inkscape:collect="always"
- id="filter4024"
- x="-0.12996517"
- width="1.2599303"
- y="-0.14709377"
- height="1.2941875">
- <feGaussianBlur
- inkscape:collect="always"
- stdDeviation="6.4759344"
- id="feGaussianBlur4026" />
- </filter>
- <filter
- inkscape:collect="always"
- id="filter3983"
- x="-1.0608404"
- width="3.1216809"
- y="-0.31017202"
- height="1.620344">
- <feGaussianBlur
- inkscape:collect="always"
- stdDeviation="9.392858"
- id="feGaussianBlur3985" />
- </filter>
- </defs>
- <sodipodi:namedview
- id="base"
- pagecolor="#ffffff"
- bordercolor="#666666"
- borderopacity="1.0"
- inkscape:pageopacity="0.0"
- inkscape:pageshadow="2"
- inkscape:zoom="1.979899"
- inkscape:cx="30.708726"
- inkscape:cy="948.08556"
- inkscape:document-units="px"
- inkscape:current-layer="layer1"
- showgrid="false"
- inkscape:window-width="1364"
- inkscape:window-height="663"
- inkscape:window-x="0"
- inkscape:window-y="30"
- inkscape:window-maximized="0"
- showguides="true"
- inkscape:guide-bbox="true" />
- <metadata
- id="metadata7">
- <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 />
- </cc:Work>
- </rdf:RDF>
- </metadata>
- <g
- inkscape:label="Layer 1"
- inkscape:groupmode="layer"
- id="layer1">
- <path
- style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none"
- d="m 70.523181,34.870671 c -7.11959,15.242893 -10.17798,31.779192 -8.22563,48.814566 5.01677,43.774133 41.675309,79.324503 91.536109,95.162893 -6.62576,-22.40752 -5.34093,-44.9362 2.6395,-65.84431 C 108.73618,98.821131 74.828141,70.195435 70.523181,34.870671 z"
- id="path3814-0-7"
- inkscape:connector-curvature="0" />
- <path
- style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none"
- d="m 303.77876,36.21406 c 7.11959,15.242893 10.17798,31.779192 8.22563,48.814566 -5.01677,43.774134 -41.67531,79.324504 -91.53611,95.162894 6.62576,-22.40752 5.34093,-44.9362 -2.6395,-65.84431 47.73698,-14.18269 81.64502,-42.808386 85.94998,-78.13315 z"
- id="path3814-0"
- inkscape:connector-curvature="0" />
- <path
- transform="matrix(0.6556593,-0.75505688,0.75505688,0.6556593,0,0)"
- style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none"
- d="m -5.0905523,259.06055 18.4167573,0 c 6.220455,0 11.228257,16.68196 11.228257,37.40349 l 0,172.83701 c 0,20.72153 -5.007802,37.40349 -11.228257,37.40349 l -18.4167573,0 c -6.2204547,0 -11.2282577,-16.68196 -11.2282577,-37.40349 l 0,-172.83701 c 0,-20.72153 5.007803,-37.40349 11.2282577,-37.40349 z"
- id="rect3804" />
- <path
- sodipodi:type="arc"
- style="fill:url(#radialGradient3798);fill-opacity:1;fill-rule:nonzero;stroke:none"
- id="path2987"
- sodipodi:cx="294.45947"
- sodipodi:cy="208.37973"
- sodipodi:rx="107.58125"
- sodipodi:ry="107.58125"
- d="m 402.04073,208.37973 a 107.58125,107.58125 0 1 1 -215.16251,0 107.58125,107.58125 0 1 1 215.16251,0 z"
- transform="translate(-107.07617,-60.609153)" />
- <path
- sodipodi:type="arc"
- style="fill:url(#linearGradient3865);fill-opacity:1;fill-rule:nonzero;stroke:none"
- id="path3757"
- sodipodi:cx="131.82491"
- sodipodi:cy="299.29346"
- sodipodi:rx="101.52033"
- sodipodi:ry="101.52033"
- d="m 233.34524,299.29346 a 101.52033,101.52033 0 1 1 -203.040667,0 101.52033,101.52033 0 1 1 203.040667,0 z"
- transform="matrix(0.76865672,0,0,0.76865672,85.80266,-82.535889)" />
- <path
- sodipodi:type="arc"
- style="fill:#1a1a1a;fill-opacity:1;fill-rule:nonzero;stroke:none"
- id="path3800"
- sodipodi:cx="183.34268"
- sodipodi:cy="156.35687"
- sodipodi:rx="27.274118"
- sodipodi:ry="27.274118"
- d="m 210.6168,156.35687 a 27.274118,27.274118 0 1 1 -54.54824,0 27.274118,27.274118 0 1 1 54.54824,0 z"
- transform="translate(5,-7.1428572)" />
- <path
- sodipodi:type="arc"
- style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none"
- id="path3802"
- sodipodi:cx="197.9899"
- sodipodi:cy="203.32896"
- sodipodi:rx="5.5558391"
- sodipodi:ry="5.5558391"
- d="m 203.54574,203.32896 a 5.5558391,5.5558391 0 1 1 -11.11168,0 5.5558391,5.5558391 0 1 1 11.11168,0 z"
- transform="translate(1.4847712,-63.564549)" />
- <rect
- style="fill:#ffffff;fill-opacity:0.82211531000000004;fill-rule:nonzero;stroke:none;filter:url(#filter4024)"
- id="rect3916"
- width="2.2392972"
- height="159.43797"
- x="19.525793"
- y="337.8396"
- rx="2.8666623"
- ry="9.0007057"
- transform="matrix(0.74466525,-0.84318084,0.84318084,0.74466525,-35.543204,-26.349917)" />
- </g>
-</svg>
diff --git a/searx/static/themes/courgette/js/searx.js b/searx/static/themes/courgette/js/searx.js
deleted file mode 100644
index 92a25e3..0000000
--- a/searx/static/themes/courgette/js/searx.js
+++ /dev/null
@@ -1,45 +0,0 @@
-if(searx.autocompleter) {
- window.addEvent('domready', function() {
- new Autocompleter.Request.JSON('q', './autocompleter', {
- postVar:'q',
- postData:{
- 'format': 'json'
- },
- ajaxOptions:{
- timeout: 5 // Correct option?
- },
- 'minLength': 4,
- // 'selectMode': 'type-ahead',
- cache: true,
- delay: 300
- });
- });
-}
-
-(function (w, d) {
- 'use strict';
- function addListener(el, type, fn) {
- if (el.addEventListener) {
- el.addEventListener(type, fn, false);
- } else {
- el.attachEvent('on' + type, fn);
- }
- }
-
- function placeCursorAtEnd() {
- if (this.setSelectionRange) {
- var len = this.value.length * 2;
- this.setSelectionRange(len, len);
- }
- }
-
- addListener(w, 'load', function () {
- var qinput = d.getElementById('q');
- if (qinput !== null && qinput.value === "") {
- addListener(qinput, 'focus', placeCursorAtEnd);
- qinput.focus();
- }
- });
-
-})(window, document);
-
diff --git a/searx/static/themes/courgette/less/style-rtl.less b/searx/static/themes/courgette/less/style-rtl.less
deleted file mode 100644
index 3e357d3..0000000
--- a/searx/static/themes/courgette/less/style-rtl.less
+++ /dev/null
@@ -1,42 +0,0 @@
-.q {
- padding: 0.5em 1em 0.5em 3em;
-}
-
-#search_submit {
- left: 0;
- right:auto;
-}
-
-.result .favicon {
- float: right;
- margin-left: 0.5em;
- margin-right: 0;
-}
-
-#sidebar {
- right: auto;
- left: 0;
-}
-
-#results {
- padding: 0px 32px 0px 272px;
-}
-
-.search.center {
- padding-right: 0;
- padding-left: 17em;
-}
-
-.right {
- right: auto;
- left: 0;
-}
-
-#pagination form + form {
- float: left;
- margin-top: -2em;
-}
-
-.engine-table {
- text-align:right;
-} \ No newline at end of file
diff --git a/searx/static/themes/courgette/less/style.less b/searx/static/themes/courgette/less/style.less
deleted file mode 100644
index 26da728..0000000
--- a/searx/static/themes/courgette/less/style.less
+++ /dev/null
@@ -1,695 +0,0 @@
-
-@color-main: #3498DB;
-@color-focus: #0665A2;
-@color-other-links: #666;
-@color-fonts: #333;
-@center-width: 70em;
-
-
-
-
-* {
- -webkit-box-sizing: border-box;
- -moz-box-sizing: border-box;
- box-sizing: border-box;
-}
-
-input[type="search"] {
- -webkit-appearance: textfield;
-}
-
-h2 {
- color: @color-other-links;
- text-transform: uppercase;
-}
-
-body {
- font-family: sans-serif;
- line-height: 1.5;
- margin: 0;
- background: #EEE;
-}
-
-html {
- position: relative;
- min-height: 100%;
-}
-
-a {
- color: @color-other-links;
-}
-
-.title h1 {
- font-size:7em;
- color:@color-main;
- margin:0 auto;
- line-height:100px;
- margin-top:-20px;
- padding-bottom:20px;
-}
-
-.center {
- max-width: @center-width;
- text-align: center;
- background: rgba(255,255,255,0.6);
- padding: 2em;
- margin: 7% auto 0;
- position: relative;
-}
-
-.center.search {
- position: static;
- width: auto;
- background: none;
- margin: auto;
- padding-top: 1.8em;
-}
-
-@media screen and (min-width: 1001px) {
- .center:after {
- content: "";
- z-index: -1;
- background: url(../img/bg-body-index.jpg) no-repeat;
- background-size: cover;
- width: 100%;
- height: 100%;
- top: 0;
- left: 0;
- position: fixed;
- }
- .center.search:after {
- content: none;
- }
-}
-
-.autocompleter-choices {
- position: absolute;
- margin: 0;
- padding: 0;
- background: #FFF;
-}
-
-.autocompleter-choices li {
- padding: 0.5em 1em;
-}
-
-.autocompleter-choices li:hover {
- background: @color-main;
- color: #FFF;
- cursor: pointer;
-}
-
-#categories {
- text-align: center;
-}
-
-.top_margin {
- position: absolute;
- bottom: -3.5em;
- width: 100%;
- left: 0;
-}
-
-.top_margin a {
- display: inline-block;
- margin-right: 1em;
- color: #FFF;
- text-decoration: none;
-}
-
-.top_margin a:hover,
-.top_margin a:focus {
- text-decoration: underline;
-}
-
-@media screen and (max-width: 1000px) {
- .center { background: none; }
- .top_margin a {
- color: @color-fonts;
- }
-}
-
-.checkbox_container { margin-top: 1.5em; }
-.checkbox_container label {
- padding: 0.5em 1em;
- color: @color-fonts;
- cursor: pointer;
- font-size: 0.9em;
-}
-
-.checkbox_container label:hover {
- background: @color-main;
- color: #FFF;
-}
-
-.checkbox_container input[type="checkbox"] {
- position: absolute;
- top: -9999px;
-}
-
-.checkbox_container input[type="checkbox"]:checked + label {
- background: @color-main;
- color: #FFF;
-}
-
-#categories_container > div {
- display: inline-block;
-}
-
-#categories .hidden {
- display: none;
- position: absolute;
- bottom: 1em;
- left: 0;
- text-align: center;
- width: 100%;
- font-size: 0.9em;
- font-style: italic;
- color: @color-fonts;
-}
-
-#categories:hover .hidden {
- display: block;
-}
-
-@media screen and (max-width: 900px) {
- #categories_container { letter-spacing: -5px; }
- #categories_container > div {
- letter-spacing: normal;
- margin-top: 1em;
- }
- .checkbox_container {
- margin: 0;
- }
- .checkbox_container label {
- display: block;
- background: #CCC;
- padding: 1em;
- border: 1px solid #FFF;
- }
- .top_margin { position: static; }
- #categories .hidden {
- position: static;
- display: block;
- }
-}
-
-@media screen and (max-width: 900px) and (min-width: 501px) {
- #categories_container > div {
- width: 31%;
- margin-left: 2.333%;
- }
- #categories_container > div:nth-child(3n+1) { margin-left: 0; }
-}
-
-@media screen and (max-width: 500px) {
- #categories_container > div {
- width: 48%;
- margin-left: 2%;
- font-size: 0.9em;
- }
- #categories_container > div:nth-child(2n+1) { margin-left: 0; }
- .title h1 {
- background: url(../img/searx-mobile.png) no-repeat;
- width: 200px;
- height: 39px;
- }
-}
-
-#search_wrapper {
- position: relative;
-}
-
-.q {
- padding: 0.5em 3em 0.5em 1em;
- width: 100%;
- font-size: 1.5em;
- border: 0;
- color: #666;
-}
-
-#search_submit {
- position: absolute;
- top: 0;
- right: 0;
- border: 0;
- background:url("../img/search-icon.png") no-repeat scroll center center / 65% auto @color-main;
- text-indent: -9999px;
- width: 5em;
- height: 100%;
- cursor: pointer;
-}
-
-#search_submit:hover,
-#search_submit:focus {
- background-color: @color-focus;
-}
-
-#sidebar {
- background: @color-main;
- position: fixed;
- top: 0;
- right: 0;
- width: 15em;
- height: 100%;
- padding: 1.5em;
- text-align: right;
-}
-
-.right {
- position: fixed;
- bottom: 1.5em;
- width: 15em;
- right: 0;
- z-index: 1;
- padding: 0 1.5em;
- text-align: right;
-}
-
-.right a {
- color: #FFF;
- display: block;
- text-decoration: none;
-}
-
-.right a:hover,
-.right a:focus {
- text-decoration: underline;
-}
-
-#preferences {
- background: url("../img/preference-icon.png") no-repeat right center / 12% auto;
- padding-right: 1.8em;
-}
-
-#preferences:hover,
-#preferences:focus {
-
-}
-
-#search_url input {
- border: 0;
- padding: 0.5em;
-}
-
-#sidebar > div {
- margin-bottom: 1em;
- color: #FFF;
-}
-
-#sidebar form {
- display: inline-block;
-}
-
-#sidebar input[type="submit"] {
- background: #CCC;
- border: 0;
- padding: 0.5em 1em;
- cursor: pointer;
- margin-top: 0.5em;
-}
-
-#sidebar input[type="submit"]:hover,
-#sidebar input[type="submit"]:focus {
- color: #FFF;
- background-color: @color-focus;
-}
-
-#results {
- padding-right: 17em;
- padding-left: 2em;
- padding: 0 17em 0 2em;
-}
-
-.result p {
- font-size: 0.9em;
-}
-
-.result .engines {
- text-align: right;
-}
-
-.result .content {
- margin: 0;
- color: #666;
-}
-
-.result .url {
- margin-top: 0;
- color: #FF6530;
-}
-
-.result .favicon {
- float: left;
- position: relative;
- top: 0.5em;
- margin-right: 0.5em;
-}
-
-.definition_result {
- background: #CCC;
- padding: 1em;
-}
-
-.definition_result .result_title,
-.definition_result p {
- margin: 0;
-}
-
-.result_title {
- margin-bottom: 0;
- font-weight: normal;
-}
-
-.highlight {
- font-weight: bold;
-}
-
-.result_title a {
- color: @color-main;
- text-decoration: none;
-}
-
-.result_title a:hover,
-.result_title a:focus {
- text-decoration: underline;
-}
-
-.cache_link {
- color: #666;
- font-size: 0.9em;
- font-style: italic;
-}
-
-.search.center {
- padding-right: 17em;
-}
-
-#answers {
- border: 2px solid @color-main;
- padding: 20px;
- color:#666;
- text-align: center;
- max-width:@center-width;
- margin:0 auto 20px;
-}
-
-#suggestions { margin-bottom: 1em; }
-
-#suggestions span { color: #666; }
-
-#suggestions form {
- display: inline-block;
- vertical-align: top;
- margin-bottom: 0.5em;
-}
-
-#suggestions input[type="submit"] {
- color: @color-fonts;
- padding: 0.5em 1em;
- border: 0;
- background: #CCC;
- cursor:pointer;
-}
-
-#suggestions input[type="submit"]:hover,
-#suggestions input[type="submit"]:focus {
- background: @color-main;
- color: #FFF;
-}
-
-#pagination {
- margin: 1.5em 0 2em;
-}
-
-#pagination form + form {
- float: right;
- margin-top: -2em;
-}
-
-input[type="submit"] {
- display: inline-block;
- background: @color-main;
- color: #FFF;
- border: 0;
- padding: 0.6em 1em;
- cursor: pointer;
-}
-
-input[type="submit"]:hover,
-input[type="submit"]:focus {
- background: @color-focus;
-}
-
-.row {
- max-width: 60em;
- margin: auto;
-}
-
-.row a {
- color: @color-main;
-}
-
-.row form {
- letter-spacing: -5px;
-}
-
-.row form > * { letter-spacing: normal; }
-
-.row p { margin: 0; }
-
-.row fieldset {
- display: inline-block;
- width: 48%;
- vertical-align: top;
-}
-
-.row fieldset:last-of-type {
- display: block;
- width: auto;
- background: none;
- padding: 0;
-}
-
-.row fieldset:nth-child(odd) {
- margin-right: 2%;
-}
-
-.row fieldset:nth-child(2) {
- min-height: 10.5em;
-}
-
-@media screen and (max-width: 900px) {
- .row {
- margin: 0 1em;
- }
-
- .row fieldset { width: 49%; }
- .row fieldset,
- .row fieldset:nth-child(odd) {
- margin-right: 0;
- }
-
- .row fieldset:first-child {
- width: 100%;
- margin-right: 0;
- }
-
- .row fieldset:nth-child(even) {
- margin-right: 2%;
- }
-}
-
-@media screen and (max-width: 800px) {
- .row fieldset { width: 100%; }
-
- select { width: 100%; }
-
- table { font-size: 0.8em; }
- .right {display: none;}
- #sidebar { display: none; }
- #results { padding: 0 2em; }
- .search.center {
- padding-right: 2em;
- }
-}
-
-@media screen and (max-width: 400px) {
- .row #categories_container > div {
- width: 100%;
- margin-left: 0;
- }
-}
-
-fieldset {
- border: 0;
- margin: 1em 0;
- background: #CCC;
- padding: 1.5em;
-}
-
-table {
- width: 100%;
- text-align: left;
- border: 1px solid #CCC;
- border-collapse: collapse;
-}
-
-table th {
- background: #999;
- color: #FFF;
-}
-
-table tr:nth-child(odd) {
- background: #CCC;
-}
-
-table th,
-table td {
- padding: 0.5em 1em;
- border: 1px solid #FFF;
-}
-
-.engine_checkbox label {
- padding: 0.5em;
- background: @color-main;
- color: #FFF;
- cursor: pointer;
-}
-
-.engine_checkbox .deny {
- background: @color-main;
-}
-
-.engine_checkbox .allow {
- display: none;
- background: #666;
-}
-
-.engine_checkbox input {
- display: none;
-}
-
-.engine_checkbox input:checked + .allow {
- display: inline;
-}
-
-.engine_checkbox input:checked + .allow + .deny{
- display: none;
-}
-
-.row input[type="submit"] {
- font-size: 1em;
- margin: 1em 0 2em;
-}
-
-.row .right {
- position: static;
- display: inline-block;
-
-}
-
-.row .right a {
- color: @color-fonts;
- width: auto;
- text-align: left;
- padding: 0;
-}
-
-.small_font {
- font-size: 0.8em;
-}
-
-table th {
- padding: 1em;
-}
-
-legend {
- background: #EEE;
- padding: 0 1em;
- position: relative;
-}
-
-select {
- border: 1px solid #DDD;
- padding: 0.5em 0.8em;
- font-size: 1em;
-}
-
-.highlight .hll { background-color: #ffffcc }
-.highlight { background: #f8f8f8; }
-.highlight .c { color: #408080; font-style: italic } /* Comment */
-.highlight .err { border: 1px solid #FF0000 } /* Error */
-.highlight .k { color: #008000; font-weight: bold } /* Keyword */
-.highlight .o { color: #666666 } /* Operator */
-.highlight .cm { color: #408080; font-style: italic } /* Comment.Multiline */
-.highlight .cp { color: #BC7A00 } /* Comment.Preproc */
-.highlight .c1 { color: #408080; font-style: italic } /* Comment.Single */
-.highlight .cs { color: #408080; font-style: italic } /* Comment.Special */
-.highlight .gd { color: #A00000 } /* Generic.Deleted */
-.highlight .ge { font-style: italic } /* Generic.Emph */
-.highlight .gr { color: #FF0000 } /* Generic.Error */
-.highlight .gh { color: #000080; font-weight: bold } /* Generic.Heading */
-.highlight .gi { color: #00A000 } /* Generic.Inserted */
-.highlight .go { color: #888888 } /* Generic.Output */
-.highlight .gp { color: #000080; font-weight: bold } /* Generic.Prompt */
-.highlight .gs { font-weight: bold } /* Generic.Strong */
-.highlight .gu { color: #800080; font-weight: bold } /* Generic.Subheading */
-.highlight .gt { color: #0044DD } /* Generic.Traceback */
-.highlight .kc { color: #008000; font-weight: bold } /* Keyword.Constant */
-.highlight .kd { color: #008000; font-weight: bold } /* Keyword.Declaration */
-.highlight .kn { color: #008000; font-weight: bold } /* Keyword.Namespace */
-.highlight .kp { color: #008000 } /* Keyword.Pseudo */
-.highlight .kr { color: #008000; font-weight: bold } /* Keyword.Reserved */
-.highlight .kt { color: #B00040 } /* Keyword.Type */
-.highlight .m { color: #666666 } /* Literal.Number */
-.highlight .s { color: #BA2121 } /* Literal.String */
-.highlight .na { color: #7D9029 } /* Name.Attribute */
-.highlight .nb { color: #008000 } /* Name.Builtin */
-.highlight .nc { color: #0000FF; font-weight: bold } /* Name.Class */
-.highlight .no { color: #880000 } /* Name.Constant */
-.highlight .nd { color: #AA22FF } /* Name.Decorator */
-.highlight .ni { color: #999999; font-weight: bold } /* Name.Entity */
-.highlight .ne { color: #D2413A; font-weight: bold } /* Name.Exception */
-.highlight .nf { color: #0000FF } /* Name.Function */
-.highlight .nl { color: #A0A000 } /* Name.Label */
-.highlight .nn { color: #0000FF; font-weight: bold } /* Name.Namespace */
-.highlight .nt { color: #008000; font-weight: bold } /* Name.Tag */
-.highlight .nv { color: #19177C } /* Name.Variable */
-.highlight .ow { color: #AA22FF; font-weight: bold } /* Operator.Word */
-.highlight .w { color: #bbbbbb } /* Text.Whitespace */
-.highlight .mf { color: #666666 } /* Literal.Number.Float */
-.highlight .mh { color: #666666 } /* Literal.Number.Hex */
-.highlight .mi { color: #666666 } /* Literal.Number.Integer */
-.highlight .mo { color: #666666 } /* Literal.Number.Oct */
-.highlight .sb { color: #BA2121 } /* Literal.String.Backtick */
-.highlight .sc { color: #BA2121 } /* Literal.String.Char */
-.highlight .sd { color: #BA2121; font-style: italic } /* Literal.String.Doc */
-.highlight .s2 { color: #BA2121 } /* Literal.String.Double */
-.highlight .se { color: #BB6622; font-weight: bold } /* Literal.String.Escape */
-.highlight .sh { color: #BA2121 } /* Literal.String.Heredoc */
-.highlight .si { color: #BB6688; font-weight: bold } /* Literal.String.Interpol */
-.highlight .sx { color: #008000 } /* Literal.String.Other */
-.highlight .sr { color: #BB6688 } /* Literal.String.Regex */
-.highlight .s1 { color: #BA2121 } /* Literal.String.Single */
-.highlight .ss { color: #19177C } /* Literal.String.Symbol */
-.highlight .bp { color: #008000 } /* Name.Builtin.Pseudo */
-.highlight .vc { color: #19177C } /* Name.Variable.Class */
-.highlight .vg { color: #19177C } /* Name.Variable.Global */
-.highlight .vi { color: #19177C } /* Name.Variable.Instance */
-.highlight .il { color: #666666 } /* Literal.Number.Integer.Long */
-
-.highlight pre { overflow: auto; }
-
-.highlight .lineno {
- -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;
-}
-
-.highlight .lineno::selection { background: transparent; } /* WebKit/Blink Browsers */
-.highlight .lineno::-moz-selection { background: transparent; } /* Gecko Browsers */
diff --git a/searx/static/themes/legacy/img/favicon.png b/searx/static/themes/legacy/img/favicon.png
deleted file mode 100644
index 3818d3d..0000000
--- a/searx/static/themes/legacy/img/favicon.png
+++ /dev/null
Binary files differ
diff --git a/searx/static/themes/legacy/img/preference-icon.png b/searx/static/themes/legacy/img/preference-icon.png
deleted file mode 100644
index 8bdee64..0000000
--- a/searx/static/themes/legacy/img/preference-icon.png
+++ /dev/null
Binary files differ
diff --git a/searx/static/themes/legacy/img/search-icon.png b/searx/static/themes/legacy/img/search-icon.png
deleted file mode 100644
index d70310b..0000000
--- a/searx/static/themes/legacy/img/search-icon.png
+++ /dev/null
Binary files differ
diff --git a/searx/static/themes/legacy/img/searx.png b/searx/static/themes/legacy/img/searx.png
deleted file mode 100644
index a98f12a..0000000
--- a/searx/static/themes/legacy/img/searx.png
+++ /dev/null
Binary files differ
diff --git a/searx/static/themes/legacy/img/searx_logo.svg b/searx/static/themes/legacy/img/searx_logo.svg
deleted file mode 100644
index 67a2d45..0000000
--- a/searx/static/themes/legacy/img/searx_logo.svg
+++ /dev/null
@@ -1,203 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<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"
- xmlns:xlink="http://www.w3.org/1999/xlink"
- xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
- xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
- width="744.09448819"
- height="1052.3622047"
- id="svg2"
- version="1.1"
- inkscape:version="0.48.4 r9939"
- sodipodi:docname="searx_logo.svg"
- inkscape:export-filename="/home/a/magnif.png"
- inkscape:export-xdpi="203.1774"
- inkscape:export-ydpi="203.1774">
- <defs
- id="defs4">
- <linearGradient
- inkscape:collect="always"
- id="linearGradient3857">
- <stop
- style="stop-color:#ffffff;stop-opacity:1;"
- offset="0"
- id="stop3859" />
- <stop
- style="stop-color:#ffffff;stop-opacity:0;"
- offset="1"
- id="stop3861" />
- </linearGradient>
- <linearGradient
- id="linearGradient3790">
- <stop
- style="stop-color:#a9a9a9;stop-opacity:1;"
- offset="0"
- id="stop3792" />
- <stop
- style="stop-color:#000000;stop-opacity:1;"
- offset="1"
- id="stop3794" />
- </linearGradient>
- <radialGradient
- inkscape:collect="always"
- xlink:href="#linearGradient3790"
- id="radialGradient3798"
- cx="294.45947"
- cy="208.37973"
- fx="294.45947"
- fy="208.37973"
- r="107.58125"
- gradientUnits="userSpaceOnUse" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient3857"
- id="linearGradient3865"
- x1="120.68947"
- y1="239.61774"
- x2="120.68947"
- y2="602.17517"
- gradientUnits="userSpaceOnUse" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient3790"
- id="linearGradient3912"
- x1="186.74416"
- y1="354.42426"
- x2="255.84358"
- y2="254.35953"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(1.2227304,0,0,0.89945099,-289.31433,113.40259)" />
- <filter
- inkscape:collect="always"
- id="filter4024"
- x="-0.12996517"
- width="1.2599303"
- y="-0.14709377"
- height="1.2941875">
- <feGaussianBlur
- inkscape:collect="always"
- stdDeviation="6.4759344"
- id="feGaussianBlur4026" />
- </filter>
- <filter
- inkscape:collect="always"
- id="filter3983"
- x="-1.0608404"
- width="3.1216809"
- y="-0.31017202"
- height="1.620344">
- <feGaussianBlur
- inkscape:collect="always"
- stdDeviation="9.392858"
- id="feGaussianBlur3985" />
- </filter>
- </defs>
- <sodipodi:namedview
- id="base"
- pagecolor="#ffffff"
- bordercolor="#666666"
- borderopacity="1.0"
- inkscape:pageopacity="0.0"
- inkscape:pageshadow="2"
- inkscape:zoom="1.979899"
- inkscape:cx="30.708726"
- inkscape:cy="948.08556"
- inkscape:document-units="px"
- inkscape:current-layer="layer1"
- showgrid="false"
- inkscape:window-width="1364"
- inkscape:window-height="663"
- inkscape:window-x="0"
- inkscape:window-y="30"
- inkscape:window-maximized="0"
- showguides="true"
- inkscape:guide-bbox="true" />
- <metadata
- id="metadata7">
- <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 />
- </cc:Work>
- </rdf:RDF>
- </metadata>
- <g
- inkscape:label="Layer 1"
- inkscape:groupmode="layer"
- id="layer1">
- <path
- style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none"
- d="m 70.523181,34.870671 c -7.11959,15.242893 -10.17798,31.779192 -8.22563,48.814566 5.01677,43.774133 41.675309,79.324503 91.536109,95.162893 -6.62576,-22.40752 -5.34093,-44.9362 2.6395,-65.84431 C 108.73618,98.821131 74.828141,70.195435 70.523181,34.870671 z"
- id="path3814-0-7"
- inkscape:connector-curvature="0" />
- <path
- style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none"
- d="m 303.77876,36.21406 c 7.11959,15.242893 10.17798,31.779192 8.22563,48.814566 -5.01677,43.774134 -41.67531,79.324504 -91.53611,95.162894 6.62576,-22.40752 5.34093,-44.9362 -2.6395,-65.84431 47.73698,-14.18269 81.64502,-42.808386 85.94998,-78.13315 z"
- id="path3814-0"
- inkscape:connector-curvature="0" />
- <path
- transform="matrix(0.6556593,-0.75505688,0.75505688,0.6556593,0,0)"
- style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none"
- d="m -5.0905523,259.06055 18.4167573,0 c 6.220455,0 11.228257,16.68196 11.228257,37.40349 l 0,172.83701 c 0,20.72153 -5.007802,37.40349 -11.228257,37.40349 l -18.4167573,0 c -6.2204547,0 -11.2282577,-16.68196 -11.2282577,-37.40349 l 0,-172.83701 c 0,-20.72153 5.007803,-37.40349 11.2282577,-37.40349 z"
- id="rect3804" />
- <path
- sodipodi:type="arc"
- style="fill:url(#radialGradient3798);fill-opacity:1;fill-rule:nonzero;stroke:none"
- id="path2987"
- sodipodi:cx="294.45947"
- sodipodi:cy="208.37973"
- sodipodi:rx="107.58125"
- sodipodi:ry="107.58125"
- d="m 402.04073,208.37973 a 107.58125,107.58125 0 1 1 -215.16251,0 107.58125,107.58125 0 1 1 215.16251,0 z"
- transform="translate(-107.07617,-60.609153)" />
- <path
- sodipodi:type="arc"
- style="fill:url(#linearGradient3865);fill-opacity:1;fill-rule:nonzero;stroke:none"
- id="path3757"
- sodipodi:cx="131.82491"
- sodipodi:cy="299.29346"
- sodipodi:rx="101.52033"
- sodipodi:ry="101.52033"
- d="m 233.34524,299.29346 a 101.52033,101.52033 0 1 1 -203.040667,0 101.52033,101.52033 0 1 1 203.040667,0 z"
- transform="matrix(0.76865672,0,0,0.76865672,85.80266,-82.535889)" />
- <path
- sodipodi:type="arc"
- style="fill:#1a1a1a;fill-opacity:1;fill-rule:nonzero;stroke:none"
- id="path3800"
- sodipodi:cx="183.34268"
- sodipodi:cy="156.35687"
- sodipodi:rx="27.274118"
- sodipodi:ry="27.274118"
- d="m 210.6168,156.35687 a 27.274118,27.274118 0 1 1 -54.54824,0 27.274118,27.274118 0 1 1 54.54824,0 z"
- transform="translate(5,-7.1428572)" />
- <path
- sodipodi:type="arc"
- style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none"
- id="path3802"
- sodipodi:cx="197.9899"
- sodipodi:cy="203.32896"
- sodipodi:rx="5.5558391"
- sodipodi:ry="5.5558391"
- d="m 203.54574,203.32896 a 5.5558391,5.5558391 0 1 1 -11.11168,0 5.5558391,5.5558391 0 1 1 11.11168,0 z"
- transform="translate(1.4847712,-63.564549)" />
- <rect
- style="fill:#ffffff;fill-opacity:0.82211531000000004;fill-rule:nonzero;stroke:none;filter:url(#filter4024)"
- id="rect3916"
- width="2.2392972"
- height="159.43797"
- x="19.525793"
- y="337.8396"
- rx="2.8666623"
- ry="9.0007057"
- transform="matrix(0.74466525,-0.84318084,0.84318084,0.74466525,-35.543204,-26.349917)" />
- </g>
-</svg>
diff --git a/searx/static/themes/legacy/js/searx.js b/searx/static/themes/legacy/js/searx.js
deleted file mode 100644
index d6d5b74..0000000
--- a/searx/static/themes/legacy/js/searx.js
+++ /dev/null
@@ -1,49 +0,0 @@
-if(searx.autocompleter) {
- window.addEvent('domready', function() {
- new Autocompleter.Request.JSON('q', './autocompleter', {
- postVar:'q',
- postData:{
- 'format': 'json'
- },
- ajaxOptions:{
- timeout: 5 // Correct option?
- },
- 'minLength': 4,
- 'selectMode': false,
- cache: true,
- delay: 300
- });
- });
-}
-
-(function (w, d) {
- 'use strict';
- function addListener(el, type, fn) {
- if (el.addEventListener) {
- el.addEventListener(type, fn, false);
- } else {
- el.attachEvent('on' + type, fn);
- }
- }
-
- function placeCursorAtEnd() {
- if (this.setSelectionRange) {
- var len = this.value.length * 2;
- this.setSelectionRange(len, len);
- }
- }
-
- addListener(w, 'load', function () {
- var qinput = d.getElementById('q');
- if (qinput !== null && qinput.value === "") {
- addListener(qinput, 'focus', placeCursorAtEnd);
- qinput.focus();
- }
- });
-
- if (!!('ontouchstart' in window)) {
- document.getElementsByTagName("html")[0].className += " touch";
- }
-
-})(window, document);
-
diff --git a/searx/static/themes/legacy/less/autocompleter.less b/searx/static/themes/legacy/less/autocompleter.less
deleted file mode 100644
index 4ab2508..0000000
--- a/searx/static/themes/legacy/less/autocompleter.less
+++ /dev/null
@@ -1,61 +0,0 @@
-/*
- * searx, A privacy-respecting, hackable metasearch engine
- */
-
-ul {
- &.autocompleter-choices {
- position: absolute;
- margin: 0;
- padding: 0;
- list-style: none;
- border: 1px solid @color-autocompleter-choices-border;
- border-left-color: @color-autocompleter-choices-border-left-right;
- border-right-color: @color-autocompleter-choices-border-left-right;
- border-bottom-color: @color-autocompleter-choices-border-bottom;
- text-align: left;
- font-family: Verdana, Geneva, Arial, Helvetica, sans-serif;
- z-index: 50;
- background-color: @color-autocompleter-choices-background;
- color: @color-autocompleter-choices-font;
-
- li {
- position: relative;
- margin: -2px 0 0 0;
- padding: 0.2em 1.5em 0.2em 1em;
- display: block;
- float: none !important;
- cursor: pointer;
- font-weight: normal;
- white-space: nowrap;
- font-size: 1em;
- line-height: 1.5em;
-
- &.autocompleter-selected {
- background-color: @color-autocompleter-selected-background;
- color: @color-autocompleter-selected-font;
-
- span.autocompleter-queried {
- color: @color-autocompleter-selected-queried-font;
- }
- }
- }
-
- span.autocompleter-queried {
- display: inline;
- float: none;
- font-weight: bold;
- margin: 0;
- padding: 0;
- }
- }
-}
-
-/*.autocompleter-loading {
- //background-image: url(images/spinner.gif);
- background-repeat: no-repeat;
- background-position: right 50%;
-}*/
-
-/*textarea.autocompleter-loading {
- background-position: right bottom;
-}*/
diff --git a/searx/static/themes/legacy/less/code.less b/searx/static/themes/legacy/less/code.less
deleted file mode 100644
index a688dd9..0000000
--- a/searx/static/themes/legacy/less/code.less
+++ /dev/null
@@ -1,83 +0,0 @@
-.highlight .hll { background-color: #ffffcc }
-.highlight { background: #f8f8f8; }
-.highlight .c { color: #408080; font-style: italic } /* Comment */
-.highlight .err { border: 1px solid #FF0000 } /* Error */
-.highlight .k { color: #008000; font-weight: bold } /* Keyword */
-.highlight .o { color: #666666 } /* Operator */
-.highlight .cm { color: #408080; font-style: italic } /* Comment.Multiline */
-.highlight .cp { color: #BC7A00 } /* Comment.Preproc */
-.highlight .c1 { color: #408080; font-style: italic } /* Comment.Single */
-.highlight .cs { color: #408080; font-style: italic } /* Comment.Special */
-.highlight .gd { color: #A00000 } /* Generic.Deleted */
-.highlight .ge { font-style: italic } /* Generic.Emph */
-.highlight .gr { color: #FF0000 } /* Generic.Error */
-.highlight .gh { color: #000080; font-weight: bold } /* Generic.Heading */
-.highlight .gi { color: #00A000 } /* Generic.Inserted */
-.highlight .go { color: #888888 } /* Generic.Output */
-.highlight .gp { color: #000080; font-weight: bold } /* Generic.Prompt */
-.highlight .gs { font-weight: bold } /* Generic.Strong */
-.highlight .gu { color: #800080; font-weight: bold } /* Generic.Subheading */
-.highlight .gt { color: #0044DD } /* Generic.Traceback */
-.highlight .kc { color: #008000; font-weight: bold } /* Keyword.Constant */
-.highlight .kd { color: #008000; font-weight: bold } /* Keyword.Declaration */
-.highlight .kn { color: #008000; font-weight: bold } /* Keyword.Namespace */
-.highlight .kp { color: #008000 } /* Keyword.Pseudo */
-.highlight .kr { color: #008000; font-weight: bold } /* Keyword.Reserved */
-.highlight .kt { color: #B00040 } /* Keyword.Type */
-.highlight .m { color: #666666 } /* Literal.Number */
-.highlight .s { color: #BA2121 } /* Literal.String */
-.highlight .na { color: #7D9029 } /* Name.Attribute */
-.highlight .nb { color: #008000 } /* Name.Builtin */
-.highlight .nc { color: #0000FF; font-weight: bold } /* Name.Class */
-.highlight .no { color: #880000 } /* Name.Constant */
-.highlight .nd { color: #AA22FF } /* Name.Decorator */
-.highlight .ni { color: #999999; font-weight: bold } /* Name.Entity */
-.highlight .ne { color: #D2413A; font-weight: bold } /* Name.Exception */
-.highlight .nf { color: #0000FF } /* Name.Function */
-.highlight .nl { color: #A0A000 } /* Name.Label */
-.highlight .nn { color: #0000FF; font-weight: bold } /* Name.Namespace */
-.highlight .nt { color: #008000; font-weight: bold } /* Name.Tag */
-.highlight .nv { color: #19177C } /* Name.Variable */
-.highlight .ow { color: #AA22FF; font-weight: bold } /* Operator.Word */
-.highlight .w { color: #bbbbbb } /* Text.Whitespace */
-.highlight .mf { color: #666666 } /* Literal.Number.Float */
-.highlight .mh { color: #666666 } /* Literal.Number.Hex */
-.highlight .mi { color: #666666 } /* Literal.Number.Integer */
-.highlight .mo { color: #666666 } /* Literal.Number.Oct */
-.highlight .sb { color: #BA2121 } /* Literal.String.Backtick */
-.highlight .sc { color: #BA2121 } /* Literal.String.Char */
-.highlight .sd { color: #BA2121; font-style: italic } /* Literal.String.Doc */
-.highlight .s2 { color: #BA2121 } /* Literal.String.Double */
-.highlight .se { color: #BB6622; font-weight: bold } /* Literal.String.Escape */
-.highlight .sh { color: #BA2121 } /* Literal.String.Heredoc */
-.highlight .si { color: #BB6688; font-weight: bold } /* Literal.String.Interpol */
-.highlight .sx { color: #008000 } /* Literal.String.Other */
-.highlight .sr { color: #BB6688 } /* Literal.String.Regex */
-.highlight .s1 { color: #BA2121 } /* Literal.String.Single */
-.highlight .ss { color: #19177C } /* Literal.String.Symbol */
-.highlight .bp { color: #008000 } /* Name.Builtin.Pseudo */
-.highlight .vc { color: #19177C } /* Name.Variable.Class */
-.highlight .vg { color: #19177C } /* Name.Variable.Global */
-.highlight .vi { color: #19177C } /* Name.Variable.Instance */
-.highlight .il { color: #666666 } /* Literal.Number.Integer.Long */
-
-.highlight pre {
- overflow: auto;
-}
-
-.highlight .lineno {
- -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;
-
- &::selection {
- background: transparent; /* WebKit/Blink Browsers */
- }
- &::-moz-selection {
- background: transparent; /* Gecko Browsers */
- }
-}
diff --git a/searx/static/themes/legacy/less/definitions.less b/searx/static/themes/legacy/less/definitions.less
deleted file mode 100644
index 0ac0cc9..0000000
--- a/searx/static/themes/legacy/less/definitions.less
+++ /dev/null
@@ -1,119 +0,0 @@
-/*
- * searx, A privacy-respecting, hackable metasearch engine
- *
- * To change the colors of the site, simple edit this variables
- */
-
-/// Basic Colors
-
-@color-base: #3498DB;
-@color-base-dark: #2980B9;
-@color-base-light: #ECF0F1;
-@color-highlight: #094089;
-@color-black: #000000;
-
-/// General
-
-@color-font: #444;
-@color-font-light: #888;
-
-@color-red: #C0392B;
-
-@color-url-font: #1a11be;
-@color-url-visited-font: #8E44AD;
-@results-width: 50em;
-
-
-/// Start-Screen
-
-// hmarg
-@color-hmarg-border: @color-base;
-@color-hmarg-font: @color-base;
-@color-hmarg-font-hover: @color-base;
-
-
-/// Search-Input
-
-@color-search-border: @color-base;
-@color-search-background: #FFF;
-@color-search-font: #222;
-
-/// Autocompleter
-
-@color-autocompleter-choices-background: #FFF;
-@color-autocompleter-choices-border: @color-base;
-@color-autocompleter-choices-border-left-right: @color-base;
-@color-autocompleter-choices-border-bottom: @color-base;
-
-@color-autocompleter-choices-font: #444;
-
-/// Answers
-@color-answers-border: @color-base-dark;
-
-// Selected
-@color-autocompleter-selected-background: #444;
-@color-autocompleter-selected-font: #FFF;
-@color-autocompleter-selected-queried-font: #9FCFFF;
-
-/// Categories
-
-@color-categories-item-selected: @color-base;
-@color-categories-item-selected-font: #FFF;
-
-@color-categories-item-border-selected: @color-base-dark;
-@color-categories-item-border-unselected: #E8E7E6;
-@color-categories-item-border-unselected-hover: @color-base;
-
-
-/// Results
-
-@color-suggestions-button-background: @color-base;
-@color-suggestions-button-font: #FFF;
-
-@color-download-button-background: @color-base;
-@color-download-button-font: #FFF;
-
-@color-result-search-background: @color-base-light;
-
-@color-result-definition-border: gray;
-@color-result-torrent-border: lightgray;
-@color-result-top-border: #E8E7E6;
-
-// Link to result
-@color-result-link-font: @color-base-dark;
-@color-result-link-visited-font: @color-url-visited-font;
-
-// Url to result
-@color-result-url-font: @color-red;
-
-// Publish Date
-@color-result-publishdate-font: @color-font-light;
-
-// Images
-@color-result-image-span-background-hover: rgba(0, 0, 0, 0.6);
-@color-result-image-span-font: #FFF;
-
-// Search-URL
-@color-result-search-url-border: #888;
-@color-result-search-url-font: #444;
-
-
-/// Settings
-
-@color-settings-fieldset: @color-base;
-@color-settings-tr-hover: #DDD;
-
-// Labels
-@color-settings-label-allowed-background: #E74C3C;
-@color-settings-label-allowed-font: #FFF;
-
-@color-settings-label-deny-background: #2ECC71;
-@color-settings-label-deny-font: @color-font;
-
-@color-settings-return-background: @color-base;
-@color-settings-return-font: #FFF;
-
-/// Other
-
-@color-engines-font: @color-font-light;
-@color-percentage-div-background: #444;
diff --git a/searx/static/themes/legacy/less/mixins.less b/searx/static/themes/legacy/less/mixins.less
deleted file mode 100644
index dbccce6..0000000
--- a/searx/static/themes/legacy/less/mixins.less
+++ /dev/null
@@ -1,27 +0,0 @@
-/*
- * searx, A privacy-respecting, hackable metasearch engine
- */
-
-// Mixins
-
-.text-size-adjust (@property: 100%) {
- -webkit-text-size-adjust: @property;
- -ms-text-size-adjust: @property;
- -moz-text-size-adjust: @property;
- text-size-adjust: @property;
-}
-
-.rounded-corners (@radius: 4px) {
- -webkit-border-radius: @radius;
- -moz-border-radius: @radius;
- border-radius: @radius;
-}
-
-.user-select () {
- -webkit-touch-callout: none;
- -webkit-user-select: none;
- -khtml-user-select: none;
- -moz-user-select: none;
- -ms-user-select: none;
- user-select: none;
-}
diff --git a/searx/static/themes/legacy/less/search.less b/searx/static/themes/legacy/less/search.less
deleted file mode 100644
index d285ca7..0000000
--- a/searx/static/themes/legacy/less/search.less
+++ /dev/null
@@ -1,68 +0,0 @@
-/*
- * searx, A privacy-respecting, hackable metasearch engine
- */
-
-.search {
- padding: 0;
- margin: 0;
- .checkbox_container label {
- font-size: 0.9em;
- border-bottom: 2px solid @color-categories-item-border-unselected;
- }
-
- .checkbox_container label:hover {
- border-bottom: 2px solid @color-categories-item-border-unselected-hover;
- }
-
- .checkbox_container input[type="checkbox"]:checked + label {
- border-bottom: 2px solid @color-categories-item-border-selected;
- }
-}
-
-#search_wrapper {
- position: relative;
- width: @results-width;
- padding: 10px;
-}
-
-.center #search_wrapper {
- margin-left: auto;
- margin-right: auto;
-}
-
-.q {
- background: none repeat scroll 0 0 @color-search-background;
- border: 1px solid @color-search-border;
- color: @color-search-font;
- font-size: 16px;
- height: 28px;
- margin: 0;
- outline: medium none;
- padding: 2px;
- padding-left: 8px;
- padding-right: 0px !important;
- width: 100%;
- z-index: 2;
-}
-
-#search_submit {
- position: absolute;
- top: 13px;
- right: 1px;
- padding: 0;
- border: 0;
- background: url('../img/search-icon.png') no-repeat;
- background-size: 24px 24px;
- opacity: 0.8;
- width: 24px;
- height: 30px;
- font-size: 0;
-}
-
-@media screen and (max-width: @results-width) {
- #search_wrapper {
- width: 90%;
- clear:both;
- overflow: hidden
- }
-}
diff --git a/searx/static/themes/legacy/less/style-rtl.less b/searx/static/themes/legacy/less/style-rtl.less
deleted file mode 100644
index eac53c1..0000000
--- a/searx/static/themes/legacy/less/style-rtl.less
+++ /dev/null
@@ -1,11 +0,0 @@
-#search_submit {
- left: 1px;
- right:auto;
-}
-
-.result .favicon {
- float: right;
- margin-left: 0.5em;
- margin-right: 0;
-}
-
diff --git a/searx/static/themes/legacy/less/style.less b/searx/static/themes/legacy/less/style.less
deleted file mode 100644
index bbeaf10..0000000
--- a/searx/static/themes/legacy/less/style.less
+++ /dev/null
@@ -1,743 +0,0 @@
-/*
- * searx, A privacy-respecting, hackable metasearch engine
- *
- * To convert "style.less" to "style.css" run: $make styles
- */
-
-@import "definitions.less";
-
-@import "mixins.less";
-
-@import "code.less";
-
-// Main LESS-Code
-
-html {
- font-family: sans-serif;
- font-size: 0.9em;
- .text-size-adjust;
- color: @color-font;
- padding: 0;
- margin: 0;
-}
-
-body, #container {
- padding: 0;
- margin: 0;
-}
-
-#container {
- width: 100%;
- position: absolute;
- top: 0;
-}
-
-// Search-Field
-
-@import "search.less";
-
-// Autocompleter
-
-@import "autocompleter.less";
-
-.row {
- max-width: 800px;
- margin: 20px auto;
- text-align: justify;
-
- h1 {
- font-size: 3em;
- margin-top: 50px;
- }
-
- p {
- padding: 0 10px;
- max-width: 700px;
- }
-
- h3,ul {
- margin: 4px 8px;
- }
-}
-
-.hmarg {
- margin: 0 20px;
- border: 1px solid @color-hmarg-border;
- padding: 4px 10px;
-}
-
-a {
- &:link.hmarg {
- color: @color-hmarg-font;
- }
-
- &:visited.hmarg {
- color: @color-hmarg-font;
- }
-
- &:active.hmarg {
- color: @color-hmarg-font-hover;
- }
-
- &:hover.hmarg {
- color: @color-hmarg-font-hover;
- }
-}
-
-.top_margin {
- margin-top: 60px;
-}
-
-.center {
- text-align: center;
-}
-
-h1 {
- font-size: 5em;
-}
-
-div.title {
- background: url('../img/searx.png') no-repeat;
- width: 100%;
- min-height: 80px;
- background-position: center;
-
- h1 {
- visibility: hidden;
- }
-}
-
-input[type="submit"] {
- padding: 2px 6px;
- margin: 2px 4px;
- display: inline-block;
- background: @color-download-button-background;
- color: @color-download-button-font;
- .rounded-corners;
- border: 0;
- cursor: pointer;
-}
-
-input[type="checkbox"] {
- visibility: hidden;
-}
-
-fieldset {
- margin: 8px;
- border: 1px solid @color-settings-fieldset;
-}
-
-#categories {
- margin: 0 10px;
- .user-select;
-}
-
-.checkbox_container {
- display: inline-block;
- position: relative;
- margin: 0 3px;
- padding: 0px;
-
- input {
- display: none;
- }
-}
-
-.checkbox_container label, .engine_checkbox label {
- cursor: pointer;
- padding: 4px 10px;
- margin: 0;
- display: block;
- text-transform: capitalize;
- .user-select;
-}
-
-.checkbox_container input[type="checkbox"]:checked + label {
- background: @color-categories-item-selected;
- color: @color-categories-item-selected-font;
-}
-
-.engine_checkbox {
- padding: 4px;
-}
-
-label {
- &.allow {
- background: @color-settings-label-allowed-background;
- padding: 4px 8px;
- color: @color-settings-label-allowed-font;
- display: none;
- }
-
- &.deny {
- background: @color-settings-label-deny-background;
- padding: 4px 8px;
- color: @color-settings-label-deny-font;
- display: inline;
- }
-}
-
-.engine_checkbox input[type="checkbox"]:checked + label {
- &:nth-child(2) + label {
- display: none;
- }
-
- &.allow {
- display: inline;
- }
-}
-
-a {
- text-decoration: none;
- color: @color-url-font;
-
- &:visited {
- color: @color-url-visited-font;
- }
-}
-
-.result {
- margin: 19px 0 18px 0;
- padding: 0;
- clear: both;
-}
-
-.result_title {
- margin-bottom: 0;
-
- a {
- color: @color-result-link-font;
- font-weight: normal;
- font-size: 1.1em;
-
- &:hover {
- text-decoration: underline;
- }
-
- &:visited {
- color: @color-result-link-visited-font;
- }
- }
-}
-
-.cache_link {
- font-size: 10px !important;
-}
-
-.result {
- h3 {
- font-size: 1em;
- word-wrap:break-word;
- margin: 5px 0 1px 0;
- padding: 0
- }
-
- .content {
- font-size: 0.8em;
- margin: 0;
- padding: 0;
- max-width: 54em;
- word-wrap:break-word;
- line-height: 1.24;
-
- img {
- float: left;
- margin-right: 5px;
- max-width: 200px;
- max-height: 100px;
- }
-
- br.last {
- clear: both;
- }
- }
-
- .url {
- font-size: 0.8em;
- margin: 0 0 3px 0;
- padding: 0;
- max-width: 54em;
- word-wrap:break-word;
- color: @color-result-url-font;
- }
-
- .published_date {
- font-size: 0.8em;
- color: @color-result-publishdate-font;
- Margin: 5px 20px;
- }
-
- .thumbnail {
- width: 400px;
- }
-}
-
-.engines {
- color: @color-engines-font;
-}
-
-.small_font {
- font-size: 0.8em;
-}
-
-.small p {
- margin: 2px 0;
-}
-
-.right {
- float: right;
-}
-
-.invisible {
- display: none;
-}
-
-.left {
- float: left;
-}
-
-.highlight {
- color: @color-highlight;
-}
-
-.content .highlight {
- color: @color-black;
-}
-
-.image_result {
- display: inline-block;
- margin: 10px 10px;
- position: relative;
- max-height: 160px;
-
- img {
- border: 0;
- max-height: 160px;
- }
-
- p {
- margin: 0;
- padding: 0;
-
- span a {
- display: none;
- color: @color-result-image-span-font;
- }
-
- &:hover span a {
- display: block;
- position: absolute;
- bottom: 0;
- right: 0;
- padding: 4px;
- background-color: @color-result-image-span-background-hover;
- font-size: 0.7em;
- }
- }
-}
-
-.torrent_result {
- border-left: 10px solid @color-result-torrent-border;
- padding-left: 3px;
-
- p {
- margin: 3px;
- font-size: 0.8em;
- }
-
- a {
- color: @color-result-link-font;
-
- &:hover {
- text-decoration: underline;
- }
-
- &:visited {
- color: @color-result-link-visited-font;
- }
- }
-}
-
-.definition_result {
- border-left: 10px solid @color-result-definition-border;
- padding-left: 3px;
-}
-
-.percentage {
- position: relative;
- width: 300px;
-
- div {
- background: @color-percentage-div-background;
- }
-}
-
-table {
- width: 100%;
-}
-
-.result-table {
- margin-bottom: 10px;
-}
-
-td {
- padding: 0 4px;
-}
-
-tr {
- &:hover {
- background: @color-settings-tr-hover;
- }
-}
-
-#results {
- margin: auto;
- padding: 0;
- width: @results-width;
- margin-bottom: 20px;
-}
-
-#sidebar {
- position: fixed;
- bottom: 10px;
- left: 10px;
- margin: 0 2px 5px 5px;
- padding: 0 2px 2px 2px;
- width: 14em;
-
- input {
- padding: 0;
- margin: 3px;
- font-size: 0.8em;
- display: inline-block;
- background: transparent;
- color: @color-result-search-url-font;
- cursor: pointer;
- }
- input[type="submit"] {
- text-decoration: underline;
- }
-}
-
-#suggestions {
-
- form {
- display: inline;
- }
-
-}
-
-#suggestions, #answers {
-
- margin-top: 20px;
- max-width: 45em;
-
-}
-
-#suggestions, #answers, #infoboxes {
-
- input {
- padding: 0;
- margin: 3px;
- font-size: 0.8em;
- display: inline-block;
- background: transparent;
- color: @color-result-search-url-font;
- cursor: pointer;
- }
-
- input[type="submit"] {
- text-decoration: underline;
- }
-
-}
-
-#suggestions-title {
-
-color: @color-font-light;
-
-
-}
-
-#answers {
-
- border: 2px solid @color-answers-border;
- padding: 20px;
-
-}
-
-#answers, #infoboxes {
- form {
- min-width: 210px;
- }
-}
-
-
-#infoboxes {
- position: absolute;
- top: 100px;
- right: 20px;
- margin: 0px 2px 5px 5px;
- padding: 0px 2px 2px;
- max-width: 21em;
- word-wrap: break-word;
-
- .infobox {
- margin: 10px 0 10px;
- border: 1px solid #ddd;
- padding: 5px;
- font-size: 0.8em;
- /* box-shadow: 0px 0px 5px #CCC; */
-
- img {
- max-width: 90%;
- max-heigt: 12em;
- display: block;
- margin: 5px;
- padding: 5px;
- }
-
- h2 {
- margin: 0;
- }
-
- table {
- table-layout: fixed;
-
- td {
- vertical-align: top;
- }
-
- }
-
- input {
- font-size: 1em;
- }
-
- br {
- clear: both;
- }
-
- }
-}
-
-#search_url {
- margin-top: 8px;
-
- input {
- border: 1px solid @color-result-search-url-border;
- padding: 4px;
- color: @color-result-search-url-font;
- width: 14em;
- display: block;
- margin: 4px;
- font-size: 0.8em;
- }
-}
-
-#preferences {
- top: 10px;
- padding: 0;
- border: 0;
- background: url('../img/preference-icon.png') no-repeat;
- background-size: 28px 28px;
- opacity: 0.8;
- width: 28px;
- height: 30px;
- display: block;
-
- * {
- display: none;
- }
-}
-
-#pagination {
- clear: both;
-
- br {
- clear: both;
- }
-}
-
-#apis {
- margin-top: 8px;
- clear: both;
-}
-
-#categories_container {
- position: relative;
-}
-
-@media screen and (max-width: @results-width) {
-
- #results {
- margin: auto;
- padding: 0;
- width: 90%;
- }
-
- .github {
- display: none;
- }
-
- .checkbox_container {
- display: block;
- width: 90%;
- //float: left;
-
- label {
- border-bottom: 0;
- }
- }
-
- .preferences_container {
- display: none;
- postion: fixed !important;
- top: 100px;
- right: 0px;
- }
-
-}
-
-@media screen and (max-width: 75em) {
-
- div.title {
-
- h1 {
- font-size: 1em;
- }
- }
-
- html.touch #categories {
- width: 95%;
- height: 30px;
- text-align: left;
- overflow-x: scroll;
- overflow-y: hidden;
- -webkit-overflow-scrolling: touch;
-
- #categories_container {
- width: 1000px;
- width: -moz-max-content;
- width: -webkit-max-content;
- width: max-content;
-
- .checkbox_container {
- display: inline-block;
- width: auto;
- }
- }
- }
-
- #categories {
- font-size: 90%;
- clear: both;
-
- .checkbox_container {
- margin-top: 2px;
- margin: auto;
- }
- }
-
- #suggestions, #answers {
- margin-top: 5px;
- }
-
- #infoboxes {
- position: inherit;
- max-width: inherit;
-
- .infobox {
- clear:both;
-
- img {
- float: left;
- max-width: 10em;
- }
- }
- }
-
- #categories {
- font-size: 90%;
- clear: both;
-
- .checkbox_container {
- margin-top: 2px;
- margin: auto;
- }
- }
-
- #sidebar {
- position: static;
- max-width: @results-width;
- margin: 0 0 2px 0;
- padding: 0;
- float: none;
- border: none;
- width: auto;
- input {
- border: 0;
- }
- }
-
- #apis {
- display: none;
- }
-
- #search_url {
- display: none;
- }
-
- .result {
- border-top: 1px solid @color-result-top-border;
- margin: 8px 0 8px 0;
-
- .thumbnail {
- max-width: 98%;
- }
- }
-
- .image_result {
- max-width: 98%;
- img {
- max-width: 98%;
- }
- }
-}
-
-.favicon {
- float: left;
- margin-right: 4px;
- margin-top: 2px;
-}
-
-.preferences_back {
- background: none repeat scroll 0 0 @color-settings-return-background;
- border: 0 none;
- .rounded-corners;
- cursor: pointer;
- display: inline-block;
- margin: 2px 4px;
- padding: 4px 6px;
-
- a {
- color: @color-settings-return-font;
- }
-}
-
-.hidden {
- opacity: 0;
- overflow: hidden;
- font-size: 0.8em;
- position: absolute;
- bottom: -20px;
- width: 100%;
- text-position: center;
- background: white;
- transition: opacity 1s ease;
-}
-
-#categories_container:hover .hidden {
- transition: opacity 1s ease;
- opacity: 0.8;
-}
diff --git a/searx/static/themes/oscar/.gitignore b/searx/static/themes/oscar/.gitignore
index c2658d7..07e6e47 100644
--- a/searx/static/themes/oscar/.gitignore
+++ b/searx/static/themes/oscar/.gitignore
@@ -1 +1 @@
-node_modules/
+/node_modules
diff --git a/searx/static/themes/oscar/README.rst b/searx/static/themes/oscar/README.rst
index e7daa87..1a226bc 100644
--- a/searx/static/themes/oscar/README.rst
+++ b/searx/static/themes/oscar/README.rst
@@ -15,3 +15,42 @@ run this command in the directory ``searx/static/themes/oscar``
or in the root directory:
``make grunt``
+
+directory structure
+~~~~~~~~~~~~~~~~~~~
+
+see:
+
+- gruntfile.js
+- package.json
+
+*************
+css directory
+*************
+
+- ``bootstrap*``: bootstrap NPM package,
+- ``leaflet.*``: leaflet NPM package
+- ``leaflet.min.css``: minimized version of ``leaflet.css`` (see gruntfile.js)
+- ``logicodev.*``: compiled from ``src/less/logicodev``
+- ``logicodev-dark*``: compiled from ``src/less/logicodev-dark``
+- ``pointhi*``: compiled from ``src/less/pointhi``
+- ``images``: leaflet NPM package
+
+**************
+font directory
+**************
+
+- from bootstrap NPM package
+
+************
+js directory
+************
+
+- ``searx.*``: compiled from ``src/js``
+- other files are from NPM packages
+
+*************
+img directory
+*************
+
+- images for the oscar theme
diff --git a/searx/static/themes/oscar/css/images/layers-2x.png b/searx/static/themes/oscar/css/images/layers-2x.png
new file mode 100644
index 0000000..200c333
--- /dev/null
+++ b/searx/static/themes/oscar/css/images/layers-2x.png
Binary files differ
diff --git a/searx/static/themes/oscar/css/images/layers.png b/searx/static/themes/oscar/css/images/layers.png
new file mode 100644
index 0000000..1a72e57
--- /dev/null
+++ b/searx/static/themes/oscar/css/images/layers.png
Binary files differ
diff --git a/searx/static/themes/oscar/css/images/marker-icon-2x.png b/searx/static/themes/oscar/css/images/marker-icon-2x.png
new file mode 100644
index 0000000..88f9e50
--- /dev/null
+++ b/searx/static/themes/oscar/css/images/marker-icon-2x.png
Binary files differ
diff --git a/searx/static/themes/oscar/css/images/marker-icon.png b/searx/static/themes/oscar/css/images/marker-icon.png
new file mode 100644
index 0000000..950edf2
--- /dev/null
+++ b/searx/static/themes/oscar/css/images/marker-icon.png
Binary files differ
diff --git a/searx/static/themes/oscar/css/images/marker-shadow.png b/searx/static/themes/oscar/css/images/marker-shadow.png
new file mode 100644
index 0000000..9fd2979
--- /dev/null
+++ b/searx/static/themes/oscar/css/images/marker-shadow.png
Binary files differ
diff --git a/searx/static/themes/oscar/css/pointhi.css b/searx/static/themes/oscar/css/pointhi.css
new file mode 100644
index 0000000..b810a2d
--- /dev/null
+++ b/searx/static/themes/oscar/css/pointhi.css
@@ -0,0 +1,706 @@
+html {
+ position: relative;
+ min-height: 100%;
+}
+body {
+ /* Margin bottom by footer height */
+ margin-bottom: 80px;
+}
+.footer {
+ position: absolute;
+ bottom: 0;
+ width: 100%;
+ /* Set the fixed height of the footer here */
+ height: 60px;
+}
+input[type=checkbox]:checked + .label_hide_if_checked,
+input[type=checkbox]:checked + .label_hide_if_not_checked + .label_hide_if_checked {
+ display: none;
+}
+input[type=checkbox]:not(:checked) + .label_hide_if_not_checked,
+input[type=checkbox]:not(:checked) + .label_hide_if_checked + .label_hide_if_not_checked {
+ display: none;
+}
+.onoff-checkbox {
+ width: 15%;
+}
+.onoffswitch {
+ position: relative;
+ width: 110px;
+ -webkit-user-select: none;
+ -moz-user-select: none;
+ -ms-user-select: none;
+}
+.onoffswitch-checkbox {
+ display: none;
+}
+.onoffswitch-label {
+ display: block;
+ overflow: hidden;
+ cursor: pointer;
+ border: 2px solid #FFFFFF !important;
+ border-radius: 50px !important;
+}
+.onoffswitch-inner {
+ display: block;
+ transition: margin 0.3s ease-in 0s;
+}
+.onoffswitch-inner:before,
+.onoffswitch-inner:after {
+ display: block;
+ float: left;
+ width: 50%;
+ height: 30px;
+ padding: 0;
+ line-height: 40px;
+ font-size: 20px;
+ box-sizing: border-box;
+ content: "";
+ background-color: #EEEEEE;
+}
+.onoffswitch-switch {
+ display: block;
+ width: 37px;
+ background-color: #00CC00;
+ position: absolute;
+ top: 0;
+ bottom: 0;
+ right: 0px;
+ border: 2px solid #FFFFFF !important;
+ border-radius: 50px !important;
+ transition: all 0.3s ease-in 0s;
+}
+.onoffswitch-checkbox:checked + .onoffswitch-label .onoffswitch-inner {
+ margin-right: 0;
+}
+.onoffswitch-checkbox:checked + .onoffswitch-label .onoffswitch-switch {
+ right: 71px;
+ background-color: #A1A1A1;
+}
+.result_header {
+ margin-bottom: 5px;
+ margin-top: 20px;
+}
+.result_header .favicon {
+ margin-bottom: -3px;
+}
+.result_header a {
+ vertical-align: bottom;
+}
+.result_header a .highlight {
+ font-weight: bold;
+}
+.result-content {
+ margin-top: 5px;
+ word-wrap: break-word;
+}
+.result-content .highlight {
+ font-weight: bold;
+}
+.result-default {
+ clear: both;
+}
+.result-images {
+ float: left !important;
+ height: 138px;
+}
+.img-thumbnail {
+ margin: 5px;
+ max-height: 128px;
+}
+.result-videos {
+ clear: both;
+}
+.result-torrents {
+ clear: both;
+}
+.result-map {
+ clear: both;
+}
+.result-code {
+ clear: both;
+}
+.suggestion_item {
+ margin: 2px 5px;
+ max-width: 100%;
+}
+.suggestion_item .btn {
+ max-width: 100%;
+ white-space: normal;
+ word-wrap: break-word;
+ text-align: left;
+}
+.result_download {
+ margin-right: 5px;
+}
+#pagination {
+ margin-top: 30px;
+ padding-bottom: 50px;
+}
+.label-default {
+ color: #AAA;
+ background: #FFF;
+}
+.result .text-muted small {
+ word-wrap: break-word;
+}
+.modal-wrapper {
+ box-shadow: 0 5px 15px rgba(0, 0, 0, 0.5);
+}
+.modal-wrapper {
+ background-clip: padding-box;
+ background-color: #fff;
+ border: 1px solid rgba(0, 0, 0, 0.2);
+ border-radius: 6px;
+ box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5);
+ outline: 0 none;
+ position: relative;
+}
+.highlight {
+ font-weight: 700;
+}
+.infobox img {
+ max-height: 250px;
+}
+.infobox .infobox_part {
+ margin-bottom: 20px;
+ word-wrap: break-word;
+ table-layout: fixed;
+}
+.infobox .infobox_part:last-child {
+ margin-bottom: 0;
+}
+.infobox .header_url {
+ white-space: nowrap;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ display: block;
+}
+.infobox .infobox_toggle {
+ width: 100%;
+ text-align: center;
+ margin-bottom: 0px;
+}
+.infobox .infobox_checkbox ~ .infobox_body {
+ max-height: 300px;
+ overflow: hidden;
+}
+.infobox .infobox_checkbox:checked ~ .infobox_body {
+ max-height: none;
+}
+.infobox .infobox_checkbox ~ .infobox_toggle .infobox_label_down {
+ display: block;
+}
+.infobox .infobox_checkbox ~ .infobox_toggle .infobox_label_up {
+ display: none;
+}
+.infobox .infobox_checkbox:checked ~ .infobox_toggle .infobox_label_up {
+ display: block;
+}
+.infobox .infobox_checkbox:checked ~ .infobox_toggle .infobox_label_down {
+ display: none;
+}
+.infobox .infobox_checkbox ~ .infobox_body img.infobox_part {
+ display: none;
+}
+.infobox .infobox_checkbox:checked ~ .infobox_body img.infobox_part {
+ display: block;
+}
+.search_categories,
+#categories {
+ text-transform: capitalize;
+ margin-bottom: 1.5rem;
+ margin-top: 1.5rem;
+ display: flex;
+ flex-wrap: wrap;
+ align-content: stretch;
+}
+.search_categories a,
+#categories a {
+ flex-grow: 1;
+ flex-basis: auto;
+ border: #DDD 1px solid;
+ border-right: none;
+ color: #666;
+ padding-bottom: 0.4rem;
+ padding-top: 0.4rem;
+ text-align: center;
+ min-width: 50px;
+}
+.search_categories label,
+#categories label,
+.search_categories .input-group-addon,
+#categories .input-group-addon {
+ flex-grow: 1;
+ flex-basis: auto;
+ font-size: 1.3rem;
+ font-weight: normal;
+ background-color: white;
+ border: #DDD 1px solid;
+ border-right: none;
+ color: #333;
+ padding-bottom: 0.8rem;
+ padding-top: 0.8rem;
+ text-align: center;
+ width: 100%;
+ height: 100%;
+}
+.search_categories a:last-child,
+#categories a:last-child,
+.search_categories .input-group-addon:last-child,
+#categories .input-group-addon:last-child {
+ border-right: #DDD 1px solid;
+}
+.search_categories input[type="checkbox"]:checked + label,
+#categories input[type="checkbox"]:checked + label {
+ color: black;
+ font-weight: bold;
+ background-color: #EEE;
+}
+.visually-hidden {
+ position: absolute !important;
+ height: 1px;
+ width: 1px;
+ overflow: hidden;
+ clip: rect(1px 1px 1px 1px);
+ /* IE6, IE7 */
+ clip: rect(1px, 1px, 1px, 1px);
+ white-space: nowrap;
+ /* added line */
+}
+#advanced-search-container {
+ display: none;
+ text-align: center;
+ margin-bottom: 1rem;
+ clear: both;
+}
+#advanced-search-container label,
+#advanced-search-container .input-group-addon {
+ font-size: 1.3rem;
+ font-weight: normal;
+ background-color: white;
+ border: #DDD 1px solid;
+ border-right: none;
+ color: #333;
+ padding-bottom: 0.8rem;
+ padding-left: 1.2rem;
+ padding-right: 1.2rem;
+}
+#advanced-search-container label:last-child,
+#advanced-search-container .input-group-addon:last-child {
+ border-right: #DDD 1px solid;
+}
+#advanced-search-container input[type="radio"] {
+ display: none;
+}
+#advanced-search-container input[type="radio"]:checked + label {
+ color: black;
+ font-weight: bold;
+ background-color: #EEE;
+}
+#check-advanced {
+ display: none;
+}
+#check-advanced:checked ~ #advanced-search-container {
+ display: block;
+}
+.advanced {
+ padding: 0;
+ margin-top: 0.3rem;
+ text-align: right;
+}
+.advanced label,
+.advanced select {
+ cursor: pointer;
+}
+.cursor-text {
+ cursor: text !important;
+}
+.cursor-pointer {
+ cursor: pointer !important;
+}
+/*
+ this file is generated automatically by searx_extra/update/update_pygments.py
+ using pygments version 2.8.0
+*/
+.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: transparent;
+ /* WebKit/Blink Browsers */
+}
+.code-highlight .linenos::-moz-selection {
+ background: transparent;
+ /* Gecko Browsers */
+}
+.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: #000000;
+ background-color: #ffffc0;
+ padding-left: 5px;
+ padding-right: 5px;
+}
+.code-highlight span.linenos.special {
+ color: #000000;
+ background-color: #ffffc0;
+ padding-left: 5px;
+ padding-right: 5px;
+}
+.code-highlight .hll {
+ background-color: #ffffcc;
+}
+.code-highlight {
+ background: #f8f8f8;
+}
+.code-highlight .c {
+ color: #408080;
+ font-style: italic;
+}
+/* Comment */
+.code-highlight .err {
+ border: 1px solid #FF0000;
+}
+/* Error */
+.code-highlight .k {
+ color: #008000;
+ font-weight: bold;
+}
+/* Keyword */
+.code-highlight .o {
+ color: #666666;
+}
+/* Operator */
+.code-highlight .ch {
+ color: #408080;
+ font-style: italic;
+}
+/* Comment.Hashbang */
+.code-highlight .cm {
+ color: #408080;
+ font-style: italic;
+}
+/* Comment.Multiline */
+.code-highlight .cp {
+ color: #BC7A00;
+}
+/* Comment.Preproc */
+.code-highlight .cpf {
+ color: #408080;
+ font-style: italic;
+}
+/* Comment.PreprocFile */
+.code-highlight .c1 {
+ color: #408080;
+ font-style: italic;
+}
+/* Comment.Single */
+.code-highlight .cs {
+ color: #408080;
+ font-style: italic;
+}
+/* Comment.Special */
+.code-highlight .gd {
+ color: #A00000;
+}
+/* Generic.Deleted */
+.code-highlight .ge {
+ font-style: italic;
+}
+/* Generic.Emph */
+.code-highlight .gr {
+ color: #FF0000;
+}
+/* Generic.Error */
+.code-highlight .gh {
+ color: #000080;
+ font-weight: bold;
+}
+/* Generic.Heading */
+.code-highlight .gi {
+ color: #00A000;
+}
+/* Generic.Inserted */
+.code-highlight .go {
+ color: #888888;
+}
+/* Generic.Output */
+.code-highlight .gp {
+ color: #000080;
+ font-weight: bold;
+}
+/* Generic.Prompt */
+.code-highlight .gs {
+ font-weight: bold;
+}
+/* Generic.Strong */
+.code-highlight .gu {
+ color: #800080;
+ font-weight: bold;
+}
+/* Generic.Subheading */
+.code-highlight .gt {
+ color: #0044DD;
+}
+/* Generic.Traceback */
+.code-highlight .kc {
+ color: #008000;
+ font-weight: bold;
+}
+/* Keyword.Constant */
+.code-highlight .kd {
+ color: #008000;
+ font-weight: bold;
+}
+/* Keyword.Declaration */
+.code-highlight .kn {
+ color: #008000;
+ font-weight: bold;
+}
+/* Keyword.Namespace */
+.code-highlight .kp {
+ color: #008000;
+}
+/* Keyword.Pseudo */
+.code-highlight .kr {
+ color: #008000;
+ font-weight: bold;
+}
+/* Keyword.Reserved */
+.code-highlight .kt {
+ color: #B00040;
+}
+/* Keyword.Type */
+.code-highlight .m {
+ color: #666666;
+}
+/* Literal.Number */
+.code-highlight .s {
+ color: #BA2121;
+}
+/* Literal.String */
+.code-highlight .na {
+ color: #7D9029;
+}
+/* Name.Attribute */
+.code-highlight .nb {
+ color: #008000;
+}
+/* Name.Builtin */
+.code-highlight .nc {
+ color: #0000FF;
+ font-weight: bold;
+}
+/* Name.Class */
+.code-highlight .no {
+ color: #880000;
+}
+/* Name.Constant */
+.code-highlight .nd {
+ color: #AA22FF;
+}
+/* Name.Decorator */
+.code-highlight .ni {
+ color: #999999;
+ font-weight: bold;
+}
+/* Name.Entity */
+.code-highlight .ne {
+ color: #D2413A;
+ font-weight: bold;
+}
+/* Name.Exception */
+.code-highlight .nf {
+ color: #0000FF;
+}
+/* Name.Function */
+.code-highlight .nl {
+ color: #A0A000;
+}
+/* Name.Label */
+.code-highlight .nn {
+ color: #0000FF;
+ font-weight: bold;
+}
+/* Name.Namespace */
+.code-highlight .nt {
+ color: #008000;
+ font-weight: bold;
+}
+/* Name.Tag */
+.code-highlight .nv {
+ color: #19177C;
+}
+/* Name.Variable */
+.code-highlight .ow {
+ color: #AA22FF;
+ font-weight: bold;
+}
+/* Operator.Word */
+.code-highlight .w {
+ color: #bbbbbb;
+}
+/* Text.Whitespace */
+.code-highlight .mb {
+ color: #666666;
+}
+/* Literal.Number.Bin */
+.code-highlight .mf {
+ color: #666666;
+}
+/* Literal.Number.Float */
+.code-highlight .mh {
+ color: #666666;
+}
+/* Literal.Number.Hex */
+.code-highlight .mi {
+ color: #666666;
+}
+/* Literal.Number.Integer */
+.code-highlight .mo {
+ color: #666666;
+}
+/* Literal.Number.Oct */
+.code-highlight .sa {
+ color: #BA2121;
+}
+/* Literal.String.Affix */
+.code-highlight .sb {
+ color: #BA2121;
+}
+/* Literal.String.Backtick */
+.code-highlight .sc {
+ color: #BA2121;
+}
+/* Literal.String.Char */
+.code-highlight .dl {
+ color: #BA2121;
+}
+/* Literal.String.Delimiter */
+.code-highlight .sd {
+ color: #BA2121;
+ font-style: italic;
+}
+/* Literal.String.Doc */
+.code-highlight .s2 {
+ color: #BA2121;
+}
+/* Literal.String.Double */
+.code-highlight .se {
+ color: #BB6622;
+ font-weight: bold;
+}
+/* Literal.String.Escape */
+.code-highlight .sh {
+ color: #BA2121;
+}
+/* Literal.String.Heredoc */
+.code-highlight .si {
+ color: #BB6688;
+ font-weight: bold;
+}
+/* Literal.String.Interpol */
+.code-highlight .sx {
+ color: #008000;
+}
+/* Literal.String.Other */
+.code-highlight .sr {
+ color: #BB6688;
+}
+/* Literal.String.Regex */
+.code-highlight .s1 {
+ color: #BA2121;
+}
+/* Literal.String.Single */
+.code-highlight .ss {
+ color: #19177C;
+}
+/* Literal.String.Symbol */
+.code-highlight .bp {
+ color: #008000;
+}
+/* Name.Builtin.Pseudo */
+.code-highlight .fm {
+ color: #0000FF;
+}
+/* Name.Function.Magic */
+.code-highlight .vc {
+ color: #19177C;
+}
+/* Name.Variable.Class */
+.code-highlight .vg {
+ color: #19177C;
+}
+/* Name.Variable.Global */
+.code-highlight .vi {
+ color: #19177C;
+}
+/* Name.Variable.Instance */
+.code-highlight .vm {
+ color: #19177C;
+}
+/* Name.Variable.Magic */
+.code-highlight .il {
+ color: #666666;
+}
+/* Literal.Number.Integer.Long */
+.searx-navbar {
+ background: #eee;
+ color: #aaa;
+ height: 2.3rem;
+ font-size: 1.3rem;
+ line-height: 1.3rem;
+ padding: 0.5rem;
+ font-weight: bold;
+ margin-bottom: 1.3rem;
+}
+.searx-navbar a,
+.searx-navbar a:hover {
+ margin-right: 2rem;
+ text-decoration: none;
+}
+.searx-navbar .instance a {
+ color: #444;
+ margin-left: 2rem;
+}
+.table > tbody > tr > td,
+.table > tbody > tr > th {
+ vertical-align: middle !important;
+}
+.engine-tooltip {
+ display: none;
+ position: absolute;
+ padding: 0.5rem 1rem;
+ margin: 0rem 0 0 2rem;
+ border: 1px solid #ddd;
+ background: white;
+ font-size: 14px;
+ font-weight: normal;
+ z-index: 1000000;
+}
+th:hover .engine-tooltip,
+.engine-tooltip:hover {
+ display: inline-block;
+}
diff --git a/searx/static/themes/oscar/gruntfile.js b/searx/static/themes/oscar/gruntfile.js
index 935572d..b7c7202 100644
--- a/searx/static/themes/oscar/gruntfile.js
+++ b/searx/static/themes/oscar/gruntfile.js
@@ -1,19 +1,73 @@
+/*jshint esversion: 6 */
module.exports = function(grunt) {
grunt.initConfig({
pkg: grunt.file.readJSON('package.json'),
+ copy: {
+ js: {
+ expand: true,
+ cwd: './node_modules',
+ dest: './js/',
+ flatten: true,
+ filter: 'isFile',
+ timestamp: true,
+ src: [
+ './bootstrap/dist/js/bootstrap.min.js',
+ './corejs-typeahead/dist/typeahead.bundle.min.js',
+ './jquery/dist/jquery.min.js',
+ './leaflet/dist/leaflet.js',
+ ]
+ },
+ css: {
+ expand: true,
+ cwd: './node_modules',
+ dest: './css/',
+ flatten: true,
+ filter: 'isFile',
+ timestamp: true,
+ src: [
+ './bootstrap/dist/css/bootstrap-theme.css',
+ './bootstrap/dist/css/bootstrap-theme.min.css',
+ './bootstrap/dist/css/bootstrap-theme.min.css.map',
+ './leaflet/dist/leaflet.css',
+ ]
+ },
+ fonts: {
+ expand: true,
+ cwd: './node_modules',
+ dest: './fonts/',
+ flatten: true,
+ filter: 'isFile',
+ timestamp: true,
+ src: [
+ './bootstrap/dist/fonts/glyphicons-*.*',
+ ]
+ },
+ leaflet_images: {
+ expand: true,
+ cwd: './node_modules',
+ dest: './css/images/',
+ flatten: true,
+ filter: 'isFile',
+ timestamp: true,
+ src: [
+ './leaflet/dist/images/*.png',
+ ]
+ }
+ },
concat: {
options: {
separator: ';'
},
dist: {
- src: ['js/searx_src/*.js'],
+ src: ['src/js/*.js', '../__common__/js/image_layout.js'],
dest: 'js/searx.js'
}
},
uglify: {
options: {
- banner: '/*! oscar/searx.min.js | <%= grunt.template.today("dd-mm-yyyy") %> | https://github.com/asciimoo/searx */\n'
+ sourceMap: true,
+ banner: '/*! oscar/searx.min.js | <%= grunt.template.today("dd-mm-yyyy") %> | <%= process.env.GIT_URL %> */\n'
},
dist: {
files: {
@@ -22,7 +76,7 @@ module.exports = function(grunt) {
}
},
jshint: {
- files: ['gruntfile.js', 'js/searx_src/*.js'],
+ files: ['gruntfile.js', 'js/searx_src/*.js', '../__common__/js/image_layout.js'],
options: {
reporterOutput: "",
// options here to override JSHint defaults
@@ -35,35 +89,33 @@ module.exports = function(grunt) {
}
},
less: {
- development: {
- options: {
- paths: ["less/pointhi", "less/logicodev", "less/logicodev-dark"]
- //banner: '/*! less/oscar/oscar.css | <%= grunt.template.today("dd-mm-yyyy") %> | https://github.com/asciimoo/searx */\n'
- },
- files: {"css/pointhi.css": "less/pointhi/oscar.less",
- "css/logicodev.css": "less/logicodev-dark/oscar.less",
- "css/logicodev-dark.css": "less/logicodev/oscar.less"}
- },
- production: {
- options: {
- paths: ["less/pointhi", "less/logicodev", "less/logicodev-dark"],
- //banner: '/*! less/oscar/oscar.css | <%= grunt.template.today("dd-mm-yyyy") %> | https://github.com/asciimoo/searx */\n',
- cleancss: true
- },
- files: {"css/pointhi.min.css": "less/pointhi/oscar.less",
- "css/logicodev.min.css": "less/logicodev/oscar.less",
- "css/logicodev-dark.min.css": "less/logicodev-dark/oscar.less"}
+ development: {
+ options: {
+ paths: ["src/less/pointhi", "src/less/logicodev", "src/less/logicodev-dark", "src/less/bootstrap"]
},
- /*
- // built with ./manage.sh styles
- bootstrap: {
- options: {
- paths: ["less/bootstrap"],
- cleancss: true
- },
- files: {"css/bootstrap.min.css": "less/bootstrap/bootstrap.less"}
+ files: {
+ "css/bootstrap.css": "src/less/bootstrap/bootstrap.less",
+ "css/pointhi.css": "src/less/pointhi/oscar.less",
+ "css/logicodev.css": "src/less/logicodev-dark/oscar.less",
+ "css/logicodev-dark.css": "src/less/logicodev/oscar.less"
+ }
+ },
+ production: {
+ options: {
+ paths: ["src/less/pointhi", "src/less/logicodev", "src/less/logicodev-dark", "src/less/bootstrap"],
+ sourceMap: true,
+ sourceMapURL: (name) => { const s = name.split('/'); return s[s.length - 1] + '.map';},
+ outputSourceFiles: false,
+ sourceMapRootpath: '../'
},
- */
+ files: {
+ "css/bootstrap.min.css": "css/bootstrap.css",
+ "css/leaflet.min.css": "css/leaflet.css",
+ "css/pointhi.min.css": "src/less/pointhi/oscar.less",
+ "css/logicodev.min.css": "src/less/logicodev/oscar.less",
+ "css/logicodev-dark.min.css": "src/less/logicodev-dark/oscar.less"
+ }
+ },
},
watch: {
scripts: {
@@ -71,7 +123,7 @@ module.exports = function(grunt) {
tasks: ['jshint', 'concat', 'uglify']
},
oscar_styles: {
- files: ['less/pointhi/**/*.less'],
+ files: ['src/less/pointhi/**/*.less'],
tasks: ['less:development', 'less:production']
},
bootstrap_styles: {
@@ -81,9 +133,13 @@ module.exports = function(grunt) {
}
});
- grunt.loadNpmTasks('grunt-contrib-uglify', '/usr/lib/nodejs');
- grunt.loadNpmTasks('grunt-contrib-concat', '/usr/lib/nodejs');
+ grunt.loadNpmTasks('grunt-contrib-uglify');
+ grunt.loadNpmTasks('grunt-contrib-concat');
+
+ grunt.registerTask('test', ['jshint']);
grunt.registerTask('default', ['concat', 'uglify']);
+ grunt.registerTask('styles', ['less']);
+
};
diff --git a/searx/static/themes/oscar/img/map/layers-2x.png b/searx/static/themes/oscar/img/map/layers-2x.png
deleted file mode 100644
index 0b30da6..0000000
--- a/searx/static/themes/oscar/img/map/layers-2x.png
+++ /dev/null
Binary files differ
diff --git a/searx/static/themes/oscar/img/map/layers.png b/searx/static/themes/oscar/img/map/layers.png
deleted file mode 100644
index 4297fd9..0000000
--- a/searx/static/themes/oscar/img/map/layers.png
+++ /dev/null
Binary files differ
diff --git a/searx/static/themes/oscar/img/map/marker-icon-2x-green.png b/searx/static/themes/oscar/img/map/marker-icon-2x-green.png
deleted file mode 100644
index 7446bb0..0000000
--- a/searx/static/themes/oscar/img/map/marker-icon-2x-green.png
+++ /dev/null
Binary files differ
diff --git a/searx/static/themes/oscar/img/map/marker-icon-2x-orange.png b/searx/static/themes/oscar/img/map/marker-icon-2x-orange.png
deleted file mode 100644
index ecd6773..0000000
--- a/searx/static/themes/oscar/img/map/marker-icon-2x-orange.png
+++ /dev/null
Binary files differ
diff --git a/searx/static/themes/oscar/img/map/marker-icon-2x-red.png b/searx/static/themes/oscar/img/map/marker-icon-2x-red.png
deleted file mode 100644
index 1d2e197..0000000
--- a/searx/static/themes/oscar/img/map/marker-icon-2x-red.png
+++ /dev/null
Binary files differ
diff --git a/searx/static/themes/oscar/img/map/marker-icon-2x.png b/searx/static/themes/oscar/img/map/marker-icon-2x.png
deleted file mode 100644
index 0015b64..0000000
--- a/searx/static/themes/oscar/img/map/marker-icon-2x.png
+++ /dev/null
Binary files differ
diff --git a/searx/static/themes/oscar/img/map/marker-icon-green.png b/searx/static/themes/oscar/img/map/marker-icon-green.png
deleted file mode 100644
index f48ef41..0000000
--- a/searx/static/themes/oscar/img/map/marker-icon-green.png
+++ /dev/null
Binary files differ
diff --git a/searx/static/themes/oscar/img/map/marker-icon-orange.png b/searx/static/themes/oscar/img/map/marker-icon-orange.png
deleted file mode 100644
index d0d2220..0000000
--- a/searx/static/themes/oscar/img/map/marker-icon-orange.png
+++ /dev/null
Binary files differ
diff --git a/searx/static/themes/oscar/img/map/marker-icon-red.png b/searx/static/themes/oscar/img/map/marker-icon-red.png
deleted file mode 100644
index 7a92b9e..0000000
--- a/searx/static/themes/oscar/img/map/marker-icon-red.png
+++ /dev/null
Binary files differ
diff --git a/searx/static/themes/oscar/img/map/marker-icon.png b/searx/static/themes/oscar/img/map/marker-icon.png
deleted file mode 100644
index e2e9f75..0000000
--- a/searx/static/themes/oscar/img/map/marker-icon.png
+++ /dev/null
Binary files differ
diff --git a/searx/static/themes/oscar/img/map/marker-shadow.png b/searx/static/themes/oscar/img/map/marker-shadow.png
deleted file mode 100644
index d1e773c..0000000
--- a/searx/static/themes/oscar/img/map/marker-shadow.png
+++ /dev/null
Binary files differ
diff --git a/searx/static/themes/oscar/js/searx.js b/searx/static/themes/oscar/js/searx.js
deleted file mode 100644
index 927aeb4..0000000
--- a/searx/static/themes/oscar/js/searx.js
+++ /dev/null
@@ -1,356 +0,0 @@
-/**
- * searx is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * searx is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with searx. If not, see < http://www.gnu.org/licenses/ >.
- *
- * (C) 2014 by Thomas Pointhuber, <thomas.pointhuber@gmx.at>
- */
-
-requirejs.config({
- baseUrl: './static/themes/oscar/js',
- paths: {
- app: '../app'
- }
-});
-;/**
- * searx is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * searx is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with searx. If not, see < http://www.gnu.org/licenses/ >.
- *
- * (C) 2019 by Alexandre Flament
- */
-window.searx = (function(d) {
- 'use strict';
-
- // add data- properties
- var script = d.currentScript || (function() {
- var scripts = d.getElementsByTagName('script');
- return scripts[scripts.length - 1];
- })();
-
- return {
- autocompleter: script.getAttribute('data-autocompleter') === 'true',
- method: script.getAttribute('data-method')
- };
-})(document);
-;/**
- * searx is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * searx is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with searx. If not, see < http://www.gnu.org/licenses/ >.
- *
- * (C) 2014 by Thomas Pointhuber, <thomas.pointhuber@gmx.at>
- */
-
-if(searx.autocompleter) {
- searx.searchResults = new Bloodhound({
- datumTokenizer: Bloodhound.tokenizers.obj.whitespace('value'),
- queryTokenizer: Bloodhound.tokenizers.whitespace,
- remote: './autocompleter?q=%QUERY'
- });
- searx.searchResults.initialize();
-}
-
-$(document).ready(function(){
- if(searx.autocompleter) {
- $('#q').typeahead(null, {
- name: 'search-results',
- displayKey: function(result) {
- return result;
- },
- source: searx.searchResults.ttAdapter()
- });
- }
-});
-;/**
- * searx is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * searx is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with searx. If not, see < http://www.gnu.org/licenses/ >.
- *
- * (C) 2014 by Thomas Pointhuber, <thomas.pointhuber@gmx.at>
- */
-
-$(document).ready(function(){
- /**
- * focus element if class="autofocus" and id="q"
- */
- $('#q.autofocus').focus();
-
- /**
- * select full content on click if class="select-all-on-click"
- */
- $(".select-all-on-click").click(function () {
- $(this).select();
- });
-
- /**
- * change text during btn-collapse click if possible
- */
- $('.btn-collapse').click(function() {
- var btnTextCollapsed = $(this).data('btn-text-collapsed');
- var btnTextNotCollapsed = $(this).data('btn-text-not-collapsed');
-
- if(btnTextCollapsed !== '' && btnTextNotCollapsed !== '') {
- if($(this).hasClass('collapsed')) {
- new_html = $(this).html().replace(btnTextCollapsed, btnTextNotCollapsed);
- } else {
- new_html = $(this).html().replace(btnTextNotCollapsed, btnTextCollapsed);
- }
- $(this).html(new_html);
- }
- });
-
- /**
- * change text during btn-toggle click if possible
- */
- $('.btn-toggle .btn').click(function() {
- var btnClass = 'btn-' + $(this).data('btn-class');
- var btnLabelDefault = $(this).data('btn-label-default');
- var btnLabelToggled = $(this).data('btn-label-toggled');
- if(btnLabelToggled !== '') {
- if($(this).hasClass('btn-default')) {
- new_html = $(this).html().replace(btnLabelDefault, btnLabelToggled);
- } else {
- new_html = $(this).html().replace(btnLabelToggled, btnLabelDefault);
- }
- $(this).html(new_html);
- }
- $(this).toggleClass(btnClass);
- $(this).toggleClass('btn-default');
- });
-
- /**
- * change text during btn-toggle click if possible
- */
- $('.media-loader').click(function() {
- var target = $(this).data('target');
- var iframe_load = $(target + ' > iframe');
- var srctest = iframe_load.attr('src');
- if(srctest === undefined || srctest === false){
- iframe_load.attr('src', iframe_load.data('src'));
- }
- });
-
- /**
- * Select or deselect every categories on double clic
- */
- $(".btn-sm").dblclick(function() {
- var btnClass = 'btn-' + $(this).data('btn-class'); // primary
- if($(this).hasClass('btn-default')) {
- $(".btn-sm > input").attr('checked', 'checked');
- $(".btn-sm > input").prop("checked", true);
- $(".btn-sm").addClass(btnClass);
- $(".btn-sm").addClass('active');
- $(".btn-sm").removeClass('btn-default');
- } else {
- $(".btn-sm > input").attr('checked', '');
- $(".btn-sm > input").removeAttr('checked');
- $(".btn-sm > input").checked = false;
- $(".btn-sm").removeClass(btnClass);
- $(".btn-sm").removeClass('active');
- $(".btn-sm").addClass('btn-default');
- }
- });
-});
-;/**
- * searx is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * searx is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with searx. If not, see < http://www.gnu.org/licenses/ >.
- *
- * (C) 2014 by Thomas Pointhuber, <thomas.pointhuber@gmx.at>
- */
-
-$(document).ready(function(){
- $(".searx_overpass_request").on( "click", function( event ) {
- var overpass_url = "https://overpass-api.de/api/interpreter?data=";
- var query_start = overpass_url + "[out:json][timeout:25];(";
- var query_end = ");out meta;";
-
- var osm_id = $(this).data('osm-id');
- var osm_type = $(this).data('osm-type');
- var result_table = $(this).data('result-table');
- var result_table_loadicon = "#" + $(this).data('result-table-loadicon');
-
- // tags which can be ignored
- var osm_ignore_tags = [ "addr:city", "addr:country", "addr:housenumber", "addr:postcode", "addr:street" ];
-
- if(osm_id && osm_type && result_table) {
- result_table = "#" + result_table;
- var query = null;
- switch(osm_type) {
- case 'node':
- query = query_start + "node(" + osm_id + ");" + query_end;
- break;
- case 'way':
- query = query_start + "way(" + osm_id + ");" + query_end;
- break;
- case 'relation':
- query = query_start + "relation(" + osm_id + ");" + query_end;
- break;
- default:
- break;
- }
- if(query) {
- //alert(query);
- var ajaxRequest = $.ajax( query )
- .done(function( html) {
- if(html && html.elements && html.elements[0]) {
- var element = html.elements[0];
- var newHtml = $(result_table).html();
- for (var row in element.tags) {
- if(element.tags.name === null || osm_ignore_tags.indexOf(row) == -1) {
- newHtml += "<tr><td>" + row + "</td><td>";
- switch(row) {
- case "phone":
- case "fax":
- newHtml += "<a href=\"tel:" + element.tags[row].replace(/ /g,'') + "\">" + element.tags[row] + "</a>";
- break;
- case "email":
- newHtml += "<a href=\"mailto:" + element.tags[row] + "\">" + element.tags[row] + "</a>";
- break;
- case "website":
- case "url":
- newHtml += "<a href=\"" + element.tags[row] + "\">" + element.tags[row] + "</a>";
- break;
- case "wikidata":
- newHtml += "<a href=\"https://www.wikidata.org/wiki/" + element.tags[row] + "\">" + element.tags[row] + "</a>";
- break;
- case "wikipedia":
- if(element.tags[row].indexOf(":") != -1) {
- newHtml += "<a href=\"https://" + element.tags[row].substring(0,element.tags[row].indexOf(":")) + ".wikipedia.org/wiki/" + element.tags[row].substring(element.tags[row].indexOf(":")+1) + "\">" + element.tags[row] + "</a>";
- break;
- }
- /* jshint ignore:start */
- default:
- /* jshint ignore:end */
- newHtml += element.tags[row];
- break;
- }
- newHtml += "</td></tr>";
- }
- }
- $(result_table).html(newHtml);
- $(result_table).removeClass('hidden');
- $(result_table_loadicon).addClass('hidden');
- }
- })
- .fail(function() {
- $(result_table_loadicon).html($(result_table_loadicon).html() + "<p class=\"text-muted\">could not load data!</p>");
- });
- }
- }
-
- // this event occour only once per element
- $( this ).off( event );
- });
-
- $(".searx_init_map").on( "click", function( event ) {
- var leaflet_target = $(this).data('leaflet-target');
- var map_lon = $(this).data('map-lon');
- var map_lat = $(this).data('map-lat');
- var map_zoom = $(this).data('map-zoom');
- var map_boundingbox = $(this).data('map-boundingbox');
- var map_geojson = $(this).data('map-geojson');
-
- require(['leaflet-0.7.3.min'], function(leaflet) {
- if(map_boundingbox) {
- southWest = L.latLng(map_boundingbox[0], map_boundingbox[2]);
- northEast = L.latLng(map_boundingbox[1], map_boundingbox[3]);
- map_bounds = L.latLngBounds(southWest, northEast);
- }
-
- // TODO hack
- // change default imagePath
- L.Icon.Default.imagePath = "./static/themes/oscar/img/map";
-
- // init map
- var map = L.map(leaflet_target);
-
- // create the tile layer with correct attribution
- var osmMapnikUrl='https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png';
- var osmMapnikAttrib='Map data © <a href="https://openstreetmap.org">OpenStreetMap</a> contributors';
- var osmMapnik = new L.TileLayer(osmMapnikUrl, {minZoom: 1, maxZoom: 19, attribution: osmMapnikAttrib});
-
- var osmWikimediaUrl='https://maps.wikimedia.org/osm-intl/{z}/{x}/{y}.png';
- var osmWikimediaAttrib = 'Wikimedia maps beta | Maps data © <a href="https://openstreetmap.org">OpenStreetMap</a> contributors';
- var osmWikimedia = new L.TileLayer(osmWikimediaUrl, {minZoom: 1, maxZoom: 19, attribution: osmWikimediaAttrib});
-
- // init map view
- if(map_bounds) {
- // TODO hack: https://github.com/Leaflet/Leaflet/issues/2021
- setTimeout(function () {
- map.fitBounds(map_bounds, {
- maxZoom:17
- });
- }, 0);
- } else if (map_lon && map_lat) {
- if(map_zoom)
- map.setView(new L.LatLng(map_lat, map_lon),map_zoom);
- else
- map.setView(new L.LatLng(map_lat, map_lon),8);
- }
-
- map.addLayer(osmMapnik);
-
- var baseLayers = {
- "OSM Mapnik": osmMapnik/*,
- "OSM Wikimedia": osmWikimedia*/
- };
-
- L.control.layers(baseLayers).addTo(map);
-
-
- if(map_geojson)
- L.geoJson(map_geojson).addTo(map);
- /*else if(map_bounds)
- L.rectangle(map_bounds, {color: "#ff7800", weight: 3, fill:false}).addTo(map);*/
- });
-
- // this event occour only once per element
- $( this ).off( event );
- });
-});
diff --git a/searx/static/themes/oscar/js/searx_src/00_requirejs_config.js b/searx/static/themes/oscar/js/searx_src/00_requirejs_config.js
deleted file mode 100644
index e7c2abd..0000000
--- a/searx/static/themes/oscar/js/searx_src/00_requirejs_config.js
+++ /dev/null
@@ -1,23 +0,0 @@
-/**
- * searx is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * searx is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with searx. If not, see < http://www.gnu.org/licenses/ >.
- *
- * (C) 2014 by Thomas Pointhuber, <thomas.pointhuber@gmx.at>
- */
-
-requirejs.config({
- baseUrl: './static/themes/oscar/js',
- paths: {
- app: '../app'
- }
-});
diff --git a/searx/static/themes/oscar/js/searx_src/autocompleter.js b/searx/static/themes/oscar/js/searx_src/autocompleter.js
deleted file mode 100644
index 0907f8e..0000000
--- a/searx/static/themes/oscar/js/searx_src/autocompleter.js
+++ /dev/null
@@ -1,37 +0,0 @@
-/**
- * searx is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * searx is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with searx. If not, see < http://www.gnu.org/licenses/ >.
- *
- * (C) 2014 by Thomas Pointhuber, <thomas.pointhuber@gmx.at>
- */
-
-if(searx.autocompleter) {
- searx.searchResults = new Bloodhound({
- datumTokenizer: Bloodhound.tokenizers.obj.whitespace('value'),
- queryTokenizer: Bloodhound.tokenizers.whitespace,
- remote: './autocompleter?q=%QUERY'
- });
- searx.searchResults.initialize();
-}
-
-$(document).ready(function(){
- if(searx.autocompleter) {
- $('#q').typeahead(null, {
- name: 'search-results',
- displayKey: function(result) {
- return result;
- },
- source: searx.searchResults.ttAdapter()
- });
- }
-});
diff --git a/searx/static/themes/oscar/js/searx_src/leaflet_map.js b/searx/static/themes/oscar/js/searx_src/leaflet_map.js
deleted file mode 100644
index 3c8c616..0000000
--- a/searx/static/themes/oscar/js/searx_src/leaflet_map.js
+++ /dev/null
@@ -1,167 +0,0 @@
-/**
- * searx is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * searx is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with searx. If not, see < http://www.gnu.org/licenses/ >.
- *
- * (C) 2014 by Thomas Pointhuber, <thomas.pointhuber@gmx.at>
- */
-
-$(document).ready(function(){
- $(".searx_overpass_request").on( "click", function( event ) {
- var overpass_url = "https://overpass-api.de/api/interpreter?data=";
- var query_start = overpass_url + "[out:json][timeout:25];(";
- var query_end = ");out meta;";
-
- var osm_id = $(this).data('osm-id');
- var osm_type = $(this).data('osm-type');
- var result_table = $(this).data('result-table');
- var result_table_loadicon = "#" + $(this).data('result-table-loadicon');
-
- // tags which can be ignored
- var osm_ignore_tags = [ "addr:city", "addr:country", "addr:housenumber", "addr:postcode", "addr:street" ];
-
- if(osm_id && osm_type && result_table) {
- result_table = "#" + result_table;
- var query = null;
- switch(osm_type) {
- case 'node':
- query = query_start + "node(" + osm_id + ");" + query_end;
- break;
- case 'way':
- query = query_start + "way(" + osm_id + ");" + query_end;
- break;
- case 'relation':
- query = query_start + "relation(" + osm_id + ");" + query_end;
- break;
- default:
- break;
- }
- if(query) {
- //alert(query);
- var ajaxRequest = $.ajax( query )
- .done(function( html) {
- if(html && html.elements && html.elements[0]) {
- var element = html.elements[0];
- var newHtml = $(result_table).html();
- for (var row in element.tags) {
- if(element.tags.name === null || osm_ignore_tags.indexOf(row) == -1) {
- newHtml += "<tr><td>" + row + "</td><td>";
- switch(row) {
- case "phone":
- case "fax":
- newHtml += "<a href=\"tel:" + element.tags[row].replace(/ /g,'') + "\">" + element.tags[row] + "</a>";
- break;
- case "email":
- newHtml += "<a href=\"mailto:" + element.tags[row] + "\">" + element.tags[row] + "</a>";
- break;
- case "website":
- case "url":
- newHtml += "<a href=\"" + element.tags[row] + "\">" + element.tags[row] + "</a>";
- break;
- case "wikidata":
- newHtml += "<a href=\"https://www.wikidata.org/wiki/" + element.tags[row] + "\">" + element.tags[row] + "</a>";
- break;
- case "wikipedia":
- if(element.tags[row].indexOf(":") != -1) {
- newHtml += "<a href=\"https://" + element.tags[row].substring(0,element.tags[row].indexOf(":")) + ".wikipedia.org/wiki/" + element.tags[row].substring(element.tags[row].indexOf(":")+1) + "\">" + element.tags[row] + "</a>";
- break;
- }
- /* jshint ignore:start */
- default:
- /* jshint ignore:end */
- newHtml += element.tags[row];
- break;
- }
- newHtml += "</td></tr>";
- }
- }
- $(result_table).html(newHtml);
- $(result_table).removeClass('hidden');
- $(result_table_loadicon).addClass('hidden');
- }
- })
- .fail(function() {
- $(result_table_loadicon).html($(result_table_loadicon).html() + "<p class=\"text-muted\">could not load data!</p>");
- });
- }
- }
-
- // this event occour only once per element
- $( this ).off( event );
- });
-
- $(".searx_init_map").on( "click", function( event ) {
- var leaflet_target = $(this).data('leaflet-target');
- var map_lon = $(this).data('map-lon');
- var map_lat = $(this).data('map-lat');
- var map_zoom = $(this).data('map-zoom');
- var map_boundingbox = $(this).data('map-boundingbox');
- var map_geojson = $(this).data('map-geojson');
-
- require(['leaflet-0.7.3.min'], function(leaflet) {
- if(map_boundingbox) {
- southWest = L.latLng(map_boundingbox[0], map_boundingbox[2]);
- northEast = L.latLng(map_boundingbox[1], map_boundingbox[3]);
- map_bounds = L.latLngBounds(southWest, northEast);
- }
-
- // TODO hack
- // change default imagePath
- L.Icon.Default.imagePath = "./static/themes/oscar/img/map";
-
- // init map
- var map = L.map(leaflet_target);
-
- // create the tile layer with correct attribution
- var osmMapnikUrl='https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png';
- var osmMapnikAttrib='Map data © <a href="https://openstreetmap.org">OpenStreetMap</a> contributors';
- var osmMapnik = new L.TileLayer(osmMapnikUrl, {minZoom: 1, maxZoom: 19, attribution: osmMapnikAttrib});
-
- var osmWikimediaUrl='https://maps.wikimedia.org/osm-intl/{z}/{x}/{y}.png';
- var osmWikimediaAttrib = 'Wikimedia maps beta | Maps data © <a href="https://openstreetmap.org">OpenStreetMap</a> contributors';
- var osmWikimedia = new L.TileLayer(osmWikimediaUrl, {minZoom: 1, maxZoom: 19, attribution: osmWikimediaAttrib});
-
- // init map view
- if(map_bounds) {
- // TODO hack: https://github.com/Leaflet/Leaflet/issues/2021
- setTimeout(function () {
- map.fitBounds(map_bounds, {
- maxZoom:17
- });
- }, 0);
- } else if (map_lon && map_lat) {
- if(map_zoom)
- map.setView(new L.LatLng(map_lat, map_lon),map_zoom);
- else
- map.setView(new L.LatLng(map_lat, map_lon),8);
- }
-
- map.addLayer(osmMapnik);
-
- var baseLayers = {
- "OSM Mapnik": osmMapnik/*,
- "OSM Wikimedia": osmWikimedia*/
- };
-
- L.control.layers(baseLayers).addTo(map);
-
-
- if(map_geojson)
- L.geoJson(map_geojson).addTo(map);
- /*else if(map_bounds)
- L.rectangle(map_bounds, {color: "#ff7800", weight: 3, fill:false}).addTo(map);*/
- });
-
- // this event occour only once per element
- $( this ).off( event );
- });
-});
diff --git a/searx/static/themes/oscar/less/logicodev/code.less b/searx/static/themes/oscar/less/logicodev/code.less
deleted file mode 100644
index 491b30e..0000000
--- a/searx/static/themes/oscar/less/logicodev/code.less
+++ /dev/null
@@ -1,101 +0,0 @@
-pre, code{
- font-family: 'Ubuntu Mono', 'Courier New', 'Lucida Console', monospace !important;
-}
-
-.lineno{
- margin-right: 5px;
-}
-
-.highlight .hll { background-color: #ffffcc }
-.highlight { background: #f8f8f8; }
-.highlight .c { color: #556366; font-style: italic } /* Comment */
-.highlight .err { border: 1px solid @orange } /* Error */
-.highlight .k { color: #BE74D5; font-weight: bold } /* Keyword */
-.highlight .o { color: #D19A66 } /* Operator */
-.highlight .cm { color: #556366; font-style: italic } /* Comment.Multiline */
-.highlight .cp { color: #BC7A00 } /* Comment.Preproc */
-.highlight .c1 { color: #556366; font-style: italic } /* Comment.Single */
-.highlight .cs { color: #556366; font-style: italic } /* Comment.Special */
-.highlight .gd { color: #A00000 } /* Generic.Deleted */
-.highlight .ge { font-style: italic } /* Generic.Emph */
-.highlight .gr { color: #FF0000 } /* Generic.Error */
-.highlight .gh { color: #000080; font-weight: bold } /* Generic.Heading */
-.highlight .gi { color: #00A000 } /* Generic.Inserted */
-.highlight .go { color: #888888 } /* Generic.Output */
-.highlight .gp { color: #000080; font-weight: bold } /* Generic.Prompt */
-.highlight .gs { font-weight: bold } /* Generic.Strong */
-.highlight .gu { color: #800080; font-weight: bold } /* Generic.Subheading */
-.highlight .gt { color: #0044DD } /* Generic.Traceback */
-.highlight .kc { color: #BE74D5; font-weight: bold } /* Keyword.Constant */
-.highlight .kd { color: #BE74D5; font-weight: bold } /* Keyword.Declaration */
-.highlight .kn { color: #BE74D5; font-weight: bold } /* Keyword.Namespace */
-.highlight .kp { color: #BE74D5 } /* Keyword.Pseudo */
-.highlight .kr { color: #BE74D5; font-weight: bold } /* Keyword.Reserved */
-.highlight .kt { color: #D46C72 } /* Keyword.Type */
-.highlight .m { color: #D19A66 } /* Literal.Number */
-.highlight .s { color: #86C372 } /* Literal.String */
-.highlight .na { color: #7D9029 } /* Name.Attribute */
-.highlight .nb { color: #BE74D5 } /* Name.Builtin */
-.highlight .nc { color: #61AFEF; font-weight: bold } /* Name.Class */
-.highlight .no { color: #D19A66 } /* Name.Constant */
-.highlight .nd { color: #AA22FF } /* Name.Decorator */
-.highlight .ni { color: #999999; font-weight: bold } /* Name.Entity */
-.highlight .ne { color: #D2413A; font-weight: bold } /* Name.Exception */
-.highlight .nf { color: #61AFEF } /* Name.Function */
-.highlight .nl { color: #A0A000 } /* Name.Label */
-.highlight .nn { color: #61AFEF; font-weight: bold } /* Name.Namespace */
-.highlight .nt { color: #BE74D5; font-weight: bold } /* Name.Tag */
-.highlight .nv { color: #DFC06F } /* Name.Variable */
-.highlight .ow { color: #AA22FF; font-weight: bold } /* Operator.Word */
-.highlight .w { color: #D7DAE0 } /* Text.Whitespace */
-.highlight .mf { color: #D19A66 } /* Literal.Number.Float */
-.highlight .mh { color: #D19A66 } /* Literal.Number.Hex */
-.highlight .mi { color: #D19A66 } /* Literal.Number.Integer */
-.highlight .mo { color: #D19A66 } /* Literal.Number.Oct */
-.highlight .sb { color: #86C372 } /* Literal.String.Backtick */
-.highlight .sc { color: #86C372 } /* Literal.String.Char */
-.highlight .sd { color: #86C372; font-style: italic } /* Literal.String.Doc */
-.highlight .s2 { color: #86C372 } /* Literal.String.Double */
-.highlight .se { color: #BB6622; font-weight: bold } /* Literal.String.Escape */
-.highlight .sh { color: #86C372 } /* Literal.String.Heredoc */
-.highlight .si { color: #BB6688; font-weight: bold } /* Literal.String.Interpol */
-.highlight .sx { color: #BE74D5 } /* Literal.String.Other */
-.highlight .sr { color: #BB6688 } /* Literal.String.Regex */
-.highlight .s1 { color: #86C372 } /* Literal.String.Single */
-.highlight .ss { color: #DFC06F } /* Literal.String.Symbol */
-.highlight .bp { color: #BE74D5 } /* Name.Builtin.Pseudo */
-.highlight .vc { color: #DFC06F } /* Name.Variable.Class */
-.highlight .vg { color: #DFC06F } /* Name.Variable.Global */
-.highlight .vi { color: #DFC06F } /* Name.Variable.Instance */
-.highlight .il { color: #D19A66 } /* Literal.Number.Integer.Long */
-
-.highlight .lineno {
- -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;
- color: #556366;
-
- &::selection {
- background: transparent; /* WebKit/Blink Browsers */
- }
- &::-moz-selection {
- background: transparent; /* Gecko Browsers */
- }
-}
-
-.highlight pre {
- background-color: #282C34;
- color: #D7DAE0;
- border: none;
- margin-bottom: 25px;
- font-size: 15px;
- padding: 20px 10px;
-}
-
-.highlight {
- font-weight: 700;
-}
diff --git a/searx/static/themes/oscar/less/logicodev/infobox.less b/searx/static/themes/oscar/less/logicodev/infobox.less
deleted file mode 100644
index 954f450..0000000
--- a/searx/static/themes/oscar/less/logicodev/infobox.less
+++ /dev/null
@@ -1,37 +0,0 @@
-.infobox {
-
- .panel-heading{
- background-color: @dim-gray;
-
- .panel-title{
- font-weight: 700;
- }
- }
-
-
- p{
- font-family: "DejaVu Serif", Georgia, Cambria, "Times New Roman", Times, serif !important;
- font-style: italic;
- }
-
- .btn{
- background-color: @green;
- border: none;
-
- a{
- color: white;
- margin: 5px;
- }
- }
-
- .infobox_part {
- margin-bottom: 20px;
- word-wrap: break-word;
- table-layout: fixed;
-
- }
-
- .infobox_part:last-child {
- margin-bottom: 0;
- }
-}
diff --git a/searx/static/themes/oscar/less/logicodev/preferences.less b/searx/static/themes/oscar/less/logicodev/preferences.less
deleted file mode 100644
index 9672d50..0000000
--- a/searx/static/themes/oscar/less/logicodev/preferences.less
+++ /dev/null
@@ -1,3 +0,0 @@
-.table > tbody > tr > td, .table > tbody > tr > th {
- vertical-align: middle !important;
-}
diff --git a/searx/static/themes/oscar/less/logicodev/search.less b/searx/static/themes/oscar/less/logicodev/search.less
deleted file mode 100644
index d65e305..0000000
--- a/searx/static/themes/oscar/less/logicodev/search.less
+++ /dev/null
@@ -1,80 +0,0 @@
-.search_categories, #categories {
- text-transform: capitalize;
- margin-bottom: 0.5rem;
- display: flex;
- flex-wrap: wrap;
- flex-flow: row wrap;
- align-content: stretch;
-
- label, .input-group-addon {
- flex-grow: 1;
- flex-basis: auto;
- font-size: 1.2rem;
- font-weight: normal;
- background-color: white;
- border: @mild-gray 1px solid;
- border-right: none;
- color: @dark-gray;
- padding-bottom: 0.4rem;
- padding-top: 0.4rem;
- text-align: center;
- min-width: 50px;
- }
- label:last-child, .input-group-addon:last-child {
- border-right: @mild-gray 1px solid;
- }
-
- input[type="checkbox"]:checked + label {
- color: @black;
- font-weight: bold;
- border-bottom: @light-green 5px solid;
- }
-}
-
-#main-logo{
- margin-top: 10vh;
- margin-bottom: 25px;
-}
-
-#main-logo > img {
- max-width: 350px;
- width: 80%;
-}
-
-#q{
- box-shadow: none;
- border-right: none;
- border-color: @gray;
-}
-
- #search_form .input-group-btn .btn{
- border-color: @gray;
- }
-
- #search_form .input-group-btn .btn:hover{
- background-color: @green;
- color: white;
- }
-
-.custom-select {
- appearance: none;
- -webkit-appearance: none;
- -moz-appearance: none;
- font-size: 1.2rem;
- font-weight:normal;
- background-color: white;
- border: @mild-gray 1px solid;
- color: @dark-gray;
- background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA8AAAAPCAQAAACR313BAAAABGdBTUEAALGPC/xhBQAAACBjSFJN
-AAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAAmJLR0QA/4ePzL8AAAAJcEhZ
-cwAABFkAAARZAVnbJUkAAAAHdElNRQfgBxgLDwB20OFsAAAAbElEQVQY073OsQ3CMAAEwJMYwJGn
-sAehpoXJItltBkmcdZBYgIIiQoLglnz3ui+eP+bk5uneteTMZJa6OJuIqvYzSJoqwqBq8gdmTTW8
-6/dghxAUq4xsVYT9laBYXCw93Aajh7GPEF23t4fkBYevGFTANkPRAAAAJXRFWHRkYXRlOmNyZWF0
-ZQAyMDE2LTA3LTI0VDExOjU1OjU4KzAyOjAwRFqFOQAAACV0RVh0ZGF0ZTptb2RpZnkAMjAxNi0w
-Ny0yNFQxMToxNTowMCswMjowMP7RDgQAAAAZdEVYdFNvZnR3YXJlAHd3dy5pbmtzY2FwZS5vcmeb
-7jwaAAAAAElFTkSuQmCC) 96% no-repeat;
-}
-
-.search-margin {
- margin-bottom: 0.6em;
-} \ No newline at end of file
diff --git a/searx/static/themes/oscar/less/pointhi/code.less b/searx/static/themes/oscar/less/pointhi/code.less
deleted file mode 100644
index 70a2a5d..0000000
--- a/searx/static/themes/oscar/less/pointhi/code.less
+++ /dev/null
@@ -1,79 +0,0 @@
-.highlight .hll { background-color: #ffffcc }
-.highlight { background: #f8f8f8; }
-.highlight .c { color: #408080; font-style: italic } /* Comment */
-.highlight .err { border: 1px solid #FF0000 } /* Error */
-.highlight .k { color: #008000; font-weight: bold } /* Keyword */
-.highlight .o { color: #666666 } /* Operator */
-.highlight .cm { color: #408080; font-style: italic } /* Comment.Multiline */
-.highlight .cp { color: #BC7A00 } /* Comment.Preproc */
-.highlight .c1 { color: #408080; font-style: italic } /* Comment.Single */
-.highlight .cs { color: #408080; font-style: italic } /* Comment.Special */
-.highlight .gd { color: #A00000 } /* Generic.Deleted */
-.highlight .ge { font-style: italic } /* Generic.Emph */
-.highlight .gr { color: #FF0000 } /* Generic.Error */
-.highlight .gh { color: #000080; font-weight: bold } /* Generic.Heading */
-.highlight .gi { color: #00A000 } /* Generic.Inserted */
-.highlight .go { color: #888888 } /* Generic.Output */
-.highlight .gp { color: #000080; font-weight: bold } /* Generic.Prompt */
-.highlight .gs { font-weight: bold } /* Generic.Strong */
-.highlight .gu { color: #800080; font-weight: bold } /* Generic.Subheading */
-.highlight .gt { color: #0044DD } /* Generic.Traceback */
-.highlight .kc { color: #008000; font-weight: bold } /* Keyword.Constant */
-.highlight .kd { color: #008000; font-weight: bold } /* Keyword.Declaration */
-.highlight .kn { color: #008000; font-weight: bold } /* Keyword.Namespace */
-.highlight .kp { color: #008000 } /* Keyword.Pseudo */
-.highlight .kr { color: #008000; font-weight: bold } /* Keyword.Reserved */
-.highlight .kt { color: #B00040 } /* Keyword.Type */
-.highlight .m { color: #666666 } /* Literal.Number */
-.highlight .s { color: #BA2121 } /* Literal.String */
-.highlight .na { color: #7D9029 } /* Name.Attribute */
-.highlight .nb { color: #008000 } /* Name.Builtin */
-.highlight .nc { color: #0000FF; font-weight: bold } /* Name.Class */
-.highlight .no { color: #880000 } /* Name.Constant */
-.highlight .nd { color: #AA22FF } /* Name.Decorator */
-.highlight .ni { color: #999999; font-weight: bold } /* Name.Entity */
-.highlight .ne { color: #D2413A; font-weight: bold } /* Name.Exception */
-.highlight .nf { color: #0000FF } /* Name.Function */
-.highlight .nl { color: #A0A000 } /* Name.Label */
-.highlight .nn { color: #0000FF; font-weight: bold } /* Name.Namespace */
-.highlight .nt { color: #008000; font-weight: bold } /* Name.Tag */
-.highlight .nv { color: #19177C } /* Name.Variable */
-.highlight .ow { color: #AA22FF; font-weight: bold } /* Operator.Word */
-.highlight .w { color: #bbbbbb } /* Text.Whitespace */
-.highlight .mf { color: #666666 } /* Literal.Number.Float */
-.highlight .mh { color: #666666 } /* Literal.Number.Hex */
-.highlight .mi { color: #666666 } /* Literal.Number.Integer */
-.highlight .mo { color: #666666 } /* Literal.Number.Oct */
-.highlight .sb { color: #BA2121 } /* Literal.String.Backtick */
-.highlight .sc { color: #BA2121 } /* Literal.String.Char */
-.highlight .sd { color: #BA2121; font-style: italic } /* Literal.String.Doc */
-.highlight .s2 { color: #BA2121 } /* Literal.String.Double */
-.highlight .se { color: #BB6622; font-weight: bold } /* Literal.String.Escape */
-.highlight .sh { color: #BA2121 } /* Literal.String.Heredoc */
-.highlight .si { color: #BB6688; font-weight: bold } /* Literal.String.Interpol */
-.highlight .sx { color: #008000 } /* Literal.String.Other */
-.highlight .sr { color: #BB6688 } /* Literal.String.Regex */
-.highlight .s1 { color: #BA2121 } /* Literal.String.Single */
-.highlight .ss { color: #19177C } /* Literal.String.Symbol */
-.highlight .bp { color: #008000 } /* Name.Builtin.Pseudo */
-.highlight .vc { color: #19177C } /* Name.Variable.Class */
-.highlight .vg { color: #19177C } /* Name.Variable.Global */
-.highlight .vi { color: #19177C } /* Name.Variable.Instance */
-.highlight .il { color: #666666 } /* Literal.Number.Integer.Long */
-
-.highlight .lineno {
- -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;
-
- &::selection {
- background: transparent; /* WebKit/Blink Browsers */
- }
- &::-moz-selection {
- background: transparent; /* Gecko Browsers */
- }
-}
diff --git a/searx/static/themes/oscar/less/pointhi/infobox.less b/searx/static/themes/oscar/less/pointhi/infobox.less
deleted file mode 100644
index df51b00..0000000
--- a/searx/static/themes/oscar/less/pointhi/infobox.less
+++ /dev/null
@@ -1,11 +0,0 @@
-.infobox {
- .infobox_part {
- margin-bottom: 20px;
- word-wrap: break-word;
- table-layout: fixed;
- }
-
- .infobox_part:last-child {
- margin-bottom: 0;
- }
-}
diff --git a/searx/static/themes/oscar/less/pointhi/preferences.less b/searx/static/themes/oscar/less/pointhi/preferences.less
deleted file mode 100644
index 9672d50..0000000
--- a/searx/static/themes/oscar/less/pointhi/preferences.less
+++ /dev/null
@@ -1,3 +0,0 @@
-.table > tbody > tr > td, .table > tbody > tr > th {
- vertical-align: middle !important;
-}
diff --git a/searx/static/themes/oscar/less/pointhi/search.less b/searx/static/themes/oscar/less/pointhi/search.less
deleted file mode 100644
index 5ff7336..0000000
--- a/searx/static/themes/oscar/less/pointhi/search.less
+++ /dev/null
@@ -1,33 +0,0 @@
-.search_categories, #categories {
- text-transform: capitalize;
- margin-bottom: 1.5rem;
- margin-top: 1.5rem;
- display: flex;
- flex-wrap: wrap;
- align-content: stretch;
-
- label, .input-group-addon {
- flex-grow: 1;
- flex-basis: auto;
- font-size: 1.3rem;
- font-weight: normal;
- background-color: white;
- border: #DDD 1px solid;
- border-right: none;
- color: #333;
- padding-bottom: 0.8rem;
- padding-top: 0.8rem;
- text-align: center;
- min-width: 50px;
- }
-
- label:last-child, .input-group-addon:last-child {
- border-right: #DDD 1px solid;
- }
-
- input[type="checkbox"]:checked + label{
- color: black;
- font-weight: bold;
- background-color: #EEE;
- }
-}
diff --git a/searx/static/themes/oscar/package.json b/searx/static/themes/oscar/package.json
index 5b10fcf..8a3d487 100644
--- a/searx/static/themes/oscar/package.json
+++ b/searx/static/themes/oscar/package.json
@@ -1,15 +1,23 @@
{
"devDependencies": {
- "grunt": "~0.4.5",
- "grunt-contrib-uglify": "~0.6.0",
- "grunt-contrib-watch": "~0.6.1",
- "grunt-contrib-concat": "~0.5.0",
- "grunt-contrib-jshint": "~0.10.0",
- "grunt-contrib-less": "~0.11.0"
+ "grunt": "^1.3.0",
+ "grunt-cli": "^1.3.2",
+ "grunt-contrib-concat": "~1.0.1",
+ "grunt-contrib-copy": "^1.0.0",
+ "grunt-contrib-jshint": "~3.0.0",
+ "grunt-contrib-less": "~3.0.0",
+ "grunt-contrib-uglify": "~5.0.0",
+ "grunt-contrib-watch": "~1.1.0"
},
"scripts": {
"build": "npm install && grunt",
"start": "grunt watch",
"test": "grunt"
+ },
+ "dependencies": {
+ "bootstrap": "^3.4.1",
+ "corejs-typeahead": "^1.3.1",
+ "jquery": "^3.6.0",
+ "leaflet": "^1.7.1"
}
}
diff --git a/searx/static/themes/oscar/js/searx_src/01_init.js b/searx/static/themes/oscar/src/js/01_init.js
index 690365c..e361d87 100644
--- a/searx/static/themes/oscar/js/searx_src/01_init.js
+++ b/searx/static/themes/oscar/src/js/01_init.js
@@ -17,6 +17,9 @@
window.searx = (function(d) {
'use strict';
+ //
+ d.getElementsByTagName("html")[0].className = "js";
+
// add data- properties
var script = d.currentScript || (function() {
var scripts = d.getElementsByTagName('script');
@@ -25,6 +28,7 @@ window.searx = (function(d) {
return {
autocompleter: script.getAttribute('data-autocompleter') === 'true',
- method: script.getAttribute('data-method')
+ method: script.getAttribute('data-method'),
+ translations: JSON.parse(script.getAttribute('data-translations'))
};
})(document);
diff --git a/searx/static/themes/oscar/src/js/autocompleter.js b/searx/static/themes/oscar/src/js/autocompleter.js
new file mode 100644
index 0000000..56293f4
--- /dev/null
+++ b/searx/static/themes/oscar/src/js/autocompleter.js
@@ -0,0 +1,60 @@
+/**
+ * searx is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * searx is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with searx. If not, see < http://www.gnu.org/licenses/ >.
+ *
+ * (C) 2014 by Thomas Pointhuber, <thomas.pointhuber@gmx.at>
+ */
+
+$(document).ready(function(){
+ var original_search_value = '';
+ if(searx.autocompleter) {
+ var searchResults = new Bloodhound({
+ datumTokenizer: Bloodhound.tokenizers.obj.whitespace('value'),
+ queryTokenizer: Bloodhound.tokenizers.whitespace,
+ remote: {
+ url: './autocompleter?q=%QUERY',
+ wildcard: '%QUERY'
+ }
+ });
+ searchResults.initialize();
+
+ $("#q").on('keydown', function(e) {
+ if(e.which == 13) {
+ original_search_value = $('#q').val();
+ }
+ });
+ $('#q').typeahead({
+ name: 'search-results',
+ highlight: false,
+ hint: true,
+ displayKey: function(result) {
+ return result;
+ },
+ classNames: {
+ input: 'tt-input',
+ hint: 'tt-hint',
+ menu: 'tt-dropdown-menu',
+ dataset: 'tt-dataset-search-results',
+ },
+ }, {
+ name: 'autocomplete',
+ source: searchResults,
+ });
+ $('#q').bind('typeahead:select', function(ev, suggestion) {
+ if(original_search_value) {
+ $('#q').val(original_search_value);
+ }
+ $("#search_form").submit();
+ });
+ }
+});
diff --git a/searx/static/themes/oscar/js/searx_src/element_modifiers.js b/searx/static/themes/oscar/src/js/element_modifiers.js
index 4264d4c..087f7d4 100644
--- a/searx/static/themes/oscar/js/searx_src/element_modifiers.js
+++ b/searx/static/themes/oscar/src/js/element_modifiers.js
@@ -22,6 +22,13 @@ $(document).ready(function(){
$('#q.autofocus').focus();
/**
+ * Empty search bar when click on reset button
+ */
+ $("#clear_search").click(function () {
+ document.getElementById("q").value = "";
+ });
+
+ /**
* select full content on click if class="select-all-on-click"
*/
$(".select-all-on-click").click(function () {
@@ -96,4 +103,15 @@ $(document).ready(function(){
$(".btn-sm").addClass('btn-default');
}
});
+ $(".nav-tabs").click(function(a) {
+ var tabs = $(a.target).parents("ul");
+ tabs.children().attr("aria-selected", "false");
+ $(a.target).parent().attr("aria-selected", "true");
+ });
+
+ /**
+ * Layout images according to their sizes
+ */
+ searx.image_thumbnail_layout = new searx.ImageLayout('#main_results', '#main_results .result-images', 'img.img-thumbnail', 15, 200);
+ searx.image_thumbnail_layout.watch();
});
diff --git a/searx/static/themes/oscar/src/js/infobox.js b/searx/static/themes/oscar/src/js/infobox.js
new file mode 100644
index 0000000..cb7f1ee
--- /dev/null
+++ b/searx/static/themes/oscar/src/js/infobox.js
@@ -0,0 +1,11 @@
+window.addEventListener('load', function() {
+ // Hide infobox toggle if shrunk size already fits all content.
+ $('.infobox').each(function() {
+ var infobox_body = $(this).find('.infobox_body');
+ var total_height = infobox_body.prop('scrollHeight') + infobox_body.find('img.infobox_part').height();
+ var max_height = infobox_body.css('max-height').replace('px', '');
+ if (total_height <= max_height) {
+ $(this).find('.infobox_toggle').hide();
+ }
+ });
+});
diff --git a/searx/static/themes/oscar/src/js/leaflet_map.js b/searx/static/themes/oscar/src/js/leaflet_map.js
new file mode 100644
index 0000000..08233c4
--- /dev/null
+++ b/searx/static/themes/oscar/src/js/leaflet_map.js
@@ -0,0 +1,79 @@
+/**
+ * searx is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * searx is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with searx. If not, see < http://www.gnu.org/licenses/ >.
+ *
+ * (C) 2014 by Thomas Pointhuber, <thomas.pointhuber@gmx.at>
+ */
+
+$(document).ready(function(){
+ $(".searx_init_map").on( "click", function( event ) {
+ var leaflet_target = $(this).data('leaflet-target');
+ var map_lon = $(this).data('map-lon');
+ var map_lat = $(this).data('map-lat');
+ var map_zoom = $(this).data('map-zoom');
+ var map_boundingbox = $(this).data('map-boundingbox');
+ var map_geojson = $(this).data('map-geojson');
+
+ if(map_boundingbox) {
+ southWest = L.latLng(map_boundingbox[0], map_boundingbox[2]);
+ northEast = L.latLng(map_boundingbox[1], map_boundingbox[3]);
+ map_bounds = L.latLngBounds(southWest, northEast);
+ }
+
+ // change default imagePath
+ L.Icon.Default.imagePath = "./static/themes/oscar/css/images/";
+
+ // init map
+ var map = L.map(leaflet_target);
+
+ // create the tile layer with correct attribution
+ var osmMapnikUrl='https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png';
+ var osmMapnikAttrib='Map data © <a href="https://openstreetmap.org">OpenStreetMap</a> contributors';
+ var osmMapnik = new L.TileLayer(osmMapnikUrl, {minZoom: 1, maxZoom: 19, attribution: osmMapnikAttrib});
+
+ var osmWikimediaUrl='https://maps.wikimedia.org/osm-intl/{z}/{x}/{y}.png';
+ var osmWikimediaAttrib = 'Wikimedia maps beta | Maps data © <a href="https://openstreetmap.org">OpenStreetMap</a> contributors';
+ var osmWikimedia = new L.TileLayer(osmWikimediaUrl, {minZoom: 1, maxZoom: 19, attribution: osmWikimediaAttrib});
+
+ // init map view
+ setTimeout(function() {
+ if(map_bounds) {
+ map.fitBounds(map_bounds, {
+ maxZoom:17
+ });
+ } else if (map_lon && map_lat) {
+ if(map_zoom)
+ map.setView(new L.LatLng(map_lat, map_lon),map_zoom);
+ else
+ map.setView(new L.LatLng(map_lat, map_lon),8);
+ }
+ }, 0);
+
+ map.addLayer(osmMapnik);
+
+ var baseLayers = {
+ "OSM Mapnik": osmMapnik/*,
+ "OSM Wikimedia": osmWikimedia*/
+ };
+
+ L.control.layers(baseLayers).addTo(map);
+
+ if(map_geojson)
+ L.geoJson(map_geojson).addTo(map);
+ /*else if(map_bounds)
+ L.rectangle(map_bounds, {color: "#ff7800", weight: 3, fill:false}).addTo(map);*/
+
+ // this event occour only once per element
+ $( this ).off( event );
+ });
+});
diff --git a/searx/static/themes/oscar/src/js/toggleall.js b/searx/static/themes/oscar/src/js/toggleall.js
new file mode 100644
index 0000000..b6c484e
--- /dev/null
+++ b/searx/static/themes/oscar/src/js/toggleall.js
@@ -0,0 +1,10 @@
+$(document).ready(function(){
+ $("#allow-all-engines").click(function() {
+ $(".onoffswitch-checkbox").each(function() { this.checked = false;});
+ });
+
+ $("#disable-all-engines").click(function() {
+ $(".onoffswitch-checkbox").each(function() { this.checked = true;});
+ });
+});
+
diff --git a/searx/static/themes/oscar/src/less/bootstrap/bootstrap.less b/searx/static/themes/oscar/src/less/bootstrap/bootstrap.less
new file mode 100644
index 0000000..d6145eb
--- /dev/null
+++ b/searx/static/themes/oscar/src/less/bootstrap/bootstrap.less
@@ -0,0 +1,3 @@
+@import "../../../node_modules/bootstrap/less/bootstrap.less";
+
+@import "typeahead.less";
diff --git a/searx/static/themes/oscar/src/less/bootstrap/typeahead.less b/searx/static/themes/oscar/src/less/bootstrap/typeahead.less
new file mode 100644
index 0000000..de1c6ef
--- /dev/null
+++ b/searx/static/themes/oscar/src/less/bootstrap/typeahead.less
@@ -0,0 +1,154 @@
+/*
+ * typehead.js-bootstrap3.less
+ * @version 0.2.3
+ * https://github.com/hyspace/typeahead.js-bootstrap3.less
+ *
+ * Licensed under the MIT license:
+ * http://www.opensource.org/licenses/MIT
+ */
+
+//custom mixin for .form-control-validation
+.typeahead-form-control(@border-color: #ccc;) {
+ border-color: @border-color;
+ .box-shadow(inset 0 1px 1px rgba(0,0,0,.075)); // Redeclare so transitions work
+ &:focus {
+ border-color: darken(@border-color, 10%);
+ @shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 6px lighten(@border-color, 20%);
+ .box-shadow(@shadow);
+ }
+ }
+
+ //main styles for control
+ .tt-input,
+ .tt-hint {
+ .twitter-typeahead &{
+ //validation states
+ .has-warning &{
+ .typeahead-form-control(@state-warning-text);
+ }
+ .has-error &{
+ .typeahead-form-control(@state-danger-text);
+ }
+ .has-success &{
+ .typeahead-form-control(@state-success-text);
+ }
+ }
+
+ //border
+ .input-group .twitter-typeahead:first-child &{
+ .border-left-radius(@border-radius-base);
+ }
+ .input-group .twitter-typeahead:last-child &{
+ .border-right-radius(@border-radius-base);
+ }
+
+ //sizing - small:size and border
+ .input-group.input-group-sm .twitter-typeahead &{
+ .input-size(@input-height-small; @padding-small-vertical; @padding-small-horizontal; @font-size-small; @line-height-small; @border-radius-small);
+ }
+ .input-group.input-group-sm .twitter-typeahead:not(:first-child):not(:last-child) &{
+ border-radius: 0;
+ }
+ .input-group.input-group-sm .twitter-typeahead:first-child &{
+ .border-left-radius(@border-radius-small);
+ .border-right-radius(0);
+ }
+ .input-group.input-group-sm .twitter-typeahead:last-child &{
+ .border-left-radius(0);
+ .border-right-radius(@border-radius-small);
+ }
+
+ //sizing - large:size and border
+ .input-group.input-group-lg .twitter-typeahead &{
+ .input-size(@input-height-large; @padding-large-vertical; @padding-large-horizontal; @font-size-large; @line-height-large; @border-radius-large);
+ }
+ .input-group.input-group-lg .twitter-typeahead:not(:first-child):not(:last-child) &{
+ border-radius: 0;
+ }
+ .input-group.input-group-lg .twitter-typeahead:first-child &{
+ .border-left-radius(@border-radius-large);
+ .border-right-radius(0);
+ }
+ .input-group.input-group-lg .twitter-typeahead:last-child &{
+ .border-left-radius(0);
+ .border-right-radius(@border-radius-large);
+ }
+ }
+
+ //for wrapper
+ .twitter-typeahead {
+ width: 100%;
+ .input-group &{
+ //overwrite `display:inline-block` style
+ display: table-cell!important;
+ float: left;
+ }
+ }
+
+ //particular style for each other
+ .twitter-typeahead .tt-hint {
+ color: @text-muted;//color - hint
+ }
+ .twitter-typeahead .tt-input {
+ z-index: 2;
+ //disabled status
+ //overwrite inline styles of .tt-query
+ &[disabled],
+ &[readonly],
+ fieldset[disabled] & {
+ cursor: not-allowed;
+ //overwirte inline style
+ background-color: @input-bg-disabled!important;
+ }
+ }
+
+ //dropdown styles
+ .tt-dropdown-menu {
+ //dropdown menu
+ position: absolute;
+ top: 100%;
+ left: 0;
+ z-index: @zindex-dropdown;
+ min-width: 160px;
+ width: 100%;
+ padding: 5px 0;
+ margin: 2px 0 0;
+ list-style: none;
+ font-size: @font-size-base;
+ background-color: @dropdown-bg;
+ border: 1px solid @dropdown-fallback-border;
+ border: 1px solid @dropdown-border;
+ border-radius: @border-radius-base;
+ .box-shadow(0 6px 12px rgba(0,0,0,.175));
+ background-clip: padding-box;
+ *border-right-width: 2px;
+ *border-bottom-width: 2px;
+
+ .tt-suggestion {
+ //item
+ display: block;
+ padding: 3px 20px;
+ clear: both;
+ font-weight: normal;
+ line-height: @line-height-base;
+ color: @dropdown-link-color;
+ white-space: nowrap;
+ text-align: left;
+ cursor: pointer !important;
+ &.tt-cursor {
+ //item selected
+ text-decoration: none;
+ outline: 0;
+ background-color: @dropdown-link-hover-bg;
+ color: @dropdown-link-hover-color;
+ a {
+ //link in item selected
+ color: @dropdown-link-hover-color;
+ }
+ }
+ p {
+ margin: 0;
+ }
+ }
+ }
+ \ No newline at end of file
diff --git a/searx/static/themes/oscar/less/logicodev-dark/oscar.less b/searx/static/themes/oscar/src/less/logicodev-dark/oscar.less
index e788b8c..1f8c559 100644
--- a/searx/static/themes/oscar/less/logicodev-dark/oscar.less
+++ b/searx/static/themes/oscar/src/less/logicodev-dark/oscar.less
@@ -51,7 +51,7 @@ ul.nav li a {
color:#D5D8D7 !important;
}
-#categories *, {
+#categories a, {
border: 1px solid #3d3f43 !important;
}
@@ -71,10 +71,6 @@ ul.nav li a {
border-color: #4d3f43 !important;
}
-.highlight {
- background: #333333 !important;
-}
-
/*nav*/
.navbar{
background:#1d1f21 none;
@@ -136,6 +132,16 @@ ul.nav li a {
border-color: #111 !important;
}
+.panel-footer {
+ color: #C5C8C6 !important;
+ background: #282a2e !important;
+ border-top: 1px solid #111 !important;
+}
+
+.infobox_toggle:hover {
+ background: #3d3f43 !important;
+}
+
p.btn.btn-default{
background: none;
}
@@ -243,3 +249,9 @@ p.btn.btn-default{
.highlight {
background-color: transparent !important;
}
+
+/* engine tooltip */
+.engine-tooltip {
+ border: 1px solid #3d3f43;
+ background: #1d1f21 ;
+}
diff --git a/searx/static/themes/oscar/less/logicodev/advanced.less b/searx/static/themes/oscar/src/less/logicodev/advanced.less
index 4c3827b..b8e10de 100644
--- a/searx/static/themes/oscar/less/logicodev/advanced.less
+++ b/searx/static/themes/oscar/src/less/logicodev/advanced.less
@@ -31,8 +31,8 @@
}
}
-#check-advanced {
- display: none;
+#check-advanced:focus + label {
+ text-decoration: underline;
}
#check-advanced:checked ~ #advanced-search-container {
diff --git a/searx/static/themes/oscar/less/logicodev/checkbox.less b/searx/static/themes/oscar/src/less/logicodev/checkbox.less
index 6428b36..6428b36 100644
--- a/searx/static/themes/oscar/less/logicodev/checkbox.less
+++ b/searx/static/themes/oscar/src/less/logicodev/checkbox.less
diff --git a/searx/static/themes/oscar/src/less/logicodev/code.less b/searx/static/themes/oscar/src/less/logicodev/code.less
new file mode 100644
index 0000000..3aef968
--- /dev/null
+++ b/searx/static/themes/oscar/src/less/logicodev/code.less
@@ -0,0 +1,14 @@
+pre, code {
+ font-family: 'Ubuntu Mono', 'Courier New', 'Lucida Console', monospace !important;
+}
+
+@import "pygments.less";
+
+.code-highlight pre {
+ margin-bottom: 25px;
+ padding: 20px 10px;
+ background-color: inherit;
+ color: inherit;
+ border: inherit;
+ color: #D7DAE0;
+}
diff --git a/searx/static/themes/oscar/less/logicodev/cursor.less b/searx/static/themes/oscar/src/less/logicodev/cursor.less
index cbc1ea6..cbc1ea6 100644
--- a/searx/static/themes/oscar/less/logicodev/cursor.less
+++ b/searx/static/themes/oscar/src/less/logicodev/cursor.less
diff --git a/searx/static/themes/oscar/less/logicodev/footer.less b/searx/static/themes/oscar/src/less/logicodev/footer.less
index d23a0cc..d23a0cc 100644
--- a/searx/static/themes/oscar/less/logicodev/footer.less
+++ b/searx/static/themes/oscar/src/less/logicodev/footer.less
diff --git a/searx/static/themes/oscar/src/less/logicodev/infobox.less b/searx/static/themes/oscar/src/less/logicodev/infobox.less
new file mode 100644
index 0000000..c5bdfa6
--- /dev/null
+++ b/searx/static/themes/oscar/src/less/logicodev/infobox.less
@@ -0,0 +1,92 @@
+.infobox {
+
+ .panel-heading{
+ background-color: @dim-gray;
+
+ .panel-title{
+ font-weight: 700;
+ }
+ }
+
+ .header_url {
+ white-space: nowrap;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ display: block;
+ }
+
+
+ p{
+ font-family: "DejaVu Serif", Georgia, Cambria, "Times New Roman", Times, serif !important;
+ font-style: italic;
+ }
+
+ img{
+ max-height: "250px";
+ }
+
+ .btn{
+ background-color: @dark-blue;
+ border: none;
+
+ a{
+ color: white;
+ margin: 5px;
+ }
+ }
+
+ .infobox_part {
+ margin-bottom: 20px;
+ word-wrap: break-word;
+ table-layout: fixed;
+
+ }
+
+ .infobox_part:last-child {
+ margin-bottom: 0;
+ }
+
+ .infobox_toggle {
+ width: 100%;
+ text-align: center;
+ margin-bottom: 0px;
+ cursor: pointer;
+ }
+
+ .infobox_toggle:hover {
+ background: @mild-gray;
+ }
+
+ // Shrink infobox size when toggle is off
+ .infobox_checkbox ~ .infobox_body {
+ max-height: 300px;
+ overflow: hidden;
+ }
+ .infobox_checkbox:checked ~ .infobox_body {
+ max-height: none;
+ }
+
+ // Show toggle button as down when infobox is shrunk
+ .infobox_checkbox ~ .infobox_toggle .infobox_label_down {
+ display: block;
+ }
+ .infobox_checkbox ~ .infobox_toggle .infobox_label_up {
+ display: none;
+ }
+
+ // Show toggle button as up when infobox is expanded
+ .infobox_checkbox:checked ~ .infobox_toggle .infobox_label_up {
+ display: block;
+ }
+ .infobox_checkbox:checked ~ .infobox_toggle .infobox_label_down {
+ display: none;
+ }
+
+ // Hide main image when toggle is off
+ .infobox_checkbox ~ .infobox_body img.infobox_part {
+ display: none;
+ }
+ .infobox_checkbox:checked ~ .infobox_body img.infobox_part {
+ display: block;
+ }
+}
diff --git a/searx/static/themes/oscar/less/logicodev/navbar.less b/searx/static/themes/oscar/src/less/logicodev/navbar.less
index 6e4f9ee..6e4f9ee 100644
--- a/searx/static/themes/oscar/less/logicodev/navbar.less
+++ b/searx/static/themes/oscar/src/less/logicodev/navbar.less
diff --git a/searx/static/themes/oscar/less/logicodev/onoff.less b/searx/static/themes/oscar/src/less/logicodev/onoff.less
index f471892..fbd2983 100644
--- a/searx/static/themes/oscar/less/logicodev/onoff.less
+++ b/searx/static/themes/oscar/src/less/logicodev/onoff.less
@@ -9,7 +9,21 @@
-ms-user-select: none;
}
.onoffswitch-checkbox {
- display: none;
+ opacity: 0;
+ position: absolute;
+}
+.onoffswitch-checkbox:before {
+ content: "";
+ display: inline-block;
+ width: 16px;
+ height: 16px;
+ margin-right: 10px;
+ position: absolute;
+ left: 0;
+ bottom: 1px;
+ background-color: #fff;
+ border: 1px solid #ccc;
+ border-radius: 0px;
}
.onoffswitch-label {
display: block;
@@ -44,7 +58,7 @@
top: 0;
bottom: 0;
right: 0px;
- border: 2px solid #FFFFFF !important;
+ border: 2px solid #FFFFFF;
border-radius: 50px !important;
transition: all 0.3s ease-in 0s;
}
@@ -55,3 +69,6 @@
right: 71px;
background-color: #A1A1A1;
}
+.onoffswitch-checkbox:focus + .onoffswitch-label .onoffswitch-switch {
+ border: 3px solid #444444;
+}
diff --git a/searx/static/themes/oscar/less/logicodev/oscar.less b/searx/static/themes/oscar/src/less/logicodev/oscar.less
index da80d1e..da80d1e 100644
--- a/searx/static/themes/oscar/less/logicodev/oscar.less
+++ b/searx/static/themes/oscar/src/less/logicodev/oscar.less
diff --git a/searx/static/themes/oscar/src/less/logicodev/preferences.less b/searx/static/themes/oscar/src/less/logicodev/preferences.less
new file mode 100644
index 0000000..ccd0b02
--- /dev/null
+++ b/searx/static/themes/oscar/src/less/logicodev/preferences.less
@@ -0,0 +1,31 @@
+.table > tbody > tr > td, .table > tbody > tr > th {
+ vertical-align: middle !important;
+}
+
+.nav-tabs.nav-justified{
+ margin-bottom: 20px;
+}
+
+p {
+ margin: 10px 0;
+}
+
+input.cursor-text {
+ margin: 10px 0;
+}
+
+.engine-tooltip {
+ display: none;
+ position: absolute;
+ padding: 0.5rem 1rem;
+ margin: 0rem 0 0 2rem;
+ border: 1px solid #ddd;
+ background: white;
+ font-size: 14px;
+ font-weight: normal;
+ z-index: 1000000;
+}
+
+th:hover .engine-tooltip, .engine-tooltip:hover {
+ display: inline-block;
+} \ No newline at end of file
diff --git a/searx/static/themes/oscar/src/less/logicodev/pygments.less b/searx/static/themes/oscar/src/less/logicodev/pygments.less
new file mode 100644
index 0000000..301c94e
--- /dev/null
+++ b/searx/static/themes/oscar/src/less/logicodev/pygments.less
@@ -0,0 +1,99 @@
+/*
+ this file is generated automatically by searx_extra/update/update_pygments.py
+ using pygments version 2.8.0
+*/
+
+.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;
+
+ &::selection {
+ background: transparent; /* WebKit/Blink Browsers */
+ }
+ &::-moz-selection {
+ background: transparent; /* Gecko Browsers */
+ }
+
+ margin-right: 8px;
+ text-align: right;
+}
+
+.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: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; }
+.code-highlight span.linenos.special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; }
+.code-highlight .hll { background-color: #ffffcc }
+.code-highlight { background: #282C34; }
+.code-highlight .c { color: #556366; font-style: italic } /* Comment */
+.code-highlight .err { border: 1px solid #ff0000 } /* Error */
+.code-highlight .k { color: #BE74D5; font-weight: bold } /* Keyword */
+.code-highlight .o { color: #D19A66 } /* Operator */
+.code-highlight .ch { color: #556366; font-style: italic } /* Comment.Hashbang */
+.code-highlight .cm { color: #556366; font-style: italic } /* Comment.Multiline */
+.code-highlight .cp { color: #BC7A00; font-style: italic } /* Comment.Preproc */
+.code-highlight .cpf { color: #556366; font-style: italic } /* Comment.PreprocFile */
+.code-highlight .c1 { color: #556366; font-style: italic } /* Comment.Single */
+.code-highlight .cs { color: #556366; font-style: italic } /* Comment.Special */
+.code-highlight .gd { color: #A00000 } /* Generic.Deleted */
+.code-highlight .ge { font-style: italic } /* Generic.Emph */
+.code-highlight .gr { color: #FF0000 } /* Generic.Error */
+.code-highlight .gh { color: #000080; font-weight: bold } /* Generic.Heading */
+.code-highlight .gi { color: #00A000 } /* Generic.Inserted */
+.code-highlight .go { color: #888888 } /* Generic.Output */
+.code-highlight .gp { color: #000080; font-weight: bold } /* Generic.Prompt */
+.code-highlight .gs { font-weight: bold } /* Generic.Strong */
+.code-highlight .gu { color: #800080; font-weight: bold } /* Generic.Subheading */
+.code-highlight .gt { color: #0044DD } /* Generic.Traceback */
+.code-highlight .kc { color: #BE74D5; font-weight: bold } /* Keyword.Constant */
+.code-highlight .kd { color: #BE74D5; font-weight: bold } /* Keyword.Declaration */
+.code-highlight .kn { color: #BE74D5; font-weight: bold } /* Keyword.Namespace */
+.code-highlight .kp { color: #BE74D5; font-weight: bold } /* Keyword.Pseudo */
+.code-highlight .kr { color: #BE74D5; font-weight: bold } /* Keyword.Reserved */
+.code-highlight .kt { color: #D46C72; font-weight: bold } /* Keyword.Type */
+.code-highlight .m { color: #D19A66 } /* Literal.Number */
+.code-highlight .s { color: #86C372 } /* Literal.String */
+.code-highlight .na { color: #7D9029 } /* Name.Attribute */
+.code-highlight .nb { color: #BE74D5 } /* Name.Builtin */
+.code-highlight .nc { color: #61AFEF; font-weight: bold } /* Name.Class */
+.code-highlight .no { color: #D19A66 } /* Name.Constant */
+.code-highlight .nd { color: #AA22FF } /* Name.Decorator */
+.code-highlight .ni { color: #999999; font-weight: bold } /* Name.Entity */
+.code-highlight .ne { color: #D2413A; font-weight: bold } /* Name.Exception */
+.code-highlight .nf { color: #61AFEF } /* Name.Function */
+.code-highlight .nl { color: #A0A000 } /* Name.Label */
+.code-highlight .nn { color: #61AFEF; font-weight: bold } /* Name.Namespace */
+.code-highlight .nt { color: #BE74D5; font-weight: bold } /* Name.Tag */
+.code-highlight .nv { color: #DFC06F } /* Name.Variable */
+.code-highlight .ow { color: #AA22FF; font-weight: bold } /* Operator.Word */
+.code-highlight .w { color: #D7DAE0 } /* Text.Whitespace */
+.code-highlight .mb { color: #D19A66 } /* Literal.Number.Bin */
+.code-highlight .mf { color: #D19A66 } /* Literal.Number.Float */
+.code-highlight .mh { color: #D19A66 } /* Literal.Number.Hex */
+.code-highlight .mi { color: #D19A66 } /* Literal.Number.Integer */
+.code-highlight .mo { color: #D19A66 } /* Literal.Number.Oct */
+.code-highlight .sa { color: #86C372 } /* Literal.String.Affix */
+.code-highlight .sb { color: #86C372 } /* Literal.String.Backtick */
+.code-highlight .sc { color: #86C372 } /* Literal.String.Char */
+.code-highlight .dl { color: #86C372 } /* Literal.String.Delimiter */
+.code-highlight .sd { color: #86C372; font-style: italic } /* Literal.String.Doc */
+.code-highlight .s2 { color: #86C372 } /* Literal.String.Double */
+.code-highlight .se { color: #BB6622; font-weight: bold } /* Literal.String.Escape */
+.code-highlight .sh { color: #86C372 } /* Literal.String.Heredoc */
+.code-highlight .si { color: #BB6688; font-weight: bold } /* Literal.String.Interpol */
+.code-highlight .sx { color: #BE74D5 } /* Literal.String.Other */
+.code-highlight .sr { color: #BB6688 } /* Literal.String.Regex */
+.code-highlight .s1 { color: #86C372 } /* Literal.String.Single */
+.code-highlight .ss { color: #DFC06F } /* Literal.String.Symbol */
+.code-highlight .bp { color: #BE74D5 } /* Name.Builtin.Pseudo */
+.code-highlight .fm { color: #61AFEF } /* Name.Function.Magic */
+.code-highlight .vc { color: #DFC06F } /* Name.Variable.Class */
+.code-highlight .vg { color: #DFC06F } /* Name.Variable.Global */
+.code-highlight .vi { color: #DFC06F } /* Name.Variable.Instance */
+.code-highlight .vm { color: #DFC06F } /* Name.Variable.Magic */
+.code-highlight .il { color: #D19A66 } /* Literal.Number.Integer.Long */
diff --git a/searx/static/themes/oscar/less/logicodev/results.less b/searx/static/themes/oscar/src/less/logicodev/results.less
index 5e7e133..0668dc8 100644
--- a/searx/static/themes/oscar/less/logicodev/results.less
+++ b/searx/static/themes/oscar/src/less/logicodev/results.less
@@ -33,12 +33,10 @@
word-wrap: break-word;
color: @dark-gray;
font-size: 13px;
+}
-
- .highlight {
- font-weight:bold;
- }
-
+.result .highlight {
+ font-weight: bold;
}
.result-source {
@@ -51,6 +49,11 @@
float: right;
}
+.result-abstract {
+ margin-top: 0.5em;
+ margin-bottom: 0.8em;
+}
+
.external-link {
color: @dark-green;
font-size: 12px;
@@ -64,7 +67,7 @@
// default formating of results
.result-default, .result-code, .result-torrent, .result-videos, .result-map {
clear: both;
- padding: 2px 4px;
+ padding: 0.5em 4px;
&:hover{
background-color: @dim-gray;
}
@@ -74,12 +77,39 @@
// image formating of results
.result-images {
float: left !important;
- width: 24%;
- margin: .5%;
+ margin: 0;
+ padding: 0;
a {
display: block;
width: 100%;
background-size: cover;
+ .img-thumbnail {
+ border: none !important;
+ padding: 0;
+ }
+ &:hover, &:focus {
+ outline: 0;
+ .img-thumbnail {
+ box-shadow: 5px 5px 15px 0px black;
+ }
+ }
+ }
+}
+
+.result-images.js a .img-thumbnail {
+ max-height: inherit;
+ min-height: inherit;
+}
+
+.result-images:not(.js) {
+ width: 25%;
+ padding: 3px 13px 13px 3px;
+ a {
+ .img-thumbnail {
+ margin: 0;
+ max-height: 128px;
+ min-height: 128px;
+ }
}
}
@@ -124,9 +154,53 @@
}
}
+.result-metadata {
+ clear: both;
+ margin: 1em;
+
+ td {
+ padding-right: 1em;
+ color: @gray;
+ }
+
+ td:first-of-type {
+ color: @dark-gray;
+ }
+}
+
// map formating of results
.result-map {
clear: both;
+
+ .img-thumbnail {
+ float: right;
+ width: auto;
+ height: 120px;
+ border: 0;
+ background: inherit;
+ }
+
+ .img-type {
+ width: 20px;
+ max-height: 20px;
+ }
+
+ .result-map-details {
+ font-size: 13px;
+ border-collapse: separate;
+ border-spacing: 0 0.35rem;
+
+ th {
+ font-weight: inherit;
+ width: 20rem;
+ vertical-align: top;
+ }
+
+ td {
+ vertical-align: top;
+ }
+ }
+
}
// code formating of results
@@ -164,7 +238,7 @@
}
.label-default {
- color: @gray;
+ color: @dark-gray;
background: transparent;
}
@@ -185,3 +259,9 @@
outline: 0 none;
position: relative;
}
+
+@media screen and (max-width: 75em) {
+ .img-thumbnail {
+ object-fit: cover;
+ }
+}
diff --git a/searx/static/themes/oscar/src/less/logicodev/search.less b/searx/static/themes/oscar/src/less/logicodev/search.less
new file mode 100644
index 0000000..57adaae
--- /dev/null
+++ b/searx/static/themes/oscar/src/less/logicodev/search.less
@@ -0,0 +1,113 @@
+.search_categories, #categories {
+ text-transform: capitalize;
+ margin-bottom: 0.5rem;
+ display: flex;
+ flex-wrap: wrap;
+ flex-flow: row wrap;
+ align-content: stretch;
+
+ a {
+ height: 3rem;
+ flex-grow: 1;
+ flex-basis: auto;
+ border: @mild-gray 1px solid;
+ border-right: none;
+ color: @dark-gray;
+ padding-bottom: 0.3rem;
+ padding-top: 0.1rem;
+ text-align: center;
+ min-width: 50px;
+ }
+
+ label, .input-group-addon {
+ flex-grow: 1;
+ flex-basis: auto;
+ font-size: 1.2rem;
+ font-weight: normal;
+ background-color: white;
+ border: none;
+ border-right: none;
+ color: @dark-gray;
+ padding-bottom: 0;
+ padding-top: 0;
+ text-align: center;
+ width: 100%;
+ height: 100%;
+ }
+
+ a:last-child, .input-group-addon:last-child {
+ border-right: @mild-gray 1px solid;
+ }
+
+ input[type="checkbox"]:checked + a {
+ color: @black;
+ font-weight: bold;
+ border-bottom: @light-green 5px solid;
+ }
+}
+
+#main-logo{
+ margin-top: 10vh;
+ margin-bottom: 25px;
+}
+
+#main-logo > img {
+ max-width: 350px;
+ width: 80%;
+}
+
+#q{
+ box-shadow: none;
+ border-right: none;
+ border-color: @semidark-gray;
+}
+
+ #search_form .input-group-btn .btn{
+ border-color: @semidark-gray;
+ }
+
+ #search_form .input-group-btn .btn:hover{
+ background-color: @dark-green;
+ color: white;
+ }
+
+.custom-select, .custom-select-rtl {
+ appearance: none;
+ -webkit-appearance: none;
+ -moz-appearance: none;
+ font-size: 1.2rem;
+ font-weight:normal;
+ background-color: white;
+ border: @semidark-gray 1px solid;
+ color: @dark-gray;
+ // Warning: multi-line base64 URL adds "$stdin" in the source map: https://github.com/jakubpawlowicz/clean-css/issues/593
+ background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA8AAAAPCAQAAACR313BAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAAmJLR0QA/4ePzL8AAAAJcEhZcwAABFkAAARZAVnbJUkAAAAHdElNRQfgBxgLDwB20OFsAAAAbElEQVQY073OsQ3CMAAEwJMYwJGnsAehpoXJItltBkmcdZBYgIIiQoLglnz3ui+eP+bk5uneteTMZJa6OJuIqvYzSJoqwqBq8gdmTTW86/dghxAUq4xsVYT9laBYXCw93Aajh7GPEF23t4fkBYevGFTANkPRAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDE2LTA3LTI0VDExOjU1OjU4KzAyOjAwRFqFOQAAACV0RVh0ZGF0ZTptb2RpZnkAMjAxNi0wNy0yNFQxMToxNTowMCswMjowMP7RDgQAAAAZdEVYdFNvZnR3YXJlAHd3dy5pbmtzY2FwZS5vcmeb7jwaAAAAAElFTkSuQmCC) 96% no-repeat;
+ padding-right: 26px;
+ text-overflow: ellipsis;
+}
+
+.custom-select-rtl {
+ background-position-x: 4%;
+}
+
+.search-margin {
+ margin-bottom: 0.6em;
+}
+
+.visually-hidden {
+ position: absolute !important;
+ height: 1px;
+ width: 1px;
+ overflow: hidden;
+ clip: rect(1px, 1px, 1px, 1px);
+ white-space: nowrap;
+}
+.label-danger, .btn-danger {
+ background: @dark-red;
+}
+.label-success, .btn-success {
+ background: @dark-green;
+}
+select.form-control {
+ border-color: @semidark-gray !important;
+}
diff --git a/searx/static/themes/oscar/less/logicodev/variables.less b/searx/static/themes/oscar/src/less/logicodev/variables.less
index 5966ee6..4ee8df8 100644
--- a/searx/static/themes/oscar/less/logicodev/variables.less
+++ b/searx/static/themes/oscar/src/less/logicodev/variables.less
@@ -2,12 +2,15 @@
@gray: #A4A4A4;
@dim-gray: #F6F9FA;
@dark-gray: #666;
+@semidark-gray: #888;
@middle-gray: #F5F5F5;
@mild-gray: #DDD;
-@blue: #0088CC;
+@dark-blue: #007AB8;
+@blue: #0088CC;
@red: #F35E77;
@violet: #684898;
-@dark-green: #069025;
+@dark-green: #068922;
@green: #2ecc71;
-@light-green: #01D7D4;
+@light-green: #01D7D4;
@orange: #FFA92F;
+@dark-red: #c9432f;
diff --git a/searx/static/themes/oscar/less/pointhi/advanced.less b/searx/static/themes/oscar/src/less/pointhi/advanced.less
index 23bfdb0..23bfdb0 100644
--- a/searx/static/themes/oscar/less/pointhi/advanced.less
+++ b/searx/static/themes/oscar/src/less/pointhi/advanced.less
diff --git a/searx/static/themes/oscar/less/pointhi/checkbox.less b/searx/static/themes/oscar/src/less/pointhi/checkbox.less
index 6428b36..6428b36 100644
--- a/searx/static/themes/oscar/less/pointhi/checkbox.less
+++ b/searx/static/themes/oscar/src/less/pointhi/checkbox.less
diff --git a/searx/static/themes/oscar/src/less/pointhi/code.less b/searx/static/themes/oscar/src/less/pointhi/code.less
new file mode 100644
index 0000000..86fe153
--- /dev/null
+++ b/searx/static/themes/oscar/src/less/pointhi/code.less
@@ -0,0 +1,2 @@
+@import "pygments.less";
+
diff --git a/searx/static/themes/oscar/less/pointhi/cursor.less b/searx/static/themes/oscar/src/less/pointhi/cursor.less
index cbc1ea6..cbc1ea6 100644
--- a/searx/static/themes/oscar/less/pointhi/cursor.less
+++ b/searx/static/themes/oscar/src/less/pointhi/cursor.less
diff --git a/searx/static/themes/oscar/less/pointhi/footer.less b/searx/static/themes/oscar/src/less/pointhi/footer.less
index 0b25e73..0b25e73 100644
--- a/searx/static/themes/oscar/less/pointhi/footer.less
+++ b/searx/static/themes/oscar/src/less/pointhi/footer.less
diff --git a/searx/static/themes/oscar/src/less/pointhi/infobox.less b/searx/static/themes/oscar/src/less/pointhi/infobox.less
new file mode 100644
index 0000000..e6a55e9
--- /dev/null
+++ b/searx/static/themes/oscar/src/less/pointhi/infobox.less
@@ -0,0 +1,62 @@
+.infobox {
+
+ img {
+ max-height: 250px;
+ }
+
+ .infobox_part {
+ margin-bottom: 20px;
+ word-wrap: break-word;
+ table-layout: fixed;
+ }
+
+ .infobox_part:last-child {
+ margin-bottom: 0;
+ }
+
+ .header_url {
+ white-space: nowrap;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ display: block;
+ }
+
+ .infobox_toggle {
+ width: 100%;
+ text-align: center;
+ margin-bottom: 0px;
+ }
+
+ // Shrink infobox size when toggle is off
+ .infobox_checkbox ~ .infobox_body {
+ max-height: 300px;
+ overflow: hidden;
+ }
+ .infobox_checkbox:checked ~ .infobox_body {
+ max-height: none;
+ }
+
+ // Show toggle button as down when infobox is shrunk
+ .infobox_checkbox ~ .infobox_toggle .infobox_label_down {
+ display: block;
+ }
+ .infobox_checkbox ~ .infobox_toggle .infobox_label_up {
+ display: none;
+ }
+
+ // Show toggle button as up when infobox is expanded
+ .infobox_checkbox:checked ~ .infobox_toggle .infobox_label_up {
+ display: block;
+ }
+ .infobox_checkbox:checked ~ .infobox_toggle .infobox_label_down {
+ display: none;
+ }
+
+ // Hide main image when toggle is off
+ .infobox_checkbox ~ .infobox_body img.infobox_part {
+ display: none;
+ }
+ .infobox_checkbox:checked ~ .infobox_body img.infobox_part {
+ display: block;
+ }
+}
diff --git a/searx/static/themes/oscar/less/pointhi/navbar.less b/searx/static/themes/oscar/src/less/pointhi/navbar.less
index a057f82..a057f82 100644
--- a/searx/static/themes/oscar/less/pointhi/navbar.less
+++ b/searx/static/themes/oscar/src/less/pointhi/navbar.less
diff --git a/searx/static/themes/oscar/less/pointhi/onoff.less b/searx/static/themes/oscar/src/less/pointhi/onoff.less
index 72b289a..72b289a 100644
--- a/searx/static/themes/oscar/less/pointhi/onoff.less
+++ b/searx/static/themes/oscar/src/less/pointhi/onoff.less
diff --git a/searx/static/themes/oscar/less/pointhi/oscar.less b/searx/static/themes/oscar/src/less/pointhi/oscar.less
index fc1c525..6f92a07 100644
--- a/searx/static/themes/oscar/less/pointhi/oscar.less
+++ b/searx/static/themes/oscar/src/less/pointhi/oscar.less
@@ -1,3 +1,5 @@
+@import "variables.less";
+
@import "footer.less";
@import "checkbox.less";
@@ -18,4 +20,6 @@
@import "navbar.less";
+@import "code.less";
+
@import "preferences.less";
diff --git a/searx/static/themes/oscar/src/less/pointhi/preferences.less b/searx/static/themes/oscar/src/less/pointhi/preferences.less
new file mode 100644
index 0000000..f3a6bee
--- /dev/null
+++ b/searx/static/themes/oscar/src/less/pointhi/preferences.less
@@ -0,0 +1,19 @@
+.table > tbody > tr > td, .table > tbody > tr > th {
+ vertical-align: middle !important;
+}
+
+.engine-tooltip {
+ display: none;
+ position: absolute;
+ padding: 0.5rem 1rem;
+ margin: 0rem 0 0 2rem;
+ border: 1px solid #ddd;
+ background: white;
+ font-size: 14px;
+ font-weight: normal;
+ z-index: 1000000;
+}
+
+th:hover .engine-tooltip, .engine-tooltip:hover {
+ display: inline-block;
+}
diff --git a/searx/static/themes/oscar/src/less/pointhi/pygments.less b/searx/static/themes/oscar/src/less/pointhi/pygments.less
new file mode 100644
index 0000000..25a921c
--- /dev/null
+++ b/searx/static/themes/oscar/src/less/pointhi/pygments.less
@@ -0,0 +1,99 @@
+/*
+ this file is generated automatically by searx_extra/update/update_pygments.py
+ using pygments version 2.8.0
+*/
+
+.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;
+
+ &::selection {
+ background: transparent; /* WebKit/Blink Browsers */
+ }
+ &::-moz-selection {
+ background: transparent; /* Gecko Browsers */
+ }
+
+ margin-right: 8px;
+ text-align: right;
+}
+
+.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: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; }
+.code-highlight span.linenos.special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; }
+.code-highlight .hll { background-color: #ffffcc }
+.code-highlight { background: #f8f8f8; }
+.code-highlight .c { color: #408080; font-style: italic } /* Comment */
+.code-highlight .err { border: 1px solid #FF0000 } /* Error */
+.code-highlight .k { color: #008000; font-weight: bold } /* Keyword */
+.code-highlight .o { color: #666666 } /* Operator */
+.code-highlight .ch { color: #408080; font-style: italic } /* Comment.Hashbang */
+.code-highlight .cm { color: #408080; font-style: italic } /* Comment.Multiline */
+.code-highlight .cp { color: #BC7A00 } /* Comment.Preproc */
+.code-highlight .cpf { color: #408080; font-style: italic } /* Comment.PreprocFile */
+.code-highlight .c1 { color: #408080; font-style: italic } /* Comment.Single */
+.code-highlight .cs { color: #408080; font-style: italic } /* Comment.Special */
+.code-highlight .gd { color: #A00000 } /* Generic.Deleted */
+.code-highlight .ge { font-style: italic } /* Generic.Emph */
+.code-highlight .gr { color: #FF0000 } /* Generic.Error */
+.code-highlight .gh { color: #000080; font-weight: bold } /* Generic.Heading */
+.code-highlight .gi { color: #00A000 } /* Generic.Inserted */
+.code-highlight .go { color: #888888 } /* Generic.Output */
+.code-highlight .gp { color: #000080; font-weight: bold } /* Generic.Prompt */
+.code-highlight .gs { font-weight: bold } /* Generic.Strong */
+.code-highlight .gu { color: #800080; font-weight: bold } /* Generic.Subheading */
+.code-highlight .gt { color: #0044DD } /* Generic.Traceback */
+.code-highlight .kc { color: #008000; font-weight: bold } /* Keyword.Constant */
+.code-highlight .kd { color: #008000; font-weight: bold } /* Keyword.Declaration */
+.code-highlight .kn { color: #008000; font-weight: bold } /* Keyword.Namespace */
+.code-highlight .kp { color: #008000 } /* Keyword.Pseudo */
+.code-highlight .kr { color: #008000; font-weight: bold } /* Keyword.Reserved */
+.code-highlight .kt { color: #B00040 } /* Keyword.Type */
+.code-highlight .m { color: #666666 } /* Literal.Number */
+.code-highlight .s { color: #BA2121 } /* Literal.String */
+.code-highlight .na { color: #7D9029 } /* Name.Attribute */
+.code-highlight .nb { color: #008000 } /* Name.Builtin */
+.code-highlight .nc { color: #0000FF; font-weight: bold } /* Name.Class */
+.code-highlight .no { color: #880000 } /* Name.Constant */
+.code-highlight .nd { color: #AA22FF } /* Name.Decorator */
+.code-highlight .ni { color: #999999; font-weight: bold } /* Name.Entity */
+.code-highlight .ne { color: #D2413A; font-weight: bold } /* Name.Exception */
+.code-highlight .nf { color: #0000FF } /* Name.Function */
+.code-highlight .nl { color: #A0A000 } /* Name.Label */
+.code-highlight .nn { color: #0000FF; font-weight: bold } /* Name.Namespace */
+.code-highlight .nt { color: #008000; font-weight: bold } /* Name.Tag */
+.code-highlight .nv { color: #19177C } /* Name.Variable */
+.code-highlight .ow { color: #AA22FF; font-weight: bold } /* Operator.Word */
+.code-highlight .w { color: #bbbbbb } /* Text.Whitespace */
+.code-highlight .mb { color: #666666 } /* Literal.Number.Bin */
+.code-highlight .mf { color: #666666 } /* Literal.Number.Float */
+.code-highlight .mh { color: #666666 } /* Literal.Number.Hex */
+.code-highlight .mi { color: #666666 } /* Literal.Number.Integer */
+.code-highlight .mo { color: #666666 } /* Literal.Number.Oct */
+.code-highlight .sa { color: #BA2121 } /* Literal.String.Affix */
+.code-highlight .sb { color: #BA2121 } /* Literal.String.Backtick */
+.code-highlight .sc { color: #BA2121 } /* Literal.String.Char */
+.code-highlight .dl { color: #BA2121 } /* Literal.String.Delimiter */
+.code-highlight .sd { color: #BA2121; font-style: italic } /* Literal.String.Doc */
+.code-highlight .s2 { color: #BA2121 } /* Literal.String.Double */
+.code-highlight .se { color: #BB6622; font-weight: bold } /* Literal.String.Escape */
+.code-highlight .sh { color: #BA2121 } /* Literal.String.Heredoc */
+.code-highlight .si { color: #BB6688; font-weight: bold } /* Literal.String.Interpol */
+.code-highlight .sx { color: #008000 } /* Literal.String.Other */
+.code-highlight .sr { color: #BB6688 } /* Literal.String.Regex */
+.code-highlight .s1 { color: #BA2121 } /* Literal.String.Single */
+.code-highlight .ss { color: #19177C } /* Literal.String.Symbol */
+.code-highlight .bp { color: #008000 } /* Name.Builtin.Pseudo */
+.code-highlight .fm { color: #0000FF } /* Name.Function.Magic */
+.code-highlight .vc { color: #19177C } /* Name.Variable.Class */
+.code-highlight .vg { color: #19177C } /* Name.Variable.Global */
+.code-highlight .vi { color: #19177C } /* Name.Variable.Instance */
+.code-highlight .vm { color: #19177C } /* Name.Variable.Magic */
+.code-highlight .il { color: #666666 } /* Literal.Number.Integer.Long */
diff --git a/searx/static/themes/oscar/less/pointhi/results.less b/searx/static/themes/oscar/src/less/pointhi/results.less
index 13266c0..f6a2a02 100644
--- a/searx/static/themes/oscar/less/pointhi/results.less
+++ b/searx/static/themes/oscar/src/less/pointhi/results.less
@@ -107,3 +107,7 @@
outline: 0 none;
position: relative;
}
+
+.highlight {
+ font-weight: 700;
+}
diff --git a/searx/static/themes/oscar/src/less/pointhi/search.less b/searx/static/themes/oscar/src/less/pointhi/search.less
new file mode 100644
index 0000000..bb1cd89
--- /dev/null
+++ b/searx/static/themes/oscar/src/less/pointhi/search.less
@@ -0,0 +1,56 @@
+.search_categories, #categories {
+ text-transform: capitalize;
+ margin-bottom: 1.5rem;
+ margin-top: 1.5rem;
+ display: flex;
+ flex-wrap: wrap;
+ align-content: stretch;
+
+ a {
+ flex-grow: 1;
+ flex-basis: auto;
+ border: @mild-gray 1px solid;
+ border-right: none;
+ color: @dark-gray;
+ padding-bottom: 0.4rem;
+ padding-top: 0.4rem;
+ text-align: center;
+ min-width: 50px;
+ }
+
+ label, .input-group-addon {
+ flex-grow: 1;
+ flex-basis: auto;
+ font-size: 1.3rem;
+ font-weight: normal;
+ background-color: white;
+ border: #DDD 1px solid;
+ border-right: none;
+ color: #333;
+ padding-bottom: 0.8rem;
+ padding-top: 0.8rem;
+ text-align: center;
+ width: 100%;
+ height: 100%;
+ }
+
+ a:last-child, .input-group-addon:last-child {
+ border-right: #DDD 1px solid;
+ }
+
+ input[type="checkbox"]:checked + label{
+ color: black;
+ font-weight: bold;
+ background-color: #EEE;
+ }
+}
+
+.visually-hidden {
+ position: absolute !important;
+ height: 1px;
+ width: 1px;
+ overflow: hidden;
+ clip: rect(1px 1px 1px 1px); /* IE6, IE7 */
+ clip: rect(1px, 1px, 1px, 1px);
+ white-space: nowrap; /* added line */
+}
diff --git a/searx/static/themes/pix-art/img/favicon.png b/searx/static/themes/pix-art/img/favicon.png
deleted file mode 100644
index 3818d3d..0000000
--- a/searx/static/themes/pix-art/img/favicon.png
+++ /dev/null
Binary files differ
diff --git a/searx/static/themes/pix-art/img/preference-icon-pixel.png b/searx/static/themes/pix-art/img/preference-icon-pixel.png
deleted file mode 100644
index 424e01e..0000000
--- a/searx/static/themes/pix-art/img/preference-icon-pixel.png
+++ /dev/null
Binary files differ
diff --git a/searx/static/themes/pix-art/img/search-icon-pixel.png b/searx/static/themes/pix-art/img/search-icon-pixel.png
deleted file mode 100644
index 8235882..0000000
--- a/searx/static/themes/pix-art/img/search-icon-pixel.png
+++ /dev/null
Binary files differ
diff --git a/searx/static/themes/pix-art/img/searx-pixel-small.png b/searx/static/themes/pix-art/img/searx-pixel-small.png
deleted file mode 100644
index 75b476c..0000000
--- a/searx/static/themes/pix-art/img/searx-pixel-small.png
+++ /dev/null
Binary files differ
diff --git a/searx/static/themes/pix-art/img/searx-pixel.png b/searx/static/themes/pix-art/img/searx-pixel.png
deleted file mode 100644
index 6aee581..0000000
--- a/searx/static/themes/pix-art/img/searx-pixel.png
+++ /dev/null
Binary files differ
diff --git a/searx/static/themes/pix-art/js/searx.js b/searx/static/themes/pix-art/js/searx.js
deleted file mode 100644
index 5eb0af9..0000000
--- a/searx/static/themes/pix-art/js/searx.js
+++ /dev/null
@@ -1,141 +0,0 @@
-if(searx.autocompleter) {
- window.addEvent('domready', function() {
- new Autocompleter.Request.JSON('q', '/autocompleter', {
- postVar:'q',
- postData:{
- 'format': 'json'
- },
- ajaxOptions:{
- timeout: 5 // Correct option?
- },
- 'minLength': 4,
- 'selectMode': false,
- cache: true,
- delay: 300
- });
- });
-}
-
-(function (w, d) {
- 'use strict';
- function addListener(el, type, fn) {
- if (el.addEventListener) {
- el.addEventListener(type, fn, false);
- } else {
- el.attachEvent('on' + type, fn);
- }
- }
-
- function placeCursorAtEnd() {
- if (this.setSelectionRange) {
- var len = this.value.length * 2;
- this.setSelectionRange(len, len);
- }
- }
-
- addListener(w, 'load', function () {
- var qinput = d.getElementById('q');
- if (qinput !== null && qinput.value === "") {
- addListener(qinput, 'focus', placeCursorAtEnd);
- qinput.focus();
- }
- });
-
- if (!!('ontouchstart' in window)) {
- document.getElementsByTagName("html")[0].className += " touch";
- }
-
-})(window, document);
-
-var xmlHttp
-
-function GetXmlHttpObject(){
-
- var xmlHttp = null;
-
- try {
- // Firefox, Opera 8.0+, Safari
- xmlHttp = new XMLHttpRequest();
- }
- catch (e) {
- // Internet Explorer
- try {
- xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
- }
- catch (e){
- xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
- }
- }
- return xmlHttp;
-}
-
-var timer;
-
-// Load more results
-function load_more(query,page){
-
- xmlHttp = GetXmlHttpObject();
- clearTimeout(timer);
-
- if(xmlHttp == null){
- alert ("Your browser does not support AJAX!");
- return;
- }
-
- favicons[page] = [];
-
- xmlHttp.onreadystatechange = function(){
-
- var loader = document.getElementById('load_more');
-
- // If 4, response OK
- if (xmlHttp.readyState == 4){
-
- var res = xmlHttp.responseText;
-
- clearTimeout(timer);
- timer = setTimeout(function(){},6000);
-
- var results = document.getElementById('results_list');
-
- var newNode = document.createElement('span');
- newNode.innerHTML = res;
- results_list.appendChild(newNode);
-
- var scripts = newNode.getElementsByTagName('script');
- for (var ix = 0; ix < scripts.length; ix++) {
- eval(scripts[ix].text);
- }
-
- load_images(page);
- document.getElementById("load_more").onclick = function() { load_more(query, (page+1)); }
- loader.removeAttribute("disabled");
-
- } else {
- loader.disabled = 'disabled';
- }
- }
- var url = "/";
- var params = "q="+query+"&pageno="+page+"&category_general=1&category_files=1&category_images=1&category_it=1&category_map=1&category_music=1&category_news=1&category_social+media=1&category_videos=1";
- xmlHttp.open("POST",url,true);
- xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
- xmlHttp.setRequestHeader("Content-length", params.length);
- xmlHttp.setRequestHeader("Connection", "close");
- xmlHttp.send(params);
-}
-
-// Load the images on the canvas in the page
-function load_images(page){
- var arrayLength = favicons[page].length;
- for (var i = 1; i < arrayLength+1; i++) {
- var img = new Image();
- img.setAttribute("i",i)
- img.onload = function () {
- var id = 'canvas-'+page+'-'+this.getAttribute("i");
- var can = document.getElementById(id);
- var ctx = can.getContext("2d");
- ctx.drawImage(this, 0, 0, 16, 16);
- };
- img.src = favicons[page][i];
- }
-} \ No newline at end of file
diff --git a/searx/static/themes/pix-art/less/definitions.less b/searx/static/themes/pix-art/less/definitions.less
deleted file mode 100644
index 0ac0cc9..0000000
--- a/searx/static/themes/pix-art/less/definitions.less
+++ /dev/null
@@ -1,119 +0,0 @@
-/*
- * searx, A privacy-respecting, hackable metasearch engine
- *
- * To change the colors of the site, simple edit this variables
- */
-
-/// Basic Colors
-
-@color-base: #3498DB;
-@color-base-dark: #2980B9;
-@color-base-light: #ECF0F1;
-@color-highlight: #094089;
-@color-black: #000000;
-
-/// General
-
-@color-font: #444;
-@color-font-light: #888;
-
-@color-red: #C0392B;
-
-@color-url-font: #1a11be;
-@color-url-visited-font: #8E44AD;
-@results-width: 50em;
-
-
-/// Start-Screen
-
-// hmarg
-@color-hmarg-border: @color-base;
-@color-hmarg-font: @color-base;
-@color-hmarg-font-hover: @color-base;
-
-
-/// Search-Input
-
-@color-search-border: @color-base;
-@color-search-background: #FFF;
-@color-search-font: #222;
-
-/// Autocompleter
-
-@color-autocompleter-choices-background: #FFF;
-@color-autocompleter-choices-border: @color-base;
-@color-autocompleter-choices-border-left-right: @color-base;
-@color-autocompleter-choices-border-bottom: @color-base;
-
-@color-autocompleter-choices-font: #444;
-
-/// Answers
-@color-answers-border: @color-base-dark;
-
-// Selected
-@color-autocompleter-selected-background: #444;
-@color-autocompleter-selected-font: #FFF;
-@color-autocompleter-selected-queried-font: #9FCFFF;
-
-/// Categories
-
-@color-categories-item-selected: @color-base;
-@color-categories-item-selected-font: #FFF;
-
-@color-categories-item-border-selected: @color-base-dark;
-@color-categories-item-border-unselected: #E8E7E6;
-@color-categories-item-border-unselected-hover: @color-base;
-
-
-/// Results
-
-@color-suggestions-button-background: @color-base;
-@color-suggestions-button-font: #FFF;
-
-@color-download-button-background: @color-base;
-@color-download-button-font: #FFF;
-
-@color-result-search-background: @color-base-light;
-
-@color-result-definition-border: gray;
-@color-result-torrent-border: lightgray;
-@color-result-top-border: #E8E7E6;
-
-// Link to result
-@color-result-link-font: @color-base-dark;
-@color-result-link-visited-font: @color-url-visited-font;
-
-// Url to result
-@color-result-url-font: @color-red;
-
-// Publish Date
-@color-result-publishdate-font: @color-font-light;
-
-// Images
-@color-result-image-span-background-hover: rgba(0, 0, 0, 0.6);
-@color-result-image-span-font: #FFF;
-
-// Search-URL
-@color-result-search-url-border: #888;
-@color-result-search-url-font: #444;
-
-
-/// Settings
-
-@color-settings-fieldset: @color-base;
-@color-settings-tr-hover: #DDD;
-
-// Labels
-@color-settings-label-allowed-background: #E74C3C;
-@color-settings-label-allowed-font: #FFF;
-
-@color-settings-label-deny-background: #2ECC71;
-@color-settings-label-deny-font: @color-font;
-
-@color-settings-return-background: @color-base;
-@color-settings-return-font: #FFF;
-
-/// Other
-
-@color-engines-font: @color-font-light;
-@color-percentage-div-background: #444;
diff --git a/searx/static/themes/pix-art/less/mixins.less b/searx/static/themes/pix-art/less/mixins.less
deleted file mode 100644
index dbccce6..0000000
--- a/searx/static/themes/pix-art/less/mixins.less
+++ /dev/null
@@ -1,27 +0,0 @@
-/*
- * searx, A privacy-respecting, hackable metasearch engine
- */
-
-// Mixins
-
-.text-size-adjust (@property: 100%) {
- -webkit-text-size-adjust: @property;
- -ms-text-size-adjust: @property;
- -moz-text-size-adjust: @property;
- text-size-adjust: @property;
-}
-
-.rounded-corners (@radius: 4px) {
- -webkit-border-radius: @radius;
- -moz-border-radius: @radius;
- border-radius: @radius;
-}
-
-.user-select () {
- -webkit-touch-callout: none;
- -webkit-user-select: none;
- -khtml-user-select: none;
- -moz-user-select: none;
- -ms-user-select: none;
- user-select: none;
-}
diff --git a/searx/static/themes/pix-art/less/search.less b/searx/static/themes/pix-art/less/search.less
deleted file mode 100644
index f5ac33e..0000000
--- a/searx/static/themes/pix-art/less/search.less
+++ /dev/null
@@ -1,57 +0,0 @@
-/*
- * searx, A privacy-respecting, hackable metasearch engine
- */
-
-.search {
- padding: 0;
- margin: 0;
-}
-
-#search_wrapper {
- position: relative;
- width: @results-width;
- padding: 10px;
-}
-
-.center #search_wrapper {
- margin-left: auto;
- margin-right: auto;
-}
-
-.q {
- background: none repeat scroll 0 0 @color-search-background;
- border: 1px solid @color-search-border;
- color: @color-search-font;
- font-size: 16px;
- font-family: "Courier New", Courier, monospace;
- height: 28px;
- margin: 0;
- outline: medium none;
- padding: 2px;
- padding-left: 8px;
- padding-right: 0px !important;
- width: 100%;
- z-index: 2;
-}
-
-#search_submit {
- position: absolute;
- top: 15px;
- right: 5px;
- padding: 0;
- border: 0;
- background: url('../img/search-icon-pixel.png') no-repeat;
- background-size: 24px 24px;
- opacity: 0.8;
- width: 24px;
- height: 24px;
- font-size: 0;
-}
-
-@media screen and (max-width: @results-width) {
- #search_wrapper {
- width: 90%;
- clear:both;
- overflow: hidden
- }
-}
diff --git a/searx/static/themes/pix-art/less/style.less b/searx/static/themes/pix-art/less/style.less
deleted file mode 100644
index a2088e9..0000000
--- a/searx/static/themes/pix-art/less/style.less
+++ /dev/null
@@ -1,451 +0,0 @@
-/*
- * searx, A privacy-respecting, hackable metasearch engine
- *
- * To convert "style.less" to "style.css" run: $make styles
- */
-
-@import "definitions.less";
-
-@import "mixins.less";
-
-
-// Main LESS-Code
-
-html {
- font-family: "Courier New", Courier, monospace;
- font-size: 0.9em;
- .text-size-adjust;
- color: @color-font;
- padding: 0;
- margin: 0;
-}
-
-body, #container {
- padding: 0;
- margin: 0;
-}
-
-canvas {
- image-rendering: optimizeSpeed;
- image-rendering: -moz-crisp-edges;
- image-rendering: -webkit-optimize-contrast;
- image-rendering: optimize-contrast;
- image-rendering: pixelated;
- -ms-interpolation-mode: nearest-neighbor;
- width:32px;
- height:32px;
-}
-
-#container {
- width: 100%;
- position: absolute;
- top: 0;
-}
-
-// Search-Field
-
-@import "search.less";
-
-.row {
- max-width: 800px;
- margin: 20px auto;
- text-align: justify;
-
- h1 {
- font-size: 3em;
- margin-top: 50px;
- }
-
- p {
- padding: 0 10px;
- max-width: 700px;
- }
-
- h3,ul {
- margin: 4px 8px;
- }
-}
-
-.hmarg {
- margin: 0 20px;
- border: 1px solid @color-hmarg-border;
- padding: 4px 10px;
-}
-
-a {
- &:link.hmarg {
- color: @color-hmarg-font;
- }
-
- &:visited.hmarg {
- color: @color-hmarg-font;
- }
-
- &:active.hmarg {
- color: @color-hmarg-font-hover;
- }
-
- &:hover.hmarg {
- color: @color-hmarg-font-hover;
- }
-}
-
-.top_margin {
- margin-top: 60px;
-}
-
-.center {
- text-align: center;
-}
-
-h1 {
- font-size: 5em;
-}
-
-div.title {
- background: url('../img/searx-pixel.png') no-repeat;
- width: 100%;
- min-height: 80px;
- background-position: center;
-
- h1 {
- visibility: hidden;
- }
-}
-
-input[type="button"],
-input[type="submit"] {
- font-family: "Courier New", Courier, monospace;
- padding: 4px 12px;
- margin: 2px 4px;
- display: inline-block;
- background: @color-download-button-background;
- color: @color-download-button-font;
- .rounded-corners;
- border: 0;
- cursor: pointer;
-}
-
-input[type="button"]:disabled {
- cursor: progress;
-}
-
-input[type="checkbox"] {
- visibility: hidden;
-}
-
-fieldset {
- margin: 8px;
- border: 1px solid @color-settings-fieldset;
-}
-
-#logo {
- position: absolute;
- top: 13px;
- left: 10px;
-}
-
-#categories {
- margin: 0 10px;
- .user-select;
-}
-
-.checkbox_container {
- display: inline-block;
- position: relative;
- margin: 0 3px;
- padding: 0px;
-
- input {
- display: none;
- }
-}
-
-.checkbox_container label, .engine_checkbox label {
- cursor: pointer;
- padding: 4px 10px;
- margin: 0;
- display: block;
- text-transform: capitalize;
- .user-select;
-}
-
-.checkbox_container input[type="checkbox"]:checked + label {
- background: @color-categories-item-selected;
- color: @color-categories-item-selected-font;
-}
-
-.engine_checkbox {
- padding: 4px;
-}
-
-label {
- &.allow {
- background: @color-settings-label-allowed-background;
- padding: 4px 8px;
- color: @color-settings-label-allowed-font;
- display: none;
- }
-
- &.deny {
- background: @color-settings-label-deny-background;
- padding: 4px 8px;
- color: @color-settings-label-deny-font;
- display: inline;
- }
-}
-
-.engine_checkbox input[type="checkbox"]:checked + label {
- &:nth-child(2) + label {
- display: none;
- }
-
- &.allow {
- display: inline;
- }
-}
-
-a {
- text-decoration: none;
- color: @color-url-font;
-
- &:visited {
- color: @color-url-visited-font;
- }
-}
-
-.engines {
- color: @color-engines-font;
-}
-
-.small_font {
- font-size: 0.8em;
-}
-
-.small p {
- margin: 2px 0;
-}
-
-.right {
- float: right;
-}
-
-.invisible {
- display: none;
-}
-
-.left {
- float: left;
-}
-
-.highlight {
- color: @color-highlight;
-}
-
-.content .highlight {
- color: @color-black;
-}
-
-.percentage {
- position: relative;
- width: 300px;
-
- div {
- background: @color-percentage-div-background;
- }
-}
-
-table {
- width: 100%;
-}
-
-td {
- padding: 0 4px;
-}
-
-tr {
- &:hover {
- background: @color-settings-tr-hover;
- }
-}
-
-#results {
- margin: auto;
- padding: 0;
- width: @results-width;
- margin-bottom: 20px;
-}
-
-#search_url {
- margin-top: 8px;
-
- input {
- border: 1px solid @color-result-search-url-border;
- padding: 4px;
- color: @color-result-search-url-font;
- width: 14em;
- display: block;
- margin: 4px;
- font-size: 0.8em;
- }
-}
-
-#preferences {
- top: 10px;
- padding: 0;
- border: 0;
- background: url('../img/preference-icon-pixel.png') no-repeat;
- background-size: 28px 28px;
- opacity: 0.8;
- width: 28px;
- height: 30px;
- display: block;
-
- * {
- display: none;
- }
-}
-
-#pagination {
- clear: both;
- text-align: center;
- br {
- clear: both;
- }
-}
-
-#apis {
- margin-top: 8px;
- clear: both;
-}
-
-#categories_container {
- position: relative;
-}
-
-@media screen and (max-width: @results-width) {
-
- #results {
- margin: auto;
- padding: 0;
- width: 90%;
- }
-
- .checkbox_container {
- display: block;
- width: 90%;
- //float: left;
-
- label {
- border-bottom: 0;
- }
- }
-
- .preferences_container {
- display: none;
- postion: fixed !important;
- top: 100px;
- right: 0px;
- }
-
-}
-
-@media screen and (max-width: 75em) {
-
- div.title {
-
- h1 {
- font-size: 1em;
- }
- }
-
- html.touch #categories {
- width: 95%;
- height: 30px;
- text-align: left;
- overflow-x: scroll;
- overflow-y: hidden;
- -webkit-overflow-scrolling: touch;
-
- #categories_container {
- width: 1000px;
- width: -moz-max-content;
- width: -webkit-max-content;
- width: max-content;
-
- .checkbox_container {
- display: inline-block;
- width: auto;
- }
- }
- }
-
- #categories {
- font-size: 90%;
- clear: both;
-
- .checkbox_container {
- margin-top: 2px;
- margin: auto;
- }
- }
-
- #categories {
- font-size: 90%;
- clear: both;
-
- .checkbox_container {
- margin-top: 2px;
- margin: auto;
- }
- }
-
- #apis {
- display: none;
- }
-
- #search_url {
- display: none;
- }
-
- #logo {
- display: none;
- }
-}
-
-.favicon {
- float: left;
- margin-right: 4px;
- margin-top: 2px;
-}
-
-.preferences_back {
- background: none repeat scroll 0 0 @color-settings-return-background;
- border: 0 none;
- .rounded-corners;
- cursor: pointer;
- display: inline-block;
- margin: 2px 4px;
- padding: 4px 6px;
-
- a {
- color: @color-settings-return-font;
- }
-}
-
-.hidden {
- opacity: 0;
- overflow: hidden;
- font-size: 0.8em;
- position: absolute;
- bottom: -20px;
- width: 100%;
- text-position: center;
- background: white;
- transition: opacity 1s ease;
-}
-
-#categories_container:hover .hidden {
- transition: opacity 1s ease;
- opacity: 0.8;
-}
diff --git a/searx/static/themes/simple/.gitignore b/searx/static/themes/simple/.gitignore
new file mode 100644
index 0000000..07e6e47
--- /dev/null
+++ b/searx/static/themes/simple/.gitignore
@@ -0,0 +1 @@
+/node_modules
diff --git a/searx/static/themes/simple/fonts/ion.css b/searx/static/themes/simple/fonts/ion.css
new file mode 100644
index 0000000..ebf6c62
--- /dev/null
+++ b/searx/static/themes/simple/fonts/ion.css
@@ -0,0 +1,139 @@
+/* Generated by grunt-webfont */
+
+
+@font-face {
+ font-family:"ion";
+ src:url("../fonts/ion.eot?ce7a0ead692560b4405a96d5b8471f51");
+ src:url("../fonts/ion.eot?#iefix") format("embedded-opentype"),
+ url("../fonts/ion.woff2?ce7a0ead692560b4405a96d5b8471f51") format("woff2"),
+ url("../fonts/ion.woff?ce7a0ead692560b4405a96d5b8471f51") format("woff"),
+ url("../fonts/ion.ttf?ce7a0ead692560b4405a96d5b8471f51") format("truetype"),
+ url("../fonts/ion.svg?ce7a0ead692560b4405a96d5b8471f51#ion") format("svg");
+ font-weight:normal;
+ font-style:normal;
+}
+
+.ion-icon {
+
+ font-family:"ion";
+
+ display:inline-block;
+ vertical-align:middle;
+ 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.eot b/searx/static/themes/simple/fonts/ion.eot
new file mode 100644
index 0000000..96b3ee9
--- /dev/null
+++ b/searx/static/themes/simple/fonts/ion.eot
Binary files differ
diff --git a/searx/static/themes/simple/fonts/ion.html b/searx/static/themes/simple/fonts/ion.html
new file mode 100644
index 0000000..d922379
--- /dev/null
+++ b/searx/static/themes/simple/fonts/ion.html
@@ -0,0 +1,268 @@
+<!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?ce7a0ead692560b4405a96d5b8471f51");
+ src:url("ion.eot?#iefix") format("embedded-opentype"),
+ url("ion.woff2?ce7a0ead692560b4405a96d5b8471f51") format("woff2"),
+ url("ion.woff?ce7a0ead692560b4405a96d5b8471f51") format("woff"),
+ url("ion.ttf?ce7a0ead692560b4405a96d5b8471f51") format("truetype"),
+ url("ion.svg?ce7a0ead692560b4405a96d5b8471f51#ion") format("svg");
+ font-weight:normal;
+ font-style:normal;
+}
+
+.ion-icon {
+
+ font-family:"ion";
+
+ display:inline-block;
+ vertical-align:middle;
+ 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>&lt;i class=&quot;ion-icon ion-<span id="name">name</span>&quot;&gt;&lt;/i&gt;</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
new file mode 100644
index 0000000..97ca930
--- /dev/null
+++ b/searx/static/themes/simple/fonts/ion.svg
@@ -0,0 +1,105 @@
+<?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" >
+<!--
+2018-8-11: 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 20170924 at Sat Aug 11 14:26:20 2018
+ 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="&#xf108;"
+d="M256.5 -0.5l-192 192h112v192h160v-192h112z" />
+ <glyph glyph-name="arrow-dropdown" unicode="&#xf10b;"
+d="M128 256h256l-128 -128z" />
+ <glyph glyph-name="arrow-swap" unicode="&#xf10a;"
+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="&#xf109;"
+d="M256.5 383.5l192 -192h-112v-192h-160v192h-112z" />
+ <glyph glyph-name="chevron-left" unicode="&#xf106;"
+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="&#xf107;"
+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="&#xf105;"
+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="&#xf115;"
+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="&#xf110;"
+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="&#xf111;"
+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="&#xf10c;"
+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="&#xf104;"
+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="&#xf10e;"
+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="&#xf114;"
+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="&#xf113;"
+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="&#xf112;"
+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="&#xf101;"
+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="&#xf103;"
+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="&#xf102;"
+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="&#xf10d;"
+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="&#xf10f;"
+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
new file mode 100644
index 0000000..ccc5482
--- /dev/null
+++ b/searx/static/themes/simple/fonts/ion.ttf
Binary files differ
diff --git a/searx/static/themes/simple/fonts/ion.woff b/searx/static/themes/simple/fonts/ion.woff
new file mode 100644
index 0000000..0b7fe87
--- /dev/null
+++ b/searx/static/themes/simple/fonts/ion.woff
Binary files differ
diff --git a/searx/static/themes/simple/fonts/ion.woff2 b/searx/static/themes/simple/fonts/ion.woff2
new file mode 100644
index 0000000..30b902d
--- /dev/null
+++ b/searx/static/themes/simple/fonts/ion.woff2
Binary files differ
diff --git a/searx/static/themes/simple/gruntfile.js b/searx/static/themes/simple/gruntfile.js
index 50e870f..7d6cb01 100644
--- a/searx/static/themes/simple/gruntfile.js
+++ b/searx/static/themes/simple/gruntfile.js
@@ -11,7 +11,7 @@ module.exports = function(grunt) {
}
},
jshint: {
- files: ['js/searx_src/*.js', 'js/searx_header/*.js'],
+ files: ['js/searx_src/*.js', 'js/searx_header/*.js', '../__common__/js/*.js'],
options: {
reporterOutput: "",
proto: true,
@@ -30,13 +30,13 @@ module.exports = function(grunt) {
},
files: {
'js/searx.head.js': ['js/searx_head/*.js'],
- 'js/searx.js': ['js/searx_src/*.js']
+ 'js/searx.js': ['js/searx_src/*.js', '../__common__/js/*.js']
}
}
},
uglify: {
options: {
- banner: '/*! simple/searx.min.js | <%= grunt.template.today("dd-mm-yyyy") %> | https://github.com/asciimoo/searx */\n',
+ banner: '/*! simple/searx.min.js | <%= grunt.template.today("dd-mm-yyyy") %> | <%= process.env.GIT_URL %> */\n',
output: {
comments: 'some'
},
@@ -57,7 +57,7 @@ module.exports = function(grunt) {
development: {
options: {
paths: ["less"],
- banner: '/*! searx | <%= grunt.template.today("dd-mm-yyyy") %> | https://github.com/asciimoo/searx */\n'
+ banner: '/*! searx | <%= grunt.template.today("dd-mm-yyyy") %> | <%= process.env.GIT_URL %> */\n'
},
files: {
"css/searx.css": "less/style.less",
@@ -67,7 +67,7 @@ module.exports = function(grunt) {
production: {
options: {
paths: ["less"],
- banner: '/*! searx | <%= grunt.template.today("dd-mm-yyyy") %> | https://github.com/asciimoo/searx */\n'
+ banner: '/*! searx | <%= grunt.template.today("dd-mm-yyyy") %> | <%= process.env.GIT_URL %> */\n'
},
files: {
"css/searx.min.css": "less/style.less",
@@ -141,8 +141,11 @@ module.exports = function(grunt) {
}
});
- grunt.loadNpmTasks('grunt-contrib-uglify', '/usr/lib/nodejs');
- grunt.loadNpmTasks('grunt-contrib-concat', '/usr/lib/nodejs');
+ grunt.loadNpmTasks('grunt-contrib-uglify');
+ grunt.loadNpmTasks('grunt-contrib-concat');
+ grunt.loadNpmTasks('grunt-contrib-cssmin');
+
+ grunt.registerTask('test', ['jshint']);
grunt.registerTask('default', ['concat', 'uglify']);
};
diff --git a/searx/static/themes/simple/js/searx.head.js b/searx/static/themes/simple/js/searx.head.js
index 3ac61c8..e696440 100644
--- a/searx/static/themes/simple/js/searx.head.js
+++ b/searx/static/themes/simple/js/searx.head.js
@@ -32,7 +32,7 @@
search_on_category_select: script.getAttribute('data-search-on-category-select') === 'true',
infinite_scroll: script.getAttribute('data-infinite-scroll') === 'true',
static_path: script.getAttribute('data-static-path'),
- no_item_found: script.getAttribute('data-no-item-found')
+ translations: JSON.parse(script.getAttribute('data-translations')),
}
// update the css
diff --git a/searx/static/themes/simple/js/searx_head/00_init.js b/searx/static/themes/simple/js/searx_head/00_init.js
index 3ac61c8..e696440 100644
--- a/searx/static/themes/simple/js/searx_head/00_init.js
+++ b/searx/static/themes/simple/js/searx_head/00_init.js
@@ -32,7 +32,7 @@
search_on_category_select: script.getAttribute('data-search-on-category-select') === 'true',
infinite_scroll: script.getAttribute('data-infinite-scroll') === 'true',
static_path: script.getAttribute('data-static-path'),
- no_item_found: script.getAttribute('data-no-item-found')
+ translations: JSON.parse(script.getAttribute('data-translations')),
}
// update the css
diff --git a/searx/static/themes/simple/js/searx_src/searx_mapresult.js b/searx/static/themes/simple/js/searx_src/searx_mapresult.js
index 869d07d..2ccdbd1 100644
--- a/searx/static/themes/simple/js/searx_src/searx_mapresult.js
+++ b/searx/static/themes/simple/js/searx_src/searx_mapresult.js
@@ -19,93 +19,6 @@
'use strict';
searx.ready(function () {
- searx.on('.searx_overpass_request', 'click', function(event) {
- // no more request
- this.classList.remove("searx_overpass_request");
-
- //
- var overpass_url = "https://overpass-api.de/api/interpreter?data=";
- var query_start = overpass_url + "[out:json][timeout:25];(";
- var query_end = ");out meta;";
-
- var osm_id = this.dataset.osmId;
- var osm_type = this.dataset.osmType;
- var result_table = d.querySelector("#" + this.dataset.resultTable);
- var result_table_loadicon = d.querySelector("#" + this.dataset.resultTableLoadicon);
-
- // tags which can be ignored
- var osm_ignore_tags = [ "addr:city", "addr:country", "addr:housenumber", "addr:postcode", "addr:street" ];
-
- if(osm_id && osm_type && result_table) {
- var query = null;
- switch(osm_type) {
- case 'node':
- query = query_start + "node(" + osm_id + ");" + query_end;
- break;
- case 'way':
- query = query_start + "way(" + osm_id + ");" + query_end;
- break;
- case 'relation':
- query = query_start + "relation(" + osm_id + ");" + query_end;
- break;
- default:
- break;
- }
- if(query) {
- // console.log(query);
- searx.http( 'GET', query ).then(function(html, contentType) {
- html = JSON.parse(html);
- if(html && html.elements && html.elements[0]) {
- var element = html.elements[0];
- var newHtml = "";
- for (var row in element.tags) {
- if(element.tags.name === null || osm_ignore_tags.indexOf(row) == -1) {
- newHtml += "<tr><td>" + row + "</td><td>";
- switch(row) {
- case "phone":
- case "fax":
- newHtml += "<a href=\"tel:" + element.tags[row].replace(/ /g,'') + "\">" + element.tags[row] + "</a>";
- break;
- case "email":
- newHtml += "<a href=\"mailto:" + element.tags[row] + "\">" + element.tags[row] + "</a>";
- break;
- case "website":
- case "url":
- newHtml += "<a href=\"" + element.tags[row] + "\">" + element.tags[row] + "</a>";
- break;
- case "wikidata":
- newHtml += "<a href=\"https://www.wikidata.org/wiki/" + element.tags[row] + "\">" + element.tags[row] + "</a>";
- break;
- case "wikipedia":
- if(element.tags[row].indexOf(":") != -1) {
- newHtml += "<a href=\"https://" + element.tags[row].substring(0,element.tags[row].indexOf(":")) + ".wikipedia.org/wiki/" + element.tags[row].substring(element.tags[row].indexOf(":")+1) + "\">" + element.tags[row] + "</a>";
- break;
- }
- /* jshint ignore:start */
- default:
- /* jshint ignore:end */
- newHtml += element.tags[row];
- break;
- }
- newHtml += "</td></tr>";
- }
- }
- result_table_loadicon.parentNode.removeChild(result_table_loadicon);
- result_table.classList.remove('invisible');
- result_table.querySelector("tbody").innerHTML = newHtml;
- }
- })
- .catch(function() {
- result_table_loadicon.classList.remove('invisible');
- result_table_loadicon.innerHTML = "could not load data!";
- });
- }
- }
-
- // this event occour only once per element
- event.preventDefault();
- });
-
searx.on('.searx_init_map', 'click', function(event) {
// no more request
this.classList.remove("searx_init_map");
diff --git a/searx/static/themes/simple/js/searx_src/searx_results.js b/searx/static/themes/simple/js/searx_src/searx_results.js
index b13da83..fe00efc 100644
--- a/searx/static/themes/simple/js/searx_src/searx_results.js
+++ b/searx/static/themes/simple/js/searx_src/searx_results.js
@@ -18,7 +18,7 @@
'use strict';
searx.ready(function() {
- searx.image_thumbnail_layout = new searx.ImageLayout('#urls', '#urls .result-images', 'img.image_thumbnail', 200);
+ searx.image_thumbnail_layout = new searx.ImageLayout('#urls', '#urls .result-images', 'img.image_thumbnail', 10, 200);
searx.image_thumbnail_layout.watch();
searx.on('.btn-collapse', 'click', function(event) {
diff --git a/searx/static/themes/simple/js/searx_src/searx_search.js b/searx/static/themes/simple/js/searx_src/searx_search.js
index 580d98d..7ca658a 100644
--- a/searx/static/themes/simple/js/searx_src/searx_search.js
+++ b/searx/static/themes/simple/js/searx_src/searx_search.js
@@ -17,7 +17,7 @@
(function(w, d, searx) {
'use strict';
- var firstFocus = true, qinput_id = "q", qinput;
+ var firstFocus = true, qinput_id = "q.autofocus", qinput;
function placeCursorAtEnd(element) {
if (element.setSelectionRange) {
@@ -73,8 +73,12 @@
if (searx.autocompleter) {
searx.autocomplete = AutoComplete.call(w, {
Url: "./autocompleter",
- EmptyMessage: searx.no_item_found,
+ EmptyMessage: searx.translations.no_item_found,
HttpMethod: searx.method,
+ HttpHeaders: {
+ "Content-type": "application/x-www-form-urlencoded",
+ "X-Requested-With": "XMLHttpRequest"
+ },
MinChars: 4,
Delay: 300,
}, "#" + qinput_id);
diff --git a/searx/static/themes/simple/less/code.less b/searx/static/themes/simple/less/code.less
index a688dd9..b732103 100644
--- a/searx/static/themes/simple/less/code.less
+++ b/searx/static/themes/simple/less/code.less
@@ -1,83 +1,8 @@
-.highlight .hll { background-color: #ffffcc }
-.highlight { background: #f8f8f8; }
-.highlight .c { color: #408080; font-style: italic } /* Comment */
-.highlight .err { border: 1px solid #FF0000 } /* Error */
-.highlight .k { color: #008000; font-weight: bold } /* Keyword */
-.highlight .o { color: #666666 } /* Operator */
-.highlight .cm { color: #408080; font-style: italic } /* Comment.Multiline */
-.highlight .cp { color: #BC7A00 } /* Comment.Preproc */
-.highlight .c1 { color: #408080; font-style: italic } /* Comment.Single */
-.highlight .cs { color: #408080; font-style: italic } /* Comment.Special */
-.highlight .gd { color: #A00000 } /* Generic.Deleted */
-.highlight .ge { font-style: italic } /* Generic.Emph */
-.highlight .gr { color: #FF0000 } /* Generic.Error */
-.highlight .gh { color: #000080; font-weight: bold } /* Generic.Heading */
-.highlight .gi { color: #00A000 } /* Generic.Inserted */
-.highlight .go { color: #888888 } /* Generic.Output */
-.highlight .gp { color: #000080; font-weight: bold } /* Generic.Prompt */
-.highlight .gs { font-weight: bold } /* Generic.Strong */
-.highlight .gu { color: #800080; font-weight: bold } /* Generic.Subheading */
-.highlight .gt { color: #0044DD } /* Generic.Traceback */
-.highlight .kc { color: #008000; font-weight: bold } /* Keyword.Constant */
-.highlight .kd { color: #008000; font-weight: bold } /* Keyword.Declaration */
-.highlight .kn { color: #008000; font-weight: bold } /* Keyword.Namespace */
-.highlight .kp { color: #008000 } /* Keyword.Pseudo */
-.highlight .kr { color: #008000; font-weight: bold } /* Keyword.Reserved */
-.highlight .kt { color: #B00040 } /* Keyword.Type */
-.highlight .m { color: #666666 } /* Literal.Number */
-.highlight .s { color: #BA2121 } /* Literal.String */
-.highlight .na { color: #7D9029 } /* Name.Attribute */
-.highlight .nb { color: #008000 } /* Name.Builtin */
-.highlight .nc { color: #0000FF; font-weight: bold } /* Name.Class */
-.highlight .no { color: #880000 } /* Name.Constant */
-.highlight .nd { color: #AA22FF } /* Name.Decorator */
-.highlight .ni { color: #999999; font-weight: bold } /* Name.Entity */
-.highlight .ne { color: #D2413A; font-weight: bold } /* Name.Exception */
-.highlight .nf { color: #0000FF } /* Name.Function */
-.highlight .nl { color: #A0A000 } /* Name.Label */
-.highlight .nn { color: #0000FF; font-weight: bold } /* Name.Namespace */
-.highlight .nt { color: #008000; font-weight: bold } /* Name.Tag */
-.highlight .nv { color: #19177C } /* Name.Variable */
-.highlight .ow { color: #AA22FF; font-weight: bold } /* Operator.Word */
-.highlight .w { color: #bbbbbb } /* Text.Whitespace */
-.highlight .mf { color: #666666 } /* Literal.Number.Float */
-.highlight .mh { color: #666666 } /* Literal.Number.Hex */
-.highlight .mi { color: #666666 } /* Literal.Number.Integer */
-.highlight .mo { color: #666666 } /* Literal.Number.Oct */
-.highlight .sb { color: #BA2121 } /* Literal.String.Backtick */
-.highlight .sc { color: #BA2121 } /* Literal.String.Char */
-.highlight .sd { color: #BA2121; font-style: italic } /* Literal.String.Doc */
-.highlight .s2 { color: #BA2121 } /* Literal.String.Double */
-.highlight .se { color: #BB6622; font-weight: bold } /* Literal.String.Escape */
-.highlight .sh { color: #BA2121 } /* Literal.String.Heredoc */
-.highlight .si { color: #BB6688; font-weight: bold } /* Literal.String.Interpol */
-.highlight .sx { color: #008000 } /* Literal.String.Other */
-.highlight .sr { color: #BB6688 } /* Literal.String.Regex */
-.highlight .s1 { color: #BA2121 } /* Literal.String.Single */
-.highlight .ss { color: #19177C } /* Literal.String.Symbol */
-.highlight .bp { color: #008000 } /* Name.Builtin.Pseudo */
-.highlight .vc { color: #19177C } /* Name.Variable.Class */
-.highlight .vg { color: #19177C } /* Name.Variable.Global */
-.highlight .vi { color: #19177C } /* Name.Variable.Instance */
-.highlight .il { color: #666666 } /* Literal.Number.Integer.Long */
-
-.highlight pre {
+.code-highlight pre {
overflow: auto;
+ background-color: inherit;
+ color: inherit;
+ border: inherit;
}
-.highlight .lineno {
- -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;
-
- &::selection {
- background: transparent; /* WebKit/Blink Browsers */
- }
- &::-moz-selection {
- background: transparent; /* Gecko Browsers */
- }
-}
+@import "pygments.less";
diff --git a/searx/static/themes/simple/less/preferences.less b/searx/static/themes/simple/less/preferences.less
index e1e88b5..26c4f6d 100644
--- a/searx/static/themes/simple/less/preferences.less
+++ b/searx/static/themes/simple/less/preferences.less
@@ -93,6 +93,23 @@
width: 100%;
}
}
+
+
+ .engine-tooltip {
+ display: none;
+ position: absolute;
+ padding: 0.5rem 1rem;
+ margin: 0rem 0 0 2rem;
+ border: 1px solid #ddd;
+ background: white;
+ font-size: 14px;
+ font-weight: normal;
+ z-index: 1000000;
+ }
+
+ th:hover .engine-tooltip, .engine-tooltip:hover {
+ display: inline-block;
+ }
}
diff --git a/searx/static/themes/simple/less/pygments.less b/searx/static/themes/simple/less/pygments.less
new file mode 100644
index 0000000..25a921c
--- /dev/null
+++ b/searx/static/themes/simple/less/pygments.less
@@ -0,0 +1,99 @@
+/*
+ this file is generated automatically by searx_extra/update/update_pygments.py
+ using pygments version 2.8.0
+*/
+
+.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;
+
+ &::selection {
+ background: transparent; /* WebKit/Blink Browsers */
+ }
+ &::-moz-selection {
+ background: transparent; /* Gecko Browsers */
+ }
+
+ margin-right: 8px;
+ text-align: right;
+}
+
+.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: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; }
+.code-highlight span.linenos.special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; }
+.code-highlight .hll { background-color: #ffffcc }
+.code-highlight { background: #f8f8f8; }
+.code-highlight .c { color: #408080; font-style: italic } /* Comment */
+.code-highlight .err { border: 1px solid #FF0000 } /* Error */
+.code-highlight .k { color: #008000; font-weight: bold } /* Keyword */
+.code-highlight .o { color: #666666 } /* Operator */
+.code-highlight .ch { color: #408080; font-style: italic } /* Comment.Hashbang */
+.code-highlight .cm { color: #408080; font-style: italic } /* Comment.Multiline */
+.code-highlight .cp { color: #BC7A00 } /* Comment.Preproc */
+.code-highlight .cpf { color: #408080; font-style: italic } /* Comment.PreprocFile */
+.code-highlight .c1 { color: #408080; font-style: italic } /* Comment.Single */
+.code-highlight .cs { color: #408080; font-style: italic } /* Comment.Special */
+.code-highlight .gd { color: #A00000 } /* Generic.Deleted */
+.code-highlight .ge { font-style: italic } /* Generic.Emph */
+.code-highlight .gr { color: #FF0000 } /* Generic.Error */
+.code-highlight .gh { color: #000080; font-weight: bold } /* Generic.Heading */
+.code-highlight .gi { color: #00A000 } /* Generic.Inserted */
+.code-highlight .go { color: #888888 } /* Generic.Output */
+.code-highlight .gp { color: #000080; font-weight: bold } /* Generic.Prompt */
+.code-highlight .gs { font-weight: bold } /* Generic.Strong */
+.code-highlight .gu { color: #800080; font-weight: bold } /* Generic.Subheading */
+.code-highlight .gt { color: #0044DD } /* Generic.Traceback */
+.code-highlight .kc { color: #008000; font-weight: bold } /* Keyword.Constant */
+.code-highlight .kd { color: #008000; font-weight: bold } /* Keyword.Declaration */
+.code-highlight .kn { color: #008000; font-weight: bold } /* Keyword.Namespace */
+.code-highlight .kp { color: #008000 } /* Keyword.Pseudo */
+.code-highlight .kr { color: #008000; font-weight: bold } /* Keyword.Reserved */
+.code-highlight .kt { color: #B00040 } /* Keyword.Type */
+.code-highlight .m { color: #666666 } /* Literal.Number */
+.code-highlight .s { color: #BA2121 } /* Literal.String */
+.code-highlight .na { color: #7D9029 } /* Name.Attribute */
+.code-highlight .nb { color: #008000 } /* Name.Builtin */
+.code-highlight .nc { color: #0000FF; font-weight: bold } /* Name.Class */
+.code-highlight .no { color: #880000 } /* Name.Constant */
+.code-highlight .nd { color: #AA22FF } /* Name.Decorator */
+.code-highlight .ni { color: #999999; font-weight: bold } /* Name.Entity */
+.code-highlight .ne { color: #D2413A; font-weight: bold } /* Name.Exception */
+.code-highlight .nf { color: #0000FF } /* Name.Function */
+.code-highlight .nl { color: #A0A000 } /* Name.Label */
+.code-highlight .nn { color: #0000FF; font-weight: bold } /* Name.Namespace */
+.code-highlight .nt { color: #008000; font-weight: bold } /* Name.Tag */
+.code-highlight .nv { color: #19177C } /* Name.Variable */
+.code-highlight .ow { color: #AA22FF; font-weight: bold } /* Operator.Word */
+.code-highlight .w { color: #bbbbbb } /* Text.Whitespace */
+.code-highlight .mb { color: #666666 } /* Literal.Number.Bin */
+.code-highlight .mf { color: #666666 } /* Literal.Number.Float */
+.code-highlight .mh { color: #666666 } /* Literal.Number.Hex */
+.code-highlight .mi { color: #666666 } /* Literal.Number.Integer */
+.code-highlight .mo { color: #666666 } /* Literal.Number.Oct */
+.code-highlight .sa { color: #BA2121 } /* Literal.String.Affix */
+.code-highlight .sb { color: #BA2121 } /* Literal.String.Backtick */
+.code-highlight .sc { color: #BA2121 } /* Literal.String.Char */
+.code-highlight .dl { color: #BA2121 } /* Literal.String.Delimiter */
+.code-highlight .sd { color: #BA2121; font-style: italic } /* Literal.String.Doc */
+.code-highlight .s2 { color: #BA2121 } /* Literal.String.Double */
+.code-highlight .se { color: #BB6622; font-weight: bold } /* Literal.String.Escape */
+.code-highlight .sh { color: #BA2121 } /* Literal.String.Heredoc */
+.code-highlight .si { color: #BB6688; font-weight: bold } /* Literal.String.Interpol */
+.code-highlight .sx { color: #008000 } /* Literal.String.Other */
+.code-highlight .sr { color: #BB6688 } /* Literal.String.Regex */
+.code-highlight .s1 { color: #BA2121 } /* Literal.String.Single */
+.code-highlight .ss { color: #19177C } /* Literal.String.Symbol */
+.code-highlight .bp { color: #008000 } /* Name.Builtin.Pseudo */
+.code-highlight .fm { color: #0000FF } /* Name.Function.Magic */
+.code-highlight .vc { color: #19177C } /* Name.Variable.Class */
+.code-highlight .vg { color: #19177C } /* Name.Variable.Global */
+.code-highlight .vi { color: #19177C } /* Name.Variable.Instance */
+.code-highlight .vm { color: #19177C } /* Name.Variable.Magic */
+.code-highlight .il { color: #666666 } /* Literal.Number.Integer.Long */
diff --git a/searx/static/themes/simple/less/style.less b/searx/static/themes/simple/less/style.less
index 9f69f7a..64f5e6a 100644
--- a/searx/static/themes/simple/less/style.less
+++ b/searx/static/themes/simple/less/style.less
@@ -299,6 +299,38 @@ article.result-images[data-vim-selected]::before {
}
}
+.result-map {
+
+ img.image {
+ float: right !important;
+ height: 100px !important;
+ width: auto !important;
+ }
+
+ table {
+ font-size: .9em;
+ width: auto;
+ border-collapse: separate;
+ border-spacing: 0 0.35rem;
+
+ th {
+ font-weight: inherit;
+ width: 17rem;
+ vertical-align: top;
+ text-align: left;
+ }
+
+ td {
+ vertical-align: top;
+ text-align: left;
+ }
+ }
+}
+
+.hidden {
+ display: none !important;
+}
+
.torrent_result {
border-left: 10px solid @color-result-torrent-border;
padding-left: 3px;
@@ -719,3 +751,7 @@ article.result-images[data-vim-selected]::before {
}
}
+
+pre code {
+ white-space: pre-wrap;
+}