浏览代码

Merge pull request #176 from Cqoicebordel/courgette-UXUI

Courgette theme - UIUX
Adam Tauber 10 年前
父节点
当前提交
3fd562ccd7
共有 40 个文件被更改,包括 885 次插入838 次删除
  1. 1
    0
      Makefile
  2. 1
    660
      searx/static/themes/courgette/css/style.css
  3. 二进制
      searx/static/themes/courgette/img/icons/icon_500px.ico
  4. 二进制
      searx/static/themes/courgette/img/icons/icon_bing.ico
  5. 二进制
      searx/static/themes/courgette/img/icons/icon_deezer.ico
  6. 二进制
      searx/static/themes/courgette/img/icons/icon_digg.ico
  7. 二进制
      searx/static/themes/courgette/img/icons/icon_duckduckgo.ico
  8. 二进制
      searx/static/themes/courgette/img/icons/icon_flickr.ico
  9. 二进制
      searx/static/themes/courgette/img/icons/icon_google play apps.ico
  10. 二进制
      searx/static/themes/courgette/img/icons/icon_google play movies.ico
  11. 二进制
      searx/static/themes/courgette/img/icons/icon_google play music.ico
  12. 二进制
      searx/static/themes/courgette/img/icons/icon_google.ico
  13. 二进制
      searx/static/themes/courgette/img/icons/icon_openstreetmap.ico
  14. 二进制
      searx/static/themes/courgette/img/icons/icon_searchcode code.ico
  15. 二进制
      searx/static/themes/courgette/img/icons/icon_searchcode doc.ico
  16. 二进制
      searx/static/themes/courgette/img/icons/icon_searchcode.ico
  17. 二进制
      searx/static/themes/courgette/img/icons/icon_startpage.ico
  18. 二进制
      searx/static/themes/courgette/img/icons/icon_subtitleseeker.ico
  19. 二进制
      searx/static/themes/courgette/img/icons/icon_wikipedia.ico
  20. 二进制
      searx/static/themes/courgette/img/icons/icon_yahoo.ico
  21. 689
    0
      searx/static/themes/courgette/less/style.less
  22. 1
    1
      searx/static/themes/default/css/style.css
  23. 二进制
      searx/static/themes/default/img/icons/icon_searchcode code.ico
  24. 二进制
      searx/static/themes/default/img/icons/icon_searchcode doc.ico
  25. 1
    1
      searx/static/themes/oscar/css/oscar.min.css
  26. 2
    2
      searx/templates/courgette/about.html
  27. 32
    31
      searx/templates/courgette/base.html
  28. 7
    5
      searx/templates/courgette/categories.html
  29. 1
    1
      searx/templates/courgette/github_ribbon.html
  30. 4
    4
      searx/templates/courgette/index.html
  31. 53
    55
      searx/templates/courgette/preferences.html
  32. 6
    6
      searx/templates/courgette/result_templates/code.html
  33. 9
    9
      searx/templates/courgette/result_templates/default.html
  34. 2
    2
      searx/templates/courgette/result_templates/images.html
  35. 10
    10
      searx/templates/courgette/result_templates/map.html
  36. 10
    4
      searx/templates/courgette/result_templates/torrent.html
  37. 8
    8
      searx/templates/courgette/result_templates/videos.html
  38. 38
    29
      searx/templates/courgette/results.html
  39. 6
    6
      searx/templates/courgette/search.html
  40. 4
    4
      searx/templates/courgette/stats.html

+ 1
- 0
Makefile 查看文件

@@ -46,6 +46,7 @@ minimal: bin/buildout minimal.cfg setup.py
46 46
 
47 47
 styles:
48 48
 	@lessc -x searx/static/themes/default/less/style.less > searx/static/themes/default/css/style.css
49
+	@lessc -x searx/static/themes/courgette/less/style.less > searx/static/themes/courgette/css/style.css
49 50
 	@lessc -x searx/static/less/bootstrap/bootstrap.less > searx/static/css/bootstrap.min.css
50 51
 	@lessc -x searx/static/themes/oscar/less/oscar/oscar.less > searx/static/themes/oscar/css/oscar.min.css
51 52
 

+ 1
- 660
searx/static/themes/courgette/css/style.css
文件差异内容过多而无法显示
查看文件


二进制
searx/static/themes/courgette/img/icons/icon_500px.ico 查看文件


二进制
searx/static/themes/courgette/img/icons/icon_bing.ico 查看文件


二进制
searx/static/themes/courgette/img/icons/icon_deezer.ico 查看文件


二进制
searx/static/themes/courgette/img/icons/icon_digg.ico 查看文件


二进制
searx/static/themes/courgette/img/icons/icon_duckduckgo.ico 查看文件


二进制
searx/static/themes/courgette/img/icons/icon_flickr.ico 查看文件


二进制
searx/static/themes/courgette/img/icons/icon_google play apps.ico 查看文件


二进制
searx/static/themes/courgette/img/icons/icon_google play movies.ico 查看文件


二进制
searx/static/themes/courgette/img/icons/icon_google play music.ico 查看文件


二进制
searx/static/themes/courgette/img/icons/icon_google.ico 查看文件


二进制
searx/static/themes/courgette/img/icons/icon_openstreetmap.ico 查看文件


二进制
searx/static/themes/courgette/img/icons/icon_searchcode code.ico 查看文件


二进制
searx/static/themes/courgette/img/icons/icon_searchcode doc.ico 查看文件


二进制
searx/static/themes/courgette/img/icons/icon_searchcode.ico 查看文件


二进制
searx/static/themes/courgette/img/icons/icon_startpage.ico 查看文件


二进制
searx/static/themes/courgette/img/icons/icon_subtitleseeker.ico 查看文件


二进制
searx/static/themes/courgette/img/icons/icon_wikipedia.ico 查看文件


二进制
searx/static/themes/courgette/img/icons/icon_yahoo.ico 查看文件


+ 689
- 0
searx/static/themes/courgette/less/style.less 查看文件

@@ -0,0 +1,689 @@
1
+
2
+@color-main: #3498DB;
3
+@color-other-links: #666;
4
+@color-fonts: #333;
5
+@center-width: 70em;
6
+
7
+
8
+
9
+
10
+* {
11
+  -webkit-box-sizing: border-box;
12
+	 -moz-box-sizing: border-box;
13
+		  box-sizing: border-box;
14
+}
15
+
16
+input[type="search"] {
17
+	-webkit-appearance: textfield;
18
+}
19
+
20
+h2 {
21
+	color: @color-other-links;
22
+	text-transform: uppercase;
23
+}
24
+
25
+body {
26
+	font-family: sans-serif;
27
+	line-height: 1.5;
28
+	margin: 0;
29
+	background: #EEE;
30
+}
31
+
32
+html {
33
+	position: relative;
34
+	min-height: 100%;
35
+}
36
+
37
+a {
38
+	color: @color-other-links;
39
+}
40
+
41
+.title h1 {
42
+	background: url(../img/searx.png) no-repeat;
43
+	width: 319px;
44
+	height: 62px;
45
+	text-indent: -9999px;
46
+	margin: 0.5em auto 1em;
47
+}
48
+
49
+.center {
50
+	max-width: @center-width;
51
+	text-align: center;
52
+	background: rgba(255,255,255,0.6);
53
+	padding: 2em;
54
+	margin: 7% auto 0;
55
+	position: relative;
56
+}
57
+
58
+.center.search {
59
+	position: static;
60
+	width: auto;
61
+	background: none;
62
+	margin: auto;
63
+	padding-top: 1.8em;
64
+}
65
+
66
+@media screen and (min-width: 1001px) {
67
+	.center:after {
68
+		content: "";
69
+		z-index: -1;
70
+		background: url(../img/bg-body-index.jpg) no-repeat;
71
+		background-size: cover;
72
+		width: 100%;
73
+		height: 100%;
74
+		top: 0;
75
+		left: 0;
76
+		position: fixed;
77
+	}
78
+	.center.search:after {
79
+		content: none;
80
+	}
81
+}
82
+
83
+.autocompleter-choices {
84
+	position: absolute;
85
+	margin: 0;
86
+	padding: 0;
87
+	background: #FFF;
88
+}
89
+
90
+.autocompleter-choices li {
91
+	padding: 0.5em 1em;
92
+}
93
+  
94
+.autocompleter-choices li:hover {
95
+	background: @color-main;
96
+	color: #FFF;
97
+	cursor: pointer;
98
+}
99
+
100
+#categories {
101
+	text-align: center;
102
+}
103
+
104
+.top_margin {
105
+	position: absolute;
106
+	bottom: -3.5em;
107
+	width: 100%;
108
+	left: 0;
109
+}
110
+
111
+.top_margin a {
112
+	display: inline-block;
113
+	margin-right: 1em;
114
+	color: #FFF;
115
+	text-decoration: none;
116
+}
117
+
118
+.top_margin a:hover,
119
+.top_margin a:focus {
120
+	text-decoration: underline;
121
+}
122
+
123
+@media screen and (max-width: 1000px) {
124
+	.center { background: none; }
125
+	.top_margin a {
126
+		color: @color-fonts;
127
+	}
128
+}
129
+
130
+.checkbox_container { margin-top: 1.5em; }
131
+.checkbox_container label {
132
+	padding: 0.5em 1em;
133
+	color: @color-fonts;
134
+	cursor: pointer;
135
+	font-size: 0.9em;
136
+}
137
+
138
+.checkbox_container label:hover {
139
+	background: @color-main;
140
+	color: #FFF;
141
+}
142
+
143
+.checkbox_container input[type="checkbox"] {
144
+	position: absolute;
145
+	top: -9999px;
146
+}
147
+
148
+.checkbox_container input[type="checkbox"]:checked + label {
149
+	background: @color-main;
150
+	color: #FFF;
151
+}
152
+
153
+#categories_container > div {
154
+	display: inline-block;
155
+}
156
+
157
+#categories .hidden {
158
+	display: none;
159
+	position: absolute;
160
+	bottom: 1em;
161
+	left: 0;
162
+	text-align: center;
163
+	width: 100%;
164
+	font-size: 0.9em;
165
+	font-style: italic;
166
+	color: @color-fonts;
167
+}
168
+
169
+#categories:hover .hidden {
170
+	display: block;
171
+}
172
+
173
+@media screen and (max-width: 900px) {
174
+	#categories_container { letter-spacing: -5px; }
175
+	#categories_container > div {
176
+		letter-spacing: normal;
177
+		margin-top: 1em;
178
+	}
179
+	.checkbox_container {
180
+		margin: 0;
181
+	}
182
+	.checkbox_container label {
183
+		display: block;
184
+		background: #CCC;
185
+		padding: 1em;
186
+		border: 1px solid #FFF;
187
+	}
188
+	.top_margin { position: static; }
189
+	#categories .hidden {
190
+		position: static;
191
+		display: block;
192
+	}
193
+}
194
+
195
+@media screen and (max-width: 900px) and (min-width: 501px) {
196
+	#categories_container > div {
197
+		width: 31%;
198
+		margin-left: 2.333%;
199
+	}
200
+	#categories_container > div:nth-child(3n+1) { margin-left: 0; }
201
+}
202
+
203
+@media screen and (max-width: 500px) {
204
+	#categories_container > div {
205
+		width: 48%;
206
+		margin-left: 2%;
207
+		font-size: 0.9em;
208
+	}
209
+	#categories_container > div:nth-child(2n+1) { margin-left: 0; }
210
+	.title h1 {
211
+		background: url(../img/searx-mobile.png) no-repeat;
212
+		width: 200px;
213
+		height: 39px;
214
+	}
215
+}
216
+
217
+#search_wrapper {
218
+	position: relative;
219
+}
220
+
221
+.q {
222
+	padding: 0.5em 3em 0.5em 1em;
223
+	width: 100%;
224
+	font-size: 1.5em;
225
+	border: 0;
226
+	color: #666;
227
+}
228
+
229
+#search_submit {
230
+	position: absolute;
231
+	top: 0;
232
+	right: 0;
233
+	border: 0;
234
+	background:url("../img/search-icon.png") no-repeat scroll center center / 65% auto @color-main;
235
+	text-indent: -9999px;
236
+	width: 5em;
237
+	height: 100%;
238
+	cursor: pointer;
239
+}
240
+
241
+#search_submit:hover,
242
+#search_submit:focus {
243
+	background-color: #0665A2;
244
+}
245
+
246
+#sidebar {
247
+	background: @color-main;
248
+	position: fixed;
249
+	top: 0;
250
+	right: 0;
251
+	width: 15em;
252
+	height: 100%;
253
+	padding: 1.5em;
254
+	text-align: right;
255
+}
256
+
257
+.right {
258
+	position: fixed;
259
+	bottom: 1.5em;
260
+	width: 15em;
261
+	right: 0;
262
+	z-index: 1;
263
+	padding: 0 1.5em;
264
+	text-align: right;
265
+}
266
+
267
+.right a {
268
+	color: #FFF;
269
+	display: block;
270
+	text-decoration: none;
271
+}
272
+
273
+.right a:hover,
274
+.right a:focus {
275
+	text-decoration: underline;
276
+}
277
+
278
+#preferences {
279
+	background: url(../img/preference-icon.png) no-repeat right 0 / 12% auto; 
280
+	padding-right: 1.8em;
281
+}
282
+
283
+#preferences:hover,
284
+#preferences:focus {
285
+  
286
+}
287
+
288
+#search_url input {
289
+	border: 0;
290
+	padding: 0.5em;
291
+}
292
+
293
+#sidebar > div {
294
+	margin-bottom: 1em;
295
+	color: #FFF;
296
+}
297
+
298
+#sidebar form {
299
+	display: inline-block;
300
+}
301
+
302
+#sidebar input[type="submit"] {
303
+	background: #CCC;
304
+	border: 0;
305
+	padding: 0.5em 1em;
306
+	cursor: pointer;
307
+	margin-top: 0.5em;
308
+}
309
+
310
+#sidebar input[type="submit"]:hover,
311
+#sidebar input[type="submit"]:focus {
312
+	color: #FFF;
313
+	background-color: #0665A2;
314
+}
315
+
316
+#results {
317
+	padding-right: 17em;
318
+	padding-left: 2em;
319
+	padding: 0 17em 0 2em;
320
+}
321
+
322
+.result p {
323
+	font-size: 0.9em;
324
+}
325
+
326
+.result .content { 
327
+	margin: 0;
328
+	color: #666;
329
+}
330
+
331
+.result .url {
332
+	margin-top: 0;
333
+	color: #FF6530;
334
+}
335
+
336
+.result .favicon {
337
+	float: left;
338
+	position: relative;
339
+	top: 0.5em;
340
+	margin-right: 0.5em;
341
+} 
342
+
343
+.definition_result {
344
+	background: #CCC;
345
+	padding: 1em;
346
+}
347
+
348
+.definition_result .result_title,
349
+.definition_result p {
350
+	margin: 0;
351
+}
352
+
353
+.result_title {
354
+	margin-bottom: 0;
355
+	font-weight: normal;
356
+}
357
+
358
+.highlight {
359
+	font-weight: bold;
360
+}
361
+
362
+.result_title a {
363
+	color: @color-main;
364
+	text-decoration: none;
365
+}
366
+
367
+.result_title a:hover,
368
+.result_title a:focus {
369
+	text-decoration: underline;
370
+}
371
+
372
+.cache_link {
373
+	color: #666;
374
+	font-size: 0.9em;
375
+	font-style: italic;
376
+}
377
+
378
+.search.center {
379
+	padding-right: 17em;
380
+}
381
+
382
+#answers {
383
+	border: 2px solid @color-main;
384
+	padding: 20px;
385
+	color:#666;
386
+	text-align: center;
387
+	max-width:@center-width;
388
+	margin:0 auto 20px;
389
+}
390
+
391
+#suggestions { margin-bottom: 1em; }
392
+
393
+#suggestions span { color: #666; }
394
+
395
+#suggestions form {
396
+	display: inline-block;
397
+	vertical-align: top;
398
+	margin-bottom: 0.5em;
399
+}
400
+
401
+#suggestions input[type="submit"] {
402
+	color: @color-fonts;
403
+	padding: 0.5em 1em;
404
+	border: 0;
405
+	background: #CCC;
406
+	cursor:pointer;
407
+}
408
+
409
+#suggestions input[type="submit"]:hover,
410
+#suggestions input[type="submit"]:focus {
411
+	background: @color-main;
412
+	color: #FFF;
413
+}
414
+
415
+#pagination {
416
+	margin: 1.5em 0 2em;
417
+}
418
+
419
+#pagination form + form {
420
+	float: right;
421
+	margin-top: -2em;
422
+}
423
+
424
+input[type="submit"] {
425
+	display: inline-block;
426
+	background: @color-main;
427
+	color: #FFF;
428
+	border: 0;
429
+	padding: 0.6em 1em;
430
+	cursor: pointer;
431
+}
432
+
433
+input[type="submit"]:hover,
434
+input[type="submit"]:focus {
435
+	background: #0665A2;
436
+}
437
+
438
+.row {
439
+	max-width: 60em;
440
+	margin: auto;
441
+}
442
+
443
+.row a {
444
+	color: @color-main;
445
+}
446
+
447
+.row form {
448
+	letter-spacing: -5px;
449
+}
450
+
451
+.row form > * { letter-spacing: normal; }
452
+
453
+.row p { margin: 0; }
454
+
455
+.row fieldset {
456
+	display: inline-block;
457
+	width: 48%;
458
+	vertical-align: top;
459
+}
460
+
461
+.row fieldset:last-of-type {
462
+	display: block;
463
+	width: auto;
464
+	background: none;
465
+	padding: 0;
466
+}
467
+
468
+.row fieldset:nth-child(odd) {
469
+	margin-right: 2%;
470
+}
471
+
472
+.row fieldset:nth-child(2) {
473
+	min-height: 10.5em;
474
+}
475
+
476
+@media screen and (max-width: 900px) {
477
+	.row {
478
+		margin: 0 1em;
479
+	}
480
+
481
+	.row fieldset { width: 49%; }
482
+	.row fieldset,
483
+	.row fieldset:nth-child(odd) {
484
+		margin-right: 0;
485
+	}
486
+
487
+	.row fieldset:first-child {
488
+		width: 100%;
489
+		margin-right: 0;
490
+	}
491
+
492
+	.row fieldset:nth-child(even) {
493
+		margin-right: 2%;
494
+	}
495
+}
496
+
497
+@media screen and (max-width: 800px) {
498
+	.row fieldset { width: 100%; }
499
+
500
+	select { width: 100%; }
501
+
502
+	table { font-size: 0.8em; }
503
+	.right {display: none;}
504
+	#sidebar { display: none; }
505
+	#results { padding: 0 2em; }
506
+	.search.center {
507
+		padding-right: 2em;
508
+	}
509
+}
510
+
511
+@media screen and (max-width: 400px) {
512
+	.row #categories_container > div {
513
+		width: 100%;
514
+		margin-left: 0;
515
+	}
516
+}
517
+
518
+fieldset {
519
+	border: 0;
520
+	margin: 1em 0;
521
+	background: #CCC;
522
+	padding: 1.5em;
523
+}
524
+
525
+table {
526
+	width: 100%;
527
+	text-align: left;
528
+	border: 1px solid #CCC;
529
+	border-collapse: collapse;
530
+}
531
+
532
+table th {
533
+	background: #999;
534
+	color: #FFF;
535
+}
536
+
537
+table tr:nth-child(odd) {
538
+	background: #CCC;
539
+}
540
+
541
+table th,
542
+table td {
543
+	padding: 0.5em 1em;
544
+	border: 1px solid #FFF;
545
+}
546
+
547
+.engine_checkbox label {
548
+	padding: 0.5em;
549
+	background: @color-main;
550
+	color: #FFF;
551
+	cursor: pointer;
552
+}
553
+
554
+.engine_checkbox .deny {
555
+	background: @color-main;
556
+}
557
+
558
+.engine_checkbox .allow {
559
+	display: none;
560
+	background: #666;
561
+}
562
+
563
+.engine_checkbox input {
564
+	display: none;
565
+}
566
+
567
+.engine_checkbox input:checked + .allow {
568
+	display: inline;
569
+}
570
+
571
+.engine_checkbox input:checked + .allow + .deny{
572
+	display: none;
573
+}
574
+
575
+.row input[type="submit"] {
576
+	font-size: 1em;
577
+	margin: 1em 0 2em;
578
+}
579
+
580
+.row .right {
581
+	position: static;
582
+	display: inline-block;
583
+  
584
+}
585
+
586
+.row .right a {
587
+	color: @color-fonts;
588
+	width: auto;
589
+	text-align: left;
590
+	padding: 0;
591
+}
592
+
593
+.small_font {
594
+	font-size: 0.8em;
595
+}
596
+
597
+table th {
598
+	padding: 1em;
599
+}
600
+
601
+legend {
602
+	background: #EEE;
603
+	padding: 0 1em;
604
+	position: relative;
605
+}
606
+
607
+select {
608
+	border: 1px solid #DDD;
609
+	padding: 0.5em 0.8em;
610
+	font-size: 1em;
611
+}
612
+
613
+.highlight .hll { background-color: #ffffcc }
614
+.highlight  { background: #f8f8f8; }
615
+.highlight .c { color: #408080; font-style: italic } /* Comment */
616
+.highlight .err { border: 1px solid #FF0000 } /* Error */
617
+.highlight .k { color: #008000; font-weight: bold } /* Keyword */
618
+.highlight .o { color: #666666 } /* Operator */
619
+.highlight .cm { color: #408080; font-style: italic } /* Comment.Multiline */
620
+.highlight .cp { color: #BC7A00 } /* Comment.Preproc */
621
+.highlight .c1 { color: #408080; font-style: italic } /* Comment.Single */
622
+.highlight .cs { color: #408080; font-style: italic } /* Comment.Special */
623
+.highlight .gd { color: #A00000 } /* Generic.Deleted */
624
+.highlight .ge { font-style: italic } /* Generic.Emph */
625
+.highlight .gr { color: #FF0000 } /* Generic.Error */
626
+.highlight .gh { color: #000080; font-weight: bold } /* Generic.Heading */
627
+.highlight .gi { color: #00A000 } /* Generic.Inserted */
628
+.highlight .go { color: #888888 } /* Generic.Output */
629
+.highlight .gp { color: #000080; font-weight: bold } /* Generic.Prompt */
630
+.highlight .gs { font-weight: bold } /* Generic.Strong */
631
+.highlight .gu { color: #800080; font-weight: bold } /* Generic.Subheading */
632
+.highlight .gt { color: #0044DD } /* Generic.Traceback */
633
+.highlight .kc { color: #008000; font-weight: bold } /* Keyword.Constant */
634
+.highlight .kd { color: #008000; font-weight: bold } /* Keyword.Declaration */
635
+.highlight .kn { color: #008000; font-weight: bold } /* Keyword.Namespace */
636
+.highlight .kp { color: #008000 } /* Keyword.Pseudo */
637
+.highlight .kr { color: #008000; font-weight: bold } /* Keyword.Reserved */
638
+.highlight .kt { color: #B00040 } /* Keyword.Type */
639
+.highlight .m { color: #666666 } /* Literal.Number */
640
+.highlight .s { color: #BA2121 } /* Literal.String */
641
+.highlight .na { color: #7D9029 } /* Name.Attribute */
642
+.highlight .nb { color: #008000 } /* Name.Builtin */
643
+.highlight .nc { color: #0000FF; font-weight: bold } /* Name.Class */
644
+.highlight .no { color: #880000 } /* Name.Constant */
645
+.highlight .nd { color: #AA22FF } /* Name.Decorator */
646
+.highlight .ni { color: #999999; font-weight: bold } /* Name.Entity */
647
+.highlight .ne { color: #D2413A; font-weight: bold } /* Name.Exception */
648
+.highlight .nf { color: #0000FF } /* Name.Function */
649
+.highlight .nl { color: #A0A000 } /* Name.Label */
650
+.highlight .nn { color: #0000FF; font-weight: bold } /* Name.Namespace */
651
+.highlight .nt { color: #008000; font-weight: bold } /* Name.Tag */
652
+.highlight .nv { color: #19177C } /* Name.Variable */
653
+.highlight .ow { color: #AA22FF; font-weight: bold } /* Operator.Word */
654
+.highlight .w { color: #bbbbbb } /* Text.Whitespace */
655
+.highlight .mf { color: #666666 } /* Literal.Number.Float */
656
+.highlight .mh { color: #666666 } /* Literal.Number.Hex */
657
+.highlight .mi { color: #666666 } /* Literal.Number.Integer */
658
+.highlight .mo { color: #666666 } /* Literal.Number.Oct */
659
+.highlight .sb { color: #BA2121 } /* Literal.String.Backtick */
660
+.highlight .sc { color: #BA2121 } /* Literal.String.Char */
661
+.highlight .sd { color: #BA2121; font-style: italic } /* Literal.String.Doc */
662
+.highlight .s2 { color: #BA2121 } /* Literal.String.Double */
663
+.highlight .se { color: #BB6622; font-weight: bold } /* Literal.String.Escape */
664
+.highlight .sh { color: #BA2121 } /* Literal.String.Heredoc */
665
+.highlight .si { color: #BB6688; font-weight: bold } /* Literal.String.Interpol */
666
+.highlight .sx { color: #008000 } /* Literal.String.Other */
667
+.highlight .sr { color: #BB6688 } /* Literal.String.Regex */
668
+.highlight .s1 { color: #BA2121 } /* Literal.String.Single */
669
+.highlight .ss { color: #19177C } /* Literal.String.Symbol */
670
+.highlight .bp { color: #008000 } /* Name.Builtin.Pseudo */
671
+.highlight .vc { color: #19177C } /* Name.Variable.Class */
672
+.highlight .vg { color: #19177C } /* Name.Variable.Global */
673
+.highlight .vi { color: #19177C } /* Name.Variable.Instance */
674
+.highlight .il { color: #666666 } /* Literal.Number.Integer.Long */
675
+
676
+.highlight pre { overflow: auto; }
677
+
678
+.highlight .lineno {
679
+	-webkit-touch-callout: none;
680
+	-webkit-user-select: none;
681
+	-khtml-user-select: none;
682
+	-moz-user-select: none;
683
+	-ms-user-select: none;
684
+	user-select: none;
685
+	cursor: default;
686
+}
687
+
688
+.highlight .lineno::selection { background: transparent; } /* WebKit/Blink Browsers */
689
+.highlight .lineno::-moz-selection { background: transparent; } /* Gecko Browsers */

+ 1
- 1
searx/static/themes/default/css/style.css
文件差异内容过多而无法显示
查看文件


二进制
searx/static/themes/default/img/icons/icon_searchcode code.ico 查看文件


二进制
searx/static/themes/default/img/icons/icon_searchcode doc.ico 查看文件


+ 1
- 1
searx/static/themes/oscar/css/oscar.min.css 查看文件

@@ -1 +1 @@
1
-html{position:relative;min-height:100%}body{margin-bottom:80px}.footer{position:absolute;bottom:0;width:100%;height:60px}input[type=checkbox]:checked~.label_hide_if_checked{display:none}input[type=checkbox]:not(:checked)~.label_hide_if_not_checked{display:none}.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:700}.result-content{margin-top:5px}.result-content .highlight{font-weight:700}.result-default{clear:both}.result-images{float:left!important}.img-thumbnail{margin:5px;max-height:128px;min-height:128px}.result-videos{clear:both}.result-torrents{clear:both}.result-map{clear:both}.result-code{clear:both}.suggestion_item{margin:2px 5px}.result_download{margin-right:5px}#pagination{margin-top:30px;padding-bottom:50px}.infobox .infobox_part{margin-bottom:20px}.infobox .infobox_part:last-child{margin-bottom:0}.search_categories{margin:10px 0;text-transform:capitalize}.cursor-text{cursor:text!important}.cursor-pointer{cursor:pointer!important}.highlight .hll{background-color:#ffc}.highlight{background:#f8f8f8}.highlight .c{color:#408080;font-style:italic}.highlight .err{border:1px solid red}.highlight .k{color:green;font-weight:700}.highlight .o{color:#666}.highlight .cm{color:#408080;font-style:italic}.highlight .cp{color:#bc7a00}.highlight .c1{color:#408080;font-style:italic}.highlight .cs{color:#408080;font-style:italic}.highlight .gd{color:#a00000}.highlight .ge{font-style:italic}.highlight .gr{color:red}.highlight .gh{color:navy;font-weight:700}.highlight .gi{color:#00a000}.highlight .go{color:#888}.highlight .gp{color:navy;font-weight:700}.highlight .gs{font-weight:700}.highlight .gu{color:purple;font-weight:700}.highlight .gt{color:#04d}.highlight .kc{color:green;font-weight:700}.highlight .kd{color:green;font-weight:700}.highlight .kn{color:green;font-weight:700}.highlight .kp{color:green}.highlight .kr{color:green;font-weight:700}.highlight .kt{color:#b00040}.highlight .m{color:#666}.highlight .s{color:#ba2121}.highlight .na{color:#7d9029}.highlight .nb{color:green}.highlight .nc{color:#00F;font-weight:700}.highlight .no{color:#800}.highlight .nd{color:#a2f}.highlight .ni{color:#999;font-weight:700}.highlight .ne{color:#D2413A;font-weight:700}.highlight .nf{color:#00f}.highlight .nl{color:#a0a000}.highlight .nn{color:#00F;font-weight:700}.highlight .nt{color:green;font-weight:700}.highlight .nv{color:#19177c}.highlight .ow{color:#A2F;font-weight:700}.highlight .w{color:#bbb}.highlight .mf{color:#666}.highlight .mh{color:#666}.highlight .mi{color:#666}.highlight .mo{color:#666}.highlight .sb{color:#ba2121}.highlight .sc{color:#ba2121}.highlight .sd{color:#BA2121;font-style:italic}.highlight .s2{color:#ba2121}.highlight .se{color:#B62;font-weight:700}.highlight .sh{color:#ba2121}.highlight .si{color:#B68;font-weight:700}.highlight .sx{color:green}.highlight .sr{color:#b68}.highlight .s1{color:#ba2121}.highlight .ss{color:#19177c}.highlight .bp{color:green}.highlight .vc{color:#19177c}.highlight .vg{color:#19177c}.highlight .vi{color:#19177c}.highlight .il{color:#666}.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:0 0}.highlight .lineno::-moz-selection{background:0 0}
1
+html{position:relative;min-height:100%}body{margin-bottom:80px}.footer{position:absolute;bottom:0;width:100%;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}.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}.result-content .highlight{font-weight:bold}.result-default{clear:both}.result-images{float:left !important}.img-thumbnail{margin:5px;max-height:128px;min-height:128px}.result-videos{clear:both}.result-torrents{clear:both}.result-map{clear:both}.result-code{clear:both}.suggestion_item{margin:2px 5px}.result_download{margin-right:5px}#pagination{margin-top:30px;padding-bottom:50px}.infobox .infobox_part{margin-bottom:20px}.infobox .infobox_part:last-child{margin-bottom:0}.search_categories{margin:10px 0;text-transform:capitalize}.cursor-text{cursor:text !important}.cursor-pointer{cursor:pointer !important}.highlight .hll{background-color:#ffc}.highlight{background:#f8f8f8}.highlight .c{color:#408080;font-style:italic}.highlight .err{border:1px solid #f00}.highlight .k{color:#008000;font-weight:bold}.highlight .o{color:#666}.highlight .cm{color:#408080;font-style:italic}.highlight .cp{color:#bc7a00}.highlight .c1{color:#408080;font-style:italic}.highlight .cs{color:#408080;font-style:italic}.highlight .gd{color:#a00000}.highlight .ge{font-style:italic}.highlight .gr{color:#f00}.highlight .gh{color:#000080;font-weight:bold}.highlight .gi{color:#00a000}.highlight .go{color:#888}.highlight .gp{color:#000080;font-weight:bold}.highlight .gs{font-weight:bold}.highlight .gu{color:#800080;font-weight:bold}.highlight .gt{color:#04d}.highlight .kc{color:#008000;font-weight:bold}.highlight .kd{color:#008000;font-weight:bold}.highlight .kn{color:#008000;font-weight:bold}.highlight .kp{color:#008000}.highlight .kr{color:#008000;font-weight:bold}.highlight .kt{color:#b00040}.highlight .m{color:#666}.highlight .s{color:#ba2121}.highlight .na{color:#7d9029}.highlight .nb{color:#008000}.highlight .nc{color:#00f;font-weight:bold}.highlight .no{color:#800}.highlight .nd{color:#a2f}.highlight .ni{color:#999;font-weight:bold}.highlight .ne{color:#d2413a;font-weight:bold}.highlight .nf{color:#00f}.highlight .nl{color:#a0a000}.highlight .nn{color:#00f;font-weight:bold}.highlight .nt{color:#008000;font-weight:bold}.highlight .nv{color:#19177c}.highlight .ow{color:#a2f;font-weight:bold}.highlight .w{color:#bbb}.highlight .mf{color:#666}.highlight .mh{color:#666}.highlight .mi{color:#666}.highlight .mo{color:#666}.highlight .sb{color:#ba2121}.highlight .sc{color:#ba2121}.highlight .sd{color:#ba2121;font-style:italic}.highlight .s2{color:#ba2121}.highlight .se{color:#b62;font-weight:bold}.highlight .sh{color:#ba2121}.highlight .si{color:#b68;font-weight:bold}.highlight .sx{color:#008000}.highlight .sr{color:#b68}.highlight .s1{color:#ba2121}.highlight .ss{color:#19177c}.highlight .bp{color:#008000}.highlight .vc{color:#19177c}.highlight .vg{color:#19177c}.highlight .vi{color:#19177c}.highlight .il{color:#666}.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}.highlight .lineno::-moz-selection{background:transparent}

+ 2
- 2
searx/templates/courgette/about.html 查看文件

@@ -1,6 +1,6 @@
1
-{% extends 'default/base.html' %}
1
+{% extends 'courgette/base.html' %}
2 2
 {% block content %}
3
-{% include 'default/github_ribbon.html' %}
3
+{% include 'courgette/github_ribbon.html' %}
4 4
 <div class="row">
5 5
     <h1>About <a href="{{ url_for('index') }}">searx</a></h1>
6 6
 

+ 32
- 31
searx/templates/courgette/base.html 查看文件

@@ -1,33 +1,34 @@
1 1
 <!DOCTYPE html>
2 2
 <html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
3
-<head>
4
-    <meta charset="UTF-8" />
5
-    <meta name="description" content="Searx - a privacy-respecting, hackable metasearch engine" />
6
-    <meta name="keywords" content="searx, search, search engine, metasearch, meta search" />
7
-    <meta name="generator" content="searx/{{ searx_version }}">
8
-    <meta name="viewport" content="width=device-width, maximum-scale=1.0, user-scalable=1" />
9
-    <title>{% block title %}{% endblock %}searx</title>
10
-    <link rel="stylesheet" href="{{ url_for('static', filename='css/style.css') }}" type="text/css" media="screen" />
11
-    <link rel="shortcut icon" href="{{ url_for('static', filename='img/favicon.png') }}?v=2" />
12
-    {% block styles %}
13
-    {% endblock %}
14
-    {% block head %}
15
-    <link title="searx" type="application/opensearchdescription+xml" rel="search" href="{{ url_for('opensearch') }}"/>
16
-    {% endblock %}
17
-    <script type="text/javascript">
18
-        searx = {};
19
-        searx.autocompleter = {% if autocomplete %}true{% else %}false{% endif %};
20
-    </script>
21
-</head>
22
-<body>
23
-<div id="container">
24
-{% block content %}
25
-{% endblock %}
26
-{% if autocomplete %}
27
-<script src="{{ url_for('static', filename='js/mootools-core-1.4.5-min.js') }}" ></script>
28
-<script src="{{ url_for('static', filename='js/mootools-autocompleter-1.1.2-min.js') }}" ></script>
29
-{% endif %}
30
-<script src="{{ url_for('static', filename='js/searx.js') }}" ></script>
31
-</div>
32
-</body>
33
-</html>
3
+    <head>
4
+        <meta charset="UTF-8" />
5
+        <meta name="description" content="Searx - a privacy-respecting, hackable metasearch engine" />
6
+        <meta name="keywords" content="searx, search, search engine, metasearch, meta search" />
7
+        <meta name="generator" content="searx/{{ searx_version }}">
8
+        <meta name="viewport" content="width=device-width, maximum-scale=1.0, user-scalable=1" />
9
+        <title>{% block title %}{% endblock %}searx</title>
10
+        <link rel="stylesheet" href="{{ url_for('static', filename='css/style.css') }}" type="text/css" media="screen" />
11
+        <link rel="shortcut icon" href="{{ url_for('static', filename='img/favicon.png') }}?v=2" />
12
+        {% block styles %}
13
+        {% endblock %}
14
+        {% block meta %}{% endblock %}
15
+        {% block head %}
16
+        <link title="searx" type="application/opensearchdescription+xml" rel="search" href="{{ url_for('opensearch') }}"/>
17
+        {% endblock %}
18
+        <script type="text/javascript">
19
+            searx = {};
20
+            searx.autocompleter = {% if autocomplete %}true{% else %}false{% endif %};
21
+        </script>
22
+    </head>
23
+    <body>
24
+        <div id="container">
25
+            {% block content %}
26
+            {% endblock %}
27
+            {% if autocomplete %}
28
+            <script src="{{ url_for('static', filename='js/mootools-core-1.4.5-min.js') }}" ></script>
29
+            <script src="{{ url_for('static', filename='js/mootools-autocompleter-1.1.2-min.js') }}" ></script>
30
+            {% endif %}
31
+            <script src="{{ url_for('static', filename='js/searx.js') }}" ></script>
32
+        </div>
33
+    </body>
34
+</html>

+ 7
- 5
searx/templates/courgette/categories.html 查看文件

@@ -1,7 +1,9 @@
1 1
 <div id="categories">
2
-{% for category in categories %}
3
-    <div class="checkbox_container">
4
-        <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>
2
+    <div id="categories_container">
3
+    {% for category in categories %}
4
+        <div class="checkbox_container">
5
+            <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>
6
+        </div>
7
+    {% endfor %}
5 8
     </div>
6
-{% endfor %}
7
-</div>
9
+</div>

+ 1
- 1
searx/templates/courgette/github_ribbon.html 查看文件

@@ -1,3 +1,3 @@
1 1
 <a href="https://github.com/asciimoo/searx" class="github">
2 2
     <img style="position: absolute; top: 0; right: 0; border: 0;" src="{{ url_for('static', filename='img/github_ribbon.png') }}" alt="Fork me on GitHub"  class="github"/>
3
-</a>
3
+</a>

+ 4
- 4
searx/templates/courgette/index.html 查看文件

@@ -1,12 +1,12 @@
1
-{% extends "default/base.html" %}
1
+{% extends "courgette/base.html" %}
2 2
 {% block content %}
3
-{% include 'default/github_ribbon.html' %}
3
+{% include 'courgette/github_ribbon.html' %}
4 4
 <div class="center">
5 5
     <div class="title"><h1>searx</h1></div>
6
-    {% include 'default/search.html' %}
6
+    {% include 'courgette/search.html' %}
7 7
     <p class="top_margin">
8 8
         <a href="{{ url_for('about') }}" class="hmarg">{{ _('about') }}</a>
9 9
         <a href="{{ url_for('preferences') }}" class="hmarg">{{ _('preferences') }}</a>
10 10
     </p>
11 11
 </div>
12
-{% endblock %}
12
+{% endblock %}

+ 53
- 55
searx/templates/courgette/preferences.html 查看文件

@@ -1,4 +1,4 @@
1
-{% extends "default/base.html" %}
1
+{% extends "courgette/base.html" %}
2 2
 {% block head %} {% endblock %}
3 3
 {% block content %}
4 4
 <div class="row">
@@ -7,95 +7,93 @@
7 7
     <form method="post" action="{{ url_for('preferences') }}" id="search_form">
8 8
     <fieldset>
9 9
         <legend>{{ _('Default categories') }}</legend>
10
-        <p>
11
-        {% include 'default/categories.html' %}
12
-        </p>
10
+        {% include 'courgette/categories.html' %}
13 11
     </fieldset>
14 12
     <fieldset>
15 13
         <legend>{{ _('Search language') }}</legend>
16 14
         <p>
17
-        <select name='language'>
18
-            <option value="all" {% if current_language == 'all' %}selected="selected"{% endif %}>{{ _('Automatic') }}</option>
19
-            {% for lang_id,lang_name,country_name in language_codes %}
20
-            <option value="{{ lang_id }}" {% if lang_id == current_language %}selected="selected"{% endif %}>{{ lang_name }} ({{ country_name }}) - {{ lang_id }}</option>
21
-            {% endfor %}
22
-        </select>
15
+            <select name='language'>
16
+                <option value="all" {% if current_language == 'all' %}selected="selected"{% endif %}>{{ _('Automatic') }}</option>
17
+                {% for lang_id,lang_name,country_name in language_codes %}
18
+                <option value="{{ lang_id }}" {% if lang_id == current_language %}selected="selected"{% endif %}>{{ lang_name }} ({{ country_name }}) - {{ lang_id }}</option>
19
+                {% endfor %}
20
+            </select>
23 21
         </p>
24 22
     </fieldset>
25 23
     <fieldset>
26 24
         <legend>{{ _('Interface language') }}</legend>
27 25
         <p>
28
-        <select name='locale'>
29
-            {% for locale_id,locale_name in locales.items() %}
30
-            <option value="{{ locale_id }}" {% if locale_id == current_locale %}selected="selected"{% endif %}>{{ locale_name }}</option>
31
-            {% endfor %}
32
-        </select>
26
+            <select name='locale'>
27
+                {% for locale_id,locale_name in locales.items() %}
28
+                <option value="{{ locale_id }}" {% if locale_id == current_locale %}selected="selected"{% endif %}>{{ locale_name }}</option>
29
+                {% endfor %}
30
+            </select>
33 31
         </p>
34 32
     </fieldset>
35 33
     <fieldset>
36 34
         <legend>{{ _('Autocomplete') }}</legend>
37 35
         <p>
38
-        <select name="autocomplete">
39
-            <option value=""> - </option>
40
-            {% for backend in autocomplete_backends %}
41
-            <option value="{{ backend }}" {% if backend == autocomplete %}selected="selected"{% endif %}>{{ backend }}</option>
42
-            {% endfor %}
43
-        </select>
36
+            <select name="autocomplete">
37
+                <option value=""> - </option>
38
+                {% for backend in autocomplete_backends %}
39
+                <option value="{{ backend }}" {% if backend == autocomplete %}selected="selected"{% endif %}>{{ backend }}</option>
40
+                {% endfor %}
41
+            </select>
44 42
         </p>
45 43
     </fieldset>
46 44
     <fieldset>
47 45
         <legend>{{ _('Method') }}</legend>
48 46
         <p>
49
-        <select name='method'>
50
-            <option value="POST" {% if method == 'POST' %}selected="selected"{% endif %}>POST</option>
51
-            <option value="GET" {% if method == 'GET' %}selected="selected"{% endif %}>GET</option>
52
-        </select>
47
+            <select name='method'>
48
+                <option value="POST" {% if method == 'POST' %}selected="selected"{% endif %}>POST</option>
49
+                <option value="GET" {% if method == 'GET' %}selected="selected"{% endif %}>GET</option>
50
+            </select>
53 51
         </p>
54 52
     </fieldset>
55 53
     <fieldset>
56 54
         <legend>{{ _('Themes') }}</legend>
57 55
         <p>
58
-        <select name="theme">
59
-            {% for name in themes %}
60
-            <option value="{{ name }}" {% if name == theme %}selected="selected"{% endif %}>{{ name }}</option>
61
-            {% endfor %}
62
-        </select>
56
+            <select name="theme">
57
+                {% for name in themes %}
58
+                <option value="{{ name }}" {% if name == theme %}selected="selected"{% endif %}>{{ name }}</option>
59
+                {% endfor %}
60
+            </select>
63 61
         </p>
64 62
     </fieldset>
65 63
     <fieldset>
66
-    <legend>{{ _('Currently used search engines') }}</legend>
67
-
68
-    <table>
69
-        <tr>
70
-            <th>{{ _('Engine name') }}</th>
71
-            <th>{{ _('Category') }}</th>
72
-            <th>{{ _('Allow') }} / {{ _('Block') }}</th>
73
-        </tr>
74
-    {% for (categ,search_engines) in categs %}
75
-        {% for search_engine in search_engines %}
64
+        <legend>{{ _('Currently used search engines') }}</legend>
76 65
 
77
-            {% if not search_engine.private %}
66
+        <table>
78 67
             <tr>
79
-                <td>{{ search_engine.name }} ({{ shortcuts[search_engine.name] }})</td>
80
-                <td>{{ _(categ) }}</td>
81
-                <td class="engine_checkbox">
82
-                    <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 %} />
83
-                    <label class="allow" for="engine_{{ categ }}_{{ search_engine.name|replace(' ', '_') }}">{{ _('Allow') }}</label>
84
-                    <label class="deny" for="engine_{{ categ }}_{{ search_engine.name|replace(' ', '_') }}">{{ _('Block') }}</label>
85
-                </td>
68
+                <th>{{ _('Engine name') }}</th>
69
+                <th>{{ _('Category') }}</th>
70
+                <th>{{ _('Allow') }} / {{ _('Block') }}</th>
86 71
             </tr>
87
-            {% endif %}
72
+        {% for (categ,search_engines) in categs %}
73
+            {% for search_engine in search_engines %}
74
+
75
+                {% if not search_engine.private %}
76
+                <tr>
77
+                    <td>{{ search_engine.name }} ({{ shortcuts[search_engine.name] }})</td>
78
+                    <td>{{ _(categ) }}</td>
79
+                    <td class="engine_checkbox">
80
+                        <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 %} />
81
+                        <label class="allow" for="engine_{{ categ|replace(' ', '_') }}_{{ search_engine.name|replace(' ', '_') }}">{{ _('Allow') }}</label>
82
+                        <label class="deny" for="engine_{{ categ|replace(' ', '_') }}_{{ search_engine.name|replace(' ', '_') }}">{{ _('Block') }}</label>
83
+                    </td>
84
+                </tr>
85
+                {% endif %}
86
+            {% endfor %}
88 87
         {% endfor %}
89
-    {% endfor %}
90
-    </table>
88
+        </table>
91 89
     </fieldset>
92 90
     <p class="small_font">{{ _('These settings are stored in your cookies, this allows us not to store this data about you.') }}
93
-    <br />
94
-    {{ _("These cookies serve your sole convenience, we don't use these cookies to track you.") }}
91
+        <br />
92
+        {{ _("These cookies serve your sole convenience, we don't use these cookies to track you.") }}
95 93
     </p>
96 94
 
97 95
     <input type="submit" value="{{ _('save') }}" />
98
-	<div class="right preferences_back"><a href="{{ url_for('index') }}">{{ _('back') }}</a></div>
96
+    <div class="right preferences_back"><a href="{{ url_for('index') }}">{{ _('back') }}</a></div>
99 97
     </form>    
100 98
 </div>
101
-{% endblock %}
99
+{% endblock %}

+ 6
- 6
searx/templates/courgette/result_templates/code.html 查看文件

@@ -1,9 +1,9 @@
1 1
 <div class="result {{ result.class }}">
2
-    <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>
3
-    <p class="url">{{ result.pretty_url }} <a class="cache_link" href="https://web.archive.org/web/{{ result.url }}">cached</a></p>
4
-    {% if result.publishedDate %}<p class="published_date">{{ result.publishedDate }}</p>{% endif %}
2
+    <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>
3
+    {% if result.publishedDate %}<span class="published_date">{{ result.publishedDate }}</span>{% endif %}
5 4
     <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>
6
-    {% if result.repository %}<p class="result-content"><a href="{{ result.repository|safe }}">{{ result.repository }}</a></p>{% endif %}
7
-
5
+    {% if result.repository %}<p class="content"><a href="{{ result.repository|safe }}">{{ result.repository }}</a></p>{% endif %}
8 6
     {{ result.codelines|code_highlighter(result.code_language)|safe }}
9
-</div>
7
+
8
+    <p class="url">{{ result.pretty_url }}</p>
9
+</div>

+ 9
- 9
searx/templates/courgette/result_templates/default.html 查看文件

@@ -1,13 +1,13 @@
1 1
 <div class="result {{ result.class }}">
2 2
 
3
-  {% if "icon_"~result.engine~".ico" in favicons %}
3
+    {% if "icon_"~result.engine~".ico" in favicons %}
4 4
     <img width="14" height="14" class="favicon" src="{{ url_for('static', filename='img/icons/icon_'+result.engine+'.ico') }}" alt="{{result.engine}}" />
5
-  {% endif %}
5
+    {% endif %}
6 6
 
7
-  <div>
8
-    <h3 class="result_title"><a href="{{ result.url }}">{{ result.title|safe }}</a></h3>
9
-	{% if result.publishedDate %}<p class="published_date">{{ result.publishedDate }}</p>{% endif %}
10
-    <p class="content">{% if result.content %}{{ result.content|safe }}<br />{% endif %}</p>
11
-    <p class="url">{{ result.pretty_url }}</p>
12
-  </div>
13
-</div>
7
+    <div>
8
+        <h3 class="result_title"><a href="{{ result.url }}">{{ result.title|safe }}</a></h3>
9
+        {% if result.publishedDate %}<span class="published_date">{{ result.publishedDate }}</span>{% endif %}
10
+        <p class="content">{% if result.content %}{{ result.content|safe }}<br />{% endif %}</p>
11
+        <p class="url">{{ result.pretty_url }}</p>
12
+    </div>
13
+</div>

+ 2
- 2
searx/templates/courgette/result_templates/images.html 查看文件

@@ -1,6 +1,6 @@
1 1
 <div class="image_result">
2 2
     <p>
3 3
         <a href="{{ result.img_src }}"><img src="{{ result.img_src }}" title="{{ result.title|striptags }}" alt="{{ result.title|striptags }}"/></a>
4
-        <span class="url"><a href="{{ result.url }}" class="small_font">original context</a></span>
4
+        <span class="url"><a href="{{ result.url }}" class="small_font">{{ _('original context') }}</a></span>
5 5
     </p>
6
-</div>
6
+</div>

+ 10
- 10
searx/templates/courgette/result_templates/map.html 查看文件

@@ -1,13 +1,13 @@
1 1
 <div class="result {{ result.class }}">
2 2
 
3
-  {% if "icon_"~result.engine~".ico" in favicons %}
4
-  <img width="14" height="14" class="favicon" src="{{ url_for('static', filename='img/icons/icon_'+result.engine+'.ico') }}" alt="{{result.engine}}" />
5
-  {% endif %}
3
+    {% if "icon_"~result.engine~".ico" in favicons %}
4
+    <img width="14" height="14" class="favicon" src="{{ url_for('static', filename='img/icons/icon_'+result.engine+'.ico') }}" alt="{{result.engine}}" />
5
+    {% endif %}
6 6
 
7
-  <div>
8
-    <h3 class="result_title"><a href="{{ result.url }}">{{ result.title|safe }}</a></h3>
9
-	{% if result.publishedDate %}<p class="published_date">{{ result.publishedDate }}</p>{% endif %}
10
-    <p class="content">{% if result.content %}{{ result.content|safe }}<br />{% endif %}</p>
11
-    <p class="url">{{ result.pretty_url }}</p>
12
-  </div>
13
-</div>
7
+    <div>
8
+        <h3 class="result_title"><a href="{{ result.url }}">{{ result.title|safe }}</a></h3>
9
+        {% if result.publishedDate %}<span class="published_date">{{ result.publishedDate }}</span>{% endif %}
10
+        <p class="content">{% if result.content %}{{ result.content|safe }}<br />{% endif %}</p>
11
+        <p class="url">{{ result.pretty_url }}</p>
12
+    </div>
13
+</div>

+ 10
- 4
searx/templates/courgette/result_templates/torrent.html 查看文件

@@ -1,7 +1,13 @@
1 1
 <div class="result torrent_result">
2
+    {% if "icon_"~result.engine~".ico" in favicons %}
3
+    <img width="14" height="14" class="favicon" src="{{ url_for('static', filename='img/icons/icon_'+result.engine+'.ico') }}" alt="{{result.engine}}" />
4
+    {% endif %}
2 5
     <h3 class="result_title"><a href="{{ result.url }}">{{ result.title|safe }}</a></h3>
3
-    {% if result.content %}<p class="content">{{ result.content|safe }}</p>{% endif %}
4
-    <p class="stats">Seed: {{ result.seed }}, Leech: {{ result.leech }}</p>
5
-    <p><a href="{{ result.magnetlink }}" class="magnetlink">magnet link</a></p>
6
+    {% if result.content %}<span class="content">{{ result.content|safe }}</span><br />{% endif %}
7
+    <span class="stats">{{ _('Seeder') }} : {{ result.seed }}, {{ _('Leecher') }} : {{ result.leech }}</span><br />
8
+    <span>
9
+        {% if result.magnetlink %}<a href="{{ result.magnetlink }}" class="magnetlink">{{ _('magnet link') }}</a>{% endif %} 
10
+        {% if result.torrentfile %}<a href="{{ result.torrentfile }}" class="torrentfile">{{ _('torrent file') }}</a>{% endif %}
11
+    </span>
6 12
     <p class="url">{{ result.pretty_url }}</p>
7
-</div>
13
+</div>

+ 8
- 8
searx/templates/courgette/result_templates/videos.html 查看文件

@@ -1,10 +1,10 @@
1 1
 <div class="result">
2
-  {% if "icon_"~result.engine~".ico" in favicons %}
3
-      <img width="14" height="14" class="favicon" src="{{ url_for('static', filename='img/icons/icon_'+result.engine+'.ico') }}" alt="{{result.engine}}" />
4
-  {% endif %}
2
+	{% if "icon_"~result.engine~".ico" in favicons %}
3
+    <img width="14" height="14" class="favicon" src="{{ url_for('static', filename='img/icons/icon_'+result.engine+'.ico') }}" alt="{{result.engine}}" />
4
+	{% endif %}
5 5
 
6
-      <h3 class="result_title"><a href="{{ result.url }}">{{ result.title|safe }}</a></h3>
7
-      {% if result.publishedDate %}<p class="published_date">{{ result.publishedDate }}</p>{% endif %}
8
-      <a href="{{ result.url }}"><img width="400" src="{{ result.thumbnail }}" title="{{ result.title|striptags }}" alt="{{ result.title|striptags }}"/></a>
9
-      <p class="url">{{ result.url }}</p>
10
-</div>
6
+    <h3 class="result_title"><a href="{{ result.url }}">{{ result.title|safe }}</a></h3>
7
+    {% if result.publishedDate %}<span class="published_date">{{ result.publishedDate }}</span><br />{% endif %}
8
+    <a href="{{ result.url }}"><img width="400" src="{{ result.thumbnail }}" title="{{ result.title|striptags }}" alt="{{ result.title|striptags }}"/></a>
9
+    <p class="url">{{ result.pretty_url }}</p>
10
+</div>

+ 38
- 29
searx/templates/courgette/results.html 查看文件

@@ -1,9 +1,10 @@
1
-{% extends "default/base.html" %}
1
+{% extends "courgette/base.html" %}
2 2
 {% block title %}{{ q }} - {% endblock %}
3
+{% block meta %}<link rel="alternate" type="application/rss+xml" title="Searx search: {{ q }}" href="{{ url_for('index') }}?q={{ q|urlencode }}&amp;format=rss&amp;{% for category in selected_categories %}category_{{ category }}=1&amp;{% endfor %}pageno={{ pageno }}">{% endblock %}
3 4
 {% block content %}
4
-<div class="right"><a href="{{ url_for('preferences') }}" id="preferences"><span>preferences</span></a></div>
5
+<div class="right"><a href="{{ url_for('preferences') }}" id="preferences"><span>{{ _('preferences') }}</span></a></div>
5 6
 <div class="small search center">
6
-    {% include 'default/search.html' %}
7
+    {% include 'courgette/search.html' %}
7 8
 </div>
8 9
 <div id="results">
9 10
     <div id="sidebar">
@@ -13,22 +14,30 @@
13 14
             <input type="text" value="{{ base_url }}?q={{ q|urlencode }}&amp;pageno={{ pageno }}{% if selected_categories %}&amp;category_{{ selected_categories|join("&category_")|replace(' ','+') }}{% endif %}" readonly />
14 15
         </div>
15 16
         <div id="apis">
16
-        {{ _('Download results') }}
17
-        {% for output_type in ('csv', 'json', 'rss') %}
18
-        <form method="{{ method or 'POST' }}" action="{{ url_for('index') }}">
19
-            <div class="left">
20
-            <input type="hidden" name="q" value="{{ q }}" />
21
-            <input type="hidden" name="format" value="{{ output_type }}" />
22
-            {% for category in selected_categories %}
23
-            <input type="hidden" name="category_{{ category }}" value="1"/>
17
+            {{ _('Download results') }}
18
+            {% for output_type in ('csv', 'json', 'rss') %}
19
+            <form method="{{ method or 'POST' }}" action="{{ url_for('index') }}">
20
+                <div class="left">
21
+                    <input type="hidden" name="q" value="{{ q }}" />
22
+                    <input type="hidden" name="format" value="{{ output_type }}" />
23
+                    {% for category in selected_categories %}
24
+                    <input type="hidden" name="category_{{ category }}" value="1"/>
25
+                    {% endfor %}
26
+                    <input type="hidden" name="pageno" value="{{ pageno }}" />
27
+                    <input type="submit" value="{{ output_type }}" />
28
+                </div>
29
+            </form>
24 30
             {% endfor %}
25
-            <input type="hidden" name="pageno" value="{{ pageno }}" />
26
-            <input type="submit" value="{{ output_type }}" />
27
-            </div>
28
-        </form>
29
-        {% endfor %}
30 31
         </div>
31 32
     </div>
33
+    
34
+    {% if answers %}
35
+    <div id="answers" class=""><span>{{ _('Answers') }}</span>
36
+        {% for answer in answers %}
37
+        <span>{{ answer }}</span>
38
+        {% endfor %}
39
+    </div>
40
+    {% endif %}
32 41
 
33 42
     {% if suggestions %}
34 43
     <div id="suggestions"><span>{{ _('Suggestions') }}</span>
@@ -54,26 +63,26 @@
54 63
         {% if pageno > 1 %}
55 64
             <form method="{{ method or 'POST' }}" action="{{ url_for('index') }}">
56 65
                 <div class="left">
57
-                <input type="hidden" name="q" value="{{ q }}" />
58
-                {% for category in selected_categories %}
59
-                <input type="hidden" name="category_{{ category }}" value="1"/>
60
-                {% endfor %}
61
-                <input type="hidden" name="pageno" value="{{ pageno-1 }}" />
62
-                <input type="submit" value="<< {{ _('previous page') }}" />
66
+                    <input type="hidden" name="q" value="{{ q }}" />
67
+                    {% for category in selected_categories %}
68
+                    <input type="hidden" name="category_{{ category }}" value="1"/>
69
+                    {% endfor %}
70
+                    <input type="hidden" name="pageno" value="{{ pageno-1 }}" />
71
+                    <input type="submit" value="<< {{ _('previous page') }}" />
63 72
                 </div>
64 73
             </form>
65 74
         {% endif %}
66 75
         <form method="{{ method or 'POST' }}" action="{{ url_for('index') }}">
67 76
             <div class="left">
68
-            {% for category in selected_categories %}
69
-            <input type="hidden" name="category_{{ category }}" value="1"/>
70
-            {% endfor %}
71
-            <input type="hidden" name="q" value="{{ q }}" />
72
-            <input type="hidden" name="pageno" value="{{ pageno+1 }}" />
73
-            <input type="submit" value="{{ _('next page') }} >>" />
77
+                {% for category in selected_categories %}
78
+                <input type="hidden" name="category_{{ category }}" value="1"/>
79
+                {% endfor %}
80
+                <input type="hidden" name="q" value="{{ q }}" />
81
+                <input type="hidden" name="pageno" value="{{ pageno+1 }}" />
82
+                <input type="submit" value="{{ _('next page') }} >>" />
74 83
             </div>
75 84
         </form>
76 85
     </div>
77 86
     {% endif %}
78 87
 </div>
79
-{% endblock %}
88
+{% endblock %}

+ 6
- 6
searx/templates/courgette/search.html 查看文件

@@ -1,7 +1,7 @@
1 1
 <form method="{{ method or 'POST' }}" action="{{ url_for('index') }}" id="search_form">
2
-  <div id="search_wrapper">
3
-    <input type="text" placeholder="{{ _('Search for...') }}" id="q" class="q" name="q" tabindex="1" autocomplete="off" {% if q %}value="{{ q }}"{% endif %}/>
4
-    <input type="submit" value="search" id="search_submit" />
5
-  </div>
6
-  {% include 'default/categories.html' %}
7
-</form>
2
+    <div id="search_wrapper">
3
+        <input type="text" placeholder="{{ _('Search for...') }}" id="q" class="q" name="q" tabindex="1" autocomplete="off" {% if q %}value="{{ q }}"{% endif %}/>
4
+        <input type="submit" value="search" id="search_submit" />
5
+    </div>
6
+    {% include 'courgette/categories.html' %}
7
+</form>

+ 4
- 4
searx/templates/courgette/stats.html 查看文件

@@ -1,4 +1,4 @@
1
-{% extends "default/base.html" %}
1
+{% extends "courgette/base.html" %}
2 2
 {% block head %} {% endblock %}
3 3
 {% block content %}
4 4
 <h2>{{ _('Engine stats') }}</h2>
@@ -6,8 +6,8 @@
6 6
 {% for stat_name,stat_category in stats %}
7 7
 <div class="left">
8 8
     <table>
9
-        <tr colspan="3">
10
-            <th>{{ stat_name }}</th>
9
+        <tr>
10
+            <th colspan="3">{{ stat_name }}</th>
11 11
         </tr>
12 12
         {% for engine in stat_category %}
13 13
         <tr>
@@ -19,4 +19,4 @@
19 19
     </table>
20 20
 </div>
21 21
 {% endfor %}
22
-{% endblock %}
22
+{% endblock %}