Merge pull request #176 from Cqoicebordel/courgette-UXUI
Courgette theme - UIUX
							
								
								
									
										1
									
								
								Makefile
									
									
									
									
									
								
							
							
						
						| @ -46,6 +46,7 @@ minimal: bin/buildout minimal.cfg setup.py | |||||||
| 
 | 
 | ||||||
| styles: | styles: | ||||||
| 	@lessc -x searx/static/themes/default/less/style.less > searx/static/themes/default/css/style.css | 	@lessc -x searx/static/themes/default/less/style.less > searx/static/themes/default/css/style.css | ||||||
|  | 	@lessc -x searx/static/themes/courgette/less/style.less > searx/static/themes/courgette/css/style.css | ||||||
| 	@lessc -x searx/static/less/bootstrap/bootstrap.less > searx/static/css/bootstrap.min.css | 	@lessc -x searx/static/less/bootstrap/bootstrap.less > searx/static/css/bootstrap.min.css | ||||||
| 	@lessc -x searx/static/themes/oscar/less/oscar/oscar.less > searx/static/themes/oscar/css/oscar.min.css | 	@lessc -x searx/static/themes/oscar/less/oscar/oscar.less > searx/static/themes/oscar/css/oscar.min.css | ||||||
| 
 | 
 | ||||||
|  | |||||||
							
								
								
									
										
											BIN
										
									
								
								searx/static/themes/courgette/img/icons/icon_500px.ico
									
									
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 8.2 KiB | 
							
								
								
									
										
											BIN
										
									
								
								searx/static/themes/courgette/img/icons/icon_bing.ico
									
									
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 1.1 KiB | 
							
								
								
									
										
											BIN
										
									
								
								searx/static/themes/courgette/img/icons/icon_deezer.ico
									
									
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 4.2 KiB | 
							
								
								
									
										
											BIN
										
									
								
								searx/static/themes/courgette/img/icons/icon_digg.ico
									
									
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 2.8 KiB | 
							
								
								
									
										
											BIN
										
									
								
								searx/static/themes/courgette/img/icons/icon_duckduckgo.ico
									
									
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 32 KiB | 
							
								
								
									
										
											BIN
										
									
								
								searx/static/themes/courgette/img/icons/icon_flickr.ico
									
									
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 6.4 KiB | 
| After Width: | Height: | Size: 5.3 KiB | 
| After Width: | Height: | Size: 5.3 KiB | 
| After Width: | Height: | Size: 5.3 KiB | 
							
								
								
									
										
											BIN
										
									
								
								searx/static/themes/courgette/img/icons/icon_google.ico
									
									
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 5.3 KiB | 
							
								
								
									
										
											BIN
										
									
								
								searx/static/themes/courgette/img/icons/icon_openstreetmap.ico
									
									
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 1.4 KiB | 
							
								
								
									
										
											BIN
										
									
								
								searx/static/themes/courgette/img/icons/icon_searchcode code.ico
									
									
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 4.0 KiB | 
							
								
								
									
										
											BIN
										
									
								
								searx/static/themes/courgette/img/icons/icon_searchcode doc.ico
									
									
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 4.0 KiB | 
							
								
								
									
										
											BIN
										
									
								
								searx/static/themes/courgette/img/icons/icon_searchcode.ico
									
									
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 4.0 KiB | 
							
								
								
									
										
											BIN
										
									
								
								searx/static/themes/courgette/img/icons/icon_startpage.ico
									
									
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 1.1 KiB | 
							
								
								
									
										
											BIN
										
									
								
								searx/static/themes/courgette/img/icons/icon_subtitleseeker.ico
									
									
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 1.4 KiB | 
| Before Width: | Height: | Size: 14 KiB After Width: | Height: | Size: 2.7 KiB | 
							
								
								
									
										
											BIN
										
									
								
								searx/static/themes/courgette/img/icons/icon_yahoo.ico
									
									
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 5.3 KiB | 
							
								
								
									
										689
									
								
								searx/static/themes/courgette/less/style.less
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @ -0,0 +1,689 @@ | |||||||
|  | 
 | ||||||
|  | @color-main: #3498DB; | ||||||
|  | @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 { | ||||||
|  | 	background: url(../img/searx.png) no-repeat; | ||||||
|  | 	width: 319px; | ||||||
|  | 	height: 62px; | ||||||
|  | 	text-indent: -9999px; | ||||||
|  | 	margin: 0.5em auto 1em; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | .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: #0665A2; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | #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 0 / 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: #0665A2; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | #results { | ||||||
|  | 	padding-right: 17em; | ||||||
|  | 	padding-left: 2em; | ||||||
|  | 	padding: 0 17em 0 2em; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | .result p { | ||||||
|  | 	font-size: 0.9em; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | .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: #0665A2; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | .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 */ | ||||||
							
								
								
									
										
											BIN
										
									
								
								searx/static/themes/default/img/icons/icon_searchcode code.ico
									
									
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 4.0 KiB | 
							
								
								
									
										
											BIN
										
									
								
								searx/static/themes/default/img/icons/icon_searchcode doc.ico
									
									
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 4.0 KiB | 
							
								
								
									
										
											BIN
										
									
								
								searx/static/themes/oscar/css/oscar.min.css
									
									
									
									
										vendored
									
									
								
							
							
						
						| @ -1,6 +1,6 @@ | |||||||
| {% extends 'default/base.html' %} | {% extends 'courgette/base.html' %} | ||||||
| {% block content %} | {% block content %} | ||||||
| {% include 'default/github_ribbon.html' %} | {% include 'courgette/github_ribbon.html' %} | ||||||
| <div class="row"> | <div class="row"> | ||||||
|     <h1>About <a href="{{ url_for('index') }}">searx</a></h1> |     <h1>About <a href="{{ url_for('index') }}">searx</a></h1> | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -1,33 +1,34 @@ | |||||||
| <!DOCTYPE html> | <!DOCTYPE html> | ||||||
| <html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"> | <html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"> | ||||||
| <head> |     <head> | ||||||
|     <meta charset="UTF-8" /> |         <meta charset="UTF-8" /> | ||||||
|     <meta name="description" content="Searx - a privacy-respecting, hackable metasearch engine" /> |         <meta name="description" content="Searx - a privacy-respecting, hackable metasearch engine" /> | ||||||
|     <meta name="keywords" content="searx, search, search engine, metasearch, meta search" /> |         <meta name="keywords" content="searx, search, search engine, metasearch, meta search" /> | ||||||
|     <meta name="generator" content="searx/{{ searx_version }}"> |         <meta name="generator" content="searx/{{ searx_version }}"> | ||||||
|     <meta name="viewport" content="width=device-width, maximum-scale=1.0, user-scalable=1" /> |         <meta name="viewport" content="width=device-width, maximum-scale=1.0, user-scalable=1" /> | ||||||
|     <title>{% block title %}{% endblock %}searx</title> |         <title>{% block title %}{% endblock %}searx</title> | ||||||
|     <link rel="stylesheet" href="{{ url_for('static', filename='css/style.css') }}" type="text/css" media="screen" /> |         <link rel="stylesheet" href="{{ url_for('static', filename='css/style.css') }}" type="text/css" media="screen" /> | ||||||
|     <link rel="shortcut icon" href="{{ url_for('static', filename='img/favicon.png') }}?v=2" /> |         <link rel="shortcut icon" href="{{ url_for('static', filename='img/favicon.png') }}?v=2" /> | ||||||
|     {% block styles %} |         {% block styles %} | ||||||
|     {% endblock %} |         {% endblock %} | ||||||
|     {% block head %} |         {% block meta %}{% endblock %} | ||||||
|     <link title="searx" type="application/opensearchdescription+xml" rel="search" href="{{ url_for('opensearch') }}"/> |         {% block head %} | ||||||
|     {% endblock %} |         <link title="searx" type="application/opensearchdescription+xml" rel="search" href="{{ url_for('opensearch') }}"/> | ||||||
|     <script type="text/javascript"> |         {% endblock %} | ||||||
|         searx = {}; |         <script type="text/javascript"> | ||||||
|         searx.autocompleter = {% if autocomplete %}true{% else %}false{% endif %}; |             searx = {}; | ||||||
|     </script> |             searx.autocompleter = {% if autocomplete %}true{% else %}false{% endif %}; | ||||||
| </head> |         </script> | ||||||
| <body> |     </head> | ||||||
| <div id="container"> |     <body> | ||||||
| {% block content %} |         <div id="container"> | ||||||
| {% endblock %} |             {% block content %} | ||||||
| {% if autocomplete %} |             {% endblock %} | ||||||
| <script src="{{ url_for('static', filename='js/mootools-core-1.4.5-min.js') }}" ></script> |             {% if autocomplete %} | ||||||
| <script src="{{ url_for('static', filename='js/mootools-autocompleter-1.1.2-min.js') }}" ></script> |             <script src="{{ url_for('static', filename='js/mootools-core-1.4.5-min.js') }}" ></script> | ||||||
| {% endif %} |             <script src="{{ url_for('static', filename='js/mootools-autocompleter-1.1.2-min.js') }}" ></script> | ||||||
| <script src="{{ url_for('static', filename='js/searx.js') }}" ></script> |             {% endif %} | ||||||
| </div> |             <script src="{{ url_for('static', filename='js/searx.js') }}" ></script> | ||||||
| </body> |         </div> | ||||||
|  |     </body> | ||||||
| </html> | </html> | ||||||
| @ -1,7 +1,9 @@ | |||||||
| <div id="categories"> | <div id="categories"> | ||||||
| {% for category in categories %} |     <div id="categories_container"> | ||||||
|     <div class="checkbox_container"> |     {% for category in categories %} | ||||||
|         <input type="checkbox" id="checkbox_{{ category|replace(' ', '_') }}" name="category_{{ category }}" {% if category in selected_categories %}checked="checked"{% endif %} /><label for="checkbox_{{ category|replace(' ', '_') }}">{{ _(category) }}</label> |         <div class="checkbox_container"> | ||||||
|  |             <input type="checkbox" id="checkbox_{{ category|replace(' ', '_') }}" name="category_{{ category }}" {% if category in selected_categories %}checked="checked"{% endif %} /><label for="checkbox_{{ category|replace(' ', '_') }}">{{ _(category) }}</label> | ||||||
|  |         </div> | ||||||
|  |     {% endfor %} | ||||||
|     </div> |     </div> | ||||||
| {% endfor %} |  | ||||||
| </div> | </div> | ||||||
| @ -1,9 +1,9 @@ | |||||||
| {% extends "default/base.html" %} | {% extends "courgette/base.html" %} | ||||||
| {% block content %} | {% block content %} | ||||||
| {% include 'default/github_ribbon.html' %} | {% include 'courgette/github_ribbon.html' %} | ||||||
| <div class="center"> | <div class="center"> | ||||||
|     <div class="title"><h1>searx</h1></div> |     <div class="title"><h1>searx</h1></div> | ||||||
|     {% include 'default/search.html' %} |     {% include 'courgette/search.html' %} | ||||||
|     <p class="top_margin"> |     <p class="top_margin"> | ||||||
|         <a href="{{ url_for('about') }}" class="hmarg">{{ _('about') }}</a> |         <a href="{{ url_for('about') }}" class="hmarg">{{ _('about') }}</a> | ||||||
|         <a href="{{ url_for('preferences') }}" class="hmarg">{{ _('preferences') }}</a> |         <a href="{{ url_for('preferences') }}" class="hmarg">{{ _('preferences') }}</a> | ||||||
|  | |||||||
| @ -1,4 +1,4 @@ | |||||||
| {% extends "default/base.html" %} | {% extends "courgette/base.html" %} | ||||||
| {% block head %} {% endblock %} | {% block head %} {% endblock %} | ||||||
| {% block content %} | {% block content %} | ||||||
| <div class="row"> | <div class="row"> | ||||||
| @ -7,95 +7,93 @@ | |||||||
|     <form method="post" action="{{ url_for('preferences') }}" id="search_form"> |     <form method="post" action="{{ url_for('preferences') }}" id="search_form"> | ||||||
|     <fieldset> |     <fieldset> | ||||||
|         <legend>{{ _('Default categories') }}</legend> |         <legend>{{ _('Default categories') }}</legend> | ||||||
|         <p> |         {% include 'courgette/categories.html' %} | ||||||
|         {% include 'default/categories.html' %} |  | ||||||
|         </p> |  | ||||||
|     </fieldset> |     </fieldset> | ||||||
|     <fieldset> |     <fieldset> | ||||||
|         <legend>{{ _('Search language') }}</legend> |         <legend>{{ _('Search language') }}</legend> | ||||||
|         <p> |         <p> | ||||||
|         <select name='language'> |             <select name='language'> | ||||||
|             <option value="all" {% if current_language == 'all' %}selected="selected"{% endif %}>{{ _('Automatic') }}</option> |                 <option value="all" {% if current_language == 'all' %}selected="selected"{% endif %}>{{ _('Automatic') }}</option> | ||||||
|             {% for lang_id,lang_name,country_name in language_codes %} |                 {% for lang_id,lang_name,country_name in language_codes %} | ||||||
|             <option value="{{ lang_id }}" {% if lang_id == current_language %}selected="selected"{% endif %}>{{ lang_name }} ({{ country_name }}) - {{ lang_id }}</option> |                 <option value="{{ lang_id }}" {% if lang_id == current_language %}selected="selected"{% endif %}>{{ lang_name }} ({{ country_name }}) - {{ lang_id }}</option> | ||||||
|             {% endfor %} |                 {% endfor %} | ||||||
|         </select> |             </select> | ||||||
|         </p> |         </p> | ||||||
|     </fieldset> |     </fieldset> | ||||||
|     <fieldset> |     <fieldset> | ||||||
|         <legend>{{ _('Interface language') }}</legend> |         <legend>{{ _('Interface language') }}</legend> | ||||||
|         <p> |         <p> | ||||||
|         <select name='locale'> |             <select name='locale'> | ||||||
|             {% for locale_id,locale_name in locales.items() %} |                 {% for locale_id,locale_name in locales.items() %} | ||||||
|             <option value="{{ locale_id }}" {% if locale_id == current_locale %}selected="selected"{% endif %}>{{ locale_name }}</option> |                 <option value="{{ locale_id }}" {% if locale_id == current_locale %}selected="selected"{% endif %}>{{ locale_name }}</option> | ||||||
|             {% endfor %} |                 {% endfor %} | ||||||
|         </select> |             </select> | ||||||
|         </p> |         </p> | ||||||
|     </fieldset> |     </fieldset> | ||||||
|     <fieldset> |     <fieldset> | ||||||
|         <legend>{{ _('Autocomplete') }}</legend> |         <legend>{{ _('Autocomplete') }}</legend> | ||||||
|         <p> |         <p> | ||||||
|         <select name="autocomplete"> |             <select name="autocomplete"> | ||||||
|             <option value=""> - </option> |                 <option value=""> - </option> | ||||||
|             {% for backend in autocomplete_backends %} |                 {% for backend in autocomplete_backends %} | ||||||
|             <option value="{{ backend }}" {% if backend == autocomplete %}selected="selected"{% endif %}>{{ backend }}</option> |                 <option value="{{ backend }}" {% if backend == autocomplete %}selected="selected"{% endif %}>{{ backend }}</option> | ||||||
|             {% endfor %} |                 {% endfor %} | ||||||
|         </select> |             </select> | ||||||
|         </p> |         </p> | ||||||
|     </fieldset> |     </fieldset> | ||||||
|     <fieldset> |     <fieldset> | ||||||
|         <legend>{{ _('Method') }}</legend> |         <legend>{{ _('Method') }}</legend> | ||||||
|         <p> |         <p> | ||||||
|         <select name='method'> |             <select name='method'> | ||||||
|             <option value="POST" {% if method == 'POST' %}selected="selected"{% endif %}>POST</option> |                 <option value="POST" {% if method == 'POST' %}selected="selected"{% endif %}>POST</option> | ||||||
|             <option value="GET" {% if method == 'GET' %}selected="selected"{% endif %}>GET</option> |                 <option value="GET" {% if method == 'GET' %}selected="selected"{% endif %}>GET</option> | ||||||
|         </select> |             </select> | ||||||
|         </p> |         </p> | ||||||
|     </fieldset> |     </fieldset> | ||||||
|     <fieldset> |     <fieldset> | ||||||
|         <legend>{{ _('Themes') }}</legend> |         <legend>{{ _('Themes') }}</legend> | ||||||
|         <p> |         <p> | ||||||
|         <select name="theme"> |             <select name="theme"> | ||||||
|             {% for name in themes %} |                 {% for name in themes %} | ||||||
|             <option value="{{ name }}" {% if name == theme %}selected="selected"{% endif %}>{{ name }}</option> |                 <option value="{{ name }}" {% if name == theme %}selected="selected"{% endif %}>{{ name }}</option> | ||||||
|             {% endfor %} |                 {% endfor %} | ||||||
|         </select> |             </select> | ||||||
|         </p> |         </p> | ||||||
|     </fieldset> |     </fieldset> | ||||||
|     <fieldset> |     <fieldset> | ||||||
|     <legend>{{ _('Currently used search engines') }}</legend> |         <legend>{{ _('Currently used search engines') }}</legend> | ||||||
| 
 | 
 | ||||||
|     <table> |         <table> | ||||||
|         <tr> |  | ||||||
|             <th>{{ _('Engine name') }}</th> |  | ||||||
|             <th>{{ _('Category') }}</th> |  | ||||||
|             <th>{{ _('Allow') }} / {{ _('Block') }}</th> |  | ||||||
|         </tr> |  | ||||||
|     {% for (categ,search_engines) in categs %} |  | ||||||
|         {% for search_engine in search_engines %} |  | ||||||
| 
 |  | ||||||
|             {% if not search_engine.private %} |  | ||||||
|             <tr> |             <tr> | ||||||
|                 <td>{{ search_engine.name }} ({{ shortcuts[search_engine.name] }})</td> |                 <th>{{ _('Engine name') }}</th> | ||||||
|                 <td>{{ _(categ) }}</td> |                 <th>{{ _('Category') }}</th> | ||||||
|                 <td class="engine_checkbox"> |                 <th>{{ _('Allow') }} / {{ _('Block') }}</th> | ||||||
|                     <input type="checkbox" id="engine_{{ categ }}_{{ search_engine.name|replace(' ', '_') }}" name="engine_{{ search_engine.name }}"{% if search_engine.name in blocked_engines %} checked="checked"{% endif %} /> |  | ||||||
|                     <label class="allow" for="engine_{{ categ }}_{{ search_engine.name|replace(' ', '_') }}">{{ _('Allow') }}</label> |  | ||||||
|                     <label class="deny" for="engine_{{ categ }}_{{ search_engine.name|replace(' ', '_') }}">{{ _('Block') }}</label> |  | ||||||
|                 </td> |  | ||||||
|             </tr> |             </tr> | ||||||
|             {% endif %} |         {% for (categ,search_engines) in categs %} | ||||||
|  |             {% for search_engine in search_engines %} | ||||||
|  | 
 | ||||||
|  |                 {% if not search_engine.private %} | ||||||
|  |                 <tr> | ||||||
|  |                     <td>{{ search_engine.name }} ({{ shortcuts[search_engine.name] }})</td> | ||||||
|  |                     <td>{{ _(categ) }}</td> | ||||||
|  |                     <td class="engine_checkbox"> | ||||||
|  |                         <input type="checkbox" id="engine_{{ categ|replace(' ', '_') }}_{{ search_engine.name|replace(' ', '_') }}" name="engine_{{ search_engine.name }}"{% if search_engine.name in blocked_engines %} checked="checked"{% endif %} /> | ||||||
|  |                         <label class="allow" for="engine_{{ categ|replace(' ', '_') }}_{{ search_engine.name|replace(' ', '_') }}">{{ _('Allow') }}</label> | ||||||
|  |                         <label class="deny" for="engine_{{ categ|replace(' ', '_') }}_{{ search_engine.name|replace(' ', '_') }}">{{ _('Block') }}</label> | ||||||
|  |                     </td> | ||||||
|  |                 </tr> | ||||||
|  |                 {% endif %} | ||||||
|  |             {% endfor %} | ||||||
|         {% endfor %} |         {% endfor %} | ||||||
|     {% endfor %} |         </table> | ||||||
|     </table> |  | ||||||
|     </fieldset> |     </fieldset> | ||||||
|     <p class="small_font">{{ _('These settings are stored in your cookies, this allows us not to store this data about you.') }} |     <p class="small_font">{{ _('These settings are stored in your cookies, this allows us not to store this data about you.') }} | ||||||
|     <br /> |         <br /> | ||||||
|     {{ _("These cookies serve your sole convenience, we don't use these cookies to track you.") }} |         {{ _("These cookies serve your sole convenience, we don't use these cookies to track you.") }} | ||||||
|     </p> |     </p> | ||||||
| 
 | 
 | ||||||
|     <input type="submit" value="{{ _('save') }}" /> |     <input type="submit" value="{{ _('save') }}" /> | ||||||
| 	<div class="right preferences_back"><a href="{{ url_for('index') }}">{{ _('back') }}</a></div> |     <div class="right preferences_back"><a href="{{ url_for('index') }}">{{ _('back') }}</a></div> | ||||||
|     </form>     |     </form>     | ||||||
| </div> | </div> | ||||||
| {% endblock %} | {% endblock %} | ||||||
| @ -1,9 +1,9 @@ | |||||||
| <div class="result {{ result.class }}"> | <div class="result {{ result.class }}"> | ||||||
|     <h3 class="result_title"> {% if result['favicon'] %}<img width="14" height="14" class="favicon" src="static/{{theme}}/img/icon_{{result['favicon']}}.ico" alt="{{result['favicon']}}" />{% endif %}<a href="{{ result.url }}">{{ result.title|safe }}</a></h3> |     <h3 class="result_title">{% if result['favicon'] %}<img width="14" height="14" class="favicon" src="static/{{theme}}/img/icon_{{result['favicon']}}.ico" alt="{{result['favicon']}}" />{% endif %}<a href="{{ result.url }}">{{ result.title|safe }}</a></h3> | ||||||
|     <p class="url">{{ result.pretty_url }} <a class="cache_link" href="https://web.archive.org/web/{{ result.url }}">cached</a></p> |     {% if result.publishedDate %}<span class="published_date">{{ result.publishedDate }}</span>{% endif %} | ||||||
|     {% if result.publishedDate %}<p class="published_date">{{ result.publishedDate }}</p>{% endif %} |  | ||||||
|     <p class="content">{% if result.img_src %}<img src="{{ result.img_src }}" class="image" />{% endif %}{% if result.content %}{{ result.content|safe }}<br class="last"/>{% endif %}</p> |     <p class="content">{% if result.img_src %}<img src="{{ result.img_src }}" class="image" />{% endif %}{% if result.content %}{{ result.content|safe }}<br class="last"/>{% endif %}</p> | ||||||
|     {% if result.repository %}<p class="result-content"><a href="{{ result.repository|safe }}">{{ result.repository }}</a></p>{% endif %} |     {% if result.repository %}<p class="content"><a href="{{ result.repository|safe }}">{{ result.repository }}</a></p>{% endif %} | ||||||
| 
 |  | ||||||
|     {{ result.codelines|code_highlighter(result.code_language)|safe }} |     {{ result.codelines|code_highlighter(result.code_language)|safe }} | ||||||
|  | 
 | ||||||
|  |     <p class="url">{{ result.pretty_url }}</p> | ||||||
| </div> | </div> | ||||||
| @ -1,13 +1,13 @@ | |||||||
| <div class="result {{ result.class }}"> | <div class="result {{ result.class }}"> | ||||||
| 
 | 
 | ||||||
|   {% if "icon_"~result.engine~".ico" in favicons %} |     {% if "icon_"~result.engine~".ico" in favicons %} | ||||||
|     <img width="14" height="14" class="favicon" src="{{ url_for('static', filename='img/icons/icon_'+result.engine+'.ico') }}" alt="{{result.engine}}" /> |     <img width="14" height="14" class="favicon" src="{{ url_for('static', filename='img/icons/icon_'+result.engine+'.ico') }}" alt="{{result.engine}}" /> | ||||||
|   {% endif %} |     {% endif %} | ||||||
| 
 | 
 | ||||||
|   <div> |     <div> | ||||||
|     <h3 class="result_title"><a href="{{ result.url }}">{{ result.title|safe }}</a></h3> |         <h3 class="result_title"><a href="{{ result.url }}">{{ result.title|safe }}</a></h3> | ||||||
| 	{% if result.publishedDate %}<p class="published_date">{{ result.publishedDate }}</p>{% endif %} |         {% if result.publishedDate %}<span class="published_date">{{ result.publishedDate }}</span>{% endif %} | ||||||
|     <p class="content">{% if result.content %}{{ result.content|safe }}<br />{% endif %}</p> |         <p class="content">{% if result.content %}{{ result.content|safe }}<br />{% endif %}</p> | ||||||
|     <p class="url">{{ result.pretty_url }}</p> |         <p class="url">{{ result.pretty_url }}</p> | ||||||
|   </div> |     </div> | ||||||
| </div> | </div> | ||||||
| @ -1,6 +1,6 @@ | |||||||
| <div class="image_result"> | <div class="image_result"> | ||||||
|     <p> |     <p> | ||||||
|         <a href="{{ result.img_src }}"><img src="{{ result.img_src }}" title="{{ result.title|striptags }}" alt="{{ result.title|striptags }}"/></a> |         <a href="{{ result.img_src }}"><img src="{{ result.img_src }}" title="{{ result.title|striptags }}" alt="{{ result.title|striptags }}"/></a> | ||||||
|         <span class="url"><a href="{{ result.url }}" class="small_font">original context</a></span> |         <span class="url"><a href="{{ result.url }}" class="small_font">{{ _('original context') }}</a></span> | ||||||
|     </p> |     </p> | ||||||
| </div> | </div> | ||||||
| @ -1,13 +1,13 @@ | |||||||
| <div class="result {{ result.class }}"> | <div class="result {{ result.class }}"> | ||||||
| 
 | 
 | ||||||
|   {% if "icon_"~result.engine~".ico" in favicons %} |     {% if "icon_"~result.engine~".ico" in favicons %} | ||||||
|   <img width="14" height="14" class="favicon" src="{{ url_for('static', filename='img/icons/icon_'+result.engine+'.ico') }}" alt="{{result.engine}}" /> |     <img width="14" height="14" class="favicon" src="{{ url_for('static', filename='img/icons/icon_'+result.engine+'.ico') }}" alt="{{result.engine}}" /> | ||||||
|   {% endif %} |     {% endif %} | ||||||
| 
 | 
 | ||||||
|   <div> |     <div> | ||||||
|     <h3 class="result_title"><a href="{{ result.url }}">{{ result.title|safe }}</a></h3> |         <h3 class="result_title"><a href="{{ result.url }}">{{ result.title|safe }}</a></h3> | ||||||
| 	{% if result.publishedDate %}<p class="published_date">{{ result.publishedDate }}</p>{% endif %} |         {% if result.publishedDate %}<span class="published_date">{{ result.publishedDate }}</span>{% endif %} | ||||||
|     <p class="content">{% if result.content %}{{ result.content|safe }}<br />{% endif %}</p> |         <p class="content">{% if result.content %}{{ result.content|safe }}<br />{% endif %}</p> | ||||||
|     <p class="url">{{ result.pretty_url }}</p> |         <p class="url">{{ result.pretty_url }}</p> | ||||||
|   </div> |     </div> | ||||||
| </div> | </div> | ||||||
| @ -1,7 +1,13 @@ | |||||||
| <div class="result torrent_result"> | <div class="result torrent_result"> | ||||||
|  |     {% if "icon_"~result.engine~".ico" in favicons %} | ||||||
|  |     <img width="14" height="14" class="favicon" src="{{ url_for('static', filename='img/icons/icon_'+result.engine+'.ico') }}" alt="{{result.engine}}" /> | ||||||
|  |     {% endif %} | ||||||
|     <h3 class="result_title"><a href="{{ result.url }}">{{ result.title|safe }}</a></h3> |     <h3 class="result_title"><a href="{{ result.url }}">{{ result.title|safe }}</a></h3> | ||||||
|     {% if result.content %}<p class="content">{{ result.content|safe }}</p>{% endif %} |     {% if result.content %}<span class="content">{{ result.content|safe }}</span><br />{% endif %} | ||||||
|     <p class="stats">Seed: {{ result.seed }}, Leech: {{ result.leech }}</p> |     <span class="stats">{{ _('Seeder') }} : {{ result.seed }}, {{ _('Leecher') }} : {{ result.leech }}</span><br /> | ||||||
|     <p><a href="{{ result.magnetlink }}" class="magnetlink">magnet link</a></p> |     <span> | ||||||
|  |         {% if result.magnetlink %}<a href="{{ result.magnetlink }}" class="magnetlink">{{ _('magnet link') }}</a>{% endif %}  | ||||||
|  |         {% if result.torrentfile %}<a href="{{ result.torrentfile }}" class="torrentfile">{{ _('torrent file') }}</a>{% endif %} | ||||||
|  |     </span> | ||||||
|     <p class="url">{{ result.pretty_url }}</p> |     <p class="url">{{ result.pretty_url }}</p> | ||||||
| </div> | </div> | ||||||
| @ -1,10 +1,10 @@ | |||||||
| <div class="result"> | <div class="result"> | ||||||
|   {% if "icon_"~result.engine~".ico" in favicons %} | 	{% if "icon_"~result.engine~".ico" in favicons %} | ||||||
|       <img width="14" height="14" class="favicon" src="{{ url_for('static', filename='img/icons/icon_'+result.engine+'.ico') }}" alt="{{result.engine}}" /> |     <img width="14" height="14" class="favicon" src="{{ url_for('static', filename='img/icons/icon_'+result.engine+'.ico') }}" alt="{{result.engine}}" /> | ||||||
|   {% endif %} | 	{% endif %} | ||||||
| 
 | 
 | ||||||
|       <h3 class="result_title"><a href="{{ result.url }}">{{ result.title|safe }}</a></h3> |     <h3 class="result_title"><a href="{{ result.url }}">{{ result.title|safe }}</a></h3> | ||||||
|       {% if result.publishedDate %}<p class="published_date">{{ result.publishedDate }}</p>{% endif %} |     {% if result.publishedDate %}<span class="published_date">{{ result.publishedDate }}</span><br />{% endif %} | ||||||
|       <a href="{{ result.url }}"><img width="400" src="{{ result.thumbnail }}" title="{{ result.title|striptags }}" alt="{{ result.title|striptags }}"/></a> |     <a href="{{ result.url }}"><img width="400" src="{{ result.thumbnail }}" title="{{ result.title|striptags }}" alt="{{ result.title|striptags }}"/></a> | ||||||
|       <p class="url">{{ result.url }}</p> |     <p class="url">{{ result.pretty_url }}</p> | ||||||
| </div> | </div> | ||||||
| @ -1,9 +1,10 @@ | |||||||
| {% extends "default/base.html" %} | {% extends "courgette/base.html" %} | ||||||
| {% block title %}{{ q }} - {% endblock %} | {% block title %}{{ q }} - {% endblock %} | ||||||
|  | {% block meta %}<link rel="alternate" type="application/rss+xml" title="Searx search: {{ q }}" href="{{ url_for('index') }}?q={{ q|urlencode }}&format=rss&{% for category in selected_categories %}category_{{ category }}=1&{% endfor %}pageno={{ pageno }}">{% endblock %} | ||||||
| {% block content %} | {% block content %} | ||||||
| <div class="right"><a href="{{ url_for('preferences') }}" id="preferences"><span>preferences</span></a></div> | <div class="right"><a href="{{ url_for('preferences') }}" id="preferences"><span>{{ _('preferences') }}</span></a></div> | ||||||
| <div class="small search center"> | <div class="small search center"> | ||||||
|     {% include 'default/search.html' %} |     {% include 'courgette/search.html' %} | ||||||
| </div> | </div> | ||||||
| <div id="results"> | <div id="results"> | ||||||
|     <div id="sidebar"> |     <div id="sidebar"> | ||||||
| @ -13,23 +14,31 @@ | |||||||
|             <input type="text" value="{{ base_url }}?q={{ q|urlencode }}&pageno={{ pageno }}{% if selected_categories %}&category_{{ selected_categories|join("&category_")|replace(' ','+') }}{% endif %}" readonly /> |             <input type="text" value="{{ base_url }}?q={{ q|urlencode }}&pageno={{ pageno }}{% if selected_categories %}&category_{{ selected_categories|join("&category_")|replace(' ','+') }}{% endif %}" readonly /> | ||||||
|         </div> |         </div> | ||||||
|         <div id="apis"> |         <div id="apis"> | ||||||
|         {{ _('Download results') }} |             {{ _('Download results') }} | ||||||
|         {% for output_type in ('csv', 'json', 'rss') %} |             {% for output_type in ('csv', 'json', 'rss') %} | ||||||
|         <form method="{{ method or 'POST' }}" action="{{ url_for('index') }}"> |             <form method="{{ method or 'POST' }}" action="{{ url_for('index') }}"> | ||||||
|             <div class="left"> |                 <div class="left"> | ||||||
|             <input type="hidden" name="q" value="{{ q }}" /> |                     <input type="hidden" name="q" value="{{ q }}" /> | ||||||
|             <input type="hidden" name="format" value="{{ output_type }}" /> |                     <input type="hidden" name="format" value="{{ output_type }}" /> | ||||||
|             {% for category in selected_categories %} |                     {% for category in selected_categories %} | ||||||
|             <input type="hidden" name="category_{{ category }}" value="1"/> |                     <input type="hidden" name="category_{{ category }}" value="1"/> | ||||||
|  |                     {% endfor %} | ||||||
|  |                     <input type="hidden" name="pageno" value="{{ pageno }}" /> | ||||||
|  |                     <input type="submit" value="{{ output_type }}" /> | ||||||
|  |                 </div> | ||||||
|  |             </form> | ||||||
|             {% endfor %} |             {% endfor %} | ||||||
|             <input type="hidden" name="pageno" value="{{ pageno }}" /> |  | ||||||
|             <input type="submit" value="{{ output_type }}" /> |  | ||||||
|             </div> |  | ||||||
|         </form> |  | ||||||
|         {% endfor %} |  | ||||||
|         </div> |         </div> | ||||||
|     </div> |     </div> | ||||||
|      |      | ||||||
|  |     {% if answers %} | ||||||
|  |     <div id="answers" class=""><span>{{ _('Answers') }}</span> | ||||||
|  |         {% for answer in answers %} | ||||||
|  |         <span>{{ answer }}</span> | ||||||
|  |         {% endfor %} | ||||||
|  |     </div> | ||||||
|  |     {% endif %} | ||||||
|  | 
 | ||||||
|     {% if suggestions %} |     {% if suggestions %} | ||||||
|     <div id="suggestions"><span>{{ _('Suggestions') }}</span> |     <div id="suggestions"><span>{{ _('Suggestions') }}</span> | ||||||
|         {% for suggestion in suggestions %} |         {% for suggestion in suggestions %} | ||||||
| @ -54,23 +63,23 @@ | |||||||
|         {% if pageno > 1 %} |         {% if pageno > 1 %} | ||||||
|             <form method="{{ method or 'POST' }}" action="{{ url_for('index') }}"> |             <form method="{{ method or 'POST' }}" action="{{ url_for('index') }}"> | ||||||
|                 <div class="left"> |                 <div class="left"> | ||||||
|                 <input type="hidden" name="q" value="{{ q }}" /> |                     <input type="hidden" name="q" value="{{ q }}" /> | ||||||
|                 {% for category in selected_categories %} |                     {% for category in selected_categories %} | ||||||
|                 <input type="hidden" name="category_{{ category }}" value="1"/> |                     <input type="hidden" name="category_{{ category }}" value="1"/> | ||||||
|                 {% endfor %} |                     {% endfor %} | ||||||
|                 <input type="hidden" name="pageno" value="{{ pageno-1 }}" /> |                     <input type="hidden" name="pageno" value="{{ pageno-1 }}" /> | ||||||
|                 <input type="submit" value="<< {{ _('previous page') }}" /> |                     <input type="submit" value="<< {{ _('previous page') }}" /> | ||||||
|                 </div> |                 </div> | ||||||
|             </form> |             </form> | ||||||
|         {% endif %} |         {% endif %} | ||||||
|         <form method="{{ method or 'POST' }}" action="{{ url_for('index') }}"> |         <form method="{{ method or 'POST' }}" action="{{ url_for('index') }}"> | ||||||
|             <div class="left"> |             <div class="left"> | ||||||
|             {% for category in selected_categories %} |                 {% for category in selected_categories %} | ||||||
|             <input type="hidden" name="category_{{ category }}" value="1"/> |                 <input type="hidden" name="category_{{ category }}" value="1"/> | ||||||
|             {% endfor %} |                 {% endfor %} | ||||||
|             <input type="hidden" name="q" value="{{ q }}" /> |                 <input type="hidden" name="q" value="{{ q }}" /> | ||||||
|             <input type="hidden" name="pageno" value="{{ pageno+1 }}" /> |                 <input type="hidden" name="pageno" value="{{ pageno+1 }}" /> | ||||||
|             <input type="submit" value="{{ _('next page') }} >>" /> |                 <input type="submit" value="{{ _('next page') }} >>" /> | ||||||
|             </div> |             </div> | ||||||
|         </form> |         </form> | ||||||
|     </div> |     </div> | ||||||
|  | |||||||
| @ -1,7 +1,7 @@ | |||||||
| <form method="{{ method or 'POST' }}" action="{{ url_for('index') }}" id="search_form"> | <form method="{{ method or 'POST' }}" action="{{ url_for('index') }}" id="search_form"> | ||||||
|   <div id="search_wrapper"> |     <div id="search_wrapper"> | ||||||
|     <input type="text" placeholder="{{ _('Search for...') }}" id="q" class="q" name="q" tabindex="1" autocomplete="off" {% if q %}value="{{ q }}"{% endif %}/> |         <input type="text" placeholder="{{ _('Search for...') }}" id="q" class="q" name="q" tabindex="1" autocomplete="off" {% if q %}value="{{ q }}"{% endif %}/> | ||||||
|     <input type="submit" value="search" id="search_submit" /> |         <input type="submit" value="search" id="search_submit" /> | ||||||
|   </div> |     </div> | ||||||
|   {% include 'default/categories.html' %} |     {% include 'courgette/categories.html' %} | ||||||
| </form> | </form> | ||||||
| @ -1,4 +1,4 @@ | |||||||
| {% extends "default/base.html" %} | {% extends "courgette/base.html" %} | ||||||
| {% block head %} {% endblock %} | {% block head %} {% endblock %} | ||||||
| {% block content %} | {% block content %} | ||||||
| <h2>{{ _('Engine stats') }}</h2> | <h2>{{ _('Engine stats') }}</h2> | ||||||
| @ -6,8 +6,8 @@ | |||||||
| {% for stat_name,stat_category in stats %} | {% for stat_name,stat_category in stats %} | ||||||
| <div class="left"> | <div class="left"> | ||||||
|     <table> |     <table> | ||||||
|         <tr colspan="3"> |         <tr> | ||||||
|             <th>{{ stat_name }}</th> |             <th colspan="3">{{ stat_name }}</th> | ||||||
|         </tr> |         </tr> | ||||||
|         {% for engine in stat_category %} |         {% for engine in stat_category %} | ||||||
|         <tr> |         <tr> | ||||||
|  | |||||||