diff --git a/README.md b/README.md index 3dbf7375..8553c784 100644 --- a/README.md +++ b/README.md @@ -5,14 +5,35 @@ See output of 'make', with no args, for some handy commands. # TODO +Gallery: +* Hack up a nikola fix that injects a webp mimetype before calling .guess_type(): + * generate the site without exceptions using that, + * Submit a PR to Nikola + * Finish adding images to the gallery + * Get metadata working (descriptions, creation dates) + * Upload the gallery to github pages + * Make a note somewhere that I'm using a cowboyed Nikola + +Try the other image viewer option. Things I don't like about the default, +baguetteBox: + +* Does not support svg, bmp, tiff (aha, out of the box. Perhaps can be fixed + for svg and any others the browser will display, if nikola passed a 'filter' + option.) +* Deep linking to one image displays the raw image file, so users can't go up + to the whole gallery without manual url wrangling. +* Can't zoom or fullscreen displayed images. +* [feimosi commented n Jun 16, + 2019](https://github.com/feimosi/baguetteBox.js/issues/167#issuecomment-502487282) + "sorry, I'm really busy nowadays and can't find time to work on v2" + Inter-post links. See https://www.getnikola.com/path-handlers.html +Although the more I lean into Nikola's custom markdown processing, +the more locked-in to it I become. Embed ancient backed up tartley.com content, and link to it. -Next time I publish a Python post, check it appears -on Planet Python. - # Some commands Delete all category lines: diff --git a/conf.py b/conf.py index 9a5822f9..9afe9895 100644 --- a/conf.py +++ b/conf.py @@ -20,10 +20,10 @@ BLOG_TITLE = "tartley.com" # (translatable) # This is the main URL for your site. It will be used # in a prominent link. Don't forget the protocol (http/https)! -SITE_URL = "https://www.tartley.com/" +SITE_URL = "https://tartley.com/" # This is the URL where Nikola's output will be deployed. # If not set, defaults to SITE_URL -BASE_URL = "https://www.tartley.com/" +# BASE_URL = "https://tartley.com/" BLOG_EMAIL = "tartley @ the domain tartley dot com" BLOG_DESCRIPTION = "A website devoted to oneself has been described, by my Father, no less, as the greatest act of hubris. Welcome aboard!" # (translatable) @@ -75,9 +75,10 @@ NAVIGATION_LINKS = { DEFAULT_LANG: ( - ("/archive.html", "Archive"), + ("/archive.html", "Posts"), ("/categories/", "Tags"), - ("/rss.xml", "RSS feed"), + ("/galleries/Drawings", "Gallery"), + ("/rss.xml", "RSS"), ("/pages/about/", "About"), ), } @@ -90,7 +91,7 @@ } # Name of the theme to use. -THEME = "bootstrap3-gradients-jinja" +THEME = "bootstrap3-gradients" # Primary color of your theme. This will be used to customize your theme. # Must be a HEX value. @@ -735,7 +736,7 @@ # Default is: # GALLERY_FOLDERS = {"galleries": "galleries"} # More gallery options: -# THUMBNAIL_SIZE = 180 +THUMBNAIL_SIZE = 250 # MAX_IMAGE_SIZE = 1280 # USE_FILENAME_AS_TITLE = True # EXTRA_IMAGE_EXTENSIONS = [] diff --git a/galleries/Drawings/Commander-Apples.half.lossless.webp b/galleries/Drawings/Commander-Apples.half.lossless.webp new file mode 100644 index 00000000..2a73f8d4 Binary files /dev/null and b/galleries/Drawings/Commander-Apples.half.lossless.webp differ diff --git a/galleries/Drawings/Emerald-Chunker.near-lossless.webp b/galleries/Drawings/Emerald-Chunker.near-lossless.webp new file mode 100644 index 00000000..6a36e519 Binary files /dev/null and b/galleries/Drawings/Emerald-Chunker.near-lossless.webp differ diff --git a/galleries/Drawings/Nebula-Survey.near-lossless.webp b/galleries/Drawings/Nebula-Survey.near-lossless.webp new file mode 100644 index 00000000..04e09b6f Binary files /dev/null and b/galleries/Drawings/Nebula-Survey.near-lossless.webp differ diff --git a/galleries/Drawings/Sailboats.jpg b/galleries/Drawings/Sailboats.jpg new file mode 100644 index 00000000..06559c6c Binary files /dev/null and b/galleries/Drawings/Sailboats.jpg differ diff --git a/galleries/Drawings/Self-portrait-1.near-lossless.webp b/galleries/Drawings/Self-portrait-1.near-lossless.webp new file mode 100644 index 00000000..b0066981 Binary files /dev/null and b/galleries/Drawings/Self-portrait-1.near-lossless.webp differ diff --git a/galleries/Drawings/Self-portrait-2.near-lossless.webp b/galleries/Drawings/Self-portrait-2.near-lossless.webp new file mode 100644 index 00000000..78b7193f Binary files /dev/null and b/galleries/Drawings/Self-portrait-2.near-lossless.webp differ diff --git a/galleries/Drawings/Self-portrait-3.near-lossless.webp b/galleries/Drawings/Self-portrait-3.near-lossless.webp new file mode 100644 index 00000000..bcadfe95 Binary files /dev/null and b/galleries/Drawings/Self-portrait-3.near-lossless.webp differ diff --git a/galleries/Drawings/index.txt b/galleries/Drawings/index.txt new file mode 100644 index 00000000..439a6df2 --- /dev/null +++ b/galleries/Drawings/index.txt @@ -0,0 +1,4 @@ +A middle-aged outburst from the dying embers of my creativity has produced some +devastatingly inept scrawls. I weep for having caused them to impinge upon your +consciousness. + diff --git a/galleries/Drawings/metadata.yml b/galleries/Drawings/metadata.yml new file mode 100644 index 00000000..7d2903c9 --- /dev/null +++ b/galleries/Drawings/metadata.yml @@ -0,0 +1,30 @@ +--- +name: Sailboats.jpg +caption: Sailboats.
I got an 8" tab a little while ago, which came with an S-pen doohickey. I was intrigued by the idea of drawing something on it. I wondered what the easiest possible picture to draw might be, suitable for an artistic dullard such as myself. Inspired by the masterful watercolors of English painter Richard Thorn, I landed on this. 'tis after all just two shades of blue, one plain, one scattered with wiggles, and tiny scraps of color along the edge between them. How hard could it be?
Lessons learned - I started out with much too low a resolution, although perhaps that was a happy accident after all, that I shouldn't inflict too many of my pixels on the world. The horizon is tilted - I should have taken care to get the right from the outset. I drew it all on one layer, and many times throughout wished I had done otherwise. And, most important, I remembered that drawing engenders a ferocious glee, which I resolved to unleash more often.
IbisPaintX on an 8" Android tab & S-pen. +order: 0 +--- +name: Self-portrait-1.near-lossless.webp +caption: Self Portrait 1
Awful, obviously. Drawn from memory, and with no experience or talent either. :-)
IbisPaintX on an 8" Android tab & S-pen. +order: -1 +--- +name: Self-portrait-2.near-lossless.webp +caption: Self Portrait 2
I can't take much credit for this one, since I resolved to cheat in every way my imagination could bring to bear. I essentially traced it from a photo. Although the goal was lofty enough, to educate me on how my face ought to be drawn, and then try a third time after this, to see whether I might have learned anything along the way.
IbisPaintX on an 8" Android tab & S-pen. +order: -2 +--- +name: Self-portrait-3.near-lossless.webp +caption: Self Portrait 3
Still awful, obviously, but marginally better than self portrait 1. Drawn from memory.
IbisPaintX on an 8" Android tab & S-pen. +order: -3 +--- +name: Emerald-Chunker.near-lossless.webp +caption: Emerald Chunker
Spaceship! 🧑‍🚀. This is so bad it's painful to look at. I'm so sorry. I don't mind the chunky brick-like shape, nor the paint-job, they have their charms. But choosing to draw it straight-on to the viewer hides much of the interesting geometry that might otherwise be on display. And those bars on the air intakes, well, they just dont work. Maybe they are too spaced apart, or too unevenly drawn, or have too much of a jarring contrast with the style of the rest of the drawing? Or are just too badly drawn. Whatever it is, they don't work. I like the yellow patches though. That's something I ought to try doing more of. Oh, and originally the sky was blue, but I accidentally flipped it to a brown color when messing with layer blending effects, and it looks much better this way.
IbisPaintX on an 8" Android tab & S-pen, 2 layers. +order: -4 +--- +name: Nebula-Survey.near-lossless.webp +caption: Nebula Survey
Linework by Ailantd Sikowsky here, colors by me. The spaceship coloring book I didn't realize I have always been yearning for.
IbisPaintX on an 8" Android tab & S-pen, 4 layers. +order: -5 +--- +name: Commander-Apples.half.lossless.webp +caption: "I've been flying the galaxy of Elite:Dangerous with my 10yo. kiddo. Sometimes, we take on the blue-collar work of mining asteroids, with one of us flying security escort, fending off the pirates. The kiddo was so proud on his first day taking on the security role, defending my mining operation with his purple Keelback, backed up by his ship-launched-fighters. He requested I draw his ship, and I used this as an excuse to learn about IbisPaintX's \"layers\". There are 11 here, from the background nebula, to the airbrushed glows over light sources. In particular, the purple paintjob layer is a completely flat color, and a separate layer adds shades of darkness to each surface. Doing them separately like this allows me to change the paint-job color with a single ten second swirl of a huge alpha-locked pen across the whole ship, and the shading, in a separate layer, is unaffected. Or I can modify the transparency of the shading layer, which adjusts the shading contrast, as if the ship were lit by more directional (or more even) lighting.
Drawn using a few reference images but none from quite this angle. IbisPaintX on an 8\" Android tab & S-pen, 11 layers. 2023-03-22." +order: -6 +--- + diff --git a/requirements.txt b/requirements.txt index cb7018d0..45d8c325 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,99 +1,116 @@ -aiohttp==3.8.1 -aiosignal==1.2.0 +aiohttp==3.8.4 +aiosignal==1.3.1 +anyio==3.6.2 argon2-cffi==21.3.0 argon2-cffi-bindings==21.2.0 -asttokens==2.0.5 +arrow==1.2.3 +asttokens==2.2.1 async-timeout==4.0.2 -attrs==21.4.0 -Babel==2.10.1 +attrs==22.2.0 +Babel==2.12.1 backcall==0.2.0 -beautifulsoup4==4.11.1 -bleach==5.0.0 -blinker==1.4 -certifi==2021.10.8 -cffi==1.15.0 -charset-normalizer==2.0.12 -cloudpickle==2.0.0 -debugpy==1.6.0 +beautifulsoup4==4.12.0 +bleach==6.0.0 +blinker==1.5 +certifi==2022.12.7 +cffi==1.15.1 +charset-normalizer==3.1.0 +cloudpickle==2.2.1 +comm==0.1.3 +debugpy==1.6.6 decorator==5.1.1 defusedxml==0.7.1 -docutils==0.18.1 +docutils==0.19 doit==0.36.0 -entrypoints==0.4 -executing==0.8.3 -fastjsonschema==2.15.3 -frozenlist==1.3.0 +executing==1.2.0 +fastjsonschema==2.16.3 +fqdn==1.5.1 +frozenlist==1.3.3 ghp-import==2.1.0 -hsluv==5.0.2 +hsluv==5.0.3 html5lib==1.1 -idna==3.3 -importlib-metadata==4.11.3 -ipykernel==6.13.0 -ipython==8.3.0 +idna==3.4 +importlib-metadata==6.1.0 +ipykernel==6.22.0 +ipython==8.11.0 ipython-genutils==0.2.0 -jedi==0.18.1 +isoduration==20.11.0 +jedi==0.18.2 Jinja2==3.1.2 -jsonschema==4.5.1 -jupyter-client==7.3.0 -jupyter-core==4.10.0 +jsonpointer==2.3 +jsonschema==4.17.3 +jupyter-events==0.6.3 +jupyter_client==8.1.0 +jupyter_core==5.3.0 +jupyter_server==2.5.0 +jupyter_server_terminals==0.4.4 jupyterlab-pygments==0.2.2 -lxml==4.8.0 -Mako==1.2.0 -Markdown==3.3.7 -MarkupSafe==2.1.1 -matplotlib-inline==0.1.3 +lxml==4.9.2 +Mako==1.2.4 +Markdown==3.4.3 +MarkupSafe==2.1.2 +matplotlib-inline==0.1.6 micawber==0.5.4 -mistune==0.8.4 -multidict==6.0.2 -natsort==8.1.0 -nbclient==0.6.2 -nbconvert==6.5.0 -nbformat==5.4.0 -nest-asyncio==1.5.5 -Nikola==8.2.2 -notebook==6.4.11 -packaging==21.3 +mistune==2.0.5 +multidict==6.0.4 +natsort==8.3.1 +nbclassic==0.5.3 +nbclient==0.7.2 +nbconvert==7.2.10 +nbformat==5.8.0 +nest-asyncio==1.5.6 +Nikola==8.2.3 +notebook==6.5.3 +notebook_shim==0.2.2 +packaging==23.0 pandocfilters==1.5.0 parso==0.8.3 pexpect==4.8.0 phpserialize==1.3 pickleshare==0.7.5 piexif==1.1.3 -Pillow==9.1.0 -prometheus-client==0.14.1 -prompt-toolkit==3.0.29 -psutil==5.9.0 +Pillow==9.4.0 +platformdirs==3.1.1 +prometheus-client==0.16.0 +prompt-toolkit==3.0.38 +psutil==5.9.4 ptyprocess==0.7.0 pure-eval==0.2.2 pycparser==2.21 pygal==3.0.0 -Pygments==2.12.0 -pyparsing==3.0.8 -pyphen==0.12.0 -pyrsistent==0.18.1 +Pygments==2.14.0 +pyphen==0.14.0 +pyrsistent==0.19.3 PyRSS2Gen==1.1 python-dateutil==2.8.2 -pytz==2022.1 -pyzmq==22.3.0 -requests==2.27.1 +python-json-logger==2.0.7 +PyYAML==6.0 +pyzmq==25.0.2 +requests==2.28.2 +rfc3339-validator==0.1.4 +rfc3986-validator==0.1.1 ruamel.yaml==0.17.21 -ruamel.yaml.clib==0.2.6 +ruamel.yaml.clib==0.2.7 Send2Trash==1.8.0 six==1.16.0 smartypants==2.0.1 -soupsieve==2.3.2.post1 -stack-data==0.2.0 -terminado==0.13.3 -tinycss2==1.1.1 +sniffio==1.3.0 +soupsieve==2.4 +stack-data==0.6.2 +terminado==0.17.1 +tinycss2==1.2.1 toml==0.10.2 -tornado==6.1 -traitlets==5.1.1 +tornado==6.2 +traitlets==5.9.0 typogrify==2.0.7 -Unidecode==1.3.4 -urllib3==1.26.9 -watchdog==2.1.7 -wcwidth==0.2.5 +Unidecode==1.3.6 +uri-template==1.2.0 +urllib3==1.26.15 +watchdog==3.0.0 +wcwidth==0.2.6 +webcolors==1.12 webencodings==0.5.1 +websocket-client==1.5.1 Yapsy==1.12.2 -yarl==1.7.2 -zipp==3.8.0 +yarl==1.8.2 +zipp==3.15.0 diff --git a/themes/bootstrap3-gradients-jinja/engine b/themes/bootstrap3-gradients-jinja/engine deleted file mode 100644 index 88717257..00000000 --- a/themes/bootstrap3-gradients-jinja/engine +++ /dev/null @@ -1 +0,0 @@ -jinja \ No newline at end of file diff --git a/themes/bootstrap3-gradients-jinja/parent b/themes/bootstrap3-gradients-jinja/parent deleted file mode 100644 index 5ad7cd9d..00000000 --- a/themes/bootstrap3-gradients-jinja/parent +++ /dev/null @@ -1 +0,0 @@ -bootstrap3-jinja diff --git a/themes/bootstrap3-gradients-jinja/AUTHORS.txt b/themes/bootstrap3-gradients/AUTHORS.txt similarity index 100% rename from themes/bootstrap3-gradients-jinja/AUTHORS.txt rename to themes/bootstrap3-gradients/AUTHORS.txt diff --git a/themes/bootstrap3-gradients-jinja/README.md b/themes/bootstrap3-gradients/README.md similarity index 100% rename from themes/bootstrap3-gradients-jinja/README.md rename to themes/bootstrap3-gradients/README.md diff --git a/themes/bootstrap3-gradients-jinja/bootstrap3-gradients-jinja.theme b/themes/bootstrap3-gradients/bootstrap3-gradients.theme similarity index 72% rename from themes/bootstrap3-gradients-jinja/bootstrap3-gradients-jinja.theme rename to themes/bootstrap3-gradients/bootstrap3-gradients.theme index 3703a82c..368a6535 100644 --- a/themes/bootstrap3-gradients-jinja/bootstrap3-gradients-jinja.theme +++ b/themes/bootstrap3-gradients/bootstrap3-gradients.theme @@ -1,6 +1,6 @@ [Theme] -engine = jinja -parent = bootstrap3-jinja +engine = mako +parent = bootstrap3 author = The Nikola Contributors author_url = https://getnikola.com/ license = MIT @@ -9,4 +9,4 @@ tags = bootstrap [Family] family = bootstrap3-gradients -mako_version = bootstrap3-gradients +jinja_version = bootstrap3-gradients-jinja diff --git a/themes/bootstrap3-gradients-jinja/bundles b/themes/bootstrap3-gradients/bundles similarity index 100% rename from themes/bootstrap3-gradients-jinja/bundles rename to themes/bootstrap3-gradients/bundles diff --git a/themes/bootstrap3-gradients/parent b/themes/bootstrap3-gradients/parent new file mode 100644 index 00000000..dc199ee3 --- /dev/null +++ b/themes/bootstrap3-gradients/parent @@ -0,0 +1 @@ +bootstrap3 diff --git a/themes/bootstrap3-gradients-jinja/templates/base_helper.tmpl b/themes/bootstrap3-gradients/templates/base_helper.tmpl similarity index 52% rename from themes/bootstrap3-gradients-jinja/templates/base_helper.tmpl rename to themes/bootstrap3-gradients/templates/base_helper.tmpl index e50eb67e..955350dc 100644 --- a/themes/bootstrap3-gradients-jinja/templates/base_helper.tmpl +++ b/themes/bootstrap3-gradients/templates/base_helper.tmpl @@ -1,171 +1,172 @@ -{# -*- coding: utf-8 -*- #} +## -*- coding: utf-8 -*- -{% import 'feeds_translations_helper.tmpl' as feeds_translations with context %} -{% macro html_headstart() %} +<%namespace name="notes" file="annotation_helper.tmpl" import="*" /> +<%namespace name="feeds_translations" file="feeds_translations_helper.tmpl" import="*"/> +<%def name="html_headstart()"> +\ +% 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}"> - {% if use_base_tag %} - - {% endif %} - {% if description %} - - {% endif %} + % if use_base_tag: + + % endif + %if description: + + %endif - {% if title == blog_title %} - {{ blog_title|e }} - {% else %} - {{ title|e }} | {{ blog_title|e }} - {% endif %} - - {{ html_stylesheets() }} - - {% if meta_generator_tag %} + %if title == blog_title: + ${blog_title|h} + %else: + ${title|h} | ${blog_title|h} + %endif + + ${html_stylesheets()} + + % if meta_generator_tag: - {% endif %} - {{ feeds_translations.head(classification=None, kind='index', other=False) }} - - - {% if favicons %} - {% for name, file, size in favicons %} - - {% endfor %} - {% endif %} - - {% if comment_system == 'facebook' %} - - {% endif %} - - {% if prevlink %} - - {% endif %} - {% if nextlink %} - - {% endif %} - - {% if use_cdn %} + % endif + ${feeds_translations.head(classification=None, kind='index', other=False)} + + + %if favicons: + %for name, file, size in favicons: + + %endfor + %endif + + % if comment_system == 'facebook': + + % endif + + %if prevlink: + + %endif + %if nextlink: + + %endif + + %if use_cdn: - {% else %} - - {% endif %} + %else: + + %endif - {{ extra_head_data }} -{% endmacro %} + ${extra_head_data} + -{% macro late_load_js() %} - {% if use_bundles %} - {% if use_cdn %} +<%def name="late_load_js()"> + %if use_bundles: + %if use_cdn: - {% else %} + %else: - {% endif %} - {% else %} - {% if use_cdn %} + %endif + %else: + %if use_cdn: - {% else %} + %else: - {% endif %} + %endif - {% endif %} - {{ social_buttons_code }} -{% endmacro %} + %endif + ${social_buttons_code} + -{% macro html_stylesheets() %} - {% if use_bundles %} - {% if use_cdn %} +<%def name="html_stylesheets()"> + %if use_bundles: + %if use_cdn: - {% else %} + %else: - {% endif %} - {% else %} - {% if use_cdn %} + %endif + %else: + %if use_cdn: - {% else %} + %else: - {% endif %} + %endif - {% endif %} - {% if has_custom_css %} - - {% endif %} - {% if needs_ipython_css %} + %if has_custom_css: + + %endif + %endif + % if needs_ipython_css: - {% endif %} -{% endmacro %} + % endif + -{% macro html_navigation_links() %} - {% for url, text in navigation_links[lang] %} - {% if isinstance(url, tuple) %} -
  • {{ text }} {{ messages("(active)", lang) }} - {% else %} -
  • {{ text }} - {% endif %} - {% endif %} - {% endfor %} -{% endmacro %} - -{% macro html_feedlinks() %} - {{ feeds_translations.head(classification=None, kind='index', other=False) }} -{% endmacro %} - -{% macro html_translations() %} - {% for langname in translations|sort %} - {% if langname != lang %} -
  • {{ messages("LANGUAGE", langname) }}
  • - {% endif %} - {% endfor %} -{% endmacro %} + % else: + % if rel_link(permalink, url) == "#": +
  • ${text} ${messages("(active)", lang)} + %else: +
  • ${text} + %endif + % endif + %endfor + + +<%def name="html_feedlinks()"> + ${feeds_translations.head(classification=None, kind='index', other=False)} + + +<%def name="html_translations()"> + %for langname in sorted(translations): + %if langname != lang: +
  • ${messages("LANGUAGE", langname)}
  • + %endif + %endfor + diff --git a/themes/bootstrap3-jinja/AUTHORS.txt b/themes/bootstrap3-jinja/AUTHORS.txt deleted file mode 100644 index 043d4970..00000000 --- a/themes/bootstrap3-jinja/AUTHORS.txt +++ /dev/null @@ -1 +0,0 @@ -Roberto Alsina diff --git a/themes/bootstrap3-jinja/assets/css/docs.css b/themes/bootstrap3-jinja/assets/css/docs.css deleted file mode 100644 index 189ea89b..00000000 --- a/themes/bootstrap3-jinja/assets/css/docs.css +++ /dev/null @@ -1,160 +0,0 @@ -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/themes/bootstrap3-jinja/assets/css/images/ie6/borderBottomCenter.png b/themes/bootstrap3-jinja/assets/css/images/ie6/borderBottomCenter.png deleted file mode 100644 index 0d4475ed..00000000 Binary files a/themes/bootstrap3-jinja/assets/css/images/ie6/borderBottomCenter.png and /dev/null differ diff --git a/themes/bootstrap3-jinja/assets/css/images/ie6/borderBottomLeft.png b/themes/bootstrap3-jinja/assets/css/images/ie6/borderBottomLeft.png deleted file mode 100644 index 2775eba8..00000000 Binary files a/themes/bootstrap3-jinja/assets/css/images/ie6/borderBottomLeft.png and /dev/null differ diff --git a/themes/bootstrap3-jinja/assets/css/images/ie6/borderBottomRight.png b/themes/bootstrap3-jinja/assets/css/images/ie6/borderBottomRight.png deleted file mode 100644 index f7f51379..00000000 Binary files a/themes/bootstrap3-jinja/assets/css/images/ie6/borderBottomRight.png and /dev/null differ diff --git a/themes/bootstrap3-jinja/assets/css/images/ie6/borderMiddleLeft.png b/themes/bootstrap3-jinja/assets/css/images/ie6/borderMiddleLeft.png deleted file mode 100644 index a2d63d15..00000000 Binary files a/themes/bootstrap3-jinja/assets/css/images/ie6/borderMiddleLeft.png and /dev/null differ diff --git a/themes/bootstrap3-jinja/assets/css/images/ie6/borderMiddleRight.png b/themes/bootstrap3-jinja/assets/css/images/ie6/borderMiddleRight.png deleted file mode 100644 index fd7c3e84..00000000 Binary files a/themes/bootstrap3-jinja/assets/css/images/ie6/borderMiddleRight.png and /dev/null differ diff --git a/themes/bootstrap3-jinja/assets/css/images/ie6/borderTopCenter.png b/themes/bootstrap3-jinja/assets/css/images/ie6/borderTopCenter.png deleted file mode 100644 index 2937a9cf..00000000 Binary files a/themes/bootstrap3-jinja/assets/css/images/ie6/borderTopCenter.png and /dev/null differ diff --git a/themes/bootstrap3-jinja/assets/css/images/ie6/borderTopLeft.png b/themes/bootstrap3-jinja/assets/css/images/ie6/borderTopLeft.png deleted file mode 100644 index f9d458b5..00000000 Binary files a/themes/bootstrap3-jinja/assets/css/images/ie6/borderTopLeft.png and /dev/null differ diff --git a/themes/bootstrap3-jinja/assets/css/images/ie6/borderTopRight.png b/themes/bootstrap3-jinja/assets/css/images/ie6/borderTopRight.png deleted file mode 100644 index 74b8583c..00000000 Binary files a/themes/bootstrap3-jinja/assets/css/images/ie6/borderTopRight.png and /dev/null differ diff --git a/themes/bootstrap3-jinja/assets/js/flowr.plugin.js b/themes/bootstrap3-jinja/assets/js/flowr.plugin.js deleted file mode 100644 index 732fa3d1..00000000 --- a/themes/bootstrap3-jinja/assets/js/flowr.plugin.js +++ /dev/null @@ -1,271 +0,0 @@ -/** - * Flowr.js - Simple jQuery plugin to emulate Flickr's justified view - * For usage information refer to http://github.com/kalyan02/flowr-js - * - * - * @author: Kalyan Chakravarthy (http://KalyanChakravarthy.net) - * @version: v0.1 - */ -(function($) { - //$("#container2").css( 'border', '1px solid #ccc'); - $.fn.flowr = function(options) { - - $this = this; - var ROW_CLASS_NAME = 'flowr-row'; // Class name for the row of flowy - var MAX_LAST_ROW_GAP = 25; // If the width of last row is lesser than max-width, recalculation is needed - var NO_COPY_FIELDS = ['complete', 'data', 'responsive']; // these attributes will not be carried forward for append related calls - var DEFAULTS = { - 'data': [], - 'padding': 5, // whats the padding between flowy items - 'height': 240, // Minimum height an image row should take - 'render': null, // callback function to get the tag - 'append': false, // TODO - 'widthAttr': 'width', // a custom data structure can specify which attribute refers to height/width - 'heightAttr': 'height', - 'maxScale': 1.5, // In case there is only 1 elment in last row - 'maxWidth': this.width() - 1, // 1px is just for offset - 'itemWidth': null, // callback function for width - 'itemHeight': null, // callback function for height - 'complete': null, // complete callback - 'rowClassName': ROW_CLASS_NAME, - 'rows': -1, // Maximum number of rows to render. -1 for no limit. - 'responsive': true // make content responsive - }; - var settings = $.extend(DEFAULTS, options); - - // If data is being appended, we already have settings - // If we already have settings, retrieve them - if (settings.append && $this.data('lastSettings')) { - lastSettings = $this.data('lastSettings'); - - // Copy over the settings from previous init - for (attr in DEFAULTS) { - if (NO_COPY_FIELDS.indexOf(attr) < 0 && settings[attr] == DEFAULTS[attr]) { - settings[attr] = lastSettings[attr]; - } - } - - // Check if we have an incomplete last row - lastRow = $this.data('lastRow'); - if (lastRow.data.length > 0 && settings.maxWidth - lastRow.width > MAX_LAST_ROW_GAP) { - // Prepend the incomplete row to newly loaded data and redraw - lastRowData = lastSettings.data.slice(lastSettings.data.length - lastRow.data.length - 1); - settings.data = lastRowData.concat(settings.data); - - // Remove the incomplete row - // TODO: Don't reload this stuff later. Reattach to new row. - $('.' + settings.rowClassName + ':last', $this).detach(); - } else { - // console.log( lastRow.data.length ); - // console.log( lastRow.width ); - } - } - - // only on the first initial call - if (!settings.responsive && !settings.append) - $this.width($this.width()); - - // Basic sanity checks - if (!(settings.data instanceof Array)) - return; - - if (typeof(settings.padding) != 'number') - settings.padding = parseInt(settings.padding); - - if (typeof(settings.itemWidth) != 'function') { - settings.itemWidth = function(data) { - return data[settings.widthAttr]; - } - } - - if (typeof(settings.itemHeight) != 'function') { - settings.itemHeight = function(data) { - return data[settings.heightAttr]; - } - } - - // A standalone utility to calculate the item widths for a particular row - // Returns rowWidth: width occupied & data : the items in the new row - var utils = { - getNextRow: function(data, settings) { - var itemIndex = 0; - var itemsLength = data.length; - var lineItems = []; - var lineWidth = 0; - var maxWidth = settings.maxWidth; - var paddingSize = settings.padding; - - // console.log( 'maxItems=' + data.length ); - - requiredPadding = function() { - var extraPads = arguments.length == 1 ? arguments[0] : 0; - return (lineItems.length - 1 + extraPads) * settings.padding; - } - - while (lineWidth + requiredPadding() < settings.maxWidth && (itemIndex < itemsLength)) { - var itemData = data[itemIndex]; - var itemWidth = settings.itemWidth.call($this, itemData); - var itemHeight = settings.itemHeight.call($this, itemData); - - var minHeight = settings.height; - var minWidth = Math.floor(itemWidth * settings.height / itemHeight); - - - if (minWidth > settings.maxWidth) { - // very short+wide images like panoramas - // show them even if ugly, as wide as possible - minWidth = settings.maxWidth - 1 - requiredPadding(1); - minHeight = settings.height * minHeight / minWidth; - } - var newLineWidth = lineWidth + minWidth; - - // console.log( 'lineWidth = ' + lineWidth ); - // console.log( 'newLineWidth = ' + newLineWidth ); - if (newLineWidth < settings.maxWidth) { - lineItems.push({ - 'height': minHeight, - 'width': minWidth, - 'itemData': itemData - }); - - lineWidth += minWidth; - itemIndex++; - } else { - // We'd have exceeded width. So break off to scale. - // console.log( 'breaking off = ' + itemIndex ); - // console.log( 'leave off size = ' + lineItems.length ); - break; - } - } //while - - // Scale the size to max width - testWidth = 0; - if (lineWidth < settings.maxWidth) { - var fullScaleWidth = settings.maxWidth - requiredPadding() - 10; - var currScaleWidth = lineWidth; - var scaleFactor = fullScaleWidth / currScaleWidth; - if (scaleFactor > settings.maxScale) - scaleFactor = 1; - - var newHeight = Math.round(settings.height * scaleFactor); - for (i = 0; i < lineItems.length; i++) { - var lineItem = lineItems[i]; - lineItem.width = Math.floor(lineItem.width * scaleFactor); - lineItem.height = newHeight; - - testWidth += lineItem.width; - } - } - - return { - data: lineItems, - width: testWidth + requiredPadding() - }; - }, //getNextRow - reorderContent: function() { - /* - TODO: optimize for faster resizing by reusing dom objects instead of killing the dom - */ - var _initialWidth = $this.data('width'); - var _newWidth = $this.width(); - var _change = _initialWidth - _newWidth; - - if (_initialWidth != _newWidth) { - $this.html(''); - var _settings = $this.data('lastSettings'); - _settings.data = $this.data('data'); - _settings.maxWidth = $this.width() - 1; - $this.flowr(_settings); - } - } - } //utils - - // If the responsive var is set to true then listen for resize method - // and prevent resizing from happening twice if responsive is set again during append phase! - if (settings.responsive && !$this.data('__responsive')) { - $(window).resize(function() { - initialWidth = $this.data('width'); - newWidth = $this.width(); - - //initiate resize - if (initialWidth != newWidth) { - var task_id = $this.data('task_id'); - if (task_id) { - task_id = clearTimeout(task_id); - task_id = null; - } - task_id = setTimeout(utils.reorderContent, 80); - $this.data('task_id', task_id); - } - }); - $this.data('__responsive', true); - } - - - return this.each(function() { - - // Get a copy of original data. 1 level deep copy is sufficient. - var data = settings.data.slice(0); - var rowData = null; - var currentRow = 0; - var currentItem = 0; - - // Store all the data - var allData = []; - for (i = 0; i < data.length; i++) { - allData.push(data[i]); - } - $this.data('data', allData); - - // While we have a new row - while ((rowData = utils.getNextRow(data, settings)) != null && rowData.data.length > 0) { - if (settings.rows > 0 && currentRow >= settings.rows) - break; - // remove the number of elements in the new row from the top of data stack - data.splice(0, rowData.data.length); - - // Create a new row div, add class, append the htmls and insert the flowy items - var $row = $('
    ').addClass(settings.rowClassName); - var slack = $this[0].clientWidth - rowData.width - 2 * settings.padding - for (i = 0; i < rowData.data.length; i++) { - var displayData = rowData.data[i]; - // Get the HTML object from custom render function passed as argument - var displayObject = settings.render.call($this, displayData); - displayObject = $(displayObject); - extraw = Math.floor(slack/rowData.data.length) - if (i == 0) { - extraw += slack % rowData.data.length - } - // Set some basic stuff - displayObject - .css('width', displayData.width + extraw) - .css('height', displayData.height) - .css('margin-bottom', settings.padding + "px") - .css('margin-left', i == 0 ? '0' : settings.padding + "px"); //TODO:Refactor - $row.append(displayObject); - - currentItem++; - } - $this.append($row); - // console.log ( "I> rowData.data.length="+rowData.data.length +" rowData.width="+rowData.width ); - - currentRow++; - $this.data('lastRow', rowData); - } - // store the current state of settings and the items in last row - // we'll need this info when we append more items - $this.data('lastSettings', settings); - - // onComplete callback - // pass back info about list of rows and items rendered - if (typeof(settings.complete) == 'function') { - var completeData = { - renderedRows: currentRow, - renderedItems: currentItem - } - settings.complete.call($this, completeData); - } - }); - }; - -})(jQuery); diff --git a/themes/bootstrap3-jinja/templates/authors.tmpl b/themes/bootstrap3-jinja/templates/authors.tmpl deleted file mode 100644 index 922de74c..00000000 --- a/themes/bootstrap3-jinja/templates/authors.tmpl +++ /dev/null @@ -1,25 +0,0 @@ -{# -*- coding: utf-8 -*- #} -{% extends 'base.tmpl' %} -{% import 'feeds_translations_helper.tmpl' as feeds_translations with context %} - -{% block extra_head %} - {{ feeds_translations.head(kind=kind, feeds=False) }} -{% endblock %} - -{% block content %} -{% if items %} -

    {{ messages("Authors") }}

    - -{% endif %} -{% if items %} - -{% endif %} -{% endblock %} diff --git a/themes/bootstrap3-jinja/templates/base.tmpl b/themes/bootstrap3-jinja/templates/base.tmpl deleted file mode 100644 index c70369f9..00000000 --- a/themes/bootstrap3-jinja/templates/base.tmpl +++ /dev/null @@ -1,95 +0,0 @@ -{# -*- 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']() }} - - -{{ messages("Skip to main content") }} - - - - - - - -
    -
    - -
    - {{ template_hooks['page_header']() }} - {% block content %}{% endblock %} -
    - - -
    - {{ content_footer }} - {{ template_hooks['page_footer']() }} -
    -
    -
    - -{{ base.late_load_js() }} - - - - {% block extra_js %}{% endblock %} - -{{ body_end }} -{{ template_hooks['body_end']() }} - - diff --git a/themes/bootstrap3-jinja/templates/base_helper.tmpl b/themes/bootstrap3-jinja/templates/base_helper.tmpl deleted file mode 100644 index 1eb3b3c8..00000000 --- a/themes/bootstrap3-jinja/templates/base_helper.tmpl +++ /dev/null @@ -1,169 +0,0 @@ -{# -*- coding: utf-8 -*- #} - -{% import 'annotation_helper.tmpl' as notes with context %} -{% import 'feeds_translations_helper.tmpl' as feeds_translations with context %} -{% macro html_headstart() %} - - - - - {% if use_base_tag %} - - {% endif %} - {% if description %} - - {% endif %} - - {% if title == blog_title %} - {{ blog_title|e }} - {% else %} - {{ title|e }} | {{ blog_title|e }} - {% endif %} - - {{ html_stylesheets() }} - - {% if meta_generator_tag %} - - {% endif %} - {{ feeds_translations.head(classification=None, kind='index', other=False) }} - - - {% if favicons %} - {% for name, file, size in favicons %} - - {% endfor %} - {% endif %} - - {% if comment_system == 'facebook' %} - - {% endif %} - - {% if prevlink %} - - {% endif %} - {% if nextlink %} - - {% endif %} - - {% if use_cdn %} - - {% else %} - - {% endif %} - - {{ extra_head_data }} -{% endmacro %} - -{% macro late_load_js() %} - {% if use_bundles %} - {% if use_cdn %} - - - - - - {% else %} - - {% endif %} - {% else %} - {% if use_cdn %} - - - - {% else %} - - - - - - {% endif %} - {% endif %} - {{ social_buttons_code }} -{% endmacro %} - - -{% macro html_stylesheets() %} - {% if use_bundles %} - {% if use_cdn %} - - - - {% else %} - - {% endif %} - {% else %} - {% if use_cdn %} - - - {% else %} - - - {% endif %} - - - - - {% if has_custom_css %} - - {% endif %} - {% endif %} - {% if needs_ipython_css %} - - - {% endif %} -{% endmacro %} - -{% macro html_navigation_links() %} - {% for url, text in navigation_links[lang] %} - {% if isinstance(url, tuple) %} -
  • {{ text }} {{ messages("(active)", lang) }} - {% else %} -
  • {{ text }} - {% endif %} - {% endif %} - {% endfor %} -{% endmacro %} - -{% macro html_feedlinks() %} - {{ feeds_translations.head(classification=None, kind='index', other=False) }} -{% endmacro %} - -{% macro html_translations() %} - {% for langname in translations|sort %} - {% if langname != lang %} -
  • {{ messages("LANGUAGE", langname) }}
  • - {% endif %} - {% endfor %} -{% endmacro %} diff --git a/themes/bootstrap3-jinja/templates/crumbs.tmpl b/themes/bootstrap3-jinja/templates/crumbs.tmpl deleted file mode 100644 index 3da2d471..00000000 --- a/themes/bootstrap3-jinja/templates/crumbs.tmpl +++ /dev/null @@ -1,5 +0,0 @@ -{# -*- coding: utf-8 -*- #} -{% import 'ui_helper.tmpl' as ui with context %} -{% macro bar(crumbs) %} -{{ ui.breadcrumbs(crumbs) }} -{% endmacro %} diff --git a/themes/bootstrap3-jinja/templates/gallery.tmpl b/themes/bootstrap3-jinja/templates/gallery.tmpl deleted file mode 100644 index a901930a..00000000 --- a/themes/bootstrap3-jinja/templates/gallery.tmpl +++ /dev/null @@ -1,70 +0,0 @@ -{# -*- 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 %} -

    {{ title|e }}

    - {% endif %} - {% if post %} -

    - {{ post.text() }} -

    - {% endif %} - {% if folders %} - - {% endif %} - - -{% if photo_array %} - -{% endif %} -{% if site_has_comments and enable_comments %} -{{ comments.comment_form(None, permalink, title) }} -{% endif %} -{% endblock %} - -{% block extra_head %} -{{ super() }} - - -{% if translations|length > 1 %} - {% for langname in translations.keys() %} - {% if langname != lang %} - - {% endif %} - {% endfor %} -{% endif %} -{% endblock %} - -{% block extra_js %} - - - -{% endblock %} diff --git a/themes/bootstrap3-jinja/templates/listing.tmpl b/themes/bootstrap3-jinja/templates/listing.tmpl deleted file mode 100644 index ed99410a..00000000 --- a/themes/bootstrap3-jinja/templates/listing.tmpl +++ /dev/null @@ -1,32 +0,0 @@ -{# -*- coding: utf-8 -*- #} -{% extends 'base.tmpl' %} -{% import 'crumbs.tmpl' as ui with context %} -{% block content %} -{{ ui.bar(crumbs) }} -{% if folders or files %} - -{% endif %} -{% if code %} -

    {{ title }} - {% if source_link %} - ({{ messages("Source") }}) - {% endif %} -

    - {{ code }} -{% endif %} -{% endblock %} - -{% block sourcelink %} -{% if source_link %} -
  • - {{ messages("Source") }} -
  • -{% endif %} -{% endblock %} diff --git a/themes/bootstrap3-jinja/templates/pagination_helper.tmpl b/themes/bootstrap3-jinja/templates/pagination_helper.tmpl deleted file mode 100644 index 09bae27c..00000000 --- a/themes/bootstrap3-jinja/templates/pagination_helper.tmpl +++ /dev/null @@ -1,40 +0,0 @@ -{# -*- coding: utf-8 -*- #} -{% macro page_navigation(current_page, page_links, prevlink, nextlink, prev_next_links_reversed, surrounding=5) %} - -{% endmacro %} diff --git a/themes/bootstrap3-jinja/templates/post.tmpl b/themes/bootstrap3-jinja/templates/post.tmpl deleted file mode 100644 index b96d3b91..00000000 --- a/themes/bootstrap3-jinja/templates/post.tmpl +++ /dev/null @@ -1,58 +0,0 @@ -{# -*- coding: utf-8 -*- #} -{% import 'post_helper.tmpl' as helper with context %} -{% import 'post_header.tmpl' as pheader with context %} -{% import 'comments_helper.tmpl' as comments with context %} -{% import 'math_helper.tmpl' as math with context %} -{% extends 'base.tmpl' %} - -{% block extra_head %} - {{ super() }} - {% if post.meta('keywords') %} - - {% endif %} - - {% if post.prev_post %} - - {% endif %} - {% if post.next_post %} - - {% endif %} - {% if post.is_draft %} - - {% endif %} - {{ helper.open_graph_metadata(post) }} - {{ helper.twitter_card_information(post) }} - {{ helper.meta_translations(post) }} - {{ math.math_styles_ifpost(post) }} -{% endblock %} - -{% block content %} -
    - {{ pheader.html_post_header() }} -
    - {{ post.text() }} -
    - - {% if not post.meta('nocomments') and site_has_comments %} -
    -

    {{ messages("Comments") }}

    - {{ comments.comment_form(post.permalink(absolute=True), post.title(), post._base_path) }} -
    - {% endif %} - {{ math.math_scripts_ifpost(post) }} -
    -{{ comments.comment_link_script() }} -{% endblock %} - -{% block sourcelink %} -{% if show_sourcelink %} -
  • - {{ messages("Source") }} -
  • -{% endif %} -{% endblock %} diff --git a/themes/bootstrap3-jinja/templates/slides.tmpl b/themes/bootstrap3-jinja/templates/slides.tmpl deleted file mode 100644 index 342ed27d..00000000 --- a/themes/bootstrap3-jinja/templates/slides.tmpl +++ /dev/null @@ -1,24 +0,0 @@ -{% block content %} - -{% endblock %} diff --git a/themes/bootstrap3-jinja/templates/tags.tmpl b/themes/bootstrap3-jinja/templates/tags.tmpl deleted file mode 100644 index c0a7da21..00000000 --- a/themes/bootstrap3-jinja/templates/tags.tmpl +++ /dev/null @@ -1,46 +0,0 @@ -{# -*- coding: utf-8 -*- #} -{% extends 'base.tmpl' %} -{% import 'feeds_translations_helper.tmpl' as feeds_translations with context %} - -{% block extra_head %} - {{ feeds_translations.head(kind=kind, feeds=False) }} -{% endblock %} - -{% block content %} -

    {{ title|e }}

    - -{% if cat_items %} - {% if items %} -

    {{ messages("Categories") }}

    - {% endif %} - {% for text, full_name, path, link, indent_levels, indent_change_before, indent_change_after in cat_hierarchy %} - {% for i in range(indent_change_before) %} - - {% if i + 1 < indent_levels|length %} - - {% endif %} - {% endfor %} - {% endfor %} - {% if items %} -

    {{ messages("Tags") }}

    - {% endif %} -{% endif %} -{% if items %} - -{% endif %} -{% endblock %} diff --git a/themes/bootstrap3-jinja/templates/ui_helper.tmpl b/themes/bootstrap3-jinja/templates/ui_helper.tmpl deleted file mode 100644 index 9eb56979..00000000 --- a/themes/bootstrap3-jinja/templates/ui_helper.tmpl +++ /dev/null @@ -1,18 +0,0 @@ -{# -*- coding: utf-8 -*- #} -{% macro breadcrumbs(crumbs) %} -{% if crumbs %} - -{% endif %} -{% endmacro %} diff --git a/themes/bootstrap3-jinja/README.md b/themes/bootstrap3/README.md similarity index 100% rename from themes/bootstrap3-jinja/README.md rename to themes/bootstrap3/README.md diff --git a/themes/bootstrap3-jinja/assets/css/bootstrap-theme.min.css b/themes/bootstrap3/assets/css/bootstrap-theme.min.css similarity index 100% rename from themes/bootstrap3-jinja/assets/css/bootstrap-theme.min.css rename to themes/bootstrap3/assets/css/bootstrap-theme.min.css diff --git a/themes/bootstrap3-jinja/assets/css/bootstrap-theme.min.css.map b/themes/bootstrap3/assets/css/bootstrap-theme.min.css.map similarity index 100% rename from themes/bootstrap3-jinja/assets/css/bootstrap-theme.min.css.map rename to themes/bootstrap3/assets/css/bootstrap-theme.min.css.map diff --git a/themes/bootstrap3-jinja/assets/css/bootstrap.min.css b/themes/bootstrap3/assets/css/bootstrap.min.css similarity index 100% rename from themes/bootstrap3-jinja/assets/css/bootstrap.min.css rename to themes/bootstrap3/assets/css/bootstrap.min.css diff --git a/themes/bootstrap3-jinja/assets/css/bootstrap.min.css.map b/themes/bootstrap3/assets/css/bootstrap.min.css.map similarity index 100% rename from themes/bootstrap3-jinja/assets/css/bootstrap.min.css.map rename to themes/bootstrap3/assets/css/bootstrap.min.css.map diff --git a/themes/bootstrap3-jinja/assets/css/theme.css b/themes/bootstrap3/assets/css/theme.css similarity index 100% rename from themes/bootstrap3-jinja/assets/css/theme.css rename to themes/bootstrap3/assets/css/theme.css diff --git a/themes/bootstrap3-jinja/assets/fonts/glyphicons-halflings-regular.eot b/themes/bootstrap3/assets/fonts/glyphicons-halflings-regular.eot similarity index 100% rename from themes/bootstrap3-jinja/assets/fonts/glyphicons-halflings-regular.eot rename to themes/bootstrap3/assets/fonts/glyphicons-halflings-regular.eot diff --git a/themes/bootstrap3-jinja/assets/fonts/glyphicons-halflings-regular.svg b/themes/bootstrap3/assets/fonts/glyphicons-halflings-regular.svg similarity index 100% rename from themes/bootstrap3-jinja/assets/fonts/glyphicons-halflings-regular.svg rename to themes/bootstrap3/assets/fonts/glyphicons-halflings-regular.svg diff --git a/themes/bootstrap3-jinja/assets/fonts/glyphicons-halflings-regular.ttf b/themes/bootstrap3/assets/fonts/glyphicons-halflings-regular.ttf similarity index 100% rename from themes/bootstrap3-jinja/assets/fonts/glyphicons-halflings-regular.ttf rename to themes/bootstrap3/assets/fonts/glyphicons-halflings-regular.ttf diff --git a/themes/bootstrap3-jinja/assets/fonts/glyphicons-halflings-regular.woff b/themes/bootstrap3/assets/fonts/glyphicons-halflings-regular.woff similarity index 100% rename from themes/bootstrap3-jinja/assets/fonts/glyphicons-halflings-regular.woff rename to themes/bootstrap3/assets/fonts/glyphicons-halflings-regular.woff diff --git a/themes/bootstrap3-jinja/assets/fonts/glyphicons-halflings-regular.woff2 b/themes/bootstrap3/assets/fonts/glyphicons-halflings-regular.woff2 similarity index 100% rename from themes/bootstrap3-jinja/assets/fonts/glyphicons-halflings-regular.woff2 rename to themes/bootstrap3/assets/fonts/glyphicons-halflings-regular.woff2 diff --git a/themes/bootstrap3-jinja/assets/js/bootstrap.min.js b/themes/bootstrap3/assets/js/bootstrap.min.js similarity index 100% rename from themes/bootstrap3-jinja/assets/js/bootstrap.min.js rename to themes/bootstrap3/assets/js/bootstrap.min.js diff --git a/themes/bootstrap3-jinja/assets/js/jquery.min.js b/themes/bootstrap3/assets/js/jquery.min.js similarity index 100% rename from themes/bootstrap3-jinja/assets/js/jquery.min.js rename to themes/bootstrap3/assets/js/jquery.min.js diff --git a/themes/bootstrap3-jinja/assets/js/jquery.min.map b/themes/bootstrap3/assets/js/jquery.min.map similarity index 100% rename from themes/bootstrap3-jinja/assets/js/jquery.min.map rename to themes/bootstrap3/assets/js/jquery.min.map diff --git a/themes/bootstrap3-jinja/bootstrap3-jinja.theme b/themes/bootstrap3/bootstrap3.theme similarity index 81% rename from themes/bootstrap3-jinja/bootstrap3-jinja.theme rename to themes/bootstrap3/bootstrap3.theme index 230ea2a6..1e885758 100644 --- a/themes/bootstrap3-jinja/bootstrap3-jinja.theme +++ b/themes/bootstrap3/bootstrap3.theme @@ -1,6 +1,6 @@ [Theme] -engine = jinja -parent = base-jinja +engine = mako +parent = base author = The Nikola Contributors author_url = https://getnikola.com/ based_on = Bootstrap 3 @@ -9,7 +9,7 @@ tags = bootstrap [Family] family = bootstrap3 -mako_version = bootstrap3 +jinja_version = bootstrap3-jinja variants = bootstrap3-gradients, bootstrap3-gradients-jinja [Nikola] diff --git a/themes/bootstrap3-jinja/bundles b/themes/bootstrap3/bundles similarity index 100% rename from themes/bootstrap3-jinja/bundles rename to themes/bootstrap3/bundles diff --git a/themes/bootstrap3/templates/authors.tmpl b/themes/bootstrap3/templates/authors.tmpl new file mode 100644 index 00000000..300377d1 --- /dev/null +++ b/themes/bootstrap3/templates/authors.tmpl @@ -0,0 +1,25 @@ +## -*- coding: utf-8 -*- +<%inherit file="base.tmpl"/> +<%namespace name="feeds_translations" file="feeds_translations_helper.tmpl" import="*"/> + +<%block name="extra_head"> + ${feeds_translations.head(kind=kind, feeds=False)} + + +<%block name="content"> +% if items: +

    ${messages("Authors")}

    + +% endif +% if items: +
      + % for text, link in items: + % if text not in hidden_authors: +
    • ${text|h}
    • + % endif + % endfor +
    +% endif + diff --git a/themes/bootstrap3/templates/base.tmpl b/themes/bootstrap3/templates/base.tmpl new file mode 100644 index 00000000..0b63b28a --- /dev/null +++ b/themes/bootstrap3/templates/base.tmpl @@ -0,0 +1,95 @@ +## -*- 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. + +${template_hooks['extra_head']()} + + +${messages("Skip to main content")} + + + + + + + +
    +
    + +
    + ${template_hooks['page_header']()} + <%block name="content"> +
    + + +
    + ${content_footer} + ${template_hooks['page_footer']()} +
    +
    +
    + +${base.late_load_js()} + + + + <%block name="extra_js"> + +${body_end} +${template_hooks['body_end']()} + + diff --git a/themes/bootstrap3/templates/base_helper.tmpl b/themes/bootstrap3/templates/base_helper.tmpl new file mode 100644 index 00000000..f904ebf6 --- /dev/null +++ b/themes/bootstrap3/templates/base_helper.tmpl @@ -0,0 +1,169 @@ +## -*- coding: utf-8 -*- + +<%namespace name="notes" file="annotation_helper.tmpl" import="*" /> +<%namespace name="feeds_translations" file="feeds_translations_helper.tmpl" import="*"/> +<%def name="html_headstart()"> + + + + + % if use_base_tag: + + % endif + %if description: + + %endif + + %if title == blog_title: + ${blog_title|h} + %else: + ${title|h} | ${blog_title|h} + %endif + + ${html_stylesheets()} + + % if meta_generator_tag: + + % endif + ${feeds_translations.head(classification=None, kind='index', other=False)} + + + %if favicons: + %for name, file, size in favicons: + + %endfor + %endif + + % if comment_system == 'facebook': + + % endif + + %if prevlink: + + %endif + %if nextlink: + + %endif + + %if use_cdn: + + %else: + + %endif + + ${extra_head_data} + + +<%def name="late_load_js()"> + %if use_bundles: + %if use_cdn: + + + + + + %else: + + %endif + %else: + %if use_cdn: + + + + %else: + + + + %endif + + + %endif + ${social_buttons_code} + + + +<%def name="html_stylesheets()"> + %if use_bundles: + %if use_cdn: + + + + %else: + + %endif + %else: + %if use_cdn: + + + %else: + + + %endif + + + + + %if has_custom_css: + + %endif + %endif + % if needs_ipython_css: + + + % endif + + +<%def name="html_navigation_links()"> + %for url, text in navigation_links[lang]: + % if isinstance(url, tuple): +
  • ${text} ${messages("(active)", lang)} + %else: +
  • ${text} + %endif + % endif + %endfor + + +<%def name="html_feedlinks()"> + ${feeds_translations.head(classification=None, kind='index', other=False)} + + +<%def name="html_translations()"> + %for langname in sorted(translations): + %if langname != lang: +
  • ${messages("LANGUAGE", langname)}
  • + %endif + %endfor + diff --git a/themes/bootstrap3/templates/crumbs.tmpl b/themes/bootstrap3/templates/crumbs.tmpl new file mode 100644 index 00000000..2a1d5752 --- /dev/null +++ b/themes/bootstrap3/templates/crumbs.tmpl @@ -0,0 +1,5 @@ +## -*- coding: utf-8 -*- +<%namespace name="ui" file="ui_helper.tmpl" import="*"/> +<%def name="bar(crumbs)"> +${ui.breadcrumbs(crumbs)} + diff --git a/themes/bootstrap3/templates/gallery.tmpl b/themes/bootstrap3/templates/gallery.tmpl new file mode 100644 index 00000000..8f8b2dec --- /dev/null +++ b/themes/bootstrap3/templates/gallery.tmpl @@ -0,0 +1,70 @@ +## -*- 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 name="content"> + ${ui.bar(crumbs)} + %if title: +

    ${title|h}

    + %endif + %if post: +

    + ${post.text()} +

    + %endif + %if folders: +
      + % for folder, ftitle in folders: +
    •  ${ftitle|h}
    • + % endfor +
    + %endif + + +%if photo_array: + +%endif +%if site_has_comments and enable_comments: +${comments.comment_form(None, permalink, title)} +%endif + + +<%block name="extra_head"> +${parent.extra_head()} + + +%if len(translations) > 1: + %for langname in translations.keys(): + %if langname != lang: + + %endif + %endfor +%endif + + +<%block name="extra_js"> + + + + diff --git a/themes/bootstrap3/templates/listing.tmpl b/themes/bootstrap3/templates/listing.tmpl new file mode 100644 index 00000000..44809d03 --- /dev/null +++ b/themes/bootstrap3/templates/listing.tmpl @@ -0,0 +1,32 @@ +## -*- 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: + +%endif +% if code: +

    ${title} + % if source_link: + (${messages("Source")}) + % endif +

    + ${code} +% endif + + +<%block name="sourcelink"> +% if source_link: +
  • + ${messages("Source")} +
  • +% endif + diff --git a/themes/bootstrap3/templates/pagination_helper.tmpl b/themes/bootstrap3/templates/pagination_helper.tmpl new file mode 100644 index 00000000..3ec93f81 --- /dev/null +++ b/themes/bootstrap3/templates/pagination_helper.tmpl @@ -0,0 +1,40 @@ +## -*- coding: utf-8 -*- +<%def name="page_navigation(current_page, page_links, prevlink, nextlink, prev_next_links_reversed, surrounding=5)"> + + diff --git a/themes/bootstrap3/templates/post.tmpl b/themes/bootstrap3/templates/post.tmpl new file mode 100644 index 00000000..d9148c43 --- /dev/null +++ b/themes/bootstrap3/templates/post.tmpl @@ -0,0 +1,58 @@ +## -*- coding: utf-8 -*- +<%namespace name="helper" file="post_helper.tmpl"/> +<%namespace name="pheader" file="post_header.tmpl"/> +<%namespace name="comments" file="comments_helper.tmpl"/> +<%namespace name="math" file="math_helper.tmpl"/> +<%inherit file="base.tmpl"/> + +<%block name="extra_head"> + ${parent.extra_head()} + % if post.meta('keywords'): + + % endif + + %if post.prev_post: + + %endif + %if post.next_post: + + %endif + % if post.is_draft: + + % endif + ${helper.open_graph_metadata(post)} + ${helper.twitter_card_information(post)} + ${helper.meta_translations(post)} + ${math.math_styles_ifpost(post)} + + +<%block name="content"> +
    + ${pheader.html_post_header()} +
    + ${post.text()} +
    + + % if not post.meta('nocomments') and site_has_comments: +
    +

    ${messages("Comments")}

    + ${comments.comment_form(post.permalink(absolute=True), post.title(), post._base_path)} +
    + % endif + ${math.math_scripts_ifpost(post)} +
    +${comments.comment_link_script()} + + +<%block name="sourcelink"> +% if show_sourcelink: +
  • + ${messages("Source")} +
  • +% endif + diff --git a/themes/bootstrap3/templates/slides.tmpl b/themes/bootstrap3/templates/slides.tmpl new file mode 100644 index 00000000..a73848a0 --- /dev/null +++ b/themes/bootstrap3/templates/slides.tmpl @@ -0,0 +1,24 @@ +<%block name="content"> + + diff --git a/themes/bootstrap3/templates/tags.tmpl b/themes/bootstrap3/templates/tags.tmpl new file mode 100644 index 00000000..5bde1b49 --- /dev/null +++ b/themes/bootstrap3/templates/tags.tmpl @@ -0,0 +1,46 @@ +## -*- coding: utf-8 -*- +<%inherit file="base.tmpl"/> +<%namespace name="feeds_translations" file="feeds_translations_helper.tmpl" import="*"/> + +<%block name="extra_head"> + ${feeds_translations.head(kind=kind, feeds=False)} + + +<%block name="content"> +

    ${title|h}

    + +% if cat_items: + % if items: +

    ${messages("Categories")}

    + % endif + % for text, full_name, path, link, indent_levels, indent_change_before, indent_change_after in cat_hierarchy: + % for i in range(indent_change_before): +
      + % endfor +
    • ${text|h} + % if indent_change_after <= 0: +
    • + % endif + % for i in range(-indent_change_after): +
    + % if i + 1 < len(indent_levels): + + % endif + % endfor + % endfor + % if items: +

    ${messages("Tags")}

    + % endif +%endif +% if items: +
      + % for text, link in items: + % if text not in hidden_tags: +
    • ${text|h}
    • + % endif + % endfor +
    +% endif + diff --git a/themes/bootstrap3/templates/ui_helper.tmpl b/themes/bootstrap3/templates/ui_helper.tmpl new file mode 100644 index 00000000..173027cd --- /dev/null +++ b/themes/bootstrap3/templates/ui_helper.tmpl @@ -0,0 +1,18 @@ +## -*- coding: utf-8 -*- +<%def name="breadcrumbs(crumbs)"> +%if crumbs: + +%endif +