initial nikola -> hugo

This commit is contained in:
Don Harper 2019-06-01 21:51:01 -05:00
parent f6b828e896
commit 49af233d6c
8136 changed files with 16214 additions and 28543 deletions

1
themes/Bleach Submodule

@ -0,0 +1 @@
Subproject commit 1a2fd1b40cb422b532dac13476250a22061456d6

View file

@ -1,9 +0,0 @@
The MIT License (MIT)
Copyright (c) 2017 Roberto Alsina, Valere Jeantet
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

View file

@ -1,14 +0,0 @@
A port of the Casper theme from Ghost, via https://github.com/vjeantet/hugo-theme-casper/
License is MIT
Included is a copy of Genericons, which is GPLv2
The Silk Road image is CC licensed from
[Jonathan Kos-Read](http://www.flickr.com/photos/jonathankosread/)
Special variables
* TWITTER_URL
* GITHUB_URL
* BANNER_URL

View file

@ -1,108 +0,0 @@
nav.breadcrumb{
margin-bottom:0px;
}
nav.breadcrumb li {
display: inline ;
font-size: 14px;
font-family: helvetica;
}
nav.breadcrumb li a {
text-decoration: none;
}
nav.breadcrumb li a:after {
content: " >";
}
nav.navpage {
font-size: 1em;
font-family: helvetica;
width: 100%;
}
nav.navpage > ul {
background: #efefef;
background: linear-gradient(top, #efefef 0%, #bbbbbb 100%);
background: -moz-linear-gradient(top, #efefef 0%, #bbbbbb 100%);
background: -webkit-linear-gradient(top, #efefef 0%,#bbbbbb 100%);
box-shadow: 0px 0px 90px rgba(0,0,0,0.15);
padding: 0 20px;
border-radius: 10px;
list-style: none;
position: relative;
display: inline-table;
width: 100%;
}
nav.navpage li {
list-style: none;
}
nav.navpage:after {
content: ""; clear: both; display: block;
}
nav.navpage > ul > li > a {
font-weight: bold;
text-decoration: none;
font-size: 1.2em;
font-variant: small-caps;
}
nav.navpage ul {
padding-left: 0px;
margin-left: 0px;
}
nav.navpage ul ul li {
display: block;
margin-left: 30px;
line-height: 1.2em;
}
nav.navpage ul ul li a {
text-decoration: none
}
nav.navpage ul ul li a:hover {
text-decoration: underline;
}
nav.navpage ul ul li:after {
content: "";
}
nav.navpage ul ul li ul li{
display: block;
font-size: smaller;
margin-left: 30px;
line-height: 1.1em;
}
nav.navchildren{
margin-top: 0px;
background: #efefef;
background: linear-gradient(top, #efefef 0%, #bbbbbb 100%);
background: -moz-linear-gradient(top, #efefef 0%, #bbbbbb 100%);
background: -webkit-linear-gradient(top, #efefef 0%,#bbbbbb 100%);
box-shadow: 0px 0px 90px rgba(0,0,0,0.15);
padding: 0 20px;
border-radius: 10px;
list-style: none;
position: relative;
display: inline-table;
width: 100%;
}
nav.navchildren li {
font-size: smaller;
line-height: 1.1em;
font-family: helvetica;
/*display: block;*/
}
nav.navchildren a {
line-height: 1.1em;
text-decoration: none
}
nav.navchildren a:hover {
text-decoration: underline;
}

File diff suppressed because it is too large Load diff

View file

@ -1,56 +0,0 @@
/**
* Main JS file for Casper behaviours
*/
/* globals jQuery, document */
(function ($, undefined) {
"use strict";
var $document = $(document);
$document.ready(function () {
var $postContent = $(".post-content");
$postContent.fitVids();
$(".scroll-down").arctic_scroll();
$(".menu-button[href='#'], .nav-cover, .nav-close").on("click", function(e){
e.preventDefault();
$("body").toggleClass("nav-opened nav-closed");
});
});
// Arctic Scroll by Paul Adam Davis
// https://github.com/PaulAdamDavis/Arctic-Scroll
$.fn.arctic_scroll = function (options) {
var defaults = {
elem: $(this),
speed: 500
},
allOptions = $.extend(defaults, options);
allOptions.elem.click(function (event) {
event.preventDefault();
var $this = $(this),
$htmlBody = $('html, body'),
offset = ($this.attr('data-offset')) ? $this.attr('data-offset') : false,
position = ($this.attr('data-position')) ? $this.attr('data-position') : false,
toMove;
if (offset) {
toMove = parseInt(offset);
$htmlBody.stop(true, false).animate({scrollTop: ($(this.hash).offset().top + toMove) }, allOptions.speed);
} else if (position) {
toMove = parseInt(position);
$htmlBody.stop(true, false).animate({scrollTop: toMove }, allOptions.speed);
} else {
$htmlBody.stop(true, false).animate({scrollTop: ($(this.hash).offset().top) }, allOptions.speed);
}
});
};
})(jQuery);

View file

@ -1,67 +0,0 @@
/*global jQuery */
/*jshint browser:true */
/*!
* FitVids 1.1
*
* Copyright 2013, Chris Coyier - http://css-tricks.com + Dave Rupert - http://daverupert.com
* Credit to Thierry Koblentz - http://www.alistapart.com/articles/creating-intrinsic-ratios-for-video/
* Released under the WTFPL license - http://sam.zoy.org/wtfpl/
*
*/
(function( $ ){
"use strict";
$.fn.fitVids = function( options ) {
var settings = {
customSelector: null
};
if(!document.getElementById('fit-vids-style')) {
// appendStyles: https://github.com/toddmotto/fluidvids/blob/master/dist/fluidvids.js
var head = document.head || document.getElementsByTagName('head')[0];
var css = '.fluid-width-video-wrapper{width:100%;position:relative;padding:0;}.fluid-width-video-wrapper iframe,.fluid-width-video-wrapper object,.fluid-width-video-wrapper embed {position:absolute;top:0;left:0;width:100%;height:100%;}';
var div = document.createElement('div');
div.innerHTML = '<p>x</p><style id="fit-vids-style">' + css + '</style>';
head.appendChild(div.childNodes[1]);
}
if ( options ) {
$.extend( settings, options );
}
return this.each(function(){
var selectors = [
"iframe[src*='player.vimeo.com']",
"iframe[src*='youtube.com']",
"iframe[src*='youtube-nocookie.com']",
"iframe[src*='kickstarter.com'][src*='video.html']",
"object",
"embed"
];
if (settings.customSelector) {
selectors.push(settings.customSelector);
}
var $allVideos = $(this).find(selectors.join(','));
$allVideos = $allVideos.not("object object"); // SwfObj conflict patch
$allVideos.each(function(){
var $this = $(this);
if (this.tagName.toLowerCase() === 'embed' && $this.parent('object').length || $this.parent('.fluid-width-video-wrapper').length) { return; }
var height = ( this.tagName.toLowerCase() === 'object' || ($this.attr('height') && !isNaN(parseInt($this.attr('height'), 10))) ) ? parseInt($this.attr('height'), 10) : $this.height(),
width = !isNaN(parseInt($this.attr('width'), 10)) ? parseInt($this.attr('width'), 10) : $this.width(),
aspectRatio = height / width;
if(!$this.attr('id')){
var videoID = 'fitvid' + Math.floor(Math.random()*999999);
$this.attr('id', videoID);
}
$this.wrap('<div class="fluid-width-video-wrapper"></div>').parent('.fluid-width-video-wrapper').css('padding-top', (aspectRatio * 100)+"%");
$this.removeAttr('height').removeAttr('width');
});
});
};
// Works with either jQuery or Zepto
})( window.jQuery || window.Zepto );

File diff suppressed because one or more lines are too long

View file

@ -1,7 +0,0 @@
[Theme]
engine = mako
parent = base
author = Roberto Alsina, Valere Jeantet
author_url = http://ralsina.me/
based_on = Casper for Hugo <https://github.com/vjeantet/hugo-theme-casper/>
license = MIT

View file

@ -1,7 +0,0 @@
THEME = 'canterville'
LOGO_URL = 'https://getnikola.com/assets/img/logo.svg'
GLOBAL_CONTEXT = {
'TWITTER_URL': 'https://twitter.com/getnikola',
'GITHUB_URL': 'https://github.com/getnikola',
'BANNER_URL': '/assets/img/silk-road.jpg'
}

View file

@ -1 +0,0 @@
base

View file

@ -1,59 +0,0 @@
## -*- coding: utf-8 -*-
<%namespace name="base" file="base_helper.tmpl" import="*"/>
<%namespace name="header" file="base_header.tmpl" import="*"/>
<%namespace name="footer" file="base_footer.tmpl" import="*"/>
${set_locale(lang)}
${base.html_headstart()}
<%block name="extra_head">
### Leave this block alone.
</%block>
${template_hooks['extra_head']()}
</head>
<body class="nav-closed">
${header.html_navigation_links()}
<div class="site-wrapper">
% if 'main_index' in pagekind and BANNER_URL :
<header class="main-header" style="background-image: url(${BANNER_URL})">
% elif 'post_page' in pagekind and post.meta('banner'):
<header class="main-header" style="background-image: url(${post.meta('banner')})">
% else:
<header class="main-header post-head no-cover">
% endif
<nav class="main-nav overlay clearfix">
<a class="blog-logo" href="${blog_url}"><img src="${logo_url}" alt="Blog Logo" /></a>
<a class="menu-button" href="#"><span class="burger">&#9776;</span><span class="word">Menu</span></a>
</nav>
% if 'main_index' in pagekind:
<div class="vertical">
<div class="main-header-content inner">
% if GITHUB_URL:
<a href="${GITHUB_URL}" target="_blank">
<span class="icon-github" style="color:white;font-size:2em"></span>
</a>
&nbsp;
% endif
% if TWITTER_URL:
<a class="bloglogo" href=${TWITTER_URL} target="_blank">
<span class="icon-twitter" style="color:white;font-size:2em"></span>
</a>
&nbsp;
% endif
<h1 class="page-title">${title}</h1>
<h2 class="page-description">${description}</h2>
</div>
</div>
<a class="scroll-down icon-arrow-left" href="#content"><span class="hidden">Scroll Down</span></a>
% endif
</header>
<main id="content" class="content" role="main">
<%block name="content"></%block>
</main>
${footer.html_footer()}
</div>
${base.late_load_js()}
<%block name="extra_js"></%block>
${body_end}
${template_hooks['body_end']()}
</body>
</html>

View file

@ -1,11 +0,0 @@
## -*- coding: utf-8 -*-
<%namespace name="base" file="base_helper.tmpl" import="*"/>
<%def name="html_footer()">
%if content_footer:
<footer class="site-footer clearfix">
<section class="poweredby">${content_footer}</section>
${template_hooks['page_footer']()}
</footer>
%endif
</%def>

View file

@ -1,60 +0,0 @@
## -*- coding: utf-8 -*-
<%namespace name="base" file="base_helper.tmpl" import="*"/>
<%def name="html_header()">
<header id="header">
${html_site_title()}
${html_translation_header()}
${html_navigation_links()}
%if search_form:
<div class="searchform" role="search">
${search_form}
</div>
%endif
</header>
${template_hooks['page_header']()}
</%def>
<%def name="html_site_title()">
<h1 id="brand"><a href="${abs_link(_link("root", None, lang))}" title="${blog_title|h}" rel="home">
%if logo_url:
<img src="${logo_url}" alt="${blog_title|h}" id="logo">
%endif
% if show_blog_title:
<span id="blog-title">${blog_title|h}</span>
% endif
</a></h1>
</%def>
<%def name="html_navigation_links()">
<div class="nav">
<h3 class="nav-title">Menu</h3>
<a href="#" class="nav-close">
<span class="hidden">Close</span>
</a>
<ul>
%for url, text in navigation_links[lang]:
% if rel_link(permalink, url) == "#":
<li class="nav-opened nav-current" role="presentation">
% else:
<li class="nav-opened" role="presentation">
% endif
<a href="${url}">${text}</a>
</li>
%endfor
${template_hooks['menu']()}
${template_hooks['menu_alt']()}
</ul>
</div>
<span class="nav-cover"></span>
</%def>
<%def name="html_translation_header()">
%if len(translations) > 1:
<div id="toptranslations">
<h2>${messages("Languages:")}</h2>
${base.html_translations()}
</div>
%endif
</%def>

View file

@ -1,121 +0,0 @@
## -*- coding: utf-8 -*-
<%def name="html_headstart()">
<!DOCTYPE html>
<html \
prefix='\
%if use_open_graph or (twitter_card and twitter_card['use_twitter_cards']):
og: http://ogp.me/ns# article: http://ogp.me/ns/article# \
%endif
%if comment_system == 'facebook':
fb: http://ogp.me/ns/fb#
%endif
' \
%if use_open_graph or (twitter_card and twitter_card['use_twitter_cards']):
vocab="http://ogp.me/ns" \
%endif
% if is_rtl:
dir="rtl" \
% endif
\
lang="${lang}">
<head>
<meta charset="utf-8">
% if use_base_tag:
<base href="${abs_link(permalink)}">
% endif
%if description:
<meta name="description" content="${description|h}">
%endif
<meta name="viewport" content="width=device-width">
%if title == blog_title:
<title>${blog_title|h}</title>
%else:
<title>${title|h} | ${blog_title|h}</title>
%endif
${html_stylesheets()}
<meta name="theme-color" content="${theme_color}">
% if meta_generator_tag:
<meta name="generator" content="Nikola (getnikola.com)">
% endif
${html_feedlinks()}
<link rel="canonical" href="${abs_link(permalink)}">
%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
%if use_cdn:
<!--[if lt IE 9]><script src="https://html5shim.googlecode.com/svn/trunk/html5.js"></script><![endif]-->
%else:
<!--[if lt IE 9]><script src="${url_replacer(permalink, '/assets/js/html5.js', lang, url_type)}"></script><![endif]-->
%endif
${extra_head_data}
</%def>
<%def name="late_load_js()">
<script type="text/javascript" src="/assets/js/jquery.js"></script>
<script type="text/javascript" src="/assets/js/jquery.fitvids.js"></script>
<script type="text/javascript" src="/assets/js/index.js"></script>
</%def>
<%def name="html_stylesheets()">
<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/theme.css" rel="stylesheet" type="text/css">
<link rel="stylesheet" type="text/css" href="/assets/css/screen.css" />
<link rel="stylesheet" type="text/css" href="/assets/css/nav.css" />
<link rel="stylesheet" type="text/css" href="//fonts.googleapis.com/css?family=Merriweather:300,700,700italic,300italic|Open+Sans:700,400|Inconsolata" />
% if needs_ipython_css:
<link href="/assets/css/ipython.min.css" rel="stylesheet" type="text/css">
<link href="/assets/css/nikola_ipython.css" rel="stylesheet" type="text/css">
% endif
</%def>
<%def name="html_feedlinks()">
%if rss_link:
${rss_link}
%elif generate_rss:
%if len(translations) > 1:
%for language in sorted(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
%if generate_atom:
%if len(translations) > 1:
%for language in sorted(translations):
<link rel="alternate" type="application/atom+xml" title="Atom (${language})" href="${_link('index_atom', None, language)}">
%endfor
%else:
<link rel="alternate" type="application/atom+xml" title="Atom" href="${_link('index_atom', None)}">
%endif
%endif
</%def>
<%def name="html_translations()">
<ul class="translations">
%for langname in sorted(translations):
%if langname != lang:
<li><a href="${abs_link(_link("root", None, langname))}" rel="alternate" hreflang="${langname}">${messages("LANGUAGE", langname)}</a></li>
%endif
%endfor
</ul>
</%def>

View file

@ -1,62 +0,0 @@
## -*- coding: utf-8 -*-
<%namespace name="helper" file="index_helper.tmpl"/>
<%namespace name="math" file="math_helper.tmpl"/>
<%namespace name="comments" file="comments_helper.tmpl"/>
<%namespace name="pagination" file="pagination_helper.tmpl"/>
<%inherit file="base.tmpl"/>
<%block name="extra_head">
${parent.extra_head()}
% if posts and (permalink == '/' or permalink == '/' + index_file):
<link rel="prefetch" href="${posts[0].permalink()}" type="text/html">
% endif
${math.math_styles_ifposts(posts)}
</%block>
<%block name="content">
<%block name="content_header"></%block>
% if 'main_index' in pagekind:
${front_index_header}
% endif
% if page_links:
${pagination.page_navigation(current_page, page_links, prevlink, nextlink, prev_next_links_reversed)}
% endif
<div class="postindex">
% for post in posts:
<article class="post post">
<header class="post-header">
<h2 class="post-title"><a href="${post.permalink()}">${post.title()|h}</a></h2>
</header>
%if index_teasers:
<section class="post-excerpt">
${post.text(teaser_only=True)}
%else:
<section class="post-excerpt">
${post.text(teaser_only=False)}
%endif
</section>
<footer class="post-meta">
% if author_pages_generated:
<a href="${_link('author', post.author())}">${post.author()|h}</a>
% else:
${post.author()|h}
% endif
on
% for tag in post.tags:
<a href="link://tag/${tag}">#${tag}</a>,
% endfor
<time class="post-date" datetime="${post.formatted_date('webiso')}">
${post.formatted_date(date_format)|h}
</time>
</footer>
</article>
% endfor
</div>
${helper.html_pager()}
${comments.comment_link_script()}
${math.math_scripts_ifposts(posts)}
</%block>

View file

@ -1,63 +0,0 @@
## -*- 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'):
<meta name="keywords" content="${post.meta('keywords')|h}">
% endif
<meta name="author" content="${post.author()|h}">
%if post.prev_post:
<link rel="prev" href="${post.prev_post.permalink()}" title="${post.prev_post.title()|h}" type="text/html">
%endif
%if post.next_post:
<link rel="next" href="${post.next_post.permalink()}" title="${post.next_post.title()|h}" type="text/html">
%endif
% if post.is_draft:
<meta name="robots" content="noindex">
% endif
${helper.open_graph_metadata(post)}
${helper.twitter_card_information(post)}
${helper.meta_translations(post)}
${math.math_styles_ifpost(post)}
</%block>
<%block name="content">
<article class="post post">
<header class="post-header">
<h1 class="post-title">${post.title()}</h1>
<section class="post-meta"> by
% if author_pages_generated:
<a href="${_link('author', post.author())}">${post.author()|h}</a>
% else:
${post.author()|h}
% endif
on
% for tag in post.tags:
<a href="link://tag/${tag}">#${tag}</a>,
% endfor
<time class="post-date" datetime="${post.formatted_date('webiso')}">
${post.formatted_date(date_format)|h}
</time>
</section>
</header>
<section class="post-content">
${post.text()}
</section>
<footer class="post-footer">
% if not post.meta('nocomments') and site_has_comments:
<section class="comments hidden-print">
<h2>${messages("Comments")}</h2>
${comments.comment_form(post.permalink(absolute=True), post.title(), post._base_path)}
</section>
% endif
${math.math_scripts_ifpost(post)}
</article>
${comments.comment_link_script()}
</%block>

View file

@ -1,23 +0,0 @@
This theme is a port of the [Hyde theme by mdo](http://hyde.getpoole.com/) Everything that's good in it is mdo's fault, everything bad is mine.
It supports one variable set in the config:
```
GLOBAL_CONTEXT = {
"hyde_subtheme": "theme-base-08"
}
```
That changes the color scheme, replace 08 with one of 09, 0a, 0b, 0c, 0d, 0e, 0f.
You can read a tutorial about how to create/port new theme [at Nikola's site](https://getnikola.com/creating-a-theme.html)
(*Note:* The `.sidebar` class was renamed to `.hsidebar` to avoid conflicts with reST.)
License is MIT
Known Issues:
* Not all features of Nikola are tested.
* Galleries will work better when [Issue #1764](https://github.com/getnikola/nikola/issues/1764) is fixed.
* Submenus in navigation links are not supported

File diff suppressed because it is too large Load diff

View file

@ -1,357 +0,0 @@
/*
* __ __
* /\ \ /\ \
* \ \ \___ __ __ \_\ \ __
* \ \ _ `\/\ \/\ \ /'_` \ /'__`\
* \ \ \ \ \ \ \_\ \/\ \_\ \/\ __/
* \ \_\ \_\/`____ \ \___,_\ \____\
* \/_/\/_/`/___/> \/__,_ /\/____/
* /\___/
* \/__/
*
* Designed, built, and released under MIT license by @mdo. Learn more at
* https://github.com/poole/hyde.
*/
/*
* Contents
*
* Global resets
* Sidebar
* Container
* Reverse layout
* Themes
*/
/*
* Global resets
*
* Update the foundational and global aspects of the page.
*/
html {
font-family: "PT Sans", Helvetica, Arial, sans-serif;
}
@media (min-width: 48em) {
html {
font-size: 16px;
}
}
@media (min-width: 58em) {
html {
font-size: 20px;
}
}
/*
* Sidebar
*
* Flexible banner for housing site name, intro, and "footer" content. Starts
* out above content in mobile and later moves to the side with wider viewports.
*/
div.hsidebar, .hsidebar {
padding: 2rem 1rem;
color: rgba(255,255,255,.5);
background-color: #202020;
text-align: center;
margin-left: 0;
margin-bottom: 0;
}
@media (min-width: 48em) {
div.hsidebar, .hsidebar {
position: fixed;
text-align: left;
top: 0;
left: 0;
bottom: 0;
width: 18rem;
}
}
/* Sidebar images */
div.hsidebar img, .hsidebar img {
display: block;
margin-left: auto;
margin-right: auto;
}
img#logo {
width: 200px;
}
/* Sidebar links */
div.hsidebar a, .hsidebar a {
color: #fff;
}
/* About section */
.sidebar-about h1 {
color: #fff;
margin-top: 0;
font-family: "Abril Fatface", serif;
font-size: 2.75rem;
}
/* Sidebar nav */
.sidebar-nav {
margin-bottom: 1rem;
}
.sidebar-nav-item {
display: block;
line-height: 1.50;
}
a.sidebar-nav-item:hover,
a.sidebar-nav-item:focus {
text-decoration: underline;
}
.sidebar-nav-item.active {
font-weight: bold;
}
/* Sticky sidebar
*
* Add the `sidebar-sticky` class to the sidebar's container to affix it the
* contents to the bottom of the sidebar in tablets and up.
*/
@media (min-width: 48em) {
.sidebar-sticky {
position: absolute;
right: 1rem;
bottom: 0;
left: 1rem;
}
}
/*
* Footer
*
* Edit Styles for footer
*/
.footer {
font-size: 16px;
}
.icon_row{
width: auto;
height: auto;
display: inline-block;
vertical-align: middle;
}
.icon_row img.social_icon{
width: 24px;
display: inline-block;
margin: 0px auto;
vertical-align: bottom;
}
.copyright{
font-size: smaller;
line-height: 0.5;
text-align: center;
}
/* Container
*
* Align the contents of the site above the proper threshold with some margin-fu
* with a 25%-wide `.sidebar`.
*/
.content {
padding-top: 4rem;
padding-bottom: 4rem;
}
@media (min-width: 48em) {
.content {
max-width: 38rem;
margin-left: 20rem;
margin-right: 2rem;
}
}
@media (min-width: 64em) {
.content {
margin-left: 22rem;
margin-right: 4rem;
}
}
/*
* Reverse layout
*
* Flip the orientation of the page by placing the `.sidebar` on the right.
*/
@media (min-width: 48em) {
.layout-reverse .hsidebar {
left: auto;
right: 0;
}
.layout-reverse .content {
margin-left: 2rem;
margin-right: 20rem;
}
}
@media (min-width: 64em) {
.layout-reverse .content {
margin-left: 4rem;
margin-right: 22rem;
}
}
/*
* Themes
*
* As of v1.1, Hyde includes optional themes to color the sidebar and links
* within blog posts. To use, add the class of your choosing to the `body`.
*/
/* Base16 (http://chriskempson.github.io/base16/#default) */
/* Red */
.theme-base-08 .hsidebar {
background-color: #ac4142;
}
.theme-base-08 .content a,
.theme-base-08 .related-posts li a:hover {
color: #ac4142;
}
/* Orange */
.theme-base-09 .hsidebar {
background-color: #d28445;
}
.theme-base-09 .content a,
.theme-base-09 .related-posts li a:hover {
color: #d28445;
}
/* Yellow */
.theme-base-0a .hsidebar {
background-color: #f4bf75;
}
.theme-base-0a .content a,
.theme-base-0a .related-posts li a:hover {
color: #f4bf75;
}
/* Green */
.theme-base-0b .hsidebar {
background-color: #90a959;
}
.theme-base-0b .content a,
.theme-base-0b .related-posts li a:hover {
color: #90a959;
}
/* Cyan */
.theme-base-0c .hsidebar {
background-color: #75b5aa;
}
.theme-base-0c .content a,
.theme-base-0c .related-posts li a:hover {
color: #75b5aa;
}
/* Blue */
.theme-base-0d .hsidebar {
background-color: #6a9fb5;
}
.theme-base-0d .content a,
.theme-base-0d .related-posts li a:hover {
color: #6a9fb5;
}
/* Magenta */
.theme-base-0e .hsidebar {
background-color: #aa759f;
}
.theme-base-0e .content a,
.theme-base-0e .related-posts li a:hover {
color: #aa759f;
}
/* Brown */
.theme-base-0f .hsidebar {
background-color: #8f5536;
}
.theme-base-0f .content a,
.theme-base-0f .related-posts li a:hover {
color: #8f5536;
}
/*
* Additional Classes pertaining to Nikola
*
* The accessible link at the top shouldn't be visible. The class that make
* them invisible were in themes.css.
* To use, example below:
* <a href="..." class="sr-only sr-only-focusable">...</a>
*
*/
.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;
}
.breadcrumb {
padding: 8px 15px;
margin-bottom: 20px;
list-style: none;
}
.breadcrumb > li {
display: inline-block;
margin-right: 0;
margin-left: 0;
}
.breadcrumb > li:after {
content: ' / ';
color: #888;
}
.breadcrumb > li:last-of-type:after {
content: '';
margin-left: 0;
}
.thumbnails > li {
display: inline-block;
margin-right: 10px;
}
.thumbnails > li:last-of-type {
margin-right: 0;
}

View file

@ -1,483 +0,0 @@
/*
* ___
* /\_ \
* _____ ___ ___\//\ \ __
* /\ '__`\ / __`\ / __`\\ \ \ /'__`\
* \ \ \_\ \/\ \_\ \/\ \_\ \\_\ \_/\ __/
* \ \ ,__/\ \____/\ \____//\____\ \____\
* \ \ \/ \/___/ \/___/ \/____/\/____/
* \ \_\
* \/_/
*
* Designed, built, and released under MIT license by @mdo. Learn more at
* https://github.com/poole/poole.
*/
/*
* Contents
*
* Body resets
* Custom type
* Messages
* Container
* Masthead
* Posts and pages
* Pagination
* Reverse layout
* Themes
*/
/*
* Body resets
*
* Update the foundational and global aspects of the page.
*/
* {
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
}
html,
body {
margin: 0;
padding: 0;
}
html {
font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
font-size: 16px;
line-height: 1.5;
}
@media (min-width: 38em) {
html {
font-size: 20px;
}
}
body {
color: #515151;
background-color: #fff;
-webkit-text-size-adjust: 100%;
-ms-text-size-adjust: 100%;
}
/* No `:visited` state is required by default (browsers will use `a`) */
a {
color: #268bd2;
text-decoration: none;
}
a strong {
color: inherit;
}
/* `:focus` is linked to `:hover` for basic accessibility */
a:hover,
a:focus {
text-decoration: underline;
}
/* Headings */
h1, h2, h3, h4, h5, h6 {
margin-bottom: .5rem;
font-weight: bold;
line-height: 1.25;
color: #313131;
text-rendering: optimizeLegibility;
}
h1 {
font-size: 2rem;
}
h2 {
margin-top: 1rem;
font-size: 1.5rem;
}
h3 {
margin-top: 1.5rem;
font-size: 1.25rem;
}
h4, h5, h6 {
margin-top: 1rem;
font-size: 1rem;
}
/* Body text */
p {
margin-top: 0;
margin-bottom: 1rem;
}
strong {
color: #303030;
}
/* Lists */
ul, ol, dl {
margin-top: 0;
margin-bottom: 1rem;
}
dt {
font-weight: bold;
}
dd {
margin-bottom: .5rem;
}
/* Misc */
hr {
position: relative;
margin: 1.5rem 0;
border: 0;
border-top: 1px solid #eee;
border-bottom: 1px solid #fff;
}
abbr {
font-size: 85%;
font-weight: bold;
color: #555;
text-transform: uppercase;
}
abbr[title] {
cursor: help;
border-bottom: 1px dotted #e5e5e5;
}
/* Code */
code,
pre {
font-family: Menlo, Monaco, "Courier New", monospace;
}
code {
padding: .25em .5em;
font-size: 85%;
color: #bf616a;
background-color: #f9f9f9;
border-radius: 3px;
}
pre {
display: block;
margin-top: 0;
margin-bottom: 1rem;
padding: 1rem;
font-size: .8rem;
line-height: 1.4;
white-space: pre;
word-break: break-all;
word-wrap: break-word;
background-color: #f9f9f9;
}
pre code {
padding: 0;
font-size: 100%;
color: inherit;
background-color: transparent;
}
/* Pygments via Jekyll */
.highlight {
margin-bottom: 1rem;
border-radius: 4px;
}
.highlight pre {
margin-bottom: 0;
}
/* Gist via GitHub Pages */
.gist .gist-file {
font-family: Menlo, Monaco, "Courier New", monospace !important;
}
.gist .markdown-body {
padding: 15px;
}
.gist pre {
padding: 0;
background-color: transparent;
}
.gist .gist-file .gist-data {
font-size: .8rem !important;
line-height: 1.4;
}
.gist code {
padding: 0;
color: inherit;
background-color: transparent;
border-radius: 0;
}
/* Quotes */
blockquote {
padding: .5rem 1rem;
margin: .8rem 0;
color: #7a7a7a;
border-left: .25rem solid #e5e5e5;
}
blockquote p:last-child {
margin-bottom: 0;
}
@media (min-width: 30em) {
blockquote {
padding-right: 5rem;
padding-left: 1.25rem;
}
}
img {
display: block;
max-width: 100%;
margin: 0 0 1rem;
border-radius: 5px;
}
/* Tables */
table {
margin-bottom: 1rem;
width: 100%;
border: 1px solid #e5e5e5;
border-collapse: collapse;
}
td,
th {
padding: .25rem .5rem;
border: 1px solid #e5e5e5;
}
tbody tr:nth-child(odd) td,
tbody tr:nth-child(odd) th {
background-color: #f9f9f9;
}
/*
* Custom type
*
* Extend paragraphs with `.lead` for larger introductory text.
*/
.lead {
font-size: 1.25rem;
font-weight: 300;
}
/*
* Messages
*
* Show alert messages to users. You may add it to single elements like a `<p>`,
* or to a parent if there are multiple elements to show.
*/
.message {
margin-bottom: 1rem;
padding: 1rem;
color: #717171;
background-color: #f9f9f9;
}
/*
* Container
*
* Center the page content.
*/
.container {
max-width: 38rem;
padding-left: 1rem;
padding-right: 1rem;
margin-left: auto;
margin-right: auto;
}
/*
* Masthead
*
* Super small header above the content for site name and short description.
*/
.masthead {
padding-top: 1rem;
padding-bottom: 1rem;
margin-bottom: 3rem;
}
.masthead-title {
margin-top: 0;
margin-bottom: 0;
color: #505050;
}
.masthead-title a {
color: #505050;
}
.masthead-title small {
font-size: 75%;
font-weight: 400;
color: #c0c0c0;
letter-spacing: 0;
}
/*
* Posts and pages
*
* Each post is wrapped in `.post` and is used on default and post layouts. Each
* page is wrapped in `.page` and is only used on the page layout.
*/
.page,
.post {
margin-bottom: 4em;
}
/* Blog post or page title */
.page-title,
.post-title,
.post-title a {
color: #303030;
}
.page-title,
.post-title {
margin-top: 0;
}
/* Meta data line below post title */
.post-date {
display: block;
margin-top: -.5rem;
margin-bottom: 1rem;
color: #9a9a9a;
}
/* Related posts */
.related {
padding-top: 2rem;
padding-bottom: 2rem;
border-top: 1px solid #eee;
}
.related-posts {
padding-left: 0;
list-style: none;
}
.related-posts h3 {
margin-top: 0;
}
.related-posts li small {
font-size: 75%;
color: #999;
}
.related-posts li a:hover {
color: #268bd2;
text-decoration: none;
}
.related-posts li a:hover small {
color: inherit;
}
/*
* Pagination
*
* Super lightweight (HTML-wise) blog pagination. `span`s are provide for when
* there are no more previous or next posts to show.
*/
.pagination {
overflow: hidden; /* clearfix */
margin-left: -1rem;
margin-right: -1rem;
font-family: "PT Sans", Helvetica, Arial, sans-serif;
color: #ccc;
text-align: center;
}
/* Pagination items can be `span`s or `a`s */
.pagination-item {
display: block;
padding: 1rem;
border: 1px solid #eee;
}
.pagination-item:first-child {
margin-bottom: -1px;
}
/* Only provide a hover state for linked pagination items */
a.pagination-item:hover {
background-color: #f5f5f5;
}
/*
* Tags
*
* Super lightweight (HTML-wise) blog pagination. `span`s are provide for when
* there are no more previous or next posts to show.
*/
.tags {
overflow: hidden; /* clearfix */
font-family: "PT Sans", Helvetica, Arial, sans-serif;
color: #ccc;
text-align: center;
border: 2px dotted #eee;
border-radius: 3px;
padding: 5px;
height: auto;
display: inline-block;
vertical-align: middle;
}
/* Pagination items can be `span`s or `a`s */
.tag {
display: block;
padding-top: 1px;
padding-bottom: 1px;
padding-left: 4px;
padding-right: 4px;
margin: 5px;
border: 1px solid #eee;
background: #f5f5f5;
border-radius: 15px;
font-size: smaller;
}
/* Only provide a hover state for linked pagination items */
.tag:hover {
background-color: #ddd;
}
@media (min-width: 30em) {
.pagination {
margin: 3rem 0;
}
.pagination-item {
float: left;
width: 50%;
}
.pagination-item:first-child {
margin-bottom: 0;
border-top-left-radius: 4px;
border-bottom-left-radius: 4px;
}
.pagination-item:last-child {
margin-left: -1px;
border-top-right-radius: 4px;
border-bottom-right-radius: 4px;
}
}
/* Fix whitespace of listings w/ numbers (issue #155) */
table.codehilitetable pre {
padding: 0;
}
td.code /* to exclude listings w/o numbers */
pre.code.literal-block {
margin-left: 0;
}

View file

@ -1 +0,0 @@
assets/css/all.css=rst.css,poole.css,hyde.css,code.css,custom.css

View file

@ -1 +0,0 @@
jinja

View file

@ -1,7 +0,0 @@
[Theme]
engine = jinja
parent = base-jinja
author = Yoong Shin Chow
author_url = https://github.com/chow1026
based_on = Hyde theme by mdo <http://hyde.getpoole.com/>
license = MIT

View file

@ -1 +0,0 @@
base-jinja

View file

@ -1,13 +0,0 @@
{# -*- coding: utf-8 -*- #}
{% extends 'index.tmpl' %}
{% block extra_head %}
{{ super() }}
{% if translations|length > 1 and generate_atom %}
{% for language in translations|sort %}
<link rel="alternate" type="application/atom+xml" title="Atom for the {{ archive_name }} section ({{ language }})" href="{{ _link("archive_atom", archive_name, language) }}">
{% endfor %}
{% elif generate_atom %}
<link rel="alternate" type="application/atom+xml" title="Atom for the {{ archive_name }} archive" href="{{ _link("archive_atom", archive_name) }}">
{% endif %}
{% endblock %}

View file

@ -1,39 +0,0 @@
{# -*- coding: utf-8 -*- #}
{% import 'base_helper.tmpl' as base with context %}
{% import 'base_header.tmpl' as header with context %}
{% import 'base_footer.tmpl' as footer with context %}
{{ set_locale(lang) }}
{{ base.html_headstart() }}
{% block extra_head %}
{# Leave this block alone. #}
{% endblock %}
{{ template_hooks['extra_head']() }}
</head>
<body class="{{ hyde_subtheme }}">
<a href="#content" class="sr-only sr-only-focusable">{{ messages("Skip to main content") }}</a>
<div class="hsidebar">
<div class="container sidebar-sticky">
<div class="sidebar-about">
<h1>
<a href="{{ abs_link(_link("root", None, lang)) }}">
{{ header.html_site_title() }}
</a>
</h1>
{{ header.html_site_description() }}
</div>
{{ header.html_navigation_links() }}
{{ footer.html_footer() }}
</div>
</div>
<div class="content container" id="content">
{% block content %}{% endblock %}
</div>
{% block extra_js %}{% endblock %}
{{ body_end }}
{{ template_hooks['body_end']() }}
{{ base.late_load_js() }}
</body>
</html>

View file

@ -1,14 +0,0 @@
{# -*- coding: utf-8 -*- #}
{% import 'base_helper.tmpl' as base with context %}
{% macro html_footer() %}
{% if content_footer %}
<footer id="footer">
<span class="copyright">
{{ content_footer }}
</span>
</p>
{{ template_hooks['page_footer']() }}
</footer>
{% endif %}
{% endmacro %}

View file

@ -1,53 +0,0 @@
{# -*- coding: utf-8 -*- #}
{% import 'base_helper.tmpl' as base with context %}
{% macro html_header() %}
<header id="header">
{{ html_site_title() }}
{{ html_site_description() }}
{{ html_translation_header() }}
{{ html_navigation_links() }}
{% if search_form %}
<div class="searchform" role="search">
{{ search_form }}
</div>
{% endif %}
</header>
{{ template_hooks['page_header']() }}
{% endmacro %}
{% macro html_site_description() %}
<p class="lead">{{ blog_description|e }}</p>
{% endmacro %}
{% macro html_site_title() %}
<h1 id="brand"><a href="{{ abs_link(_link("root", None, lang)) }}" title="{{ blog_title|e }}" rel="home">
{% if logo_url %}
<img src="{{ logo_url }}" alt="{{ blog_title|e }}" id="logo">
{% endif %}
{% if show_blog_title %}
<span id="blog-title">{{ blog_title|e }}</span>
{% endif %}
</a></h1>
{% endmacro %}
{% macro html_navigation_links() %}
<nav id="menu" role="navigation" class="sidebar-nav">
{% for url, text in navigation_links[lang] %}
<a class="sidebar-nav-item" href="{{url}}">{{text}}</a>
{% endfor %}
{{ template_hooks['menu']() }}
{{ template_hooks['menu_alt']() }}
</nav>
{% endmacro %}
{% macro html_translation_header() %}
{% if translations|length > 1 %}
<div id="toptranslations">
<h2>{{ messages("Languages:") }}</h2>
{{ base.html_translations() }}
</div>
{% endif %}
{% endmacro %}

View file

@ -1,125 +0,0 @@
{# -*- coding: utf-8 -*- #}
{% macro html_headstart() %}
<!DOCTYPE html>
<html \
prefix='
{% if use_open_graph or (twitter_card and twitter_card['use_twitter_cards']) %}
og: http://ogp.me/ns# article: http://ogp.me/ns/article#
{% endif %}
{% if comment_system == 'facebook' %}
fb: http://ogp.me/ns/fb#
{% endif %}
' \
{% if use_open_graph or (twitter_card and twitter_card['use_twitter_cards']) %}
vocab="http://ogp.me/ns" \
{% endif %}
{% if is_rtl %}
dir="rtl"
{% endif %}
lang="{{ lang }}">
<head>
<meta charset="utf-8">
{% if use_base_tag %}
<base href="{{ abs_link(permalink) }}">
{% endif %}
{% if description %}
<meta name="description" content="{{ description|e }}">
{% endif %}
<meta name="viewport" content="width=device-width, initial-scale=1.0">
{% if title == blog_title %}
<title>{{ blog_title|e }}</title>
{% else %}
<title>{{ blog_title|e }} &middot; {{ title|e }} </title>
{% endif %}
{{ html_stylesheets() }}
<meta content="{{ theme_color }}" name="theme-color">
{{ html_feedlinks() }}
<link rel="canonical" href="{{ abs_link(permalink) }}">
{% 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="https://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() %}
{{ social_buttons_code }}
{% endmacro %}
{% macro html_stylesheets() %}
{% if use_bundles %}
<link href="/assets/css/all.css" rel="stylesheet" type="text/css">
{% else %}
<link href="/assets/css/rst.css" rel="stylesheet" type="text/css">
<link href="/assets/css/poole.css" rel="stylesheet" type="text/css">
<link href="/assets/css/hyde.css" rel="stylesheet" type="text/css">
<link href="/assets/css/code.css" rel="stylesheet" type="text/css">
{% if has_custom_css %}
<link href="/assets/css/custom.css" rel="stylesheet" type="text/css">
{% endif %}
{% endif %}
{% if needs_ipython_css %}
<link href="/assets/css/ipython.min.css" rel="stylesheet" type="text/css">
<link href="/assets/css/nikola_ipython.css" rel="stylesheet" type="text/css">
{% endif %}
<link rel="stylesheet" href="http://fonts.googleapis.com/css?family=PT+Sans:400,400italic,700|Abril+Fatface">
{% endmacro %}
{% macro html_feedlinks() %}
{% if rss_link %}
{{ rss_link }}
{% elif generate_rss %}
{% if translations|length > 1 %}
{% for language in translations|sort %}
<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 %}
{% if generate_atom %}
{% if translations|length > 1 %}
{% for language in translations|sort %}
<link rel="alternate" type="application/atom+xml" title="Atom ({{ language }})" href="{{ _link('index_atom', None, language) }}">
{% endfor %}
{% else %}
<link rel="alternate" type="application/atom+xml" title="Atom" href="{{ _link('index_atom', None) }}">
{% endif %}
{% endif %}
{% endmacro %}
{% macro html_translations() %}
<ul class="translations">
{% for langname in translations|sort %}
{% if langname != lang %}
<li><a href="{{ abs_link(_link("root", None, langname)) }}" rel="alternate" hreflang="{{ langname }}">{{ messages("LANGUAGE", langname) }}</a></li>
{% endif %}
{% endfor %}
</ul>
{% endmacro %}

View file

@ -1,43 +0,0 @@
{# -*- coding: utf-8 -*- #}
{% import 'index_helper.tmpl' as helper with context %}
{% import 'math_helper.tmpl' as math with context %}
{% import 'comments_helper.tmpl' as comments with context %}
{% extends 'base.tmpl' %}
{% block extra_head %}
{{ super() }}
{% if posts and (permalink == '/' or permalink == '/' + index_file) %}
<link rel="prefetch" href="{{ posts[0].permalink() }}" type="text/html">
{% endif %}
{{ math.math_styles_ifposts(posts) }}
{% endblock %}
{% block content %}
{% block content_header %}{% endblock %}
{% if 'main_index' in pagekind %}
{{ front_index_header }}
{% endif %}
<div class="post">
{% for post in posts %}
<article class="post h-entry post-{{ post.meta('type') }}">
<header>
<h1 class="post-title p-name"><a href="{{ post.permalink() }}" class="u-url">{{ post.title()|e }}</a></h1>
<div class="metadata">
<span class="post-date dateline"><time class="published dt-published" datetime="{{ post.formatted_date('webiso') }}" title="{{ post.formatted_date(date_format)|e }}">{{ post.formatted_date(date_format)|e }}</time></span>
</div>
</header>
{% if index_teasers %}
<div class="p-summary entry-summary">
{{ post.text(teaser_only=True) }}
{% else %}
<div class="e-content entry-content">
{{ post.text(teaser_only=False) }}
{% endif %}
</div>
</article>
{% endfor %}
</div>
{{ helper.html_pager() }}
{{ comments.comment_link_script() }}
{{ math.math_scripts_ifposts(posts) }}
{% endblock %}

View file

@ -1,22 +0,0 @@
{# -*- coding: utf-8 -*- #}
{% extends 'base.tmpl' %}
{% block content %}
<article class="listpage">
<header>
<h1>{{ title|e }}</h1>
</header>
{% if posts %}
<ul class="postlist">
{% for post in posts %}
<li>
<a href="{{ post.permalink() }}" class="listtitle">{{ post.title()|e }}</a> -
<time class="listdate" datetime="{{ post.formatted_date('webiso') }}" title="{{ post.formatted_date(date_format)|e }}">{{ post.formatted_date(date_format)|e }}</time>
</li>
{% endfor %}
</ul>
{% else %}
<p>{{ messages("No posts found.") }}</p>
{% endif %}
</article>
{% endblock %}

View file

@ -1,44 +0,0 @@
{# -*- coding: utf-8 -*- #}
{% import 'post_helper.tmpl' as helper with context %}
{% import 'comments_helper.tmpl' as comments with context %}
{% macro html_title() %}
{% if title and not post.meta('hidetitle') %}
<h1 class="post-title p-name"><a href="{{ post.permalink() }}" class="u-url">{{ post.title()|e }}</a></h1>
{% endif %}
{% endmacro %}
{% macro html_translations(post) %}
{% if post.translated_to|length > 1 %}
<div class="metadata posttranslations translations">
<h3 class="posttranslations-intro">{{ messages("Also available in:") }}</h3>
{% for langname in translations|sort %}
{% if langname != lang and post.is_translation_available(langname) %}
<p><a href="{{ post.permalink(langname) }}" rel="alternate" hreflang="{{ langname }}">{{ messages("LANGUAGE", langname) }}</a></p>
{% endif %}
{% endfor %}
</div>
{% endif %}
{% endmacro %}
{% macro html_sourcelink() %}
{% if show_sourcelink %}
<p class="sourceline"><a href="{{ post.source_link() }}" id="sourcelink">{{ messages("Source") }}</a></p>
{% endif %}
{% endmacro %}
{% macro html_post_header() %}
{{ html_title() }}
<span class="post-date">
<time class="published dt-published" datetime="{{ post.formatted_date('webiso') }}" itemprop="datePublished" title="{{ post.formatted_date(date_format)|e }}">{{ post.formatted_date(date_format)|e }}</time>
</span>
{% if post.meta('link') %}
<p class="linkline"><a href="{{ post.meta('link') }}">{{ messages("Original site") }}</a></p>
{% endif %}
{% if post.description() %}
<meta name="description" itemprop="description" content="{{ post.description()|e }}">
{% endif %}
{{ html_translations(post) }}
</header>
{% endmacro %}

View file

@ -1,96 +0,0 @@
{# -*- coding: utf-8 -*- #}
{% macro meta_translations(post) %}
{% if translations|length > 1 %}
{% for langname in translations|sort %}
{% if langname != lang and ((not post.skip_untranslated) or post.is_translation_available(langname)) %}
<link rel="alternate" hreflang="{{ langname }}" href="{{ post.permalink(langname) }}">
{% endif %}
{% endfor %}
{% endif %}
{% endmacro %}
{% macro html_tags(post) %}
{% if post.tags %}
<p itemprop="keywords" class="tags">
{% for tag in post.tags %}
{% if tag not in hidden_tags %}
<span class="tag"><a class="p-category" href="{{ _link('tag', tag) }}" rel="tag">{{ tag|e }}</a></span>
{% endif %}
{% endfor %}
</p>
{% endif %}
{% endmacro %}
{% macro html_pager(post) %}
{% if post.prev_post or post.next_post %}
<div class="pager hidden-print pagination">
<span class="previous pagination-item older">
{% if post.prev_post %}
<a href="{{ post.prev_post.permalink() }}" rel="prev" title="{{ post.prev_post.title()|e }}">
{% endif %}
{{ messages("Previous post") }}
{% if post.prev_post %}
</a>
{% endif %}
</span>
<span class="next pagination-item newer">
{% if post.next_post %}
<a href="{{ post.next_post.permalink() }}" rel="next" title="{{ post.next_post.title()|e }}">
{% endif %}{{ messages("Next post") }}
{% if post.next_post %}
</a>
{% endif %}
</span>
</div>
{% endif %}
{% endmacro %}
{% macro open_graph_metadata(post) %}
{% if use_open_graph %}
<meta property="og:site_name" content="{{ blog_title|e }}">
<meta property="og:title" content="{{ post.title()[:70]|e }}">
<meta property="og:url" content="{{ abs_link(permalink) }}">
{% if post.description() %}
<meta property="og:description" content="{{ post.description()[:200]|e }}">
{% else %}
<meta property="og:description" content="{{ post.text(strip_html=True)[:200]|e }}">
{% endif %}
{% if post.previewimage %}
<meta property="og:image" content="{{ url_replacer(permalink, post.previewimage, lang, 'absolute') }}">
{% endif %}
<meta property="og:type" content="article">
{# Will only work with Pintrest and breaks everywhere else who expect a [Facebook] URI. #}
{# %if post.author(): #}
{# <meta property="article:author" content="{{ post.author()|e }}"> #}
{# %endif #}
{% if post.date.isoformat() %}
<meta property="article:published_time" content="{{ post.formatted_date('webiso') }}">
{% endif %}
{% if post.tags %}
{% for tag in post.tags %}
<meta property="article:tag" content="{{ tag|e }}">
{% endfor %}
{% endif %}
{% 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 %}
{% endif %}
{% endmacro %}

View file

@ -1,23 +0,0 @@
{# -*- coding: utf-8 -*- #}
{% extends 'index.tmpl' %}
{% block extra_head %}
{{ super() }}
{% if generate_atom %}
<link rel="alternate" type="application/atom+xml" title="Atom for the {{ posts[0].section_name()|e }} section" href="{{ _link('section_index_atom', posts[0].section_slug()) }}">
{% endif %}
{% endblock %}
{% block content %}
<div class="sectionindex">
<header>
<h2><a href="{{ _link('section_index', posts[0].section_slug()) }}">{{ title|e }}</a></h2>
{% if generate_atom %}
<p class="feedlink"><a href="{{ _link('section_index_atom', posts[0].section_slug()) }}" type="application/atom+xml">{{ messages('Updates') }}</a></p>
{% endif %}
</header>
{{ super() }}
</div>
{% endblock %}

View file

@ -1,40 +0,0 @@
{# -*- coding: utf-8 -*- #}
{% extends 'list_post.tmpl' %}
{% block extra_head %}
{{ super() }}
{% if translations|length > 1 and generate_rss %}
{% for language in translations|sort %}
<link rel="alternate" type="application/rss+xml" title="RSS for {{ kind }} {{ tag|e }} ({{ language }})" href="{{ _link(kind + "_rss", tag, language) }}">
{% endfor %}
{% elif generate_rss %}
<link rel="alternate" type="application/rss+xml" title="RSS for {{ kind }} {{ tag|e }}" href="{{ _link(kind + "_rss", tag) }}">
{% endif %}
{% endblock %}
{% block content %}
<article class="post tagpage">
<header>
<h1 class="post-title p-name">{{ title|e }}</h1>
{% if description %}
<p>{{ description }}</p>
{% endif %}
{% if subcategories %}
{{ messages('Subcategories:') }}
<ul>
{% for name, link in subcategories %}
<li><a href="{{ link }}">{{ name|e }}</a></li>
{% endfor %}
</ul>
{% endif %}
</header>
{% if posts %}
<ul class="postlist">
{% for post in posts %}
<li><a href="{{ post.permalink() }}" class="listtitle">{{ post.title()|e }}</a><span class="post-date dateline"><time class="listdate" datetime="{{ post.formatted_date('webiso') }}" title="{{ post.formatted_date(date_format)|e }}">{{ post.formatted_date(date_format)|e }}</time></span></li>
{% endfor %}
</ul>
{% endif %}
</article>
{% endblock %}

View file

@ -1,42 +0,0 @@
{# -*- coding: utf-8 -*- #}
{% extends 'base.tmpl' %}
{% block content %}
<article class="post tagindex">
<header>
<h1>{{ title|e }}</h1>
</header>
{% if cat_items %}
{% if items %}
<h2>{{ messages("Categories") }}</h2>
{% 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) %}
<ul class="postlist">
{% endfor %}
<li><a class="reference" href="{{ link }}">{{ text }}</a>
{% if indent_change_after <= 0 %}
</li>
{% endif %}
{% for i in range(-indent_change_after) %}
</ul>
{% if i + 1 < indent_levels|length %}
</li>
{% endif %}
{% endfor %}
{% endfor %}
{% if items %}
<h2>{{ messages("Tags") }}</h2>
{% endif %}
{% endif %}
{% if items %}
<ul class="postlist">
{% for text, link in items %}
{% if text not in hidden_tags %}
<li><a class="reference listtitle" href="{{ link }}">{{ text|e }}</a></li>
{% endif %}
{% endfor %}
</ul>
{% endif %}
</article>
{% endblock %}