summaryrefslogtreecommitdiffstats
path: root/nikola/data/themes
diff options
context:
space:
mode:
Diffstat (limited to 'nikola/data/themes')
-rw-r--r--nikola/data/themes/base-jinja/templates/base.tmpl1
-rw-r--r--nikola/data/themes/base-jinja/templates/base_header.tmpl2
-rw-r--r--nikola/data/themes/base-jinja/templates/base_helper.tmpl9
-rw-r--r--nikola/data/themes/base-jinja/templates/post.tmpl11
-rw-r--r--nikola/data/themes/base-jinja/templates/post_helper.tmpl44
-rw-r--r--nikola/data/themes/base-jinja/templates/story.tmpl17
-rw-r--r--nikola/data/themes/base/assets/css/rst.css8
-rw-r--r--nikola/data/themes/base/assets/css/theme.css30
-rw-r--r--nikola/data/themes/base/messages/messages_ar.py34
-rw-r--r--nikola/data/themes/base/messages/messages_bg.py1
-rw-r--r--nikola/data/themes/base/messages/messages_ca.py1
-rw-r--r--nikola/data/themes/base/messages/messages_cs.py15
-rw-r--r--nikola/data/themes/base/messages/messages_da.py34
-rw-r--r--nikola/data/themes/base/messages/messages_de.py5
-rw-r--r--nikola/data/themes/base/messages/messages_el.py1
-rw-r--r--nikola/data/themes/base/messages/messages_en.py1
-rw-r--r--nikola/data/themes/base/messages/messages_eo.py1
-rw-r--r--nikola/data/themes/base/messages/messages_es.py1
-rw-r--r--nikola/data/themes/base/messages/messages_et.py1
-rw-r--r--nikola/data/themes/base/messages/messages_eu.py1
-rw-r--r--nikola/data/themes/base/messages/messages_fa.py1
-rw-r--r--nikola/data/themes/base/messages/messages_fi.py1
-rw-r--r--nikola/data/themes/base/messages/messages_fr.py3
-rw-r--r--nikola/data/themes/base/messages/messages_gl.py34
-rw-r--r--nikola/data/themes/base/messages/messages_hi.py1
-rw-r--r--nikola/data/themes/base/messages/messages_hr.py1
-rw-r--r--nikola/data/themes/base/messages/messages_it.py1
-rw-r--r--nikola/data/themes/base/messages/messages_ja.py1
-rw-r--r--nikola/data/themes/base/messages/messages_nb.py1
-rw-r--r--nikola/data/themes/base/messages/messages_nl.py1
-rw-r--r--nikola/data/themes/base/messages/messages_pl.py5
-rw-r--r--nikola/data/themes/base/messages/messages_pt.py34
-rw-r--r--nikola/data/themes/base/messages/messages_pt_br.py1
-rw-r--r--nikola/data/themes/base/messages/messages_ru.py1
-rw-r--r--nikola/data/themes/base/messages/messages_si_lk.py34
-rw-r--r--nikola/data/themes/base/messages/messages_sk.py3
-rw-r--r--nikola/data/themes/base/messages/messages_sl.py3
-rw-r--r--nikola/data/themes/base/messages/messages_tr.py1
-rw-r--r--nikola/data/themes/base/messages/messages_ur.py1
-rw-r--r--nikola/data/themes/base/messages/messages_zh_cn.py1
-rw-r--r--nikola/data/themes/base/templates/base.tmpl1
-rw-r--r--nikola/data/themes/base/templates/base_helper.tmpl9
-rw-r--r--nikola/data/themes/base/templates/post.tmpl11
-rw-r--r--nikola/data/themes/base/templates/post_helper.tmpl44
-rw-r--r--nikola/data/themes/base/templates/story.tmpl17
-rw-r--r--nikola/data/themes/bootstrap-jinja/templates/base.tmpl3
-rw-r--r--nikola/data/themes/bootstrap-jinja/templates/base_helper.tmpl11
-rw-r--r--nikola/data/themes/bootstrap-jinja/templates/post.tmpl11
-rw-r--r--nikola/data/themes/bootstrap/assets/css/theme.css21
-rw-r--r--nikola/data/themes/bootstrap/templates/base.tmpl3
-rw-r--r--nikola/data/themes/bootstrap/templates/base_helper.tmpl9
-rw-r--r--nikola/data/themes/bootstrap/templates/post.tmpl11
-rw-r--r--nikola/data/themes/bootstrap3-jinja/AUTHORS.txt1
-rw-r--r--nikola/data/themes/bootstrap3-jinja/README.md8
l---------nikola/data/themes/bootstrap3-jinja/assets/css/bootstrap-theme.css.map1
l---------nikola/data/themes/bootstrap3-jinja/assets/css/bootstrap.css.map1
l---------nikola/data/themes/bootstrap3-jinja/assets/css/docs.css1
l---------nikola/data/themes/bootstrap3-jinja/assets/css/images/ie6/borderBottomCenter.png1
l---------nikola/data/themes/bootstrap3-jinja/assets/css/images/ie6/borderBottomLeft.png1
l---------nikola/data/themes/bootstrap3-jinja/assets/css/images/ie6/borderBottomRight.png1
l---------nikola/data/themes/bootstrap3-jinja/assets/css/images/ie6/borderMiddleLeft.png1
l---------nikola/data/themes/bootstrap3-jinja/assets/css/images/ie6/borderMiddleRight.png1
l---------nikola/data/themes/bootstrap3-jinja/assets/css/images/ie6/borderTopCenter.png1
l---------nikola/data/themes/bootstrap3-jinja/assets/css/images/ie6/borderTopLeft.png1
l---------nikola/data/themes/bootstrap3-jinja/assets/css/images/ie6/borderTopRight.png1
l---------nikola/data/themes/bootstrap3-jinja/assets/css/rst.css1
l---------nikola/data/themes/bootstrap3-jinja/assets/css/theme.css1
l---------nikola/data/themes/bootstrap3-jinja/assets/fonts/glyphicons-halflings-regular.eot1
l---------nikola/data/themes/bootstrap3-jinja/assets/fonts/glyphicons-halflings-regular.svg1
l---------nikola/data/themes/bootstrap3-jinja/assets/fonts/glyphicons-halflings-regular.ttf1
l---------nikola/data/themes/bootstrap3-jinja/assets/fonts/glyphicons-halflings-regular.woff1
l---------nikola/data/themes/bootstrap3-jinja/bundles1
-rw-r--r--nikola/data/themes/bootstrap3-jinja/engine1
-rw-r--r--nikola/data/themes/bootstrap3-jinja/parent1
-rw-r--r--nikola/data/themes/bootstrap3-jinja/templates/base.tmpl88
-rw-r--r--nikola/data/themes/bootstrap3-jinja/templates/base_helper.tmpl165
-rw-r--r--nikola/data/themes/bootstrap3-jinja/templates/gallery.tmpl94
-rw-r--r--nikola/data/themes/bootstrap3-jinja/templates/listing.tmpl28
-rw-r--r--nikola/data/themes/bootstrap3-jinja/templates/slides.tmpl24
-rw-r--r--nikola/data/themes/bootstrap3/README.md8
l---------nikola/data/themes/bootstrap3/assets/css/bootstrap-theme.css.map1
l---------nikola/data/themes/bootstrap3/assets/css/bootstrap.css.map1
-rw-r--r--nikola/data/themes/bootstrap3/assets/css/docs.css160
-rw-r--r--nikola/data/themes/bootstrap3/assets/css/images/ie6/borderBottomCenter.pngbin0 -> 111 bytes
-rw-r--r--nikola/data/themes/bootstrap3/assets/css/images/ie6/borderBottomLeft.pngbin0 -> 215 bytes
-rw-r--r--nikola/data/themes/bootstrap3/assets/css/images/ie6/borderBottomRight.pngbin0 -> 217 bytes
-rw-r--r--nikola/data/themes/bootstrap3/assets/css/images/ie6/borderMiddleLeft.pngbin0 -> 108 bytes
-rw-r--r--nikola/data/themes/bootstrap3/assets/css/images/ie6/borderMiddleRight.pngbin0 -> 108 bytes
-rw-r--r--nikola/data/themes/bootstrap3/assets/css/images/ie6/borderTopCenter.pngbin0 -> 111 bytes
-rw-r--r--nikola/data/themes/bootstrap3/assets/css/images/ie6/borderTopLeft.pngbin0 -> 216 bytes
-rw-r--r--nikola/data/themes/bootstrap3/assets/css/images/ie6/borderTopRight.pngbin0 -> 214 bytes
-rw-r--r--nikola/data/themes/bootstrap3/assets/css/rst.css318
-rw-r--r--nikola/data/themes/bootstrap3/assets/css/theme.css183
l---------nikola/data/themes/bootstrap3/assets/fonts/glyphicons-halflings-regular.eot1
l---------nikola/data/themes/bootstrap3/assets/fonts/glyphicons-halflings-regular.svg1
l---------nikola/data/themes/bootstrap3/assets/fonts/glyphicons-halflings-regular.ttf1
l---------nikola/data/themes/bootstrap3/assets/fonts/glyphicons-halflings-regular.woff1
-rw-r--r--nikola/data/themes/bootstrap3/bundles4
-rw-r--r--nikola/data/themes/bootstrap3/engine1
-rw-r--r--nikola/data/themes/bootstrap3/parent1
-rw-r--r--nikola/data/themes/bootstrap3/templates/base.tmpl88
-rw-r--r--nikola/data/themes/bootstrap3/templates/base_helper.tmpl165
-rw-r--r--nikola/data/themes/bootstrap3/templates/gallery.tmpl94
-rw-r--r--nikola/data/themes/bootstrap3/templates/listing.tmpl28
-rw-r--r--nikola/data/themes/bootstrap3/templates/slides.tmpl24
105 files changed, 1906 insertions, 100 deletions
diff --git a/nikola/data/themes/base-jinja/templates/base.tmpl b/nikola/data/themes/base-jinja/templates/base.tmpl
index 2b15177..3768b9e 100644
--- a/nikola/data/themes/base-jinja/templates/base.tmpl
+++ b/nikola/data/themes/base-jinja/templates/base.tmpl
@@ -11,6 +11,7 @@
{{ template_hooks['extra_head']() }}
</head>
<body>
+<a href="#content" class="sr-only sr-only-focusable">{{ messages("Skip to main content") }}</a>
<div id="container">
{{ header.html_header() }}
<main id="content">
diff --git a/nikola/data/themes/base-jinja/templates/base_header.tmpl b/nikola/data/themes/base-jinja/templates/base_header.tmpl
index 1001db3..7947f68 100644
--- a/nikola/data/themes/base-jinja/templates/base_header.tmpl
+++ b/nikola/data/themes/base-jinja/templates/base_header.tmpl
@@ -31,7 +31,7 @@
<nav id="menu" role="navigation">
<ul>
{% for url, text in navigation_links[lang] %}
- {% if url is mapping %}
+ {% if isinstance(url, tuple) %}
<li> {{ text }}
<ul>
{% for suburl, text in url %}
diff --git a/nikola/data/themes/base-jinja/templates/base_helper.tmpl b/nikola/data/themes/base-jinja/templates/base_helper.tmpl
index 2dda87b..bd5d025 100644
--- a/nikola/data/themes/base-jinja/templates/base_helper.tmpl
+++ b/nikola/data/themes/base-jinja/templates/base_helper.tmpl
@@ -47,11 +47,18 @@ lang="{{ lang }}">
<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="/assets/js/html5.js"></script><![endif]-->
+ <!--[if lt IE 9]><script src="{{ url_replacer(permalink, '/assets/js/html5.js', lang) }}"></script><![endif]-->
{% endif %}
{{ extra_head_data }}
diff --git a/nikola/data/themes/base-jinja/templates/post.tmpl b/nikola/data/themes/base-jinja/templates/post.tmpl
index 75c7690..e6dc97b 100644
--- a/nikola/data/themes/base-jinja/templates/post.tmpl
+++ b/nikola/data/themes/base-jinja/templates/post.tmpl
@@ -7,9 +7,18 @@
{% block extra_head %}
{{ super() }}
{% if post.meta('keywords') %}
- <meta name="keywords" content="{{ post.meta('keywords')|e }}">
+ <meta name="keywords" content="{{ post.meta('keywords')|e }}">
+ {% 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) }}
diff --git a/nikola/data/themes/base-jinja/templates/post_helper.tmpl b/nikola/data/themes/base-jinja/templates/post_helper.tmpl
index c695e57..541cd31 100644
--- a/nikola/data/themes/base-jinja/templates/post_helper.tmpl
+++ b/nikola/data/themes/base-jinja/templates/post_helper.tmpl
@@ -38,33 +38,33 @@
{% endmacro %}
{% macro open_graph_metadata(post) %}
- {% if use_open_graph %}
- <meta name="og:title" content="{{ post.title()[:70]|e }}">
- <meta name="og:url" content="{{ abs_link(permalink) }}">
- {% if post.description() %}
- <meta name="og:description" content="{{ post.description()[:200]|e }}">
- {% else %}
- <meta name="og:description" content="{{ post.text(strip_html=True)[:200]|e }}">
- {% endif %}
- <meta name="og:site_name" content="{{ blog_title|e }}">
- <meta name="og:type" content="article">
+{% if use_open_graph %}
+ <meta name="og:title" content="{{ post.title()[:70]|e }}">
+ <meta name="og:url" content="{{ abs_link(permalink) }}">
+ {% if post.description() %}
+ <meta name="og:description" content="{{ post.description()[:200]|e }}">
+ {% else %}
+ <meta name="og:description" content="{{ post.text(strip_html=True)[:200]|e }}">
{% endif %}
+ <meta name="og:site_name" content="{{ blog_title|e }}">
+ <meta name="og:type" content="article">
+{% endif %}
{% endmacro %}
{% macro twitter_card_information(post) %}
- {% if twitter_card and twitter_card['use_twitter_cards'] %}
- <meta name="twitter:card" content="{{ twitter_card.get('card', 'summary')|e }}">
- {% if 'site:id' in twitter_card %}
- <meta name="twitter:site:id" content="{{ twitter_card['site:id'] }}">
- {% elif 'site' in twitter_card %}
- <meta name="twitter:site" content="{{ twitter_card['site'] }}">
- {% endif %}
- {% if 'creator:id' in twitter_card %}
- <meta name="twitter:creator:id" content="{{ twitter_card['creator:id'] }}">
- {% elif 'creator' in twitter_card %}
- <meta name="twitter:creator" content="{{ twitter_card['creator'] }}">
- {% endif %}
+{% if twitter_card and twitter_card['use_twitter_cards'] %}
+ <meta name="twitter:card" content="{{ twitter_card.get('card', 'summary')|e }}">
+ {% if 'site:id' in twitter_card %}
+ <meta name="twitter:site:id" content="{{ twitter_card['site:id'] }}">
+ {% elif 'site' in twitter_card %}
+ <meta name="twitter:site" content="{{ twitter_card['site'] }}">
+ {% endif %}
+ {% if 'creator:id' in twitter_card %}
+ <meta name="twitter:creator:id" content="{{ twitter_card['creator:id'] }}">
+ {% elif 'creator' in twitter_card %}
+ <meta name="twitter:creator" content="{{ twitter_card['creator'] }}">
{% endif %}
+{% endif %}
{% endmacro %}
{% macro mathjax_script(post) %}
diff --git a/nikola/data/themes/base-jinja/templates/story.tmpl b/nikola/data/themes/base-jinja/templates/story.tmpl
index 99caaee..11973f1 100644
--- a/nikola/data/themes/base-jinja/templates/story.tmpl
+++ b/nikola/data/themes/base-jinja/templates/story.tmpl
@@ -4,27 +4,13 @@
{% import 'comments_helper.tmpl' as comments with context %}
{% extends 'post.tmpl' %}
-{% block extra_head %}
- {{ super() }}
- {% if post.meta('keywords') %}
- <meta name="keywords" content="{{ post.meta('keywords')|e }}">
- {% endif %}
- <meta name="author" content="{{ post.author() }}">
- {{ helper.open_graph_metadata(post) }}
- {{ helper.twitter_card_information(post) }}
- {{ helper.meta_translations(post) }}
- {% if post.description() %}
- <meta name="description" itemprop="description" content="{{ post.description() }}">
- {% endif %}
-{% endblock %}
-
{% block content %}
<article class="storypage" itemscope="itemscope" itemtype="http://schema.org/Article">
<header>
{{ pheader.html_title() }}
{{ pheader.html_translations(post) }}
</header>
- <div itemprop="articleBody text">
+ <div class="e-content entry-content" itemprop="articleBody text">
{{ post.text() }}
</div>
{% if site_has_comments and enable_comments and not post.meta('nocomments') %}
@@ -33,5 +19,6 @@
{{ comments.comment_form(post.permalink(absolute=True), post.title(), post.base_path) }}
</section>
{% endif %}
+ {{ helper.mathjax_script(post) }}
</article>
{% endblock %}
diff --git a/nikola/data/themes/base/assets/css/rst.css b/nikola/data/themes/base/assets/css/rst.css
index 855b9fb..784308b 100644
--- a/nikola/data/themes/base/assets/css/rst.css
+++ b/nikola/data/themes/base/assets/css/rst.css
@@ -109,6 +109,14 @@ div.line-block div.line-block {
margin-bottom: 0 ;
margin-left: 1.5em }
+
+html[dir="rtl"] div.line-block div.line-block {
+ margin-top: 0 ;
+ margin-bottom: 0 ;
+ margin-right: 1.5em ;
+ margin-left: 0 ;
+}
+
div.sidebar {
margin: 0 0 0.5em 1em ;
border: medium outset ;
diff --git a/nikola/data/themes/base/assets/css/theme.css b/nikola/data/themes/base/assets/css/theme.css
index 6fd1072..18b93db 100644
--- a/nikola/data/themes/base/assets/css/theme.css
+++ b/nikola/data/themes/base/assets/css/theme.css
@@ -157,6 +157,7 @@ body {
content: "";
}
.postpromonav .pager {
+ clear: both;
height: 1em;
}
.postpromonav .tags li,
@@ -169,6 +170,14 @@ body {
.postpromonav .pager .next:dir(rtl) {
float: left;
}
+
+.postpromonav .pager .previous {
+ float: left;
+}
+.postpromonav .pager .previous:dir(rtl) {
+ float: right;
+}
+
.metadata p {
display: inline;
}
@@ -253,3 +262,24 @@ img {
.codetable .linenos {
padding-right: 10px;
}
+
+.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;
+}
diff --git a/nikola/data/themes/base/messages/messages_ar.py b/nikola/data/themes/base/messages/messages_ar.py
new file mode 100644
index 0000000..f7ba16a
--- /dev/null
+++ b/nikola/data/themes/base/messages/messages_ar.py
@@ -0,0 +1,34 @@
+# -*- encoding:utf-8 -*-
+from __future__ import unicode_literals
+
+MESSAGES = {
+ "%d min remaining to read": "",
+ "Also available in:": "",
+ "Archive": "",
+ "Categories": "الأصناف",
+ "Comments": "التّعليقات",
+ "LANGUAGE": "العربيّة",
+ "Languages:": "",
+ "More posts about %s": "المزيد من المقالات حول %s",
+ "Newer posts": "",
+ "Next post": "",
+ "No posts found.": "",
+ "Nothing found.": "",
+ "Older posts": "",
+ "Original site": "",
+ "Posted:": "",
+ "Posts about %s": "",
+ "Posts for year %s": "",
+ "Posts for {month} {year}": "",
+ "Previous post": "",
+ "Publication date": "",
+ "RSS feed": "",
+ "Read in English": "",
+ "Read more": "قراءة المزيد",
+ "Skip to main content": "",
+ "Source": "",
+ "Tags and Categories": "",
+ "Tags": "",
+ "old posts, page %d": "",
+ "page %d": "",
+}
diff --git a/nikola/data/themes/base/messages/messages_bg.py b/nikola/data/themes/base/messages/messages_bg.py
index 4158ac8..28adb77 100644
--- a/nikola/data/themes/base/messages/messages_bg.py
+++ b/nikola/data/themes/base/messages/messages_bg.py
@@ -25,6 +25,7 @@ MESSAGES = {
"RSS feed": "",
"Read in English": "Прочетете на български",
"Read more": "Прочети още",
+ "Skip to main content": "",
"Source": "Source",
"Tags and Categories": "Тагове и Категории",
"Tags": "Тагове",
diff --git a/nikola/data/themes/base/messages/messages_ca.py b/nikola/data/themes/base/messages/messages_ca.py
index 7723f3e..58c8577 100644
--- a/nikola/data/themes/base/messages/messages_ca.py
+++ b/nikola/data/themes/base/messages/messages_ca.py
@@ -25,6 +25,7 @@ MESSAGES = {
"RSS feed": "",
"Read in English": "Llegeix-ho en català",
"Read more": "Llegeix-ne més",
+ "Skip to main content": "",
"Source": "Codi",
"Tags and Categories": "",
"Tags": "Etiquetes",
diff --git a/nikola/data/themes/base/messages/messages_cs.py b/nikola/data/themes/base/messages/messages_cs.py
index f80a79f..548c6d7 100644
--- a/nikola/data/themes/base/messages/messages_cs.py
+++ b/nikola/data/themes/base/messages/messages_cs.py
@@ -2,18 +2,18 @@
from __future__ import unicode_literals
MESSAGES = {
- "%d min remaining to read": "",
+ "%d min remaining to read": "%d min zbývajících",
"Also available in:": "Dostupné také v",
"Archive": "Archiv",
"Categories": "Kategorie",
- "Comments": "",
+ "Comments": "Komentáře",
"LANGUAGE": "Čeština",
- "Languages:": "",
+ "Languages:": "Jazyky:",
"More posts about %s": "Další příspěvky o %s",
"Newer posts": "Novější příspěvky",
"Next post": "Další příspěvek",
- "No posts found.": "",
- "Nothing found.": "",
+ "No posts found.": "Nebyly nalezeny žádné příspěvky.",
+ "Nothing found.": "Nic nebylo nalezeno.",
"Older posts": "Starší příspěvky",
"Original site": "Původní stránka",
"Posted:": "Zveřejněno:",
@@ -21,10 +21,11 @@ MESSAGES = {
"Posts for year %s": "Příspěvky v roce %s",
"Posts for {month} {year}": "Příspěvky v {month} {year}",
"Previous post": "Předchozí příspěvek",
- "Publication date": "",
- "RSS feed": "",
+ "Publication date": "Datum zveřejnění",
+ "RSS feed": "RSS zdroj",
"Read in English": "Číst v češtině",
"Read more": "Číst dál",
+ "Skip to main content": "",
"Source": "Zdroj",
"Tags and Categories": "Štítky a kategorie",
"Tags": "Štítky",
diff --git a/nikola/data/themes/base/messages/messages_da.py b/nikola/data/themes/base/messages/messages_da.py
new file mode 100644
index 0000000..c5c82ee
--- /dev/null
+++ b/nikola/data/themes/base/messages/messages_da.py
@@ -0,0 +1,34 @@
+# -*- encoding:utf-8 -*-
+from __future__ import unicode_literals
+
+MESSAGES = {
+ "%d min remaining to read": "",
+ "Also available in:": "",
+ "Archive": "",
+ "Categories": "",
+ "Comments": "",
+ "LANGUAGE": "",
+ "Languages:": "",
+ "More posts about %s": "",
+ "Newer posts": "",
+ "Next post": "",
+ "No posts found.": "",
+ "Nothing found.": "",
+ "Older posts": "",
+ "Original site": "",
+ "Posted:": "",
+ "Posts about %s": "",
+ "Posts for year %s": "",
+ "Posts for {month} {year}": "",
+ "Previous post": "",
+ "Publication date": "",
+ "RSS feed": "",
+ "Read in English": "",
+ "Read more": "",
+ "Skip to main content": "",
+ "Source": "",
+ "Tags and Categories": "",
+ "Tags": "",
+ "old posts, page %d": "",
+ "page %d": "",
+}
diff --git a/nikola/data/themes/base/messages/messages_de.py b/nikola/data/themes/base/messages/messages_de.py
index 737e63b..6be6ad5 100644
--- a/nikola/data/themes/base/messages/messages_de.py
+++ b/nikola/data/themes/base/messages/messages_de.py
@@ -2,7 +2,7 @@
from __future__ import unicode_literals
MESSAGES = {
- "%d min remaining to read": "",
+ "%d min remaining to read": "%d min verbleiben zum Lesen",
"Also available in:": "Auch verfügbar in:",
"Archive": "Archiv",
"Categories": "Kategorien",
@@ -25,9 +25,10 @@ MESSAGES = {
"RSS feed": "RSS-Feed",
"Read in English": "Auf Deutsch lesen",
"Read more": "Weiterlesen",
+ "Skip to main content": "",
"Source": "Source",
"Tags and Categories": "Tags und Kategorien",
"Tags": "Tags",
- "old posts, page %d": "Vorherige Einträge, Seite %d",
+ "old posts, page %d": "Ältere Einträge, Seite %d",
"page %d": "Seite %d",
}
diff --git a/nikola/data/themes/base/messages/messages_el.py b/nikola/data/themes/base/messages/messages_el.py
index aeca302..ce2fd89 100644
--- a/nikola/data/themes/base/messages/messages_el.py
+++ b/nikola/data/themes/base/messages/messages_el.py
@@ -25,6 +25,7 @@ MESSAGES = {
"RSS feed": "",
"Read in English": "Διαβάστε στα Ελληνικά",
"Read more": "Διαβάστε περισσότερα",
+ "Skip to main content": "",
"Source": "Πηγαίος κώδικας",
"Tags and Categories": "Ετικέτες και κατηγορίες",
"Tags": "Ετικέτες",
diff --git a/nikola/data/themes/base/messages/messages_en.py b/nikola/data/themes/base/messages/messages_en.py
index bdf2d42..df04974 100644
--- a/nikola/data/themes/base/messages/messages_en.py
+++ b/nikola/data/themes/base/messages/messages_en.py
@@ -25,6 +25,7 @@ MESSAGES = {
"RSS feed": "RSS feed",
"Read in English": "Read in English",
"Read more": "Read more",
+ "Skip to main content": "Skip to main content",
"Source": "Source",
"Tags and Categories": "Tags and Categories",
"Tags": "Tags",
diff --git a/nikola/data/themes/base/messages/messages_eo.py b/nikola/data/themes/base/messages/messages_eo.py
index e439e6b..38b54e2 100644
--- a/nikola/data/themes/base/messages/messages_eo.py
+++ b/nikola/data/themes/base/messages/messages_eo.py
@@ -25,6 +25,7 @@ MESSAGES = {
"RSS feed": "",
"Read in English": "Legu ĝin en Esperanto",
"Read more": "Legu plu",
+ "Skip to main content": "",
"Source": "Fonto",
"Tags and Categories": "Etikedoj kaj Kategorioj",
"Tags": "Etikedoj",
diff --git a/nikola/data/themes/base/messages/messages_es.py b/nikola/data/themes/base/messages/messages_es.py
index 0905f00..67de5aa 100644
--- a/nikola/data/themes/base/messages/messages_es.py
+++ b/nikola/data/themes/base/messages/messages_es.py
@@ -25,6 +25,7 @@ MESSAGES = {
"RSS feed": "feed RSS",
"Read in English": "Leer en español",
"Read more": "Leer más",
+ "Skip to main content": "",
"Source": "Código",
"Tags and Categories": "Tags y Categorías",
"Tags": "Tags",
diff --git a/nikola/data/themes/base/messages/messages_et.py b/nikola/data/themes/base/messages/messages_et.py
index f473985..3a53c2f 100644
--- a/nikola/data/themes/base/messages/messages_et.py
+++ b/nikola/data/themes/base/messages/messages_et.py
@@ -25,6 +25,7 @@ MESSAGES = {
"RSS feed": "",
"Read in English": "Loe eesti keeles",
"Read more": "Loe veel",
+ "Skip to main content": "",
"Source": "Lähtekood",
"Tags and Categories": "Sildid ja kategooriad",
"Tags": "Märksõnad",
diff --git a/nikola/data/themes/base/messages/messages_eu.py b/nikola/data/themes/base/messages/messages_eu.py
index 8958d42..6920552 100644
--- a/nikola/data/themes/base/messages/messages_eu.py
+++ b/nikola/data/themes/base/messages/messages_eu.py
@@ -25,6 +25,7 @@ MESSAGES = {
"RSS feed": "",
"Read in English": "Euskaraz irakurri",
"Read more": "Irakurri gehiago",
+ "Skip to main content": "",
"Source": "Iturria",
"Tags and Categories": "Etiketak eta Kategoriak",
"Tags": "Etiketak",
diff --git a/nikola/data/themes/base/messages/messages_fa.py b/nikola/data/themes/base/messages/messages_fa.py
index 49cfda5..5899ec5 100644
--- a/nikola/data/themes/base/messages/messages_fa.py
+++ b/nikola/data/themes/base/messages/messages_fa.py
@@ -25,6 +25,7 @@ MESSAGES = {
"RSS feed": "خوراک",
"Read in English": "به فارسی بخوانید",
"Read more": "بیشتر بخوانید",
+ "Skip to main content": "",
"Source": "منبع",
"Tags and Categories": "برچسب‌ها و دسته‌ها",
"Tags": "برچسب‌ها",
diff --git a/nikola/data/themes/base/messages/messages_fi.py b/nikola/data/themes/base/messages/messages_fi.py
index b621459..1988e3f 100644
--- a/nikola/data/themes/base/messages/messages_fi.py
+++ b/nikola/data/themes/base/messages/messages_fi.py
@@ -25,6 +25,7 @@ MESSAGES = {
"RSS feed": "RSS syöte",
"Read in English": "Lue suomeksi",
"Read more": "Lue lisää",
+ "Skip to main content": "",
"Source": "Lähde",
"Tags and Categories": "Tagit ja kategoriat",
"Tags": "Tagit",
diff --git a/nikola/data/themes/base/messages/messages_fr.py b/nikola/data/themes/base/messages/messages_fr.py
index 316ba20..a30aa1a 100644
--- a/nikola/data/themes/base/messages/messages_fr.py
+++ b/nikola/data/themes/base/messages/messages_fr.py
@@ -2,7 +2,7 @@
from __future__ import unicode_literals
MESSAGES = {
- "%d min remaining to read": "",
+ "%d min remaining to read": "Il reste encore %d min. de lecture",
"Also available in:": "Egalement disponible en:",
"Archive": "Archives",
"Categories": "Catégories",
@@ -25,6 +25,7 @@ MESSAGES = {
"RSS feed": "Flux RSS",
"Read in English": "Lire en français",
"Read more": "Lire la suite",
+ "Skip to main content": "Aller au contenu principal",
"Source": "Source",
"Tags and Categories": "Étiquettes et catégories",
"Tags": "Étiquettes",
diff --git a/nikola/data/themes/base/messages/messages_gl.py b/nikola/data/themes/base/messages/messages_gl.py
new file mode 100644
index 0000000..c5c82ee
--- /dev/null
+++ b/nikola/data/themes/base/messages/messages_gl.py
@@ -0,0 +1,34 @@
+# -*- encoding:utf-8 -*-
+from __future__ import unicode_literals
+
+MESSAGES = {
+ "%d min remaining to read": "",
+ "Also available in:": "",
+ "Archive": "",
+ "Categories": "",
+ "Comments": "",
+ "LANGUAGE": "",
+ "Languages:": "",
+ "More posts about %s": "",
+ "Newer posts": "",
+ "Next post": "",
+ "No posts found.": "",
+ "Nothing found.": "",
+ "Older posts": "",
+ "Original site": "",
+ "Posted:": "",
+ "Posts about %s": "",
+ "Posts for year %s": "",
+ "Posts for {month} {year}": "",
+ "Previous post": "",
+ "Publication date": "",
+ "RSS feed": "",
+ "Read in English": "",
+ "Read more": "",
+ "Skip to main content": "",
+ "Source": "",
+ "Tags and Categories": "",
+ "Tags": "",
+ "old posts, page %d": "",
+ "page %d": "",
+}
diff --git a/nikola/data/themes/base/messages/messages_hi.py b/nikola/data/themes/base/messages/messages_hi.py
index 6b53e01..3d69697 100644
--- a/nikola/data/themes/base/messages/messages_hi.py
+++ b/nikola/data/themes/base/messages/messages_hi.py
@@ -25,6 +25,7 @@ MESSAGES = {
"RSS feed": "",
"Read in English": "हिन्दी में पढ़िए",
"Read more": "और पढ़िए",
+ "Skip to main content": "",
"Source": "सोर्स",
"Tags and Categories": "टैग्स और श्रेणियाँ",
"Tags": "टैग्स",
diff --git a/nikola/data/themes/base/messages/messages_hr.py b/nikola/data/themes/base/messages/messages_hr.py
index c3343c9..f5f0886 100644
--- a/nikola/data/themes/base/messages/messages_hr.py
+++ b/nikola/data/themes/base/messages/messages_hr.py
@@ -25,6 +25,7 @@ MESSAGES = {
"RSS feed": "RSS kanal",
"Read in English": "Čitaj na hrvatskom",
"Read more": "Čitaj dalje",
+ "Skip to main content": "",
"Source": "Izvor",
"Tags and Categories": "Tagovi i kategorije",
"Tags": "Tagovi",
diff --git a/nikola/data/themes/base/messages/messages_it.py b/nikola/data/themes/base/messages/messages_it.py
index b248d34..62442d4 100644
--- a/nikola/data/themes/base/messages/messages_it.py
+++ b/nikola/data/themes/base/messages/messages_it.py
@@ -25,6 +25,7 @@ MESSAGES = {
"RSS feed": "Flusso RSS",
"Read in English": "Leggi in italiano",
"Read more": "Continua la lettura",
+ "Skip to main content": "",
"Source": "Sorgente",
"Tags and Categories": "Tags e Categorie",
"Tags": "Tags",
diff --git a/nikola/data/themes/base/messages/messages_ja.py b/nikola/data/themes/base/messages/messages_ja.py
index 4b0fd54..cba5ee9 100644
--- a/nikola/data/themes/base/messages/messages_ja.py
+++ b/nikola/data/themes/base/messages/messages_ja.py
@@ -25,6 +25,7 @@ MESSAGES = {
"RSS feed": "RSS フィード",
"Read in English": "日本語で読む",
"Read more": "続きを読む",
+ "Skip to main content": "",
"Source": "ソース",
"Tags and Categories": "タグとカテゴリー",
"Tags": "タグ",
diff --git a/nikola/data/themes/base/messages/messages_nb.py b/nikola/data/themes/base/messages/messages_nb.py
index f6232df..f4d6062 100644
--- a/nikola/data/themes/base/messages/messages_nb.py
+++ b/nikola/data/themes/base/messages/messages_nb.py
@@ -25,6 +25,7 @@ MESSAGES = {
"RSS feed": "",
"Read in English": "Les på norsk",
"Read more": "Les mer",
+ "Skip to main content": "",
"Source": "Kilde",
"Tags and Categories": "Merker og kategorier",
"Tags": "Merker",
diff --git a/nikola/data/themes/base/messages/messages_nl.py b/nikola/data/themes/base/messages/messages_nl.py
index 7cba96b..4aa9147 100644
--- a/nikola/data/themes/base/messages/messages_nl.py
+++ b/nikola/data/themes/base/messages/messages_nl.py
@@ -25,6 +25,7 @@ MESSAGES = {
"RSS feed": "RSS-feed",
"Read in English": "Lees in het Nederlands",
"Read more": "Lees verder",
+ "Skip to main content": "Ga door naar de hoofdinhoud",
"Source": "Bron",
"Tags and Categories": "Tags en Categorieën",
"Tags": "Tags",
diff --git a/nikola/data/themes/base/messages/messages_pl.py b/nikola/data/themes/base/messages/messages_pl.py
index 6b6e48d..b1d4e82 100644
--- a/nikola/data/themes/base/messages/messages_pl.py
+++ b/nikola/data/themes/base/messages/messages_pl.py
@@ -7,7 +7,7 @@ MESSAGES = {
"Archive": "Archiwum",
"Categories": "Kategorie",
"Comments": "Komentarze",
- "LANGUAGE": "polski",
+ "LANGUAGE": "Polski",
"Languages:": "Języki:",
"More posts about %s": "Więcej postów o %s",
"Newer posts": "Nowsze posty",
@@ -25,9 +25,10 @@ MESSAGES = {
"RSS feed": "Kanał RSS",
"Read in English": "Czytaj po polsku",
"Read more": "Czytaj więcej",
+ "Skip to main content": "Przejdź do treści",
"Source": "Źródło",
"Tags and Categories": "Tagi i Kategorie",
- "Tags": "Tags",
+ "Tags": "Tagi",
"old posts, page %d": "stare posty, strona %d",
"page %d": "strona %d",
}
diff --git a/nikola/data/themes/base/messages/messages_pt.py b/nikola/data/themes/base/messages/messages_pt.py
new file mode 100644
index 0000000..c5c82ee
--- /dev/null
+++ b/nikola/data/themes/base/messages/messages_pt.py
@@ -0,0 +1,34 @@
+# -*- encoding:utf-8 -*-
+from __future__ import unicode_literals
+
+MESSAGES = {
+ "%d min remaining to read": "",
+ "Also available in:": "",
+ "Archive": "",
+ "Categories": "",
+ "Comments": "",
+ "LANGUAGE": "",
+ "Languages:": "",
+ "More posts about %s": "",
+ "Newer posts": "",
+ "Next post": "",
+ "No posts found.": "",
+ "Nothing found.": "",
+ "Older posts": "",
+ "Original site": "",
+ "Posted:": "",
+ "Posts about %s": "",
+ "Posts for year %s": "",
+ "Posts for {month} {year}": "",
+ "Previous post": "",
+ "Publication date": "",
+ "RSS feed": "",
+ "Read in English": "",
+ "Read more": "",
+ "Skip to main content": "",
+ "Source": "",
+ "Tags and Categories": "",
+ "Tags": "",
+ "old posts, page %d": "",
+ "page %d": "",
+}
diff --git a/nikola/data/themes/base/messages/messages_pt_br.py b/nikola/data/themes/base/messages/messages_pt_br.py
index c86b2f8..0805f8e 100644
--- a/nikola/data/themes/base/messages/messages_pt_br.py
+++ b/nikola/data/themes/base/messages/messages_pt_br.py
@@ -25,6 +25,7 @@ MESSAGES = {
"RSS feed": "Feed RSS",
"Read in English": "Ler em português",
"Read more": "Leia mais",
+ "Skip to main content": "",
"Source": "Código",
"Tags and Categories": "Tags e Categorias",
"Tags": "Tags",
diff --git a/nikola/data/themes/base/messages/messages_ru.py b/nikola/data/themes/base/messages/messages_ru.py
index 7c038cc..7205906 100644
--- a/nikola/data/themes/base/messages/messages_ru.py
+++ b/nikola/data/themes/base/messages/messages_ru.py
@@ -25,6 +25,7 @@ MESSAGES = {
"RSS feed": "RSS лента",
"Read in English": "Прочесть по-русски",
"Read more": "Читать далее",
+ "Skip to main content": "",
"Source": "Источник",
"Tags and Categories": "Тэги и категории",
"Tags": "Тэги",
diff --git a/nikola/data/themes/base/messages/messages_si_lk.py b/nikola/data/themes/base/messages/messages_si_lk.py
new file mode 100644
index 0000000..c5c82ee
--- /dev/null
+++ b/nikola/data/themes/base/messages/messages_si_lk.py
@@ -0,0 +1,34 @@
+# -*- encoding:utf-8 -*-
+from __future__ import unicode_literals
+
+MESSAGES = {
+ "%d min remaining to read": "",
+ "Also available in:": "",
+ "Archive": "",
+ "Categories": "",
+ "Comments": "",
+ "LANGUAGE": "",
+ "Languages:": "",
+ "More posts about %s": "",
+ "Newer posts": "",
+ "Next post": "",
+ "No posts found.": "",
+ "Nothing found.": "",
+ "Older posts": "",
+ "Original site": "",
+ "Posted:": "",
+ "Posts about %s": "",
+ "Posts for year %s": "",
+ "Posts for {month} {year}": "",
+ "Previous post": "",
+ "Publication date": "",
+ "RSS feed": "",
+ "Read in English": "",
+ "Read more": "",
+ "Skip to main content": "",
+ "Source": "",
+ "Tags and Categories": "",
+ "Tags": "",
+ "old posts, page %d": "",
+ "page %d": "",
+}
diff --git a/nikola/data/themes/base/messages/messages_sk.py b/nikola/data/themes/base/messages/messages_sk.py
index 3b56a58..e3618f3 100644
--- a/nikola/data/themes/base/messages/messages_sk.py
+++ b/nikola/data/themes/base/messages/messages_sk.py
@@ -2,7 +2,7 @@
from __future__ import unicode_literals
MESSAGES = {
- "%d min remaining to read": "",
+ "%d min remaining to read": "zostáva %d minút na čítanie",
"Also available in:": "Tiež dostupné v:",
"Archive": "Archív",
"Categories": "Kategórie",
@@ -25,6 +25,7 @@ MESSAGES = {
"RSS feed": "RSS kanál",
"Read in English": "Čítať v slovenčine",
"Read more": "Čítať ďalej",
+ "Skip to main content": "",
"Source": "Zdroj",
"Tags and Categories": "Štítky a kategórie",
"Tags": "Štítky",
diff --git a/nikola/data/themes/base/messages/messages_sl.py b/nikola/data/themes/base/messages/messages_sl.py
index 53045e3..f9f1d13 100644
--- a/nikola/data/themes/base/messages/messages_sl.py
+++ b/nikola/data/themes/base/messages/messages_sl.py
@@ -2,7 +2,7 @@
from __future__ import unicode_literals
MESSAGES = {
- "%d min remaining to read": "za prebrati preostalo še %d min",
+ "%d min remaining to read": "še %d min za branje preostanka",
"Also available in:": "Na voljo tudi v:",
"Archive": "Arhiv",
"Categories": "Kategorije",
@@ -25,6 +25,7 @@ MESSAGES = {
"RSS feed": "vir RSS",
"Read in English": "Beri v slovenščini",
"Read more": "Več o tem",
+ "Skip to main content": "Preskoči na glavno vsebino",
"Source": "Izvor",
"Tags and Categories": "Značke in kategorije",
"Tags": "Značke",
diff --git a/nikola/data/themes/base/messages/messages_tr.py b/nikola/data/themes/base/messages/messages_tr.py
index df9c4eb..3ba8217 100644
--- a/nikola/data/themes/base/messages/messages_tr.py
+++ b/nikola/data/themes/base/messages/messages_tr.py
@@ -25,6 +25,7 @@ MESSAGES = {
"RSS feed": "RSS kaynağı",
"Read in English": "Türkçe olarak oku",
"Read more": "Devamını oku",
+ "Skip to main content": "",
"Source": "Kaynak",
"Tags and Categories": "Etiketler ve Kategoriler",
"Tags": "Etiketler",
diff --git a/nikola/data/themes/base/messages/messages_ur.py b/nikola/data/themes/base/messages/messages_ur.py
index 204d95f..fac2a3e 100644
--- a/nikola/data/themes/base/messages/messages_ur.py
+++ b/nikola/data/themes/base/messages/messages_ur.py
@@ -25,6 +25,7 @@ MESSAGES = {
"RSS feed": "آر ایس ایس فیڈ",
"Read in English": "اردو میں پڑھیے",
"Read more": "مزید پڑھیے",
+ "Skip to main content": "",
"Source": "سورس",
"Tags and Categories": "ٹیگز اور زمرے",
"Tags": "ٹیگز",
diff --git a/nikola/data/themes/base/messages/messages_zh_cn.py b/nikola/data/themes/base/messages/messages_zh_cn.py
index 525cb45..9d36505 100644
--- a/nikola/data/themes/base/messages/messages_zh_cn.py
+++ b/nikola/data/themes/base/messages/messages_zh_cn.py
@@ -25,6 +25,7 @@ MESSAGES = {
"RSS feed": "",
"Read in English": "中文版",
"Read more": "更多",
+ "Skip to main content": "",
"Source": "源代码",
"Tags and Categories": "标签和分类",
"Tags": "标签",
diff --git a/nikola/data/themes/base/templates/base.tmpl b/nikola/data/themes/base/templates/base.tmpl
index f587593..21f5ad5 100644
--- a/nikola/data/themes/base/templates/base.tmpl
+++ b/nikola/data/themes/base/templates/base.tmpl
@@ -11,6 +11,7 @@ ${base.html_headstart()}
${template_hooks['extra_head']()}
</head>
<body>
+<a href="#content" class="sr-only sr-only-focusable">${messages("Skip to main content")}</a>
<div id="container">
${header.html_header()}
<main id="content">
diff --git a/nikola/data/themes/base/templates/base_helper.tmpl b/nikola/data/themes/base/templates/base_helper.tmpl
index beeff99..491b6da 100644
--- a/nikola/data/themes/base/templates/base_helper.tmpl
+++ b/nikola/data/themes/base/templates/base_helper.tmpl
@@ -47,11 +47,18 @@ lang="${lang}">
<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="/assets/js/html5.js"></script><![endif]-->
+ <!--[if lt IE 9]><script src="${url_replacer(permalink, '/assets/js/html5.js', lang)}"></script><![endif]-->
%endif
${extra_head_data}
diff --git a/nikola/data/themes/base/templates/post.tmpl b/nikola/data/themes/base/templates/post.tmpl
index 0babb2b..fc0afba 100644
--- a/nikola/data/themes/base/templates/post.tmpl
+++ b/nikola/data/themes/base/templates/post.tmpl
@@ -7,9 +7,18 @@
<%block name="extra_head">
${parent.extra_head()}
% if post.meta('keywords'):
- <meta name="keywords" content="${post.meta('keywords')|h}">
+ <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)}
diff --git a/nikola/data/themes/base/templates/post_helper.tmpl b/nikola/data/themes/base/templates/post_helper.tmpl
index 85ba378..c4e0ed1 100644
--- a/nikola/data/themes/base/templates/post_helper.tmpl
+++ b/nikola/data/themes/base/templates/post_helper.tmpl
@@ -38,33 +38,33 @@
</%def>
<%def name="open_graph_metadata(post)">
- %if use_open_graph:
- <meta name="og:title" content="${post.title()[:70]|h}">
- <meta name="og:url" content="${abs_link(permalink)}">
- %if post.description():
- <meta name="og:description" content="${post.description()[:200]|h}">
- %else:
- <meta name="og:description" content="${post.text(strip_html=True)[:200]|h}">
- %endif
- <meta name="og:site_name" content="${blog_title|striphtml}">
- <meta name="og:type" content="article">
+%if use_open_graph:
+ <meta name="og:title" content="${post.title()[:70]|h}">
+ <meta name="og:url" content="${abs_link(permalink)}">
+ %if post.description():
+ <meta name="og:description" content="${post.description()[:200]|h}">
+ %else:
+ <meta name="og:description" content="${post.text(strip_html=True)[:200]|h}">
%endif
+ <meta name="og:site_name" content="${blog_title|striphtml}">
+ <meta name="og:type" content="article">
+%endif
</%def>
<%def name="twitter_card_information(post)">
- %if twitter_card and twitter_card['use_twitter_cards']:
- <meta name="twitter:card" content="${twitter_card.get('card', 'summary')|h}">
- %if 'site:id' in twitter_card:
- <meta name="twitter:site:id" content="${twitter_card['site:id']}">
- %elif 'site' in twitter_card:
- <meta name="twitter:site" content="${twitter_card['site']}">
- %endif
- %if 'creator:id' in twitter_card:
- <meta name="twitter:creator:id" content="${twitter_card['creator:id']}">
- %elif 'creator' in twitter_card:
- <meta name="twitter:creator" content="${twitter_card['creator']}">
- %endif
+%if twitter_card and twitter_card['use_twitter_cards']:
+ <meta name="twitter:card" content="${twitter_card.get('card', 'summary')|h}">
+ %if 'site:id' in twitter_card:
+ <meta name="twitter:site:id" content="${twitter_card['site:id']}">
+ %elif 'site' in twitter_card:
+ <meta name="twitter:site" content="${twitter_card['site']}">
+ %endif
+ %if 'creator:id' in twitter_card:
+ <meta name="twitter:creator:id" content="${twitter_card['creator:id']}">
+ %elif 'creator' in twitter_card:
+ <meta name="twitter:creator" content="${twitter_card['creator']}">
%endif
+%endif
</%def>
<%def name="mathjax_script(post)">
diff --git a/nikola/data/themes/base/templates/story.tmpl b/nikola/data/themes/base/templates/story.tmpl
index e3e3054..2737c4d 100644
--- a/nikola/data/themes/base/templates/story.tmpl
+++ b/nikola/data/themes/base/templates/story.tmpl
@@ -4,27 +4,13 @@
<%namespace name="comments" file="comments_helper.tmpl"/>
<%inherit file="post.tmpl"/>
-<%block name="extra_head">
- ${parent.extra_head()}
- % if post.meta('keywords'):
- <meta name="keywords" content="${post.meta('keywords')|h}">
- % endif
- <meta name="author" content="${post.author()}">
- ${helper.open_graph_metadata(post)}
- ${helper.twitter_card_information(post)}
- ${helper.meta_translations(post)}
- %if post.description():
- <meta name="description" itemprop="description" content="${post.description()}">
- %endif
-</%block>
-
<%block name="content">
<article class="storypage" itemscope="itemscope" itemtype="http://schema.org/Article">
<header>
${pheader.html_title()}
${pheader.html_translations(post)}
</header>
- <div itemprop="articleBody text">
+ <div class="e-content entry-content" itemprop="articleBody text">
${post.text()}
</div>
%if site_has_comments and enable_comments and not post.meta('nocomments'):
@@ -33,5 +19,6 @@
${comments.comment_form(post.permalink(absolute=True), post.title(), post.base_path)}
</section>
%endif
+ ${helper.mathjax_script(post)}
</article>
</%block>
diff --git a/nikola/data/themes/bootstrap-jinja/templates/base.tmpl b/nikola/data/themes/bootstrap-jinja/templates/base.tmpl
index a433721..e9bed3c 100644
--- a/nikola/data/themes/bootstrap-jinja/templates/base.tmpl
+++ b/nikola/data/themes/bootstrap-jinja/templates/base.tmpl
@@ -9,6 +9,7 @@
{{ template_hooks['extra_head']() }}
</head>
<body>
+<a href="#content" class="sr-only sr-only-focusable">{{ messages("Skip to main content") }}</a>
<!-- Menubar -->
@@ -57,7 +58,7 @@
</div>
</div>
<!-- End of Menubar -->
-<div class="container-fluid" id="container-fluid">
+<div class="container-fluid" id="content">
<!--Body content-->
<div class="row-fluid">
<div class="span2"></div>
diff --git a/nikola/data/themes/bootstrap-jinja/templates/base_helper.tmpl b/nikola/data/themes/bootstrap-jinja/templates/base_helper.tmpl
index d8398b8..e44b3a7 100644
--- a/nikola/data/themes/bootstrap-jinja/templates/base_helper.tmpl
+++ b/nikola/data/themes/bootstrap-jinja/templates/base_helper.tmpl
@@ -47,11 +47,18 @@ lang="{{ lang }}">
<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="/assets/js/html5.js"></script><![endif]-->
+ <!--[if lt IE 9]><script src="{{ url_replacer(permalink, '/assets/js/html5.js', lang) }}"></script><![endif]-->
{% endif %}
{{ extra_head_data }}
@@ -117,7 +124,7 @@ lang="{{ lang }}">
{% macro html_navigation_links() %}
{% for url, text in navigation_links[lang] %}
- {% if url is mapping %}
+ {% 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 %}
diff --git a/nikola/data/themes/bootstrap-jinja/templates/post.tmpl b/nikola/data/themes/bootstrap-jinja/templates/post.tmpl
index 531ebd5..54646d0 100644
--- a/nikola/data/themes/bootstrap-jinja/templates/post.tmpl
+++ b/nikola/data/themes/bootstrap-jinja/templates/post.tmpl
@@ -7,9 +7,18 @@
{% block extra_head %}
{{ super() }}
{% if post.meta('keywords') %}
- <meta name="keywords" content="{{ post.meta('keywords')|e }}">
+ <meta name="keywords" content="{{ post.meta('keywords')|e }}">
+ {% 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) }}
diff --git a/nikola/data/themes/bootstrap/assets/css/theme.css b/nikola/data/themes/bootstrap/assets/css/theme.css
index ccdfda2..761dbb6 100644
--- a/nikola/data/themes/bootstrap/assets/css/theme.css
+++ b/nikola/data/themes/bootstrap/assets/css/theme.css
@@ -172,3 +172,24 @@ h4, h5, h6 {
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;
+}
diff --git a/nikola/data/themes/bootstrap/templates/base.tmpl b/nikola/data/themes/bootstrap/templates/base.tmpl
index a469098..9f2bb61 100644
--- a/nikola/data/themes/bootstrap/templates/base.tmpl
+++ b/nikola/data/themes/bootstrap/templates/base.tmpl
@@ -9,6 +9,7 @@ ${base.html_headstart()}
${template_hooks['extra_head']()}
</head>
<body>
+<a href="#content" class="sr-only sr-only-focusable">${messages("Skip to main content")}</a>
<!-- Menubar -->
@@ -57,7 +58,7 @@ ${template_hooks['extra_head']()}
</div>
</div>
<!-- End of Menubar -->
-<div class="container-fluid" id="container-fluid">
+<div class="container-fluid" id="content">
<!--Body content-->
<div class="row-fluid">
<div class="span2"></div>
diff --git a/nikola/data/themes/bootstrap/templates/base_helper.tmpl b/nikola/data/themes/bootstrap/templates/base_helper.tmpl
index 2dcc138..40cce39 100644
--- a/nikola/data/themes/bootstrap/templates/base_helper.tmpl
+++ b/nikola/data/themes/bootstrap/templates/base_helper.tmpl
@@ -47,11 +47,18 @@ lang="${lang}">
<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="/assets/js/html5.js"></script><![endif]-->
+ <!--[if lt IE 9]><script src="${url_replacer(permalink, '/assets/js/html5.js', lang)}"></script><![endif]-->
%endif
${extra_head_data}
diff --git a/nikola/data/themes/bootstrap/templates/post.tmpl b/nikola/data/themes/bootstrap/templates/post.tmpl
index 29a5b75..e55fcd5 100644
--- a/nikola/data/themes/bootstrap/templates/post.tmpl
+++ b/nikola/data/themes/bootstrap/templates/post.tmpl
@@ -7,9 +7,18 @@
<%block name="extra_head">
${parent.extra_head()}
% if post.meta('keywords'):
- <meta name="keywords" content="${post.meta('keywords')|h}">
+ <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)}
diff --git a/nikola/data/themes/bootstrap3-jinja/AUTHORS.txt b/nikola/data/themes/bootstrap3-jinja/AUTHORS.txt
new file mode 100644
index 0000000..043d497
--- /dev/null
+++ b/nikola/data/themes/bootstrap3-jinja/AUTHORS.txt
@@ -0,0 +1 @@
+Roberto Alsina <https://github.com/ralsina>
diff --git a/nikola/data/themes/bootstrap3-jinja/README.md b/nikola/data/themes/bootstrap3-jinja/README.md
new file mode 100644
index 0000000..f008daf
--- /dev/null
+++ b/nikola/data/themes/bootstrap3-jinja/README.md
@@ -0,0 +1,8 @@
+A bootstrap3 version of the bootstrap theme.
+
+There is a variant called bootstrap3-gradients which uses an extra CSS
+file for a *visually enhanced experience* (according to Bootstrap
+developers at least). This one uses the default bootstrap3 flat look.
+
+This theme supports Bootswtach font/color schemes (unlike
+bootstrap3-gradients) through the `nikola bootswatch_theme` command.
diff --git a/nikola/data/themes/bootstrap3-jinja/assets/css/bootstrap-theme.css.map b/nikola/data/themes/bootstrap3-jinja/assets/css/bootstrap-theme.css.map
new file mode 120000
index 0000000..639bdc1
--- /dev/null
+++ b/nikola/data/themes/bootstrap3-jinja/assets/css/bootstrap-theme.css.map
@@ -0,0 +1 @@
+../../../../../../bower_components/bootstrap/dist/css/bootstrap-theme.css.map \ No newline at end of file
diff --git a/nikola/data/themes/bootstrap3-jinja/assets/css/bootstrap.css.map b/nikola/data/themes/bootstrap3-jinja/assets/css/bootstrap.css.map
new file mode 120000
index 0000000..8448a3d
--- /dev/null
+++ b/nikola/data/themes/bootstrap3-jinja/assets/css/bootstrap.css.map
@@ -0,0 +1 @@
+../../../../../../bower_components/bootstrap/dist/css/bootstrap.css.map \ No newline at end of file
diff --git a/nikola/data/themes/bootstrap3-jinja/assets/css/docs.css b/nikola/data/themes/bootstrap3-jinja/assets/css/docs.css
new file mode 120000
index 0000000..b9cce36
--- /dev/null
+++ b/nikola/data/themes/bootstrap3-jinja/assets/css/docs.css
@@ -0,0 +1 @@
+../../../bootstrap3/assets/css/docs.css \ No newline at end of file
diff --git a/nikola/data/themes/bootstrap3-jinja/assets/css/images/ie6/borderBottomCenter.png b/nikola/data/themes/bootstrap3-jinja/assets/css/images/ie6/borderBottomCenter.png
new file mode 120000
index 0000000..2a6267e
--- /dev/null
+++ b/nikola/data/themes/bootstrap3-jinja/assets/css/images/ie6/borderBottomCenter.png
@@ -0,0 +1 @@
+../../../../../bootstrap3/assets/css/images/ie6/borderBottomCenter.png \ No newline at end of file
diff --git a/nikola/data/themes/bootstrap3-jinja/assets/css/images/ie6/borderBottomLeft.png b/nikola/data/themes/bootstrap3-jinja/assets/css/images/ie6/borderBottomLeft.png
new file mode 120000
index 0000000..6cd025a
--- /dev/null
+++ b/nikola/data/themes/bootstrap3-jinja/assets/css/images/ie6/borderBottomLeft.png
@@ -0,0 +1 @@
+../../../../../bootstrap3/assets/css/images/ie6/borderBottomLeft.png \ No newline at end of file
diff --git a/nikola/data/themes/bootstrap3-jinja/assets/css/images/ie6/borderBottomRight.png b/nikola/data/themes/bootstrap3-jinja/assets/css/images/ie6/borderBottomRight.png
new file mode 120000
index 0000000..9596518
--- /dev/null
+++ b/nikola/data/themes/bootstrap3-jinja/assets/css/images/ie6/borderBottomRight.png
@@ -0,0 +1 @@
+../../../../../bootstrap3/assets/css/images/ie6/borderBottomRight.png \ No newline at end of file
diff --git a/nikola/data/themes/bootstrap3-jinja/assets/css/images/ie6/borderMiddleLeft.png b/nikola/data/themes/bootstrap3-jinja/assets/css/images/ie6/borderMiddleLeft.png
new file mode 120000
index 0000000..b5403bf
--- /dev/null
+++ b/nikola/data/themes/bootstrap3-jinja/assets/css/images/ie6/borderMiddleLeft.png
@@ -0,0 +1 @@
+../../../../../bootstrap3/assets/css/images/ie6/borderMiddleLeft.png \ No newline at end of file
diff --git a/nikola/data/themes/bootstrap3-jinja/assets/css/images/ie6/borderMiddleRight.png b/nikola/data/themes/bootstrap3-jinja/assets/css/images/ie6/borderMiddleRight.png
new file mode 120000
index 0000000..27c023f
--- /dev/null
+++ b/nikola/data/themes/bootstrap3-jinja/assets/css/images/ie6/borderMiddleRight.png
@@ -0,0 +1 @@
+../../../../../bootstrap3/assets/css/images/ie6/borderMiddleRight.png \ No newline at end of file
diff --git a/nikola/data/themes/bootstrap3-jinja/assets/css/images/ie6/borderTopCenter.png b/nikola/data/themes/bootstrap3-jinja/assets/css/images/ie6/borderTopCenter.png
new file mode 120000
index 0000000..e272a45
--- /dev/null
+++ b/nikola/data/themes/bootstrap3-jinja/assets/css/images/ie6/borderTopCenter.png
@@ -0,0 +1 @@
+../../../../../bootstrap3/assets/css/images/ie6/borderTopCenter.png \ No newline at end of file
diff --git a/nikola/data/themes/bootstrap3-jinja/assets/css/images/ie6/borderTopLeft.png b/nikola/data/themes/bootstrap3-jinja/assets/css/images/ie6/borderTopLeft.png
new file mode 120000
index 0000000..e8ceae5
--- /dev/null
+++ b/nikola/data/themes/bootstrap3-jinja/assets/css/images/ie6/borderTopLeft.png
@@ -0,0 +1 @@
+../../../../../bootstrap3/assets/css/images/ie6/borderTopLeft.png \ No newline at end of file
diff --git a/nikola/data/themes/bootstrap3-jinja/assets/css/images/ie6/borderTopRight.png b/nikola/data/themes/bootstrap3-jinja/assets/css/images/ie6/borderTopRight.png
new file mode 120000
index 0000000..9a84403
--- /dev/null
+++ b/nikola/data/themes/bootstrap3-jinja/assets/css/images/ie6/borderTopRight.png
@@ -0,0 +1 @@
+../../../../../bootstrap3/assets/css/images/ie6/borderTopRight.png \ No newline at end of file
diff --git a/nikola/data/themes/bootstrap3-jinja/assets/css/rst.css b/nikola/data/themes/bootstrap3-jinja/assets/css/rst.css
new file mode 120000
index 0000000..d78763e
--- /dev/null
+++ b/nikola/data/themes/bootstrap3-jinja/assets/css/rst.css
@@ -0,0 +1 @@
+../../../bootstrap3/assets/css/rst.css \ No newline at end of file
diff --git a/nikola/data/themes/bootstrap3-jinja/assets/css/theme.css b/nikola/data/themes/bootstrap3-jinja/assets/css/theme.css
new file mode 120000
index 0000000..a2774ff
--- /dev/null
+++ b/nikola/data/themes/bootstrap3-jinja/assets/css/theme.css
@@ -0,0 +1 @@
+../../../bootstrap3/assets/css/theme.css \ No newline at end of file
diff --git a/nikola/data/themes/bootstrap3-jinja/assets/fonts/glyphicons-halflings-regular.eot b/nikola/data/themes/bootstrap3-jinja/assets/fonts/glyphicons-halflings-regular.eot
new file mode 120000
index 0000000..c2dfd17
--- /dev/null
+++ b/nikola/data/themes/bootstrap3-jinja/assets/fonts/glyphicons-halflings-regular.eot
@@ -0,0 +1 @@
+../../../../../../bower_components/bootstrap/dist/fonts/glyphicons-halflings-regular.eot \ No newline at end of file
diff --git a/nikola/data/themes/bootstrap3-jinja/assets/fonts/glyphicons-halflings-regular.svg b/nikola/data/themes/bootstrap3-jinja/assets/fonts/glyphicons-halflings-regular.svg
new file mode 120000
index 0000000..30abe9d
--- /dev/null
+++ b/nikola/data/themes/bootstrap3-jinja/assets/fonts/glyphicons-halflings-regular.svg
@@ -0,0 +1 @@
+../../../../../../bower_components/bootstrap/dist/fonts/glyphicons-halflings-regular.svg \ No newline at end of file
diff --git a/nikola/data/themes/bootstrap3-jinja/assets/fonts/glyphicons-halflings-regular.ttf b/nikola/data/themes/bootstrap3-jinja/assets/fonts/glyphicons-halflings-regular.ttf
new file mode 120000
index 0000000..93e3bf3
--- /dev/null
+++ b/nikola/data/themes/bootstrap3-jinja/assets/fonts/glyphicons-halflings-regular.ttf
@@ -0,0 +1 @@
+../../../../../../bower_components/bootstrap/dist/fonts/glyphicons-halflings-regular.ttf \ No newline at end of file
diff --git a/nikola/data/themes/bootstrap3-jinja/assets/fonts/glyphicons-halflings-regular.woff b/nikola/data/themes/bootstrap3-jinja/assets/fonts/glyphicons-halflings-regular.woff
new file mode 120000
index 0000000..f7595ae
--- /dev/null
+++ b/nikola/data/themes/bootstrap3-jinja/assets/fonts/glyphicons-halflings-regular.woff
@@ -0,0 +1 @@
+../../../../../../bower_components/bootstrap/dist/fonts/glyphicons-halflings-regular.woff \ No newline at end of file
diff --git a/nikola/data/themes/bootstrap3-jinja/bundles b/nikola/data/themes/bootstrap3-jinja/bundles
new file mode 120000
index 0000000..8cb3e06
--- /dev/null
+++ b/nikola/data/themes/bootstrap3-jinja/bundles
@@ -0,0 +1 @@
+../bootstrap3/bundles \ No newline at end of file
diff --git a/nikola/data/themes/bootstrap3-jinja/engine b/nikola/data/themes/bootstrap3-jinja/engine
new file mode 100644
index 0000000..6f04b30
--- /dev/null
+++ b/nikola/data/themes/bootstrap3-jinja/engine
@@ -0,0 +1 @@
+jinja
diff --git a/nikola/data/themes/bootstrap3-jinja/parent b/nikola/data/themes/bootstrap3-jinja/parent
new file mode 100644
index 0000000..e89c4ee
--- /dev/null
+++ b/nikola/data/themes/bootstrap3-jinja/parent
@@ -0,0 +1 @@
+bootstrap-jinja
diff --git a/nikola/data/themes/bootstrap3-jinja/templates/base.tmpl b/nikola/data/themes/bootstrap3-jinja/templates/base.tmpl
new file mode 100644
index 0000000..c1ac838
--- /dev/null
+++ b/nikola/data/themes/bootstrap3-jinja/templates/base.tmpl
@@ -0,0 +1,88 @@
+{# -*- coding: utf-8 -*- #}
+{% import 'base_helper.tmpl' as base with context %}
+{% import 'annotation_helper.tmpl' as notes with context %}
+{{ set_locale(lang) }}
+{{ base.html_headstart() }}
+{% block extra_head %}
+{# Leave this block alone. #}
+{% endblock %}
+{{ template_hooks['extra_head']() }}
+</head>
+<body>
+<a href="#content" class="sr-only sr-only-focusable">{{ messages("Skip to main content") }}</a>
+
+<!-- Menubar -->
+
+<nav class="navbar navbar-inverse navbar-fixed-top" role="navigation">
+ <div class="container"><!-- This keeps the margins nice -->
+ <div class="navbar-header">
+ <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-ex1-collapse">
+ <span class="sr-only">Toggle navigation</span>
+ <span class="icon-bar"></span>
+ <span class="icon-bar"></span>
+ <span class="icon-bar"></span>
+ </button>
+ <a class="navbar-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>
+ </div><!-- /.navbar-header -->
+ <div class="collapse navbar-collapse navbar-ex1-collapse">
+ <ul class="nav navbar-nav">
+ {{ base.html_navigation_links() }}
+ {{ template_hooks['menu']() }}
+ </ul>
+ {% if search_form %}
+ {{ search_form }}
+ {% endif %}
+
+ <ul class="nav navbar-nav navbar-right">
+ {% block belowtitle %}
+ {% if translations|length > 1 %}
+ <li>{{ base.html_translations() }}</li>
+ {% endif %}
+ {% endblock %}
+ {% if show_sourcelink %}
+ {% block sourcelink %}{% endblock %}
+ {% endif %}
+ {{ template_hooks['menu_alt']() }}
+ </ul>
+ </div><!-- /.navbar-collapse -->
+ </div><!-- /.container -->
+</nav>
+
+<!-- End of Menubar -->
+
+<div class="container" id="content">
+ <div class="body-content">
+ <!--Body content-->
+ <div class="row">
+ {{ template_hooks['page_header']() }}
+ {% block content %}{% endblock %}
+ </div>
+ <!--End of body content-->
+
+ <footer>
+ {{ content_footer }}
+ {{ template_hooks['page_footer']() }}
+ </footer>
+ </div>
+</div>
+
+{{ base.late_load_js() }}
+ <script>jQuery("a.image-reference").colorbox({rel:"gal",maxWidth:"100%",maxHeight:"100%",scalePhotos:true});</script>
+ {% block extra_js %}{% endblock %}
+ {% 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>
diff --git a/nikola/data/themes/bootstrap3-jinja/templates/base_helper.tmpl b/nikola/data/themes/bootstrap3-jinja/templates/base_helper.tmpl
new file mode 100644
index 0000000..38a73c4
--- /dev/null
+++ b/nikola/data/themes/bootstrap3-jinja/templates/base_helper.tmpl
@@ -0,0 +1,165 @@
+{# -*- coding: utf-8 -*- #}
+
+{% macro 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, initial-scale=1">
+ <title>{{ title|e }} | {{ blog_title|e }}</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 }}
+{% endmacro %}
+
+{% macro 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/bootstrap/3.2.0/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/bootstrap/3.2.0/js/bootstrap.min.js"></script>
+ {% else %}
+ <script src="/assets/js/jquery.min.js"></script>
+ <script src="/assets/js/bootstrap.min.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 }}
+{% endmacro %}
+
+
+{% macro html_stylesheets() %}
+ {% if use_bundles %}
+ {% if use_cdn %}
+ <link href="//netdna.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.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/bootstrap/3.2.0/css/bootstrap.min.css" rel="stylesheet">
+ {% else %}
+ <link href="/assets/css/bootstrap.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 %}
+{% endmacro %}
+
+{% macro 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 %}
+{% endmacro %}
+
+{% macro html_feedlinks() %}
+ {% if rss_link %}
+ {{ rss_link }}
+ {% elif generate_rss %}
+ {% if translations|length > 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 %}
+{% endmacro %}
+
+{% macro 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 %}
+{% endmacro %}
diff --git a/nikola/data/themes/bootstrap3-jinja/templates/gallery.tmpl b/nikola/data/themes/bootstrap3-jinja/templates/gallery.tmpl
new file mode 100644
index 0000000..11382c3
--- /dev/null
+++ b/nikola/data/themes/bootstrap3-jinja/templates/gallery.tmpl
@@ -0,0 +1,94 @@
+{# -*- coding: utf-8 -*- #}
+{% extends 'base.tmpl' %}
+{% import 'comments_helper.tmpl' as comments with context %}
+{% import 'crumbs.tmpl' as ui with context %}
+{% block sourcelink %}{% endblock %}
+
+{% block 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="glyphicon
+ glyphicon-folder-open"></i>&nbsp;{{ 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 %}
+{% endblock %}
+
+{% block extra_head %}
+{{ super() }}
+<style type="text/css">
+ .image-block {
+ display: inline-block;
+ }
+ .flowr_row {
+ width: 100%;
+ }
+ </style>
+{% endblock %}
+
+
+{% block 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>
+{% endblock %}
diff --git a/nikola/data/themes/bootstrap3-jinja/templates/listing.tmpl b/nikola/data/themes/bootstrap3-jinja/templates/listing.tmpl
new file mode 100644
index 0000000..634c482
--- /dev/null
+++ b/nikola/data/themes/bootstrap3-jinja/templates/listing.tmpl
@@ -0,0 +1,28 @@
+{# -*- coding: utf-8 -*- #}
+{% extends 'base.tmpl' %}
+{% import 'crumbs.tmpl' as ui with context %}
+
+{% block content %}
+{{ ui.bar(crumbs) }}
+{% if folders or files %}
+<ul class="list-unstyled">
+{% for name in folders %}
+ <li><a href="{{ name }}"><i class="glyphicon glyphicon-folder-open"></i> {{ name }}</a>
+{% endfor %}
+{% for name in files %}
+ <li><a href="{{ name }}.html"><i class="glyphicon glyphicon-file"></i> {{ name }}</a>
+{% endfor %}
+</ul>
+{% endif %}
+{% if code %}
+ {{ code }}
+{% endif %}
+{% endblock %}
+
+{% block sourcelink %}
+{% if source_link %}
+ <li>
+ <a href="{{ source_link }}" id="sourcelink">{{ messages("Source") }}</a>
+ </li>
+{% endif %}
+{% endblock %}
diff --git a/nikola/data/themes/bootstrap3-jinja/templates/slides.tmpl b/nikola/data/themes/bootstrap3-jinja/templates/slides.tmpl
new file mode 100644
index 0000000..342ed27
--- /dev/null
+++ b/nikola/data/themes/bootstrap3-jinja/templates/slides.tmpl
@@ -0,0 +1,24 @@
+{% block content %}
+<div id="{{ carousel_id }}" class="carousel slide">
+ <ol class="carousel-indicators">
+ {% for i in range(slides_content|length) %}
+ {% 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"><span class="icon-prev"></span></a>
+ <a class="right carousel-control" href="#{{ carousel_id }}" data-slide="next"><span class="icon-next"></span></a>
+</div>
+{% endblock %}
diff --git a/nikola/data/themes/bootstrap3/README.md b/nikola/data/themes/bootstrap3/README.md
new file mode 100644
index 0000000..f008daf
--- /dev/null
+++ b/nikola/data/themes/bootstrap3/README.md
@@ -0,0 +1,8 @@
+A bootstrap3 version of the bootstrap theme.
+
+There is a variant called bootstrap3-gradients which uses an extra CSS
+file for a *visually enhanced experience* (according to Bootstrap
+developers at least). This one uses the default bootstrap3 flat look.
+
+This theme supports Bootswtach font/color schemes (unlike
+bootstrap3-gradients) through the `nikola bootswatch_theme` command.
diff --git a/nikola/data/themes/bootstrap3/assets/css/bootstrap-theme.css.map b/nikola/data/themes/bootstrap3/assets/css/bootstrap-theme.css.map
new file mode 120000
index 0000000..639bdc1
--- /dev/null
+++ b/nikola/data/themes/bootstrap3/assets/css/bootstrap-theme.css.map
@@ -0,0 +1 @@
+../../../../../../bower_components/bootstrap/dist/css/bootstrap-theme.css.map \ No newline at end of file
diff --git a/nikola/data/themes/bootstrap3/assets/css/bootstrap.css.map b/nikola/data/themes/bootstrap3/assets/css/bootstrap.css.map
new file mode 120000
index 0000000..8448a3d
--- /dev/null
+++ b/nikola/data/themes/bootstrap3/assets/css/bootstrap.css.map
@@ -0,0 +1 @@
+../../../../../../bower_components/bootstrap/dist/css/bootstrap.css.map \ No newline at end of file
diff --git a/nikola/data/themes/bootstrap3/assets/css/docs.css b/nikola/data/themes/bootstrap3/assets/css/docs.css
new file mode 100644
index 0000000..189ea89
--- /dev/null
+++ b/nikola/data/themes/bootstrap3/assets/css/docs.css
@@ -0,0 +1,160 @@
+body {
+ font-weight: 300;
+}
+
+a:hover,
+a:focus {
+ text-decoration: none;
+}
+
+.container {
+ max-width: 700px;
+}
+
+h2 {
+ text-align: center;
+ font-weight: 300;
+}
+
+
+/* Header
+-------------------------------------------------- */
+
+.jumbotron {
+ position: relative;
+ font-size: 16px;
+ color: #fff;
+ color: rgba(255,255,255,.75);
+ text-align: center;
+ background-color: #b94a48;
+ border-radius: 0;
+}
+.jumbotron h1,
+.jumbotron .glyphicon-ok {
+ margin-bottom: 15px;
+ font-weight: 300;
+ letter-spacing: -1px;
+ color: #fff;
+}
+.jumbotron .glyphicon-ok {
+ font-size: 40px;
+ line-height: 1;
+}
+.btn-outline {
+ margin-top: 15px;
+ margin-bottom: 15px;
+ padding: 18px 24px;
+ font-size: inherit;
+ font-weight: 500;
+ color: #fff; /* redeclare to override the `.jumbotron a` */
+ background-color: transparent;
+ border-color: #fff;
+ border-color: rgba(255,255,255,.5);
+ transition: all .1s ease-in-out;
+}
+.btn-outline:hover,
+.btn-outline:active {
+ color: #b94a48;
+ background-color: #fff;
+ border-color: #fff;
+}
+
+.jumbotron:after {
+ position: absolute;
+ right: 0;
+ bottom: 0;
+ left: 0;
+ z-index: 10;
+ display: block;
+ content: "";
+ height: 30px;
+ background-image: -moz-linear-gradient(rgba(0, 0, 0, 0), rgba(0,0,0,.1));
+ background-image: -webkit-linear-gradient(rgba(0, 0, 0, 0), rgba(0,0,0,.1));
+}
+
+.jumbotron p a,
+.jumbotron-links a {
+ font-weight: 500;
+ color: #fff;
+ transition: all .1s ease-in-out;
+}
+.jumbotron p a:hover,
+.jumbotron-links a:hover {
+ text-shadow: 0 0 10px rgba(255,255,255,.55);
+}
+
+/* Textual links */
+.jumbotron-links {
+ margin-top: 15px;
+ margin-bottom: 0;
+ padding-left: 0;
+ list-style: none;
+ font-size: 14px;
+}
+.jumbotron-links li {
+ display: inline;
+}
+.jumbotron-links li + li {
+ margin-left: 20px;
+}
+
+@media (min-width: 768px) {
+ .jumbotron {
+ padding-top: 100px;
+ padding-bottom: 100px;
+ font-size: 21px;
+ }
+ .jumbotron h1,
+ .jumbotron .glyphicon-ok {
+ font-size: 50px;
+ }
+}
+
+/* Steps for setup
+-------------------------------------------------- */
+
+.how-to {
+ padding: 50px 20px;
+ border-top: 1px solid #eee;
+}
+.how-to li {
+ font-size: 21px;
+ line-height: 1.5;
+ margin-top: 20px;
+}
+.how-to li p {
+ font-size: 16px;
+ color: #555;
+}
+.how-to code {
+ font-size: 85%;
+ color: #b94a48;
+ background-color: #fcf3f2;
+ word-wrap: break-word;
+ white-space: normal;
+}
+
+/* Icons
+-------------------------------------------------- */
+
+.the-icons {
+ padding: 40px 10px;
+ font-size: 20px;
+ line-height: 2;
+ color: #333;
+ text-align: center;
+}
+.the-icons .glyphicon {
+ padding-left: 15px;
+ padding-right: 15px;
+}
+
+/* Footer
+-------------------------------------------------- */
+
+.footer {
+ padding: 50px 30px;
+ color: #777;
+ text-align: center;
+ border-top: 1px solid #eee;
+}
diff --git a/nikola/data/themes/bootstrap3/assets/css/images/ie6/borderBottomCenter.png b/nikola/data/themes/bootstrap3/assets/css/images/ie6/borderBottomCenter.png
new file mode 100644
index 0000000..0d4475e
--- /dev/null
+++ b/nikola/data/themes/bootstrap3/assets/css/images/ie6/borderBottomCenter.png
Binary files differ
diff --git a/nikola/data/themes/bootstrap3/assets/css/images/ie6/borderBottomLeft.png b/nikola/data/themes/bootstrap3/assets/css/images/ie6/borderBottomLeft.png
new file mode 100644
index 0000000..2775eba
--- /dev/null
+++ b/nikola/data/themes/bootstrap3/assets/css/images/ie6/borderBottomLeft.png
Binary files differ
diff --git a/nikola/data/themes/bootstrap3/assets/css/images/ie6/borderBottomRight.png b/nikola/data/themes/bootstrap3/assets/css/images/ie6/borderBottomRight.png
new file mode 100644
index 0000000..f7f5137
--- /dev/null
+++ b/nikola/data/themes/bootstrap3/assets/css/images/ie6/borderBottomRight.png
Binary files differ
diff --git a/nikola/data/themes/bootstrap3/assets/css/images/ie6/borderMiddleLeft.png b/nikola/data/themes/bootstrap3/assets/css/images/ie6/borderMiddleLeft.png
new file mode 100644
index 0000000..a2d63d1
--- /dev/null
+++ b/nikola/data/themes/bootstrap3/assets/css/images/ie6/borderMiddleLeft.png
Binary files differ
diff --git a/nikola/data/themes/bootstrap3/assets/css/images/ie6/borderMiddleRight.png b/nikola/data/themes/bootstrap3/assets/css/images/ie6/borderMiddleRight.png
new file mode 100644
index 0000000..fd7c3e8
--- /dev/null
+++ b/nikola/data/themes/bootstrap3/assets/css/images/ie6/borderMiddleRight.png
Binary files differ
diff --git a/nikola/data/themes/bootstrap3/assets/css/images/ie6/borderTopCenter.png b/nikola/data/themes/bootstrap3/assets/css/images/ie6/borderTopCenter.png
new file mode 100644
index 0000000..2937a9c
--- /dev/null
+++ b/nikola/data/themes/bootstrap3/assets/css/images/ie6/borderTopCenter.png
Binary files differ
diff --git a/nikola/data/themes/bootstrap3/assets/css/images/ie6/borderTopLeft.png b/nikola/data/themes/bootstrap3/assets/css/images/ie6/borderTopLeft.png
new file mode 100644
index 0000000..f9d458b
--- /dev/null
+++ b/nikola/data/themes/bootstrap3/assets/css/images/ie6/borderTopLeft.png
Binary files differ
diff --git a/nikola/data/themes/bootstrap3/assets/css/images/ie6/borderTopRight.png b/nikola/data/themes/bootstrap3/assets/css/images/ie6/borderTopRight.png
new file mode 100644
index 0000000..74b8583
--- /dev/null
+++ b/nikola/data/themes/bootstrap3/assets/css/images/ie6/borderTopRight.png
Binary files differ
diff --git a/nikola/data/themes/bootstrap3/assets/css/rst.css b/nikola/data/themes/bootstrap3/assets/css/rst.css
new file mode 100644
index 0000000..489ceaa
--- /dev/null
+++ b/nikola/data/themes/bootstrap3/assets/css/rst.css
@@ -0,0 +1,318 @@
+/*
+:Author: David Goodger (goodger@python.org)
+:Id: $Id: html4css1.css 7514 2012-09-14 14:27:12Z milde $
+:Copyright: This stylesheet has been placed in the public domain.
+
+Default cascading style sheet for the HTML output of Docutils.
+
+See http://docutils.sf.net/docs/howto/html-stylesheets.html for how to
+customize this style sheet.
+*/
+
+/* used to remove borders from tables and images */
+.borderless, table.borderless td, table.borderless th {
+ border: 0 }
+
+table.borderless td, table.borderless th {
+ /* Override padding for "table.docutils td" with "! important".
+ The right padding separates the table cells. */
+ padding: 0 0.5em 0 0 ! important }
+
+.first {
+ /* Override more specific margin styles with "! important". */
+ margin-top: 0 ! important }
+
+.last, .with-subtitle {
+ margin-bottom: 0 ! important }
+
+.hidden {
+ display: none }
+
+a.toc-backref {
+ text-decoration: none ;
+ color: black }
+
+blockquote.epigraph {
+ margin: 2em 5em ; }
+
+dl.docutils dd {
+ margin-bottom: 0.5em }
+
+object[type="image/svg+xml"], object[type="application/x-shockwave-flash"] {
+ overflow: hidden;
+}
+
+/* Uncomment (and remove this text!) to get bold-faced definition list terms
+dl.docutils dt {
+ font-weight: bold }
+*/
+
+div.abstract {
+ margin: 2em 5em }
+
+div.abstract p.topic-title {
+ font-weight: bold ;
+ text-align: center }
+
+div.admonition, div.attention, div.caution, div.danger, div.error,
+div.hint, div.important, div.note, div.tip, div.warning {
+ margin: 2em ;
+ border: medium outset ;
+ padding: 1em }
+
+div.admonition p.admonition-title, div.hint p.admonition-title,
+div.important p.admonition-title, div.note p.admonition-title,
+div.tip p.admonition-title {
+ font-weight: bold ;
+ font-family: sans-serif }
+
+div.attention p.admonition-title, div.caution p.admonition-title,
+div.danger p.admonition-title, div.error p.admonition-title,
+div.warning p.admonition-title, .code .error {
+ color: red ;
+ font-weight: bold ;
+ font-family: sans-serif }
+
+/* Uncomment (and remove this text!) to get reduced vertical space in
+ compound paragraphs.
+div.compound .compound-first, div.compound .compound-middle {
+ margin-bottom: 0.5em }
+
+div.compound .compound-last, div.compound .compound-middle {
+ margin-top: 0.5em }
+*/
+
+div.dedication {
+ margin: 2em 5em ;
+ text-align: center ;
+ font-style: italic }
+
+div.dedication p.topic-title {
+ font-weight: bold ;
+ font-style: normal }
+
+div.figure {
+ margin-left: 2em ;
+ margin-right: 2em }
+
+div.footer, div.header {
+ clear: both;
+ font-size: smaller }
+
+div.line-block {
+ display: block ;
+ margin-top: 1em ;
+ margin-bottom: 1em }
+
+div.line-block div.line-block {
+ margin-top: 0 ;
+ margin-bottom: 0 ;
+ margin-left: 1.5em }
+
+html[dir="rtl"] div.line-block div.line-block {
+ margin-top: 0 ;
+ margin-bottom: 0 ;
+ margin-right: 1.5em ;
+ margin-left: 0 }
+
+div.sidebar {
+ margin: 0 0 0.5em 1em ;
+ border: medium outset ;
+ padding: 1em ;
+ background-color: #ffffee ;
+ width: 40% ;
+ float: right ;
+ clear: right }
+
+div.sidebar p.rubric {
+ font-family: sans-serif ;
+ font-size: medium }
+
+div.system-messages {
+ margin: 5em }
+
+div.system-messages h1 {
+ color: red }
+
+div.system-message {
+ border: medium outset ;
+ padding: 1em }
+
+div.system-message p.system-message-title {
+ color: red ;
+ font-weight: bold }
+
+div.topic {
+ margin: 2em }
+
+h1.section-subtitle, h2.section-subtitle, h3.section-subtitle,
+h4.section-subtitle, h5.section-subtitle, h6.section-subtitle {
+ margin-top: 0.4em }
+
+h1.title {
+ text-align: center }
+
+h2.subtitle {
+ text-align: center }
+
+hr.docutils {
+ width: 75% }
+
+img.align-left, .figure.align-left, object.align-left {
+ clear: left ;
+ float: left ;
+ margin-right: 1em }
+
+img.align-right, .figure.align-right, object.align-right {
+ clear: right ;
+ float: right ;
+ margin-left: 1em }
+
+img.align-center, .figure.align-center, object.align-center {
+ display: block;
+ margin-left: auto;
+ margin-right: auto;
+}
+
+.align-left {
+ text-align: left }
+
+.align-center {
+ clear: both ;
+ text-align: center }
+
+.align-right {
+ text-align: right }
+
+/* reset inner alignment in figures */
+div.align-right {
+ text-align: inherit }
+
+/* div.align-center * { */
+/* text-align: left } */
+
+ol.simple, ul.simple {
+ margin-bottom: 1em }
+
+ol.arabic {
+ list-style: decimal }
+
+ol.loweralpha {
+ list-style: lower-alpha }
+
+ol.upperalpha {
+ list-style: upper-alpha }
+
+ol.lowerroman {
+ list-style: lower-roman }
+
+ol.upperroman {
+ list-style: upper-roman }
+
+p.attribution {
+ text-align: right ;
+ margin-left: 50% }
+
+p.caption {
+ font-style: italic }
+
+p.credits {
+ font-style: italic ;
+ font-size: smaller }
+
+p.label {
+ white-space: nowrap }
+
+p.rubric {
+ font-weight: bold ;
+ font-size: larger ;
+ color: maroon ;
+ text-align: center }
+
+p.sidebar-title {
+ font-family: sans-serif ;
+ font-weight: bold ;
+ font-size: larger }
+
+p.sidebar-subtitle {
+ font-family: sans-serif ;
+ font-weight: bold }
+
+p.topic-title {
+ font-weight: bold }
+
+pre.address {
+ margin-bottom: 0 ;
+ margin-top: 0 ;
+ font: inherit }
+
+pre.literal-block, pre.doctest-block, pre.math, pre.code {
+ margin-left: 2em ;
+ margin-right: 2em }
+
+pre.code .ln { color: grey; } /* line numbers */
+pre.code, code { background-color: #eeeeee }
+pre.code .comment, code .comment { color: #5C6576 }
+pre.code .keyword, code .keyword { color: #3B0D06; font-weight: bold }
+pre.code .literal.string, code .literal.string { color: #0C5404 }
+pre.code .name.builtin, code .name.builtin { color: #352B84 }
+pre.code .deleted, code .deleted { background-color: #DEB0A1}
+pre.code .inserted, code .inserted { background-color: #A3D289}
+
+span.classifier {
+ font-family: sans-serif ;
+ font-style: oblique }
+
+span.classifier-delimiter {
+ font-family: sans-serif ;
+ font-weight: bold }
+
+span.interpreted {
+ font-family: sans-serif }
+
+span.option {
+ white-space: nowrap }
+
+span.pre {
+ white-space: pre }
+
+span.problematic {
+ color: red }
+
+span.section-subtitle {
+ /* font-size relative to parent (h1..h6 element) */
+ font-size: 80% }
+
+table.citation {
+ border-left: solid 1px gray;
+ margin-left: 1px }
+
+table.docinfo {
+ margin: 2em 4em }
+
+table.docutils {
+ margin-top: 0.5em ;
+ margin-bottom: 0.5em }
+
+table.footnote {
+ border-left: solid 1px black;
+ margin-left: 1px }
+
+table.docutils td, table.docutils th,
+table.docinfo td, table.docinfo th {
+ padding-left: 0.5em ;
+ padding-right: 0.5em ;
+ vertical-align: top }
+
+table.docutils th.field-name, table.docinfo th.docinfo-name {
+ font-weight: bold ;
+ text-align: left ;
+ white-space: nowrap ;
+ padding-left: 0 }
+
+h1 tt.docutils, h2 tt.docutils, h3 tt.docutils,
+h4 tt.docutils, h5 tt.docutils, h6 tt.docutils {
+ font-size: 100% }
+
+ul.auto-toc {
+ list-style-type: none }
diff --git a/nikola/data/themes/bootstrap3/assets/css/theme.css b/nikola/data/themes/bootstrap3/assets/css/theme.css
new file mode 100644
index 0000000..5e3775a
--- /dev/null
+++ b/nikola/data/themes/bootstrap3/assets/css/theme.css
@@ -0,0 +1,183 @@
+body {
+ margin-top: 60px;
+}
+
+#container {
+ width: 960px;
+ margin: 0 auto;
+}
+
+#contentcolumn {
+ max-width: 760px;
+}
+#q {
+ width: 150px;
+}
+
+img {
+ max-width: 90%;
+}
+
+.postbox {
+ border-bottom: 2px solid darkgrey;
+ margin-bottom: 12px;
+}
+
+.titlebox {
+ text-align: right;
+}
+
+#addthisbox {margin-bottom: 12px;}
+
+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;
+}
+
+.at300b, .stMainServices, .stButton, .stButton_gradient {
+ box-sizing: content-box;
+}
+
+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;
+}
+
+.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 15px;
+}
+
+.navbar-brand #blog-title {
+ padding: 15px 0;
+ display: inline-block;
+}
+
+.navbar-brand #logo {
+ max-width: 100%;
+}
+
+.row {
+ margin: 0;
+}
diff --git a/nikola/data/themes/bootstrap3/assets/fonts/glyphicons-halflings-regular.eot b/nikola/data/themes/bootstrap3/assets/fonts/glyphicons-halflings-regular.eot
new file mode 120000
index 0000000..c2dfd17
--- /dev/null
+++ b/nikola/data/themes/bootstrap3/assets/fonts/glyphicons-halflings-regular.eot
@@ -0,0 +1 @@
+../../../../../../bower_components/bootstrap/dist/fonts/glyphicons-halflings-regular.eot \ No newline at end of file
diff --git a/nikola/data/themes/bootstrap3/assets/fonts/glyphicons-halflings-regular.svg b/nikola/data/themes/bootstrap3/assets/fonts/glyphicons-halflings-regular.svg
new file mode 120000
index 0000000..30abe9d
--- /dev/null
+++ b/nikola/data/themes/bootstrap3/assets/fonts/glyphicons-halflings-regular.svg
@@ -0,0 +1 @@
+../../../../../../bower_components/bootstrap/dist/fonts/glyphicons-halflings-regular.svg \ No newline at end of file
diff --git a/nikola/data/themes/bootstrap3/assets/fonts/glyphicons-halflings-regular.ttf b/nikola/data/themes/bootstrap3/assets/fonts/glyphicons-halflings-regular.ttf
new file mode 120000
index 0000000..93e3bf3
--- /dev/null
+++ b/nikola/data/themes/bootstrap3/assets/fonts/glyphicons-halflings-regular.ttf
@@ -0,0 +1 @@
+../../../../../../bower_components/bootstrap/dist/fonts/glyphicons-halflings-regular.ttf \ No newline at end of file
diff --git a/nikola/data/themes/bootstrap3/assets/fonts/glyphicons-halflings-regular.woff b/nikola/data/themes/bootstrap3/assets/fonts/glyphicons-halflings-regular.woff
new file mode 120000
index 0000000..f7595ae
--- /dev/null
+++ b/nikola/data/themes/bootstrap3/assets/fonts/glyphicons-halflings-regular.woff
@@ -0,0 +1 @@
+../../../../../../bower_components/bootstrap/dist/fonts/glyphicons-halflings-regular.woff \ No newline at end of file
diff --git a/nikola/data/themes/bootstrap3/bundles b/nikola/data/themes/bootstrap3/bundles
new file mode 100644
index 0000000..0a96b4f
--- /dev/null
+++ b/nikola/data/themes/bootstrap3/bundles
@@ -0,0 +1,4 @@
+assets/css/all-nocdn.css=bootstrap.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
+assets/js/all.js=jquery.colorbox-min.js
diff --git a/nikola/data/themes/bootstrap3/engine b/nikola/data/themes/bootstrap3/engine
new file mode 100644
index 0000000..2951cdd
--- /dev/null
+++ b/nikola/data/themes/bootstrap3/engine
@@ -0,0 +1 @@
+mako
diff --git a/nikola/data/themes/bootstrap3/parent b/nikola/data/themes/bootstrap3/parent
new file mode 100644
index 0000000..b7c200a
--- /dev/null
+++ b/nikola/data/themes/bootstrap3/parent
@@ -0,0 +1 @@
+bootstrap
diff --git a/nikola/data/themes/bootstrap3/templates/base.tmpl b/nikola/data/themes/bootstrap3/templates/base.tmpl
new file mode 100644
index 0000000..c463873
--- /dev/null
+++ b/nikola/data/themes/bootstrap3/templates/base.tmpl
@@ -0,0 +1,88 @@
+## -*- 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 -->
+
+<nav class="navbar navbar-inverse navbar-fixed-top" role="navigation">
+ <div class="container"><!-- This keeps the margins nice -->
+ <div class="navbar-header">
+ <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-ex1-collapse">
+ <span class="sr-only">Toggle navigation</span>
+ <span class="icon-bar"></span>
+ <span class="icon-bar"></span>
+ <span class="icon-bar"></span>
+ </button>
+ <a class="navbar-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>
+ </div><!-- /.navbar-header -->
+ <div class="collapse navbar-collapse navbar-ex1-collapse">
+ <ul class="nav navbar-nav">
+ ${base.html_navigation_links()}
+ ${template_hooks['menu']()}
+ </ul>
+ %if search_form:
+ ${search_form}
+ %endif
+
+ <ul class="nav navbar-nav navbar-right">
+ <%block name="belowtitle">
+ %if len(translations) > 1:
+ <li>${base.html_translations()}</li>
+ %endif
+ </%block>
+ % if show_sourcelink:
+ <%block name="sourcelink"></%block>
+ %endif
+ ${template_hooks['menu_alt']()}
+ </ul>
+ </div><!-- /.navbar-collapse -->
+ </div><!-- /.container -->
+</nav>
+
+<!-- End of Menubar -->
+
+<div class="container" id="content">
+ <div class="body-content">
+ <!--Body content-->
+ <div class="row">
+ ${template_hooks['page_header']()}
+ <%block name="content"></%block>
+ </div>
+ <!--End of body content-->
+
+ <footer>
+ ${content_footer}
+ ${template_hooks['page_footer']()}
+ </footer>
+ </div>
+</div>
+
+${base.late_load_js()}
+ <script>jQuery("a.image-reference").colorbox({rel:"gal",maxWidth:"100%",maxHeight:"100%",scalePhotos:true});</script>
+ <%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>
diff --git a/nikola/data/themes/bootstrap3/templates/base_helper.tmpl b/nikola/data/themes/bootstrap3/templates/base_helper.tmpl
new file mode 100644
index 0000000..096c3c2
--- /dev/null
+++ b/nikola/data/themes/bootstrap3/templates/base_helper.tmpl
@@ -0,0 +1,165 @@
+## -*- 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, initial-scale=1">
+ <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/bootstrap/3.2.0/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/bootstrap/3.2.0/js/bootstrap.min.js"></script>
+ %else:
+ <script src="/assets/js/jquery.min.js"></script>
+ <script src="/assets/js/bootstrap.min.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/bootstrap/3.2.0/css/bootstrap.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/bootstrap/3.2.0/css/bootstrap.min.css" rel="stylesheet">
+ %else:
+ <link href="/assets/css/bootstrap.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>
diff --git a/nikola/data/themes/bootstrap3/templates/gallery.tmpl b/nikola/data/themes/bootstrap3/templates/gallery.tmpl
new file mode 100644
index 0000000..26fe80d
--- /dev/null
+++ b/nikola/data/themes/bootstrap3/templates/gallery.tmpl
@@ -0,0 +1,94 @@
+## -*- 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="glyphicon
+ glyphicon-folder-open"></i>&nbsp;${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>
diff --git a/nikola/data/themes/bootstrap3/templates/listing.tmpl b/nikola/data/themes/bootstrap3/templates/listing.tmpl
new file mode 100644
index 0000000..7b09e3e
--- /dev/null
+++ b/nikola/data/themes/bootstrap3/templates/listing.tmpl
@@ -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="glyphicon glyphicon-folder-open"></i> ${name}</a>
+% endfor
+% for name in files:
+ <li><a href="${name}.html"><i class="glyphicon glyphicon-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>
diff --git a/nikola/data/themes/bootstrap3/templates/slides.tmpl b/nikola/data/themes/bootstrap3/templates/slides.tmpl
new file mode 100644
index 0000000..a73848a
--- /dev/null
+++ b/nikola/data/themes/bootstrap3/templates/slides.tmpl
@@ -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"><span class="icon-prev"></span></a>
+ <a class="right carousel-control" href="#${carousel_id}" data-slide="next"><span class="icon-next"></span></a>
+</div>
+</%block>