initial commit to seperate repo
This commit is contained in:
commit
1a020ca68b
1302 changed files with 201261 additions and 0 deletions
23
themes/bootstrap/README.md
Normal file
23
themes/bootstrap/README.md
Normal file
|
|
@ -0,0 +1,23 @@
|
|||
A "website-done-with-bootstrap" theme, so to speak.
|
||||
|
||||
Has a fixed navigation bar at top that displays the NAVIGATION_LINKS
|
||||
setting and supports nested menus.
|
||||
|
||||
This theme is used in Nikola's website: http://getnikola.com
|
||||
|
||||
Important: To fit in the bootstrap navigation bar, the search form needs the
|
||||
navbar-form and pull-left CSS classes applied. Here is an example with Nikola's
|
||||
default duckduckgo search form:
|
||||
|
||||
SEARCH_FORM = """
|
||||
<!-- Custom search -->
|
||||
<form method="get" id="search" action="http://duckduckgo.com/" class="navbar-form pull-left">
|
||||
<input type="hidden" name="sites" value="%s"/>
|
||||
<input type="hidden" name="k8" value="#444444"/>
|
||||
<input type="hidden" name="k9" value="#D51920"/>
|
||||
<input type="hidden" name="kt" value="h"/>
|
||||
<input type="text" name="q" maxlength="255" placeholder="Search…" class="span2" style="margin-top: 4px;"/>
|
||||
<input type="submit" value="DuckDuckGo Search" style="visibility: hidden;" />
|
||||
</form>
|
||||
<!-- End of custom search -->
|
||||
""" % SITE_URL
|
||||
1109
themes/bootstrap/assets/css/bootstrap-responsive.css
vendored
Normal file
1109
themes/bootstrap/assets/css/bootstrap-responsive.css
vendored
Normal file
File diff suppressed because it is too large
Load diff
9
themes/bootstrap/assets/css/bootstrap-responsive.min.css
vendored
Normal file
9
themes/bootstrap/assets/css/bootstrap-responsive.min.css
vendored
Normal file
File diff suppressed because one or more lines are too long
6167
themes/bootstrap/assets/css/bootstrap.css
vendored
Normal file
6167
themes/bootstrap/assets/css/bootstrap.css
vendored
Normal file
File diff suppressed because it is too large
Load diff
9
themes/bootstrap/assets/css/bootstrap.min.css
vendored
Normal file
9
themes/bootstrap/assets/css/bootstrap.min.css
vendored
Normal file
File diff suppressed because one or more lines are too long
45
themes/bootstrap/assets/css/colorbox.css
Normal file
45
themes/bootstrap/assets/css/colorbox.css
Normal file
|
|
@ -0,0 +1,45 @@
|
|||
/*
|
||||
Colorbox Core Style:
|
||||
The following CSS is consistent between example themes and should not be altered.
|
||||
*/
|
||||
#colorbox, #cboxOverlay, #cboxWrapper{position:absolute; top:0; left:0; z-index:9999; overflow:hidden;}
|
||||
#cboxWrapper {max-width:none;}
|
||||
#cboxOverlay{position:fixed; width:100%; height:100%;}
|
||||
#cboxMiddleLeft, #cboxBottomLeft{clear:left;}
|
||||
#cboxContent{position:relative;}
|
||||
#cboxLoadedContent{overflow:auto; -webkit-overflow-scrolling: touch;}
|
||||
#cboxTitle{margin:0;}
|
||||
#cboxLoadingOverlay, #cboxLoadingGraphic{position:absolute; top:0; left:0; width:100%; height:100%;}
|
||||
#cboxPrevious, #cboxNext, #cboxClose, #cboxSlideshow{cursor:pointer;}
|
||||
.cboxPhoto{float:left; margin:auto; border:0; display:block; max-width:none; -ms-interpolation-mode:bicubic;}
|
||||
.cboxIframe{width:100%; height:100%; display:block; border:0; padding:0; margin:0;}
|
||||
#colorbox, #cboxContent, #cboxLoadedContent{box-sizing:content-box; -moz-box-sizing:content-box; -webkit-box-sizing:content-box;}
|
||||
|
||||
/*
|
||||
User Style:
|
||||
Change the following styles to modify the appearance of Colorbox. They are
|
||||
ordered & tabbed in a way that represents the nesting of the generated HTML.
|
||||
*/
|
||||
#cboxOverlay{background:#000; opacity: 0.9; filter: alpha(opacity = 90);}
|
||||
#colorbox{outline:0;}
|
||||
#cboxContent{margin-top:20px;background:#000;}
|
||||
.cboxIframe{background:#fff;}
|
||||
#cboxError{padding:50px; border:1px solid #ccc;}
|
||||
#cboxLoadedContent{border:5px solid #000; background:#fff;}
|
||||
#cboxTitle{position:absolute; top:-20px; left:0; color:#ccc;}
|
||||
#cboxCurrent{position:absolute; top:-20px; right:0px; color:#ccc;}
|
||||
#cboxLoadingGraphic{background:url(images/loading.gif) no-repeat center center;}
|
||||
|
||||
/* these elements are buttons, and may need to have additional styles reset to avoid unwanted base styles */
|
||||
#cboxPrevious, #cboxNext, #cboxSlideshow, #cboxClose {border:0; padding:0; margin:0; overflow:visible; width:auto; background:none; }
|
||||
|
||||
/* avoid outlines on :active (mouseclick), but preserve outlines on :focus (tabbed navigating) */
|
||||
#cboxPrevious:active, #cboxNext:active, #cboxSlideshow:active, #cboxClose:active {outline:0;}
|
||||
|
||||
#cboxSlideshow{position:absolute; top:-20px; right:90px; color:#fff;}
|
||||
#cboxPrevious{position:absolute; top:50%; left:5px; margin-top:-32px; background:url(images/controls.png) no-repeat top left; width:28px; height:65px; text-indent:-9999px;}
|
||||
#cboxPrevious:hover{background-position:bottom left;}
|
||||
#cboxNext{position:absolute; top:50%; right:5px; margin-top:-32px; background:url(images/controls.png) no-repeat top right; width:28px; height:65px; text-indent:-9999px;}
|
||||
#cboxNext:hover{background-position:bottom right;}
|
||||
#cboxClose{position:absolute; top:5px; right:5px; display:block; background:url(images/controls.png) no-repeat top center; width:38px; height:19px; text-indent:-9999px;}
|
||||
#cboxClose:hover{background-position:bottom center;}
|
||||
BIN
themes/bootstrap/assets/css/images/controls.png
Normal file
BIN
themes/bootstrap/assets/css/images/controls.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 1.6 KiB |
BIN
themes/bootstrap/assets/css/images/loading.gif
Normal file
BIN
themes/bootstrap/assets/css/images/loading.gif
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 6.1 KiB |
201
themes/bootstrap/assets/css/theme.css
Normal file
201
themes/bootstrap/assets/css/theme.css
Normal file
|
|
@ -0,0 +1,201 @@
|
|||
body {
|
||||
padding-top: 60px;
|
||||
}
|
||||
@media (max-width: 979px) {
|
||||
body {
|
||||
padding-top: 0px;
|
||||
}
|
||||
}
|
||||
#container {
|
||||
width: 960px;
|
||||
margin: 50 auto;
|
||||
}
|
||||
|
||||
#contentcolumn {
|
||||
max-width: 760px;
|
||||
}
|
||||
#q {
|
||||
width: 150px;
|
||||
}
|
||||
|
||||
img {
|
||||
max-width: 90%;
|
||||
}
|
||||
|
||||
.postbox {
|
||||
border-bottom: 2px solid darkgrey;
|
||||
margin-bottom: 12px;
|
||||
}
|
||||
|
||||
.footerbox {padding: 15px; text-align: center; margin-bottom: 15px;}
|
||||
|
||||
td.label {
|
||||
/* Issue #290 */
|
||||
background-color: inherit;
|
||||
}
|
||||
|
||||
.footnote-reference {
|
||||
/* Issue 290 */
|
||||
vertical-align: super;
|
||||
font-size: xx-small;
|
||||
}
|
||||
|
||||
.caption {
|
||||
/* Issue 292 */
|
||||
text-align: center;
|
||||
padding-top: 1em;
|
||||
}
|
||||
|
||||
div.figure > img,
|
||||
div.figure > a > img {
|
||||
/* Issue 292 */
|
||||
display: block;
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
}
|
||||
|
||||
div.sidebar, div.admonition, div.attention, div.caution, div.danger, div.error, div.hint, div.important, div.note, div.tip, div.warning {
|
||||
/* Issue 277 */
|
||||
border: 1px solid #aaa;
|
||||
border-radius: 5px;
|
||||
}
|
||||
|
||||
blockquote p, blockquote {
|
||||
font-size: 17.5px;
|
||||
font-weight: 300;
|
||||
line-height: 1.25;
|
||||
}
|
||||
|
||||
ul.bricks > li {
|
||||
display: inline;
|
||||
background-color: lightblue;
|
||||
padding: 8px;
|
||||
border-radius: 5px;
|
||||
line-height: 3;
|
||||
white-space:nowrap;
|
||||
margin: 3px;
|
||||
}
|
||||
|
||||
ul.breadcrumb > li:before {
|
||||
content: " / ";
|
||||
}
|
||||
|
||||
pre, pre code {
|
||||
white-space: pre;
|
||||
word-wrap: normal;
|
||||
overflow: auto;
|
||||
}
|
||||
|
||||
article.post-micro {
|
||||
font-family: Georgia, 'Times New Roman', Times, serif;
|
||||
font-size: 1.5em;
|
||||
}
|
||||
|
||||
/* fix anchors for headers */
|
||||
h1, h2, h3 {
|
||||
margin-top: -40px;
|
||||
padding-top: 60px;
|
||||
}
|
||||
|
||||
h4, h5, h6 {
|
||||
margin-top: -50px;
|
||||
padding-top: 60px;
|
||||
}
|
||||
|
||||
h1.panel-title, h2.panel-title, h3.panel-title, h4.panel-title, h5.panel-title, h6.panel-title {
|
||||
margin-top: 0;
|
||||
margin-bottom: 0;
|
||||
padding-top: 0;
|
||||
}
|
||||
|
||||
.image-block {
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
.flowr_row {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.tags {
|
||||
padding-left: 0;
|
||||
margin-left: -5px;
|
||||
list-style: none;
|
||||
text-align: center;
|
||||
|
||||
}
|
||||
|
||||
.tags > li {
|
||||
display: inline-block;
|
||||
min-width: 10px;
|
||||
padding: 3px 7px;
|
||||
font-size: 12px;
|
||||
font-weight: bold;
|
||||
line-height: 1;
|
||||
color: #fff;
|
||||
text-align: center;
|
||||
white-space: nowrap;
|
||||
vertical-align: baseline;
|
||||
background-color: #999;
|
||||
border-radius: 10px;
|
||||
}
|
||||
|
||||
.tags > li a {
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
.metadata p:before,
|
||||
.postlist .listdate:before {
|
||||
content: " — ";
|
||||
}
|
||||
|
||||
.metadata p:first-of-type:before {
|
||||
content: "";
|
||||
}
|
||||
|
||||
.metadata p {
|
||||
display: inline;
|
||||
}
|
||||
|
||||
.posttranslations h3 {
|
||||
display: inline;
|
||||
font-size: 1em;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.posttranslations h3:last-child {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.entry-content {
|
||||
margin-top: 1em;
|
||||
}
|
||||
|
||||
.navbar .brand {
|
||||
padding: 0 20px;
|
||||
}
|
||||
|
||||
.navbar .brand #blog-title {
|
||||
padding: 10px 0;
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
.sr-only {
|
||||
position: absolute;
|
||||
width: 1px;
|
||||
height: 1px;
|
||||
padding: 0;
|
||||
margin: -1px;
|
||||
overflow: hidden;
|
||||
clip: rect(0, 0, 0, 0);
|
||||
border: 0;
|
||||
}
|
||||
|
||||
.sr-only-focusable:active,
|
||||
.sr-only-focusable:focus {
|
||||
position: static;
|
||||
width: auto;
|
||||
height: auto;
|
||||
margin: 0;
|
||||
overflow: visible;
|
||||
clip: auto;
|
||||
}
|
||||
BIN
themes/bootstrap/assets/img/glyphicons-halflings-white.png
Normal file
BIN
themes/bootstrap/assets/img/glyphicons-halflings-white.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 8.6 KiB |
BIN
themes/bootstrap/assets/img/glyphicons-halflings.png
Normal file
BIN
themes/bootstrap/assets/img/glyphicons-halflings.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 12 KiB |
2280
themes/bootstrap/assets/js/bootstrap.js
vendored
Normal file
2280
themes/bootstrap/assets/js/bootstrap.js
vendored
Normal file
File diff suppressed because it is too large
Load diff
6
themes/bootstrap/assets/js/bootstrap.min.js
vendored
Normal file
6
themes/bootstrap/assets/js/bootstrap.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
|
|
@ -0,0 +1,15 @@
|
|||
/*
|
||||
jQuery Colorbox language configuration
|
||||
language: Arabic (ar)
|
||||
translated by: A.Rhman Sayes
|
||||
*/
|
||||
jQuery.extend(jQuery.colorbox.settings, {
|
||||
current: "الصورة {current} من {total}",
|
||||
previous: "السابق",
|
||||
next: "التالي",
|
||||
close: "إغلاق",
|
||||
xhrError: "حدث خطأ أثناء تحميل المحتوى.",
|
||||
imgError: "حدث خطأ أثناء تحميل الصورة.",
|
||||
slideshowStart: "تشغيل العرض",
|
||||
slideshowStop: "إيقاف العرض"
|
||||
});
|
||||
|
|
@ -0,0 +1,16 @@
|
|||
/*
|
||||
jQuery Colorbox language configuration
|
||||
language: Bulgarian (bg)
|
||||
translated by: Marian M.Bida
|
||||
site: webmax.bg
|
||||
*/
|
||||
jQuery.extend(jQuery.colorbox.settings, {
|
||||
current: "изображение {current} от {total}",
|
||||
previous: "предишна",
|
||||
next: "следваща",
|
||||
close: "затвори",
|
||||
xhrError: "Неуспешно зареждане на съдържанието.",
|
||||
imgError: "Неуспешно зареждане на изображението.",
|
||||
slideshowStart: "пусни слайд-шоу",
|
||||
slideshowStop: "спри слайд-шоу"
|
||||
});
|
||||
|
|
@ -0,0 +1,13 @@
|
|||
/*
|
||||
jQuery Colorbox language configuration
|
||||
language: Catala (ca)
|
||||
translated by: eduard salla
|
||||
*/
|
||||
jQuery.extend(jQuery.colorbox.settings, {
|
||||
current: "Imatge {current} de {total}",
|
||||
previous: "Anterior",
|
||||
next: "Següent",
|
||||
close: "Tancar",
|
||||
xhrError: "Error en la càrrega del contingut.",
|
||||
imgError: "Error en la càrrega de la imatge."
|
||||
});
|
||||
|
|
@ -0,0 +1,16 @@
|
|||
/*
|
||||
jQuery Colorbox language configuration
|
||||
language: Czech (cs)
|
||||
translated by: Filip Novak
|
||||
site: mame.napilno.cz/filip-novak
|
||||
*/
|
||||
jQuery.extend(jQuery.colorbox.settings, {
|
||||
current: "{current}. obrázek z {total}",
|
||||
previous: "Předchozí",
|
||||
next: "Následující",
|
||||
close: "Zavřít",
|
||||
xhrError: "Obsah se nepodařilo načíst.",
|
||||
imgError: "Obrázek se nepodařilo načíst.",
|
||||
slideshowStart: "Spustit slideshow",
|
||||
slideshowStop: "Zastavit slideshow"
|
||||
});
|
||||
|
|
@ -0,0 +1,16 @@
|
|||
/*
|
||||
jQuery Colorbox language configuration
|
||||
language: Danish (da)
|
||||
translated by: danieljuhl
|
||||
site: danieljuhl.dk
|
||||
*/
|
||||
jQuery.extend(jQuery.colorbox.settings, {
|
||||
current: "Billede {current} af {total}",
|
||||
previous: "Forrige",
|
||||
next: "Næste",
|
||||
close: "Luk",
|
||||
xhrError: "Indholdet fejlede i indlæsningen.",
|
||||
imgError: "Billedet fejlede i indlæsningen.",
|
||||
slideshowStart: "Start slideshow",
|
||||
slideshowStop: "Stop slideshow"
|
||||
});
|
||||
|
|
@ -0,0 +1,15 @@
|
|||
/*
|
||||
jQuery Colorbox language configuration
|
||||
language: German (de)
|
||||
translated by: wallenium
|
||||
*/
|
||||
jQuery.extend(jQuery.colorbox.settings, {
|
||||
current: "Bild {current} von {total}",
|
||||
previous: "Zurück",
|
||||
next: "Vor",
|
||||
close: "Schließen",
|
||||
xhrError: "Dieser Inhalt konnte nicht geladen werden.",
|
||||
imgError: "Dieses Bild konnte nicht geladen werden.",
|
||||
slideshowStart: "Slideshow starten",
|
||||
slideshowStop: "Slideshow anhalten"
|
||||
});
|
||||
|
|
@ -0,0 +1,13 @@
|
|||
/*
|
||||
jQuery Colorbox language configuration
|
||||
language: Spanish (es)
|
||||
translated by: migolo
|
||||
*/
|
||||
jQuery.extend(jQuery.colorbox.settings, {
|
||||
current: "Imagen {current} de {total}",
|
||||
previous: "Anterior",
|
||||
next: "Siguiente",
|
||||
close: "Cerrar",
|
||||
xhrError: "Error en la carga del contenido.",
|
||||
imgError: "Error en la carga de la imagen."
|
||||
});
|
||||
|
|
@ -0,0 +1,15 @@
|
|||
/*
|
||||
jQuery Colorbox language configuration
|
||||
language: Estonian (et)
|
||||
translated by: keevitaja
|
||||
*/
|
||||
jQuery.extend(jQuery.colorbox.settings, {
|
||||
current: "{current}/{total}",
|
||||
previous: "eelmine",
|
||||
next: "järgmine",
|
||||
close: "sulge",
|
||||
xhrError: "Sisu ei õnnestunud laadida.",
|
||||
imgError: "Pilti ei õnnestunud laadida.",
|
||||
slideshowStart: "Käivita slaidid",
|
||||
slideshowStop: "Peata slaidid"
|
||||
});
|
||||
|
|
@ -0,0 +1,18 @@
|
|||
/*
|
||||
jQuery Colorbox language configuration
|
||||
language: Persian (Farsi)
|
||||
translated by: Mahdi Jaberzadeh Ansari (MJZSoft)
|
||||
site: www.mjzsoft.ir
|
||||
email: mahdijaberzadehansari (at) yahoo.co.uk
|
||||
Please note : Persian language is right to left like arabic.
|
||||
*/
|
||||
jQuery.extend(jQuery.colorbox.settings, {
|
||||
current: "تصویر {current} از {total}",
|
||||
previous: "قبلی",
|
||||
next: "بعدی",
|
||||
close: "بستن",
|
||||
xhrError: "متاسفانه محتویات مورد نظر قابل نمایش نیست.",
|
||||
imgError: "متاسفانه بارگذاری این عکس با مشکل مواجه شده است.",
|
||||
slideshowStart: "آغاز نمایش خودکار",
|
||||
slideshowStop: "توقف نمایش خودکار"
|
||||
});
|
||||
|
|
@ -0,0 +1,15 @@
|
|||
/*
|
||||
jQuery Colorbox language configuration
|
||||
language: Finnish (fi)
|
||||
translated by: Mikko
|
||||
*/
|
||||
jQuery.extend(jQuery.colorbox.settings, {
|
||||
current: "Kuva {current} / {total}",
|
||||
previous: "Edellinen",
|
||||
next: "Seuraava",
|
||||
close: "Sulje",
|
||||
xhrError: "Sisällön lataaminen epäonnistui.",
|
||||
imgError: "Kuvan lataaminen epäonnistui.",
|
||||
slideshowStart: "Aloita kuvaesitys.",
|
||||
slideshowStop: "Lopeta kuvaesitys."
|
||||
});
|
||||
|
|
@ -0,0 +1,15 @@
|
|||
/*
|
||||
jQuery Colorbox language configuration
|
||||
language: French (fr)
|
||||
translated by: oaubert
|
||||
*/
|
||||
jQuery.extend(jQuery.colorbox.settings, {
|
||||
current: "image {current} sur {total}",
|
||||
previous: "précédente",
|
||||
next: "suivante",
|
||||
close: "fermer",
|
||||
xhrError: "Impossible de charger ce contenu.",
|
||||
imgError: "Impossible de charger cette image.",
|
||||
slideshowStart: "démarrer la présentation",
|
||||
slideshowStop: "arrêter la présentation"
|
||||
});
|
||||
|
|
@ -0,0 +1,13 @@
|
|||
/*
|
||||
jQuery Colorbox language configuration
|
||||
language: Galician (gl)
|
||||
translated by: donatorouco
|
||||
*/
|
||||
jQuery.extend(jQuery.colorbox.settings, {
|
||||
current: "Imaxe {current} de {total}",
|
||||
previous: "Anterior",
|
||||
next: "Seguinte",
|
||||
close: "Pechar",
|
||||
xhrError: "Erro na carga do contido.",
|
||||
imgError: "Erro na carga da imaxe."
|
||||
});
|
||||
|
|
@ -0,0 +1,16 @@
|
|||
/*
|
||||
jQuery Colorbox language configuration
|
||||
language: Greek (gr)
|
||||
translated by: S.Demirtzoglou
|
||||
site: webiq.gr
|
||||
*/
|
||||
jQuery.extend(jQuery.colorbox.settings, {
|
||||
current: "Εικόνα {current} από {total}",
|
||||
previous: "Προηγούμενη",
|
||||
next: "Επόμενη",
|
||||
close: "Απόκρυψη",
|
||||
xhrError: "Το περιεχόμενο δεν μπόρεσε να φορτωθεί.",
|
||||
imgError: "Απέτυχε η φόρτωση της εικόνας.",
|
||||
slideshowStart: "Έναρξη παρουσίασης",
|
||||
slideshowStop: "Παύση παρουσίασης"
|
||||
});
|
||||
|
|
@ -0,0 +1,16 @@
|
|||
/*
|
||||
jQuery Colorbox language configuration
|
||||
language: Hebrew (he)
|
||||
translated by: DavidCo
|
||||
site: DavidCo.me
|
||||
*/
|
||||
jQuery.extend(jQuery.colorbox.settings, {
|
||||
current: "תמונה {current} מתוך {total}",
|
||||
previous: "הקודם",
|
||||
next: "הבא",
|
||||
close: "סגור",
|
||||
xhrError: "שגיאה בטעינת התוכן.",
|
||||
imgError: "שגיאה בטעינת התמונה.",
|
||||
slideshowStart: "התחל מצגת",
|
||||
slideshowStop: "עצור מצגת"
|
||||
});
|
||||
|
|
@ -0,0 +1,15 @@
|
|||
/*
|
||||
jQuery Colorbox language configuration
|
||||
language: Croatian (hr)
|
||||
translated by: Mladen Bicanic (base.hr)
|
||||
*/
|
||||
jQuery.extend(jQuery.colorbox.settings, {
|
||||
current: "Slika {current} od {total}",
|
||||
previous: "Prethodna",
|
||||
next: "Sljedeća",
|
||||
close: "Zatvori",
|
||||
xhrError: "Neuspješno učitavanje sadržaja.",
|
||||
imgError: "Neuspješno učitavanje slike.",
|
||||
slideshowStart: "Pokreni slideshow",
|
||||
slideshowStop: "Zaustavi slideshow"
|
||||
});
|
||||
|
|
@ -0,0 +1,15 @@
|
|||
/*
|
||||
jQuery Colorbox language configuration
|
||||
language: Hungarian (hu)
|
||||
translated by: kovadani
|
||||
*/
|
||||
jQuery.extend(jQuery.colorbox.settings, {
|
||||
current: "{current}/{total} kép",
|
||||
previous: "Előző",
|
||||
next: "Következő",
|
||||
close: "Bezár",
|
||||
xhrError: "A tartalmat nem sikerült betölteni.",
|
||||
imgError: "A képet nem sikerült betölteni.",
|
||||
slideshowStart: "Diavetítés indítása",
|
||||
slideshowStop: "Diavetítés leállítása"
|
||||
});
|
||||
|
|
@ -0,0 +1,15 @@
|
|||
/*
|
||||
jQuery Colorbox language configuration
|
||||
language: Indonesian (id)
|
||||
translated by: sarwasunda
|
||||
*/
|
||||
jQuery.extend(jQuery.colorbox.settings, {
|
||||
current: "ke {current} dari {total}",
|
||||
previous: "Sebelumnya",
|
||||
next: "Berikutnya",
|
||||
close: "Tutup",
|
||||
xhrError: "Konten ini tidak dapat dimuat.",
|
||||
imgError: "Gambar ini tidak dapat dimuat.",
|
||||
slideshowStart: "Putar",
|
||||
slideshowStop: "Berhenti"
|
||||
});
|
||||
|
|
@ -0,0 +1,15 @@
|
|||
/*
|
||||
jQuery Colorbox language configuration
|
||||
language: Italian (it)
|
||||
translated by: maur8ino
|
||||
*/
|
||||
jQuery.extend(jQuery.colorbox.settings, {
|
||||
current: "Immagine {current} di {total}",
|
||||
previous: "Precedente",
|
||||
next: "Successiva",
|
||||
close: "Chiudi",
|
||||
xhrError: "Errore nel caricamento del contenuto.",
|
||||
imgError: "Errore nel caricamento dell'immagine.",
|
||||
slideshowStart: "Inizia la presentazione",
|
||||
slideshowStop: "Termina la presentazione"
|
||||
});
|
||||
|
|
@ -0,0 +1,15 @@
|
|||
/*
|
||||
jQuery Colorbox language configuration
|
||||
language: Japanaese (ja)
|
||||
translated by: Hajime Fujimoto
|
||||
*/
|
||||
jQuery.extend(jQuery.colorbox.settings, {
|
||||
current: "{total}枚中{current}枚目",
|
||||
previous: "前",
|
||||
next: "次",
|
||||
close: "閉じる",
|
||||
xhrError: "コンテンツの読み込みに失敗しました",
|
||||
imgError: "画像の読み込みに失敗しました",
|
||||
slideshowStart: "スライドショー開始",
|
||||
slideshowStop: "スライドショー終了"
|
||||
});
|
||||
|
|
@ -0,0 +1,15 @@
|
|||
/*
|
||||
jQuery Colorbox language configuration
|
||||
language: Korean (kr)
|
||||
translated by: lunareffect
|
||||
*/
|
||||
jQuery.extend(jQuery.colorbox.settings, {
|
||||
current: "총 {total} 중 {current}",
|
||||
previous: "이전",
|
||||
next: "다음",
|
||||
close: "닫기",
|
||||
xhrError: "컨텐츠를 불러오는 데 실패했습니다.",
|
||||
imgError: "이미지를 불러오는 데 실패했습니다.",
|
||||
slideshowStart: "슬라이드쇼 시작",
|
||||
slideshowStop: "슬라이드쇼 중지"
|
||||
});
|
||||
|
|
@ -0,0 +1,15 @@
|
|||
/*
|
||||
jQuery Colorbox language configuration
|
||||
language: Lithuanian (lt)
|
||||
translated by: Tomas Norkūnas
|
||||
*/
|
||||
jQuery.extend(jQuery.colorbox.settings, {
|
||||
current: "Nuotrauka {current} iš {total}",
|
||||
previous: "Atgal",
|
||||
next: "Pirmyn",
|
||||
close: "Uždaryti",
|
||||
xhrError: "Nepavyko užkrauti turinio.",
|
||||
imgError: "Nepavyko užkrauti nuotraukos.",
|
||||
slideshowStart: "Pradėti automatinę peržiūrą",
|
||||
slideshowStop: "Sustabdyti automatinę peržiūrą"
|
||||
});
|
||||
|
|
@ -0,0 +1,16 @@
|
|||
/*
|
||||
jQuery Colorbox language configuration
|
||||
language: Latvian (lv)
|
||||
translated by: Matiss Roberts Treinis
|
||||
site: x0.lv
|
||||
*/
|
||||
jQuery.extend(jQuery.colorbox.settings, {
|
||||
current: "attēls {current} no {total}",
|
||||
previous: "iepriekšējais",
|
||||
next: "nākamais",
|
||||
close: "aizvērt",
|
||||
xhrError: "Neizdevās ielādēt saturu.",
|
||||
imgError: "Neizdevās ielādēt attēlu.",
|
||||
slideshowStart: "sākt slaidrādi",
|
||||
slideshowStop: "apturēt slaidrādi"
|
||||
});
|
||||
|
|
@ -0,0 +1,15 @@
|
|||
/*
|
||||
jQuery Colorbox language configuration
|
||||
language: Myanmar (my)
|
||||
translated by: Yan Naing
|
||||
*/
|
||||
jQuery.extend(jQuery.colorbox.settings, {
|
||||
current: "ပုံ {total} မှာ {current} မြောက်ပုံ",
|
||||
previous: "ရှေ့သို့",
|
||||
next: "နောက်သို့",
|
||||
close: "ပိတ်မည်",
|
||||
xhrError: "ပါဝင်သော အကြောင်းအရာများ ဖော်ပြရာတွင် အနည်းငယ် ချို့ယွင်းမှုရှိနေပါသည်",
|
||||
imgError: "ပုံပြသရာတွင် အနည်းငယ် ချို့ယွင်းချက် ရှိနေပါသည်",
|
||||
slideshowStart: "ပုံများ စတင်ပြသမည်",
|
||||
slideshowStop: "ပုံပြသခြင်း ရပ်ဆိုင်မည်"
|
||||
});
|
||||
|
|
@ -0,0 +1,15 @@
|
|||
/*
|
||||
jQuery Colorbox language configuration
|
||||
language: Dutch (nl)
|
||||
translated by: barryvdh
|
||||
*/
|
||||
jQuery.extend(jQuery.colorbox.settings, {
|
||||
current: "Afbeelding {current} van {total}",
|
||||
previous: "Vorige",
|
||||
next: "Volgende",
|
||||
close: "Sluiten",
|
||||
xhrError: "Deze inhoud kan niet geladen worden.",
|
||||
imgError: "Deze afbeelding kan niet geladen worden.",
|
||||
slideshowStart: "Diashow starten",
|
||||
slideshowStop: "Diashow stoppen"
|
||||
});
|
||||
|
|
@ -0,0 +1,16 @@
|
|||
/*
|
||||
jQuery Colorbox language configuration
|
||||
language: Norwegian (no)
|
||||
translated by: lars-erik
|
||||
site: markedspartner.no
|
||||
*/
|
||||
jQuery.extend(jQuery.colorbox.settings, {
|
||||
current: "Bilde {current} av {total}",
|
||||
previous: "Forrige",
|
||||
next: "Neste",
|
||||
close: "Lukk",
|
||||
xhrError: "Feil ved lasting av innhold.",
|
||||
imgError: "Feil ved lasting av bilde.",
|
||||
slideshowStart: "Start lysbildefremvisning",
|
||||
slideshowStop: "Stopp lysbildefremvisning"
|
||||
});
|
||||
|
|
@ -0,0 +1,16 @@
|
|||
/*
|
||||
jQuery Colorbox language configuration
|
||||
language: Polski (pl)
|
||||
translated by: Tomasz Wasiński
|
||||
site: 2bevisible.pl
|
||||
*/
|
||||
jQuery.extend(jQuery.colorbox.settings, {
|
||||
current: "{current}. obrazek z {total}",
|
||||
previous: "Poprzedni",
|
||||
next: "Następny",
|
||||
close: "Zamknij",
|
||||
xhrError: "Nie udało się załadować treści.",
|
||||
imgError: "Nie udało się załadować obrazka.",
|
||||
slideshowStart: "rozpocznij pokaz slajdów",
|
||||
slideshowStop: "zatrzymaj pokaz slajdów"
|
||||
});
|
||||
|
|
@ -0,0 +1,15 @@
|
|||
/*
|
||||
jQuery Colorbox language configuration
|
||||
language: Brazilian Portuguese (pt-br)
|
||||
translated by: ReinaldoMT
|
||||
*/
|
||||
jQuery.extend(jQuery.colorbox.settings, {
|
||||
current: "Imagem {current} de {total}",
|
||||
previous: "Anterior",
|
||||
next: "Próxima",
|
||||
close: "Fechar",
|
||||
slideshowStart: "iniciar apresentação de slides",
|
||||
slideshowStop: "parar apresentação de slides",
|
||||
xhrError: "Erro ao carregar o conteúdo.",
|
||||
imgError: "Erro ao carregar a imagem."
|
||||
});
|
||||
|
|
@ -0,0 +1,15 @@
|
|||
/*
|
||||
jQuery Colorbox language configuration
|
||||
language: Romanian (ro)
|
||||
translated by: shurub3l
|
||||
*/
|
||||
jQuery.extend(jQuery.colorbox.settings, {
|
||||
current: "imagine {current} din {total}",
|
||||
previous: "precedenta",
|
||||
next: "următoarea",
|
||||
close: "închideți",
|
||||
xhrError: "Acest conținut nu poate fi încărcat.",
|
||||
imgError: "Această imagine nu poate fi încărcată",
|
||||
slideshowStart: "începeți prezentarea (slideshow)",
|
||||
slideshowStop: "opriți prezentarea (slideshow)"
|
||||
});
|
||||
|
|
@ -0,0 +1,16 @@
|
|||
/*
|
||||
jQuery Colorbox language configuration
|
||||
language: Russian (ru)
|
||||
translated by: Marfa
|
||||
site: themarfa.name
|
||||
*/
|
||||
jQuery.extend(jQuery.colorbox.settings, {
|
||||
current: "изображение {current} из {total}",
|
||||
previous: "назад",
|
||||
next: "вперёд",
|
||||
close: "закрыть",
|
||||
xhrError: "Не удалось загрузить содержимое.",
|
||||
imgError: "Не удалось загрузить изображение.",
|
||||
slideshowStart: "начать слайд-шоу",
|
||||
slideshowStop: "остановить слайд-шоу"
|
||||
});
|
||||
|
|
@ -0,0 +1,15 @@
|
|||
/*
|
||||
jQuery Colorbox language configuration
|
||||
language: Slovenian (si)
|
||||
translated by: Boštjan Pišler (pisler.si)
|
||||
*/
|
||||
jQuery.extend(jQuery.colorbox.settings, {
|
||||
current: "Slika {current} od {total}",
|
||||
previous: "Prejšnja",
|
||||
next: "Naslednja",
|
||||
close: "Zapri",
|
||||
xhrError: "Vsebine ni bilo mogoče naložiti.",
|
||||
imgError: "Slike ni bilo mogoče naložiti.",
|
||||
slideshowStart: "Zaženi prezentacijo",
|
||||
slideshowStop: "Zaustavi prezentacijo"
|
||||
});
|
||||
|
|
@ -0,0 +1,15 @@
|
|||
/*
|
||||
jQuery Colorbox language configuration
|
||||
language: Slovak (sk)
|
||||
translated by: Jaroslav Kostal
|
||||
*/
|
||||
jQuery.extend(jQuery.colorbox.settings, {
|
||||
current: "{current}. obrázok z {total}",
|
||||
previous: "Predchádzajúci",
|
||||
next: "Následujúci",
|
||||
close: "Zatvoriť",
|
||||
xhrError: "Obsah sa nepodarilo načítať.",
|
||||
imgError: "Obrázok sa nepodarilo načítať.",
|
||||
slideshowStart: "Spustiť slideshow",
|
||||
slideshowStop: "zastaviť slideshow"
|
||||
});
|
||||
|
|
@ -0,0 +1,15 @@
|
|||
/*
|
||||
jQuery Colorbox language configuration
|
||||
language: Serbian (sr)
|
||||
translated by: Sasa Stefanovic (baguje.com)
|
||||
*/
|
||||
jQuery.extend(jQuery.colorbox.settings, {
|
||||
current: "Slika {current} od {total}",
|
||||
previous: "Prethodna",
|
||||
next: "Sledeća",
|
||||
close: "Zatvori",
|
||||
xhrError: "Neuspešno učitavanje sadržaja.",
|
||||
imgError: "Neuspešno učitavanje slike.",
|
||||
slideshowStart: "Pokreni slideshow",
|
||||
slideshowStop: "Zaustavi slideshow"
|
||||
});
|
||||
|
|
@ -0,0 +1,15 @@
|
|||
/*
|
||||
jQuery Colorbox language configuration
|
||||
language: Swedish (sv)
|
||||
translated by: Mattias Reichel
|
||||
*/
|
||||
jQuery.extend(jQuery.colorbox.settings, {
|
||||
current: "Bild {current} av {total}",
|
||||
previous: "Föregående",
|
||||
next: "Nästa",
|
||||
close: "Stäng",
|
||||
xhrError: "Innehållet kunde inte laddas.",
|
||||
imgError: "Den här bilden kunde inte laddas.",
|
||||
slideshowStart: "Starta bildspel",
|
||||
slideshowStop: "Stoppa bildspel"
|
||||
});
|
||||
|
|
@ -0,0 +1,19 @@
|
|||
/*
|
||||
jQuery Colorbox language configuration
|
||||
language: Turkish (tr)
|
||||
translated by: Caner ÖNCEL
|
||||
site: egonomik.com
|
||||
|
||||
edited by: Sinan Eldem
|
||||
www.sinaneldem.com.tr
|
||||
*/
|
||||
jQuery.extend(jQuery.colorbox.settings, {
|
||||
current: "Görsel {current} / {total}",
|
||||
previous: "Önceki",
|
||||
next: "Sonraki",
|
||||
close: "Kapat",
|
||||
xhrError: "İçerik yüklenirken hata meydana geldi.",
|
||||
imgError: "Resim yüklenirken hata meydana geldi.",
|
||||
slideshowStart: "Slaytı Başlat",
|
||||
slideshowStop: "Slaytı Durdur"
|
||||
});
|
||||
|
|
@ -0,0 +1,16 @@
|
|||
/*
|
||||
jQuery ColorBox language configuration
|
||||
language: Ukrainian (uk)
|
||||
translated by: Andrew
|
||||
http://acisoftware.com.ua
|
||||
*/
|
||||
jQuery.extend(jQuery.colorbox.settings, {
|
||||
current: "зображення {current} з {total}",
|
||||
previous: "попереднє",
|
||||
next: "наступне",
|
||||
close: "закрити",
|
||||
xhrError: "Не вдалося завантажити вміст.",
|
||||
imgError: "Не вдалося завантажити зображення.",
|
||||
slideshowStart: "почати слайд-шоу",
|
||||
slideshowStop: "зупинити слайд-шоу"
|
||||
});
|
||||
|
|
@ -0,0 +1,15 @@
|
|||
/*
|
||||
jQuery Colorbox language configuration
|
||||
language: Chinese Simplified (zh-CN)
|
||||
translated by: zhao weiming
|
||||
*/
|
||||
jQuery.extend(jQuery.colorbox.settings, {
|
||||
current: "当前图像 {current} 总共 {total}",
|
||||
previous: "前一页",
|
||||
next: "后一页",
|
||||
close: "关闭",
|
||||
xhrError: "此内容无法加载",
|
||||
imgError: "此图片无法加载",
|
||||
slideshowStart: "开始播放幻灯片",
|
||||
slideshowStop: "停止播放幻灯片"
|
||||
});
|
||||
|
|
@ -0,0 +1,15 @@
|
|||
/*
|
||||
jQuery Colorbox language configuration
|
||||
language: Chinese Traditional (zh-TW)
|
||||
translated by: Atans Chiu
|
||||
*/
|
||||
jQuery.extend(jQuery.colorbox.settings, {
|
||||
current: "圖片 {current} 總共 {total}",
|
||||
previous: "上一頁",
|
||||
next: "下一頁",
|
||||
close: "關閉",
|
||||
xhrError: "此內容加載失敗.",
|
||||
imgError: "此圖片加載失敗.",
|
||||
slideshowStart: "開始幻燈片",
|
||||
slideshowStop: "結束幻燈片"
|
||||
});
|
||||
265
themes/bootstrap/assets/js/flowr.plugin.js
Normal file
265
themes/bootstrap/assets/js/flowr.plugin.js
Normal file
|
|
@ -0,0 +1,265 @@
|
|||
/**
|
||||
* Flowr.js - Simple jQuery plugin to emulate Flickr's justified view
|
||||
* For usage information refer to http://github.com/kalyan02/flowr-js
|
||||
*
|
||||
*
|
||||
* @author: Kalyan Chakravarthy (http://KalyanChakravarthy.net)
|
||||
* @version: v0.1
|
||||
*/
|
||||
(function($){
|
||||
//$("#container2").css( 'border', '1px solid #ccc');
|
||||
$.fn.flowr = function(options) {
|
||||
|
||||
$this = this;
|
||||
var ROW_CLASS_NAME = 'flowr-row'; // Class name for the row of flowy
|
||||
var MAX_LAST_ROW_GAP = 25; // If the width of last row is lesser than max-width, recalculation is needed
|
||||
var NO_COPY_FIELDS = [ 'complete', 'data', 'responsive' ]; // these attributes will not be carried forward for append related calls
|
||||
var DEFAULTS = {
|
||||
'data' : [],
|
||||
'padding' : 5, // whats the padding between flowy items
|
||||
'height' : 240, // Minimum height an image row should take
|
||||
'render' : null, // callback function to get the tag
|
||||
'append' : false, // TODO
|
||||
'widthAttr' : 'width', // a custom data structure can specify which attribute refers to height/width
|
||||
'heightAttr' : 'height',
|
||||
'maxScale' : 1.5, // In case there is only 1 elment in last row
|
||||
'maxWidth' : this.width()-1, // 1px is just for offset
|
||||
'itemWidth' : null, // callback function for width
|
||||
'itemHeight' : null, // callback function for height
|
||||
'complete' : null, // complete callback
|
||||
'rowClassName' : ROW_CLASS_NAME,
|
||||
'rows' : -1, // Maximum number of rows to render. -1 for no limit.
|
||||
'responsive' : true // make content responsive
|
||||
};
|
||||
var settings = $.extend( DEFAULTS, options);
|
||||
|
||||
// If data is being appended, we already have settings
|
||||
// If we already have settings, retrieve them
|
||||
if( settings.append && $this.data('lastSettings') ) {
|
||||
lastSettings = $this.data('lastSettings');
|
||||
|
||||
// Copy over the settings from previous init
|
||||
for( attr in DEFAULTS ) {
|
||||
if( NO_COPY_FIELDS.indexOf(attr)<0 && settings[attr] == DEFAULTS[attr] ) {
|
||||
settings[attr] = lastSettings[attr];
|
||||
}
|
||||
}
|
||||
|
||||
// Check if we have an incomplete last row
|
||||
lastRow = $this.data('lastRow');
|
||||
if( lastRow.data.length > 0 && settings.maxWidth-lastRow.width > MAX_LAST_ROW_GAP ) {
|
||||
// Prepend the incomplete row to newly loaded data and redraw
|
||||
lastRowData = lastSettings.data.slice( lastSettings.data.length - lastRow.data.length - 1 );
|
||||
settings.data = lastRowData.concat(settings.data);
|
||||
|
||||
// Remove the incomplete row
|
||||
// TODO: Don't reload this stuff later. Reattach to new row.
|
||||
$( '.' + settings.rowClassName + ':last', $this ).detach();
|
||||
} else {
|
||||
// console.log( lastRow.data.length );
|
||||
// console.log( lastRow.width );
|
||||
}
|
||||
}
|
||||
|
||||
// only on the first initial call
|
||||
if( !settings.responsive && !settings.append )
|
||||
$this.width( $this.width() );
|
||||
|
||||
// Basic sanity checks
|
||||
if( !(settings.data instanceof Array) )
|
||||
return;
|
||||
|
||||
if( typeof(settings.padding) != 'number' )
|
||||
settings.padding = parseInt( settings.padding );
|
||||
|
||||
if( typeof(settings.itemWidth) != 'function' ) {
|
||||
settings.itemWidth = function(data) {
|
||||
return data[ settings.widthAttr ];
|
||||
}
|
||||
}
|
||||
|
||||
if( typeof(settings.itemHeight) != 'function' ) {
|
||||
settings.itemHeight = function(data) {
|
||||
return data[ settings.heightAttr ];
|
||||
}
|
||||
}
|
||||
|
||||
// A standalone utility to calculate the item widths for a particular row
|
||||
// Returns rowWidth: width occupied & data : the items in the new row
|
||||
var utils = {
|
||||
getNextRow : function( data, settings ) {
|
||||
var itemIndex = 0;
|
||||
var itemsLength = data.length;
|
||||
var lineItems = [];
|
||||
var lineWidth = 0;
|
||||
var maxWidth = settings.maxWidth;
|
||||
var paddingSize = settings.padding;
|
||||
|
||||
// console.log( 'maxItems=' + data.length );
|
||||
|
||||
requiredPadding = function() {
|
||||
var extraPads = arguments.length == 1 ? arguments[0] : 0;
|
||||
return (lineItems.length - 1 + extraPads) * settings.padding;
|
||||
}
|
||||
|
||||
while( lineWidth + requiredPadding() < settings.maxWidth && (itemIndex < itemsLength) ) {
|
||||
var itemData = data[ itemIndex ];
|
||||
var itemWidth = settings.itemWidth.call( $this, itemData );
|
||||
var itemHeight = settings.itemHeight.call( $this, itemData );
|
||||
|
||||
var minHeight = settings.height;
|
||||
var minWidth = Math.floor( itemWidth * settings.height / itemHeight );
|
||||
|
||||
var newLineWidth = lineWidth + minWidth + requiredPadding(1);
|
||||
|
||||
if (minWidth > settings.maxWidth) {
|
||||
// very short+wide images like panoramas
|
||||
// show them even if ugly, as wide as possible
|
||||
minWidth = settings.maxWidth-1;
|
||||
minHeight = settings.height * minHeight / minWidth;
|
||||
}
|
||||
|
||||
// console.log( 'lineWidth = ' + lineWidth );
|
||||
// console.log( 'newLineWidth = ' + newLineWidth );
|
||||
if( newLineWidth < settings.maxWidth ) {
|
||||
lineItems.push({
|
||||
'height' : minHeight,
|
||||
'width' : minWidth,
|
||||
'itemData' : itemData
|
||||
});
|
||||
|
||||
lineWidth += minWidth;
|
||||
itemIndex ++;
|
||||
} else {
|
||||
// We'd have exceeded width. So break off to scale.
|
||||
// console.log( 'breaking off = ' + itemIndex );
|
||||
// console.log( 'leave off size = ' + lineItems.length );
|
||||
break;
|
||||
}
|
||||
} //while
|
||||
|
||||
// Scale the size to max width
|
||||
testWidth=0;
|
||||
if( lineWidth < settings.maxWidth ) {
|
||||
var fullScaleWidth = settings.maxWidth - requiredPadding() - 10;
|
||||
var currScaleWidth = lineWidth;
|
||||
var scaleFactor = fullScaleWidth / currScaleWidth;
|
||||
if( scaleFactor > settings.maxScale )
|
||||
scaleFactor = 1;
|
||||
|
||||
var newHeight = Math.round( settings.height * scaleFactor );
|
||||
for( i=0; i<lineItems.length; i++ ) {
|
||||
var lineItem = lineItems[ i ];
|
||||
lineItem.width = Math.floor(lineItem.width * scaleFactor);
|
||||
lineItem.height = newHeight;
|
||||
|
||||
testWidth += lineItem.width;
|
||||
}
|
||||
}
|
||||
|
||||
return {
|
||||
data : lineItems,
|
||||
width : testWidth + requiredPadding()
|
||||
};
|
||||
}, //getNextRow
|
||||
reorderContent : function(){
|
||||
/*
|
||||
TODO: optimize for faster resizing by reusing dom objects instead of killing the dom
|
||||
*/
|
||||
var _initialWidth = $this.data('width');
|
||||
var _newWidth = $this.width();
|
||||
var _change = _initialWidth - _newWidth;
|
||||
|
||||
if(_initialWidth!=_newWidth) {
|
||||
$this.html('');
|
||||
var _settings = $this.data( 'lastSettings' );
|
||||
_settings.data = $this.data( 'data' );
|
||||
_settings.maxWidth = $this.width() - 1;
|
||||
$this.flowr( _settings );
|
||||
}
|
||||
}
|
||||
} //utils
|
||||
|
||||
// If the resposive var is set to true then listen for resize method
|
||||
// and prevent resizing from happening twice if responsive is set again during append phase!
|
||||
if( settings.responsive && !$this.data('__responsive') ) {
|
||||
$(window).resize(function(){
|
||||
initialWidth = $this.data('width');
|
||||
newWidth = $this.width();
|
||||
|
||||
//initiate resize
|
||||
if( initialWidth != newWidth ) {
|
||||
var task_id = $this.data('task_id');
|
||||
if( task_id ) {
|
||||
task_id = clearTimeout( task_id );
|
||||
task_id = null;
|
||||
}
|
||||
task_id = setTimeout( utils.reorderContent, 80 );
|
||||
$this.data('task_id', task_id );
|
||||
}
|
||||
});
|
||||
$this.data('__responsive',true);
|
||||
}
|
||||
|
||||
|
||||
return this.each(function(){
|
||||
|
||||
// Get a copy of original data. 1 level deep copy is sufficient.
|
||||
var data = settings.data.slice(0);
|
||||
var rowData = null;
|
||||
var currentRow = 0;
|
||||
var currentItem = 0;
|
||||
|
||||
// Store all the data
|
||||
var allData = $this.data( 'data' ) || [];
|
||||
for(i=0;i<data.length;i++) {
|
||||
allData.push( data[i] );
|
||||
}
|
||||
$this.data( 'data', allData );
|
||||
|
||||
// While we have a new row
|
||||
while( ( rowData = utils.getNextRow(data,settings) ) != null && rowData.data.length > 0 ) {
|
||||
if( settings.rows > 0 && currentRow >= settings.rows )
|
||||
break;
|
||||
// remove the number of elements in the new row from the top of data stack
|
||||
data.splice( 0, rowData.data.length );
|
||||
|
||||
// Create a new row div, add class, append the htmls and insert the flowy items
|
||||
var $row = $('<div>').addClass(settings.rowClassName);
|
||||
for( i=0; i<rowData.data.length; i++ ) {
|
||||
var displayData = rowData.data[i];
|
||||
// Get the HTML object from custom render function passed as argument
|
||||
var displayObject = settings.render.call( $this, displayData );
|
||||
displayObject = $(displayObject);
|
||||
// Set some basic stuff
|
||||
displayObject
|
||||
.css( 'width', displayData.width )
|
||||
.css( 'height', displayData.height )
|
||||
.css( 'margin-left', i==0 ? '0' : settings.padding + "px" ); //TODO:Refactor
|
||||
$row.append( displayObject );
|
||||
|
||||
currentItem++;
|
||||
}
|
||||
$this.append( $row );
|
||||
// console.log ( "I> rowData.data.length="+rowData.data.length +" rowData.width="+rowData.width );
|
||||
|
||||
currentRow++;
|
||||
$this.data('lastRow', rowData );
|
||||
}
|
||||
// store the current state of settings and the items in last row
|
||||
// we'll need this info when we append more items
|
||||
$this.data('lastSettings', settings );
|
||||
|
||||
// onComplete callback
|
||||
// pass back info about list of rows and items rendered
|
||||
if( typeof (settings.complete) == 'function' ) {
|
||||
var completeData = {
|
||||
renderedRows : currentRow,
|
||||
renderedItems : currentItem
|
||||
}
|
||||
settings.complete.call( $this, completeData );
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
})(jQuery);
|
||||
6
themes/bootstrap/assets/js/jquery.colorbox-min.js
vendored
Normal file
6
themes/bootstrap/assets/js/jquery.colorbox-min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
1090
themes/bootstrap/assets/js/jquery.colorbox.js
Normal file
1090
themes/bootstrap/assets/js/jquery.colorbox.js
Normal file
File diff suppressed because it is too large
Load diff
5
themes/bootstrap/assets/js/jquery.min.js
vendored
Normal file
5
themes/bootstrap/assets/js/jquery.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
1
themes/bootstrap/assets/js/jquery.min.map
Normal file
1
themes/bootstrap/assets/js/jquery.min.map
Normal file
File diff suppressed because one or more lines are too long
4
themes/bootstrap/bundles
Normal file
4
themes/bootstrap/bundles
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
assets/css/all-nocdn.css=bootstrap.css,bootstrap-responsive.css,rst.css,code.css,colorbox.css,theme.css,custom.css
|
||||
assets/css/all.css=rst.css,code.css,colorbox.css,theme.css,custom.css
|
||||
assets/js/all-nocdn.js=jquery.min.js,bootstrap.min.js,jquery.colorbox-min.js,moment-with-locales.min.js,fancydates.js
|
||||
assets/js/all.js=jquery.colorbox-min.js,moment-with-locales.min.js,fancydates.js
|
||||
1
themes/bootstrap/engine
Normal file
1
themes/bootstrap/engine
Normal file
|
|
@ -0,0 +1 @@
|
|||
mako
|
||||
1
themes/bootstrap/parent
Normal file
1
themes/bootstrap/parent
Normal file
|
|
@ -0,0 +1 @@
|
|||
base
|
||||
93
themes/bootstrap/templates/base.tmpl
Normal file
93
themes/bootstrap/templates/base.tmpl
Normal file
|
|
@ -0,0 +1,93 @@
|
|||
## -*- coding: utf-8 -*-
|
||||
<%namespace name="base" file="base_helper.tmpl" import="*" />
|
||||
<%namespace name="notes" file="annotation_helper.tmpl" import="*" />
|
||||
${set_locale(lang)}
|
||||
${base.html_headstart()}
|
||||
<%block name="extra_head">
|
||||
### Leave this block alone.
|
||||
</%block>
|
||||
${template_hooks['extra_head']()}
|
||||
</head>
|
||||
<body>
|
||||
<a href="#content" class="sr-only sr-only-focusable">${messages("Skip to main content")}</a>
|
||||
|
||||
<!-- Menubar -->
|
||||
|
||||
<div class="navbar navbar-fixed-top" id="navbar">
|
||||
<div class="navbar-inner">
|
||||
<div class="container">
|
||||
|
||||
<!-- .btn-navbar is used as the toggle for collapsed navbar content -->
|
||||
<a class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse">
|
||||
<span class="icon-bar"></span>
|
||||
<span class="icon-bar"></span>
|
||||
<span class="icon-bar"></span>
|
||||
</a>
|
||||
|
||||
<a class="brand" href="${abs_link('/')}">
|
||||
%if logo_url:
|
||||
<img src="${logo_url}" alt="${blog_title}" id="logo">
|
||||
%endif
|
||||
|
||||
% if show_blog_title:
|
||||
<span id="blog-title">${blog_title}</span>
|
||||
% endif
|
||||
</a>
|
||||
<!-- Everything you want hidden at 940px or less, place within here -->
|
||||
<div class="nav-collapse collapse">
|
||||
<ul class="nav">
|
||||
${base.html_navigation_links()}
|
||||
${template_hooks['menu']()}
|
||||
</ul>
|
||||
%if search_form:
|
||||
${search_form}
|
||||
%endif
|
||||
<ul class="nav pull-right">
|
||||
<%block name="belowtitle">
|
||||
%if len(translations) > 1:
|
||||
<li>${base.html_translations()}</li>
|
||||
%endif
|
||||
</%block>
|
||||
% if show_sourcelink:
|
||||
<li><%block name="sourcelink"></%block></li>
|
||||
%endif
|
||||
${template_hooks['menu_alt']()}
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- End of Menubar -->
|
||||
<div class="container-fluid" id="content">
|
||||
<!--Body content-->
|
||||
<div class="row-fluid">
|
||||
<div class="span2"></div>
|
||||
<div class="span8">
|
||||
${template_hooks['page_header']()}
|
||||
<%block name="content"></%block>
|
||||
</div>
|
||||
</div>
|
||||
<!--End of body content-->
|
||||
</div>
|
||||
<div class="footerbox">
|
||||
${content_footer}
|
||||
${template_hooks['page_footer']()}
|
||||
</div>
|
||||
${base.late_load_js()}
|
||||
<script>jQuery("a.image-reference").colorbox({rel:"gal",maxWidth:"100%",maxHeight:"100%",scalePhotos:true});</script>
|
||||
<!-- fancy dates -->
|
||||
<script>
|
||||
moment.locale("${momentjs_locales[lang]}");
|
||||
fancydates(${date_fanciness}, ${js_date_format});
|
||||
</script>
|
||||
<!-- end fancy dates -->
|
||||
<%block name="extra_js"></%block>
|
||||
% if annotations and post and not post.meta('noannotations'):
|
||||
${notes.code()}
|
||||
% elif not annotations and post and post.meta('annotations'):
|
||||
${notes.code()}
|
||||
% endif
|
||||
${body_end}
|
||||
${template_hooks['body_end']()}
|
||||
</body>
|
||||
</html>
|
||||
170
themes/bootstrap/templates/base_helper.tmpl
Normal file
170
themes/bootstrap/templates/base_helper.tmpl
Normal file
|
|
@ -0,0 +1,170 @@
|
|||
## -*- coding: utf-8 -*-
|
||||
|
||||
<%def name="html_headstart()">
|
||||
<!DOCTYPE html>
|
||||
<html
|
||||
\
|
||||
% if use_open_graph or (twitter_card and twitter_card['use_twitter_cards']) or (comment_system == 'facebook'):
|
||||
prefix='\
|
||||
%if use_open_graph or (twitter_card and twitter_card['use_twitter_cards']):
|
||||
og: http://ogp.me/ns# \
|
||||
%endif
|
||||
%if use_open_graph:
|
||||
article: http://ogp.me/ns/article# \
|
||||
%endif
|
||||
%if comment_system == 'facebook':
|
||||
fb: http://ogp.me/ns/fb# \
|
||||
%endif
|
||||
'\
|
||||
%endif
|
||||
\
|
||||
% if is_rtl:
|
||||
dir="rtl" \
|
||||
% endif
|
||||
\
|
||||
lang="${lang}">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
%if description:
|
||||
<meta name="description" content="${description}">
|
||||
%endif
|
||||
<meta name="viewport" content="width=device-width">
|
||||
<title>${title|striphtml} | ${blog_title|striphtml}</title>
|
||||
|
||||
${html_stylesheets()}
|
||||
${html_feedlinks()}
|
||||
%if permalink:
|
||||
<link rel="canonical" href="${abs_link(permalink)}">
|
||||
%endif
|
||||
|
||||
%if favicons:
|
||||
%for name, file, size in favicons:
|
||||
<link rel="${name}" href="${file}" sizes="${size}"/>
|
||||
%endfor
|
||||
%endif
|
||||
|
||||
% if comment_system == 'facebook':
|
||||
<meta property="fb:app_id" content="${comment_system_id}">
|
||||
% endif
|
||||
|
||||
%if prevlink:
|
||||
<link rel="prev" href="${prevlink}" type="text/html">
|
||||
%endif
|
||||
%if nextlink:
|
||||
<link rel="next" href="${nextlink}" type="text/html">
|
||||
%endif
|
||||
|
||||
${mathjax_config}
|
||||
%if use_cdn:
|
||||
<!--[if lt IE 9]><script src="//html5shim.googlecode.com/svn/trunk/html5.js"></script><![endif]-->
|
||||
%else:
|
||||
<!--[if lt IE 9]><script src="${url_replacer(permalink, '/assets/js/html5.js', lang)}"></script><![endif]-->
|
||||
%endif
|
||||
|
||||
${extra_head_data}
|
||||
</%def>
|
||||
|
||||
|
||||
<%def name="late_load_js()">
|
||||
%if use_bundles:
|
||||
%if use_cdn:
|
||||
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
|
||||
<script src="//netdna.bootstrapcdn.com/twitter-bootstrap/2.3.2/js/bootstrap.min.js"></script>
|
||||
<script src="/assets/js/all.js"></script>
|
||||
%else:
|
||||
<script src="/assets/js/all-nocdn.js"></script>
|
||||
%endif
|
||||
%else:
|
||||
%if use_cdn:
|
||||
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
|
||||
<script src="//netdna.bootstrapcdn.com/twitter-bootstrap/2.3.2/js/bootstrap.min.js"></script>
|
||||
%else:
|
||||
<script src="/assets/js/jquery.min.js"></script>
|
||||
<script src="/assets/js/bootstrap.min.js"></script>
|
||||
<script src="/assets/js/moment-with-locales.min.js"></script>
|
||||
<script src="/assets/js/fancydates.js"></script>
|
||||
%endif
|
||||
<script src="/assets/js/jquery.colorbox-min.js"></script>
|
||||
%endif
|
||||
%if colorbox_locales[lang]:
|
||||
<script src="/assets/js/colorbox-i18n/jquery.colorbox-${colorbox_locales[lang]}.js"></script>
|
||||
%endif
|
||||
${social_buttons_code}
|
||||
</%def>
|
||||
|
||||
|
||||
<%def name="html_stylesheets()">
|
||||
%if use_bundles:
|
||||
%if use_cdn:
|
||||
<link href="//netdna.bootstrapcdn.com/twitter-bootstrap/2.3.2/css/bootstrap-combined.min.css" rel="stylesheet">
|
||||
<link href="/assets/css/all.css" rel="stylesheet" type="text/css">
|
||||
%else:
|
||||
<link href="/assets/css/all-nocdn.css" rel="stylesheet" type="text/css">
|
||||
%endif
|
||||
%else:
|
||||
%if use_cdn:
|
||||
<link href="//netdna.bootstrapcdn.com/twitter-bootstrap/2.3.2/css/bootstrap-combined.min.css" rel="stylesheet">
|
||||
%else:
|
||||
<link href="/assets/css/bootstrap.min.css" rel="stylesheet" type="text/css">
|
||||
<link href="/assets/css/bootstrap-responsive.min.css" rel="stylesheet" type="text/css">
|
||||
%endif
|
||||
<link href="/assets/css/rst.css" rel="stylesheet" type="text/css">
|
||||
<link href="/assets/css/code.css" rel="stylesheet" type="text/css">
|
||||
<link href="/assets/css/colorbox.css" rel="stylesheet" type="text/css">
|
||||
<link href="/assets/css/theme.css" rel="stylesheet" type="text/css">
|
||||
%if has_custom_css:
|
||||
<link href="/assets/css/custom.css" rel="stylesheet" type="text/css">
|
||||
%endif
|
||||
%endif
|
||||
% if annotations and post and not post.meta('noannotations'):
|
||||
${notes.css()}
|
||||
% elif not annotations and post and post.meta('annotations'):
|
||||
${notes.css()}
|
||||
% endif
|
||||
</%def>
|
||||
|
||||
|
||||
<%def name="html_navigation_links()">
|
||||
%for url, text in navigation_links[lang]:
|
||||
% if isinstance(url, tuple):
|
||||
<li class="dropdown"><a href="#" class="dropdown-toggle" data-toggle="dropdown">${text}<b class="caret"></b></a>
|
||||
<ul class="dropdown-menu">
|
||||
%for suburl, text in url:
|
||||
% if rel_link(permalink, suburl) == "#":
|
||||
<li class="active"><a href="${permalink}">${text}</a>
|
||||
%else:
|
||||
<li><a href="${suburl}">${text}</a>
|
||||
%endif
|
||||
%endfor
|
||||
</ul>
|
||||
% else:
|
||||
% if rel_link(permalink, url) == "#":
|
||||
<li class="active"><a href="${permalink}">${text}</a>
|
||||
%else:
|
||||
<li><a href="${url}">${text}</a>
|
||||
%endif
|
||||
% endif
|
||||
%endfor
|
||||
</%def>
|
||||
|
||||
<%def name="html_feedlinks()">
|
||||
%if rss_link:
|
||||
${rss_link}
|
||||
%elif generate_rss:
|
||||
%if len(translations) > 1:
|
||||
%for language in translations:
|
||||
<link rel="alternate" type="application/rss+xml" title="RSS (${language})" href="${_link('rss', None, language)}">
|
||||
%endfor
|
||||
%else:
|
||||
<link rel="alternate" type="application/rss+xml" title="RSS" href="${_link('rss', None)}">
|
||||
%endif
|
||||
%endif
|
||||
</%def>
|
||||
|
||||
<%def name="html_translations()">
|
||||
%for langname in translations.keys():
|
||||
%if langname != lang:
|
||||
<li><a href="${_link("index", None, langname)}" rel="alternate" hreflang="${langname}">${messages("LANGUAGE", langname)}</a></li>
|
||||
%endif
|
||||
%endfor
|
||||
</%def>
|
||||
93
themes/bootstrap/templates/gallery.tmpl
Normal file
93
themes/bootstrap/templates/gallery.tmpl
Normal file
|
|
@ -0,0 +1,93 @@
|
|||
## -*- coding: utf-8 -*-
|
||||
<%inherit file="base.tmpl"/>
|
||||
<%namespace name="comments" file="comments_helper.tmpl"/>
|
||||
<%namespace name="ui" file="crumbs.tmpl" import="bar"/>
|
||||
<%block name="sourcelink"></%block>
|
||||
|
||||
<%block name="content">
|
||||
${ui.bar(crumbs)}
|
||||
%if title:
|
||||
<h1>${title}</h1>
|
||||
%endif
|
||||
%if post:
|
||||
<p>
|
||||
${post.text()}
|
||||
</p>
|
||||
%endif
|
||||
%if folders:
|
||||
<ul>
|
||||
% for folder, ftitle in folders:
|
||||
<li><a href="${folder}"><i class="icon-folder-open"></i> ${ftitle}</a></li>
|
||||
% endfor
|
||||
</ul>
|
||||
%endif
|
||||
|
||||
<div id="gallery_container"></div>
|
||||
%if photo_array:
|
||||
<noscript>
|
||||
<ul class="thumbnails">
|
||||
%for image in photo_array:
|
||||
<li><a href="${image['url']}" class="thumbnail image-reference" title="${image['title']}">
|
||||
<img src="${image['url_thumb']}" alt="${image['title']}" /></a>
|
||||
%endfor
|
||||
</ul>
|
||||
</noscript>
|
||||
%endif
|
||||
%if site_has_comments and enable_comments:
|
||||
${comments.comment_form(None, permalink, title)}
|
||||
%endif
|
||||
</%block>
|
||||
|
||||
<%block name="extra_head">
|
||||
${parent.extra_head()}
|
||||
<style type="text/css">
|
||||
.image-block {
|
||||
display: inline-block;
|
||||
}
|
||||
.flowr_row {
|
||||
width: 100%;
|
||||
}
|
||||
</style>
|
||||
</%block>
|
||||
|
||||
|
||||
<%block name="extra_js">
|
||||
<script src="/assets/js/flowr.plugin.js"></script>
|
||||
<script>
|
||||
jsonContent = ${photo_array_json};
|
||||
$("#gallery_container").flowr({
|
||||
data : jsonContent,
|
||||
height : ${thumbnail_size}*.6,
|
||||
padding: 5,
|
||||
rows: -1,
|
||||
render : function(params) {
|
||||
// Just return a div, string or a dom object, anything works fine
|
||||
img = $("<img />").attr({
|
||||
'src': params.itemData.url_thumb,
|
||||
'width' : params.width,
|
||||
'height' : params.height
|
||||
}).css('max-width', '100%');
|
||||
link = $( "<a></a>").attr({
|
||||
'href': params.itemData.url,
|
||||
'class': 'image-reference'
|
||||
});
|
||||
div = $("<div />").addClass('image-block').attr({
|
||||
'title': params.itemData.title,
|
||||
'data-toggle': "tooltip",
|
||||
});
|
||||
link.append(img);
|
||||
div.append(link);
|
||||
div.hover(div.tooltip());
|
||||
return div;
|
||||
},
|
||||
itemWidth : function(data) { return data.size.w; },
|
||||
itemHeight : function(data) { return data.size.h; },
|
||||
complete : function(params) {
|
||||
if( jsonContent.length > params.renderedItems ) {
|
||||
nextRenderList = jsonContent.slice( params.renderedItems );
|
||||
}
|
||||
}
|
||||
});
|
||||
$("a.image-reference").colorbox({rel:"gal", maxWidth:"100%",maxHeight:"100%",scalePhotos:true});
|
||||
</script>
|
||||
</%block>
|
||||
28
themes/bootstrap/templates/listing.tmpl
Normal file
28
themes/bootstrap/templates/listing.tmpl
Normal file
|
|
@ -0,0 +1,28 @@
|
|||
## -*- coding: utf-8 -*-
|
||||
<%inherit file="base.tmpl"/>
|
||||
<%namespace name="ui" file="crumbs.tmpl" import="bar"/>
|
||||
|
||||
<%block name="content">
|
||||
${ui.bar(crumbs)}
|
||||
%if folders or files:
|
||||
<ul class="list-unstyled">
|
||||
% for name in folders:
|
||||
<li><a href="${name}"><i class="icon-folder-open"></i> ${name}</a>
|
||||
% endfor
|
||||
% for name in files:
|
||||
<li><a href="${name}.html"><i class="icon-file"></i> ${name}</a>
|
||||
% endfor
|
||||
</ul>
|
||||
%endif
|
||||
% if code:
|
||||
${code}
|
||||
% endif
|
||||
</%block>
|
||||
|
||||
<%block name="sourcelink">
|
||||
% if source_link:
|
||||
<li>
|
||||
<a href="${source_link}" id="sourcelink">${messages("Source")}</a>
|
||||
</li>
|
||||
% endif
|
||||
</%block>
|
||||
56
themes/bootstrap/templates/post.tmpl
Normal file
56
themes/bootstrap/templates/post.tmpl
Normal file
|
|
@ -0,0 +1,56 @@
|
|||
## -*- coding: utf-8 -*-
|
||||
<%namespace name="helper" file="post_helper.tmpl"/>
|
||||
<%namespace name="pheader" file="post_header.tmpl"/>
|
||||
<%namespace name="comments" file="comments_helper.tmpl"/>
|
||||
<%inherit file="base.tmpl"/>
|
||||
|
||||
<%block name="extra_head">
|
||||
${parent.extra_head()}
|
||||
% if post.meta('keywords'):
|
||||
<meta name="keywords" content="${post.meta('keywords')|h}">
|
||||
% endif
|
||||
%if post.description():
|
||||
<meta name="description" itemprop="description" content="${post.description()}">
|
||||
%endif
|
||||
<meta name="author" content="${post.author()}">
|
||||
%if post.prev_post:
|
||||
<link rel="prev" href="${post.prev_post.permalink()}" title="${post.prev_post.title()}" type="text/html">
|
||||
%endif
|
||||
%if post.next_post:
|
||||
<link rel="next" href="${post.next_post.permalink()}" title="${post.next_post.title()}" type="text/html">
|
||||
%endif
|
||||
${helper.open_graph_metadata(post)}
|
||||
${helper.twitter_card_information(post)}
|
||||
${helper.meta_translations(post)}
|
||||
</%block>
|
||||
|
||||
<%block name="content">
|
||||
<article class="post-${post.meta('type')} h-entry hentry postpage" itemscope="itemscope" itemtype="http://schema.org/Article">
|
||||
${pheader.html_post_header()}
|
||||
<div class="e-content entry-content" itemprop="articleBody text">
|
||||
${post.text()}
|
||||
</div>
|
||||
<aside class="postpromonav">
|
||||
<nav>
|
||||
${helper.html_tags(post)}
|
||||
${helper.html_pager(post)}
|
||||
</nav>
|
||||
</aside>
|
||||
% if not post.meta('nocomments') and site_has_comments:
|
||||
<section class="comments">
|
||||
<h2>${messages("Comments")}</h2>
|
||||
${comments.comment_form(post.permalink(absolute=True), post.title(), post._base_path)}
|
||||
</section>
|
||||
% endif
|
||||
${helper.mathjax_script(post)}
|
||||
</article>
|
||||
${comments.comment_link_script()}
|
||||
</%block>
|
||||
|
||||
<%block name="sourcelink">
|
||||
% if show_sourcelink:
|
||||
<li>
|
||||
<a href="${post.source_link()}" id="sourcelink">${messages("Source")}</a>
|
||||
</li>
|
||||
% endif
|
||||
</%block>
|
||||
24
themes/bootstrap/templates/slides.tmpl
Normal file
24
themes/bootstrap/templates/slides.tmpl
Normal file
|
|
@ -0,0 +1,24 @@
|
|||
<%block name="content">
|
||||
<div id="${carousel_id}" class="carousel slide">
|
||||
<ol class="carousel-indicators">
|
||||
% for i in range(len(slides_content)):
|
||||
% if i == 0:
|
||||
<li data-target="#${carousel_id}" data-slide-to="${i}" class="active"></li>
|
||||
% else:
|
||||
<li data-target="#${carousel_id}" data-slide-to="${i}"></li>
|
||||
% endif
|
||||
% endfor
|
||||
</ol>
|
||||
<div class="carousel-inner">
|
||||
% for i, image in enumerate(slides_content):
|
||||
% if i == 0:
|
||||
<div class="item active"><img src="${image}" alt="" style="margin: 0 auto 0 auto;"></div>
|
||||
% else:
|
||||
<div class="item"><img src="${image}" alt="" style="margin: 0 auto 0 auto;"></div>
|
||||
% endif
|
||||
% endfor
|
||||
</div>
|
||||
<a class="left carousel-control" href="#${carousel_id}" data-slide="prev">‹</a>
|
||||
<a class="right carousel-control" href="#${carousel_id}" data-slide="next">›</a>
|
||||
</div>
|
||||
</%block>
|
||||
26
themes/bootstrap/templates/tags.tmpl
Normal file
26
themes/bootstrap/templates/tags.tmpl
Normal file
|
|
@ -0,0 +1,26 @@
|
|||
## -*- coding: utf-8 -*-
|
||||
<%inherit file="base.tmpl"/>
|
||||
|
||||
<%block name="content">
|
||||
<h1>${title}</h1>
|
||||
% if cat_items:
|
||||
<h2>${messages("Categories")}</h2>
|
||||
<ul class="unstyled">
|
||||
% for text, link in cat_items:
|
||||
% if text:
|
||||
<li><a class="reference badge" href="${link}">${text}</a></li>
|
||||
% endif
|
||||
% endfor
|
||||
</ul>
|
||||
% if items:
|
||||
<h2>${messages("Tags")}</h2>
|
||||
% endif
|
||||
%endif
|
||||
% if items:
|
||||
<ul class="list-inline">
|
||||
% for text, link in items:
|
||||
<li><a class="reference badge" href="${link}">${text}</a></li>
|
||||
% endfor
|
||||
</ul>
|
||||
% endif
|
||||
</%block>
|
||||
Loading…
Add table
Add a link
Reference in a new issue