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 |
2
searx/static/themes/oscar/css/oscar.min.css
vendored
@ -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}
|
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}
|
@ -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>
|
||||||
</html>
|
</body>
|
||||||
|
</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,3 +1,3 @@
|
|||||||
<a href="https://github.com/asciimoo/searx" class="github">
|
<a href="https://github.com/asciimoo/searx" class="github">
|
||||||
<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"/>
|
<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"/>
|
||||||
</a>
|
</a>
|
@ -1,12 +1,12 @@
|
|||||||
{% 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>
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
{% endblock %}
|
{% endblock %}
|
@ -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 }}
|
||||||
</div>
|
|
||||||
|
<p class="url">{{ result.pretty_url }}</p>
|
||||||
|
</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,22 +14,30 @@
|
|||||||
<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>
|
||||||
@ -54,26 +63,26 @@
|
|||||||
{% 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>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</div>
|
</div>
|
||||||
{% endblock %}
|
{% endblock %}
|
@ -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>
|
||||||
@ -19,4 +19,4 @@
|
|||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
{% endblock %}
|
{% endblock %}
|