This commit is contained in:
2019-04-19 21:30:55 +03:00
commit 840267b63e
97 changed files with 12204 additions and 0 deletions

View File

@ -0,0 +1,13 @@
<div id="aboutme">
{% if AVATAR %}
<p>
<img width="100%" class="img-thumbnail" src="{{ SITEURL }}/{{ AVATAR }}"/>
</p>
{% endif %}
{% if ABOUT_ME %}
<p>
<strong>{{ _('About') }} {{ AUTHOR }}</strong><br/>
{{ ABOUT_ME }}
</p>
{% endif %}
</div>

View File

@ -0,0 +1,16 @@
{% if ADDTHIS_PROFILE %}
<hr />
<!-- AddThis Button BEGIN -->
<div class="addthis_toolbox addthis_default_style">
{% if ADDTHIS_FACEBOOK_LIKE|default(true) %}
<a class="addthis_button_facebook_like" fb:like:layout="button_count"></a>
{% endif %}
{% if ADDTHIS_TWEET|default(true) %}
<a class="addthis_button_tweet"></a>
{% endif %}
{% if ADDTHIS_GOOGLE_PLUSONE|default(true) %}
<a class="addthis_button_google_plusone" g:plusone:size="medium"></a>
{% endif %}
</div>
<!-- AddThis Button END -->
{% endif %}

View File

@ -0,0 +1,43 @@
<footer class="post-info">
<span class="label label-default">{{ _('Date') }}:</span>
<span class="published">
<i class="fa fa-calendar"></i><time datetime="{{ article.date.isoformat() }}">&nbsp;{{ article.locale_date }}</time>
</span>
{% if SHOW_DATE_MODIFIED %}
{% if article.modified %}
<span class="label label-default">{{ _('Modified') }}</span>
<span class="modified">
<i class="fa fa-calendar"></i><time datetime="{{ article.modified.isoformat() }}"> {{ article.locale_modified }}</time>
</span>
{% endif %}
{% endif %}
{% if SHOW_SERIES %}
{% if article.series %}
<span class="label label-default">{{ _('Series') }}</span>
Part {{ article.series.index}} of {{ article.series.name }}
{% endif %}
{% endif %}
{% if SHOW_ARTICLE_AUTHOR %}
{% if article.author %}
<span class="label label-default">{{ _('By') }}</span>
<a href="{{ SITEURL }}/{{ article.author.url }}"><i class="fa fa-user"></i> {{ article.author }}</a>
{% endif %}
{% endif %}
{% if SHOW_ARTICLE_CATEGORY %}
<span class="label label-default">{{ _('Category') }}</span>
<a href="{{ SITEURL }}/{{ article.category.url }}">{{ article.category }}</a>
{% endif %}
{% if PDF_PROCESSOR %}
<span class="label label-default">
<a href="{{ SITEURL }}/pdf/{{ article.slug }}.pdf">PDF</a>
</span>
{% endif %}
{% include 'includes/taglist.html' %}
{% import 'includes/translations.html' as translations with context %}
{{ translations.translations_for(article) }}
</footer><!-- /.post-info -->

View File

@ -0,0 +1,16 @@
<style>
#banner{
background-image:url("{{ SITEURL}}/{{ BANNER }}");
}
</style>
<div id="banner">
<div class="container{% if BOOTSTRAP_FLUID %}-fluid{% endif %}">
<div class="copy">
<h1>{{ SITENAME }}</h1>
{% if BANNER_SUBTITLE %}
<p class="intro">{{ BANNER_SUBTITLE }}</p>
{% endif %}
</div>
</div>
</div>

View File

@ -0,0 +1,65 @@
{# ------------------------------------------------------------------------ #}
{# Creative Commons license mark generator for Jinja2 templates, including #}
{# Pelican-generated static sites (or blogs). #}
{# ------------------------------------------------------------------------ #}
{# To use, put this file in a location where your template can import it. #}
{# Then import into the template, for example like this: #}
{# {% from '/path/to/where/you/placed/the/file' import cc_license_mark %} #}
{# Then call as simply as {{ cc_license_mark("CC-BY") }}. #}
{# #}
{# If full attribution markup is desired in a Pelican template, the #}
{# attr_props dict can be defaulted to the following when calling the macro:#}
{# attr_props={'title':SITENAME,'name':AUTHOR,'url':SITEURL}
{# ------------------------------------------------------------------------ #}
{# Generate a license mark for Creative Commons licensed content. #}
{# Choose the license either by name (CC-BY, CC-BY-SA, CC-BY-NC-SA, or #}
{# CC-BY-NC-ND), or by its features (allow derivatives: Yes, No, ShareAlike;#}
{# allow commercial reuse: Yes, No). Name, if provided, takes precedence, #}
{# and case is ignored. #}
{# #}
{# Optional: #}
{# br_after_icon: if true put a line break after the license icon #}
{# attr_markup: if true create markup for fulll attribution #}
{# attr_props: if attr_markup, a dict with title, name, and url keys #}
{# specifying how under which title, to which creator, and #}
{# to which URL to attribute the work #}
{# The parameters all mirror the Creative Commone license chooser: #}
{# https://creativecommons.org/choose/ #}
{# ------------------------------------------------------------------------ #}
{# Copyright (c) 2014 Hilmar Lapp, hlapp@drycafe.net. #}
{# Licensed under the terms of the MIT License. #}
{# Source at http://github.com/hlapp/cc-tools. Please fork & contribute. #}
{# ------------------------------------------------------------------------ #}
{% macro cc_license_mark(cc_name,
derivatives, commercial,
br_after_icon=false,
attr_markup=false,
attr_props={}) %}
{% if cc_name %}
{% set cc_name = cc_name|lower|replace("cc-","") %}
{% set cc_title_suffix = cc_name|replace("by", "")|replace("-nc","-NonCommercial")|replace("-nd","-NoDerivatives")|replace("-sa","-ShareAlike") %}
{% else %}
{% set cc_name = "by" %}
{% set cc_title_suffix = "" %}
{% if (not commercial) or (commercial|lower == "no") %}
{% set cc_name = cc_name ~ "-nc" %}
{% set cc_title_suffix = "-NonCommercial" %}
{% endif %}
{% if derivatives|lower == "no" %}
{% set cc_name = cc_name ~ "-nd" %}
{% set cc_title_suffix = cc_title_suffix ~ "-NoDerivatives" %}
{% elif derivatives|lower == "sharealike" %}
{% set cc_name = cc_name ~ "-sa" %}
{% set cc_title_suffix = cc_title_suffix ~ "-ShareAlike" %}
{% endif %}
{% endif %}
{% set cc_title, cc_uri, cc_icon = ("Creative Commons AttributionCCSUFFIX 4.0 International License","https://creativecommons.org/licenses/CCNAME/4.0/","//i.creativecommons.org/l/CCNAME/4.0/80x15.png") %}
<a rel="license" href="{{ cc_uri|replace('CCNAME',cc_name) }}deed.{{ attr_props['lang'] }}"><img alt="Creative Commons License" style="border-width:0" src="{{ cc_icon|replace('CCNAME',cc_name) }}" /></a>
{% if br_after_img %}<br/>{% endif %}
{% if attr_markup %}
&quot;<span xmlns:dct="http://purl.org/dc/terms/" property="dct:title">{{ attr_props['title'] }}</span>&quot; by <a xmlns:cc="http://creativecommons.org/ns#" href="{{ attr_props['url'] }}" property="cc:attributionName" rel="cc:attributionURL">{{ attr_props['name'] }}</a> is
{% else %}
{{ _('Content') }}
{% endif %}
{{ _('licensed under a') }} <a rel="license" href="{{ cc_uri|replace('CCNAME',cc_name) }}deed.{{ attr_props['lang'] }}">{{ cc_title|replace('CCSUFFIX',cc_title_suffix) }}</a>, {{ _('except where indicated otherwise') }}.
{% endmacro %}

View File

@ -0,0 +1 @@
{% if DISQUS_SITENAME and DISQUS_DISPLAY_COUNTS %}<p><small><a href="{{ SITEURL }}/{{ article.url }}#disqus_thread" {% if not DISQUS_NO_ID %}data-disqus-identifier="{{ article.date|strftime('%Y-%m-') ~ article.slug if DISQUS_ID_PREFIX_SLUG else article.slug }}"{% endif %}>{{ _('View comments') }}</a>.</small></p>{% endif %}

View File

@ -0,0 +1,45 @@
{% if DISQUS_SITENAME %}
<hr/>
<section class="comments" id="comments">
<h2>{{ _('Comments') }}</h2>
<div id="disqus_thread"></div>
<script type="text/javascript">
/* * * CONFIGURATION VARIABLES: EDIT BEFORE PASTING INTO YOUR WEBPAGE * * */
var disqus_shortname = '{{ DISQUS_SITENAME }}'; // required: replace example with your forum shortname
var disqus_config = function () {
this.language = "{{ DEFAULT_LANG }}";
{% if article %}
{% if not DISQUS_NO_ID %}
this.page.identifier = '{{ article.date|strftime('%Y-%m-%d-') ~ article.slug }}';
{% endif %}
{% if SITEURL %}
this.page.url = '{{ SITEURL }}/{{ article.url }}';
{% endif %}
{% elif page %}
{% if not DISQUS_NO_ID %}
this.page.identifier = 'page-{{ page.slug }}';
{% endif %}
{% if SITEURL %}
this.page.url = '{{ SITEURL }}/{{ page.url }}';
{% endif %}
{% endif %}
};
/* * * DON'T EDIT BELOW THIS LINE * * */
(function () {
var dsq = document.createElement('script');
dsq.type = 'text/javascript';
dsq.async = true;
dsq.src = '//' + disqus_shortname + '.disqus.com/embed.js';
(document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(dsq);
})();
</script>
<noscript>Please enable JavaScript to view the <a href="http://disqus.com/?ref_noscript">comments powered by
Disqus.</a></noscript>
<a href="http://disqus.com" class="dsq-brlink">comments powered by <span class="logo-disqus">Disqus</span></a>
</section>
{% endif %}

View File

@ -0,0 +1,17 @@
{% if DISQUS_SITENAME %}
<!-- Disqus -->
<script type="text/javascript">
/* * * CONFIGURATION VARIABLES: EDIT BEFORE PASTING INTO YOUR WEBPAGE * * */
var disqus_shortname = '{{ DISQUS_SITENAME }}'; // required: replace example with your forum shortname
/* * * DON'T EDIT BELOW THIS LINE * * */
(function () {
var s = document.createElement('script');
s.async = true;
s.type = 'text/javascript';
s.src = '//' + disqus_shortname + '.disqus.com/count.js';
(document.getElementsByTagName('HEAD')[0] || document.getElementsByTagName('BODY')[0]).appendChild(s);
}());
</script>
<!-- End Disqus Code -->
{% endif %}

View File

@ -0,0 +1,30 @@
<footer>
<div class="container{% if BOOTSTRAP_FLUID %}-fluid{% endif %}">
<hr>
<div class="row">
{% if articles %}
{% if articles[0].modified %}
{% set copy_date = articles[0].modified.strftime('%Y') %}
{% else %}
{% set copy_date = articles[0].date.strftime('%Y') %}
{% endif %}
{% else %}
{% set copy_date = '' %}
{% endif %}
<div class="col-9">
&copy; {{ copy_date }} {{ AUTHOR }}.
{{ _('Powered by') }}
<a href="http://docs.getpelican.com/" target="_blank">Pelican</a>,
<a href="http://getbootstrap.com" target="_blank">Bootstrap</a>,
<a href="https://git.246060.ru/f1x1t/pelican-theme-bootstrap4" target="_blank">pelican-bootstrap4</a>
{%- if CC_LICENSE or CC_LICENSE_DERIVATIVES or CC_LICENSE_COMMERCIAL %}
{% from 'includes/cc-license.html' import cc_license_mark %}
<p><small>{{ cc_license_mark(cc_name=CC_LICENSE,derivatives=CC_LICENSE_DERIVATIVES,commercial=CC_LICENSE_COMMERCIAL,attr_markup=CC_ATTR_MARKUP,attr_props={'title':SITENAME,'name':article.author if article else AUTHOR,'url':SITEURL,'lang':DEFAULT_LANG}) }}</small></p>
{% elif CUSTOM_LICENSE %}
<p><small>{{ CUSTOM_LICENSE }}</small></p>
{% endif %}
</div>
<div class="col-3"><p class="pull-right"><a href="#"><i class="fa fa-arrow-up"></i>&nbsp;{{ _('Back to top') }}</a></p></div>
</div>
</div>
</footer>

View File

@ -0,0 +1,32 @@
{% if GOOGLE_ANALYTICS %}
<!-- Google Analytics -->
<script type="text/javascript">
var _gaq = _gaq || [];
_gaq.push(['_setAccount', '{{ GOOGLE_ANALYTICS }}']);
_gaq.push(['_trackPageview']);
(function () {
var ga = document.createElement('script');
ga.type = 'text/javascript';
ga.async = true;
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
var s = document.getElementsByTagName('script')[0];
s.parentNode.insertBefore(ga, s);
})();
</script>
<!-- End Google Analytics Code -->
{% endif %}
{% if GOOGLE_ANALYTICS_UNIVERSAL %}
<!-- Google Analytics Universal -->
<script type="text/javascript">
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','//www.google-analytics.com/analytics.js','ga');
ga('create', '{{ GOOGLE_ANALYTICS_UNIVERSAL }}', '{{ GOOGLE_ANALYTICS_UNIVERSAL_PROPERTY }}');
ga('send', 'pageview');
</script>
<!-- End Google Analytics Universal Code -->
{% endif %}

View File

@ -0,0 +1,14 @@
<script type="text/javascript">
jQuery(document).ready(function($) {
$("div.collapseheader").click(function () {
$header = $(this).children("span").first();
$codearea = $(this).children(".input_area");
console.log($(this).children());
$codearea.slideToggle(500, function () {
$header.text(function () {
return $codearea.is(":visible") ? "Collapse Code" : "Expand Code";
});
});
});
});
</script>

View File

@ -0,0 +1,165 @@
<style type="text/css">
/*some stuff for output/input prompts*/
div.cell{border:1px solid transparent;display:-webkit-box;-webkit-box-orient:vertical;-webkit-box-align:stretch;display:-moz-box;-moz-box-orient:vertical;-moz-box-align:stretch;display:box;box-orient:vertical;box-align:stretch;display:flex;flex-direction:column;align-items:stretch}div.cell.selected{border-radius:4px;border:thin #ababab solid}
div.cell.edit_mode{border-radius:4px;border:thin #008000 solid}
div.cell{width:100%;padding:5px 5px 5px 0;margin:0;outline:none}
div.prompt{min-width:11ex;padding:.4em;margin:0;font-family:monospace;text-align:right;line-height:1.21429em}
@media (max-width:480px){div.prompt{text-align:left}}div.inner_cell{display:-webkit-box;-webkit-box-orient:vertical;-webkit-box-align:stretch;display:-moz-box;-moz-box-orient:vertical;-moz-box-align:stretch;display:box;box-orient:vertical;box-align:stretch;display:flex;flex-direction:column;align-items:stretch;-webkit-box-flex:1;-moz-box-flex:1;box-flex:1;flex:1}
div.input_area{border:1px solid #cfcfcf;border-radius:4px;background:#f7f7f7;line-height:1.21429em}
div.prompt:empty{padding-top:0;padding-bottom:0}
div.input{page-break-inside:avoid;display:-webkit-box;-webkit-box-orient:horizontal;-webkit-box-align:stretch;display:-moz-box;-moz-box-orient:horizontal;-moz-box-align:stretch;display:box;box-orient:horizontal;box-align:stretch;}
div.inner_cell{width:90%;}
div.input_area{border:1px solid #cfcfcf;border-radius:4px;background:#f7f7f7;}
div.input_prompt{color:navy;border-top:1px solid transparent;}
div.output_wrapper{margin-top:5px;position:relative;display:-webkit-box;-webkit-box-orient:vertical;-webkit-box-align:stretch;display:-moz-box;-moz-box-orient:vertical;-moz-box-align:stretch;display:box;box-orient:vertical;box-align:stretch;width:100%;}
div.output_scroll{height:24em;width:100%;overflow:auto;border-radius:4px;-webkit-box-shadow:inset 0 2px 8px rgba(0, 0, 0, 0.8);-moz-box-shadow:inset 0 2px 8px rgba(0, 0, 0, 0.8);box-shadow:inset 0 2px 8px rgba(0, 0, 0, 0.8);}
div.output_collapsed{margin:0px;padding:0px;display:-webkit-box;-webkit-box-orient:vertical;-webkit-box-align:stretch;display:-moz-box;-moz-box-orient:vertical;-moz-box-align:stretch;display:box;box-orient:vertical;box-align:stretch;width:100%;}
div.out_prompt_overlay{height:100%;padding:0px 0.4em;position:absolute;border-radius:4px;}
div.out_prompt_overlay:hover{-webkit-box-shadow:inset 0 0 1px #000000;-moz-box-shadow:inset 0 0 1px #000000;box-shadow:inset 0 0 1px #000000;background:rgba(240, 240, 240, 0.5);}
div.output_prompt{color:darkred;}
a.anchor-link:link{text-decoration:none;padding:0px 20px;visibility:hidden;}
h1:hover .anchor-link,h2:hover .anchor-link,h3:hover .anchor-link,h4:hover .anchor-link,h5:hover .anchor-link,h6:hover .anchor-link{visibility:visible;}
/* end stuff for output/input prompts*/
.highlight-ipynb .hll { background-color: #ffffcc }
.highlight-ipynb { background: #f8f8f8; }
.highlight-ipynb .c { color: #408080; font-style: italic } /* Comment */
.highlight-ipynb .err { border: 1px solid #FF0000 } /* Error */
.highlight-ipynb .k { color: #008000; font-weight: bold } /* Keyword */
.highlight-ipynb .o { color: #666666 } /* Operator */
.highlight-ipynb .cm { color: #408080; font-style: italic } /* Comment.Multiline */
.highlight-ipynb .cp { color: #BC7A00 } /* Comment.Preproc */
.highlight-ipynb .c1 { color: #408080; font-style: italic } /* Comment.Single */
.highlight-ipynb .cs { color: #408080; font-style: italic } /* Comment.Special */
.highlight-ipynb .gd { color: #A00000 } /* Generic.Deleted */
.highlight-ipynb .ge { font-style: italic } /* Generic.Emph */
.highlight-ipynb .gr { color: #FF0000 } /* Generic.Error */
.highlight-ipynb .gh { color: #000080; font-weight: bold } /* Generic.Heading */
.highlight-ipynb .gi { color: #00A000 } /* Generic.Inserted */
.highlight-ipynb .go { color: #888888 } /* Generic.Output */
.highlight-ipynb .gp { color: #000080; font-weight: bold } /* Generic.Prompt */
.highlight-ipynb .gs { font-weight: bold } /* Generic.Strong */
.highlight-ipynb .gu { color: #800080; font-weight: bold } /* Generic.Subheading */
.highlight-ipynb .gt { color: #0044DD } /* Generic.Traceback */
.highlight-ipynb .kc { color: #008000; font-weight: bold } /* Keyword.Constant */
.highlight-ipynb .kd { color: #008000; font-weight: bold } /* Keyword.Declaration */
.highlight-ipynb .kn { color: #008000; font-weight: bold } /* Keyword.Namespace */
.highlight-ipynb .kp { color: #008000 } /* Keyword.Pseudo */
.highlight-ipynb .kr { color: #008000; font-weight: bold } /* Keyword.Reserved */
.highlight-ipynb .kt { color: #B00040 } /* Keyword.Type */
.highlight-ipynb .m { color: #666666 } /* Literal.Number */
.highlight-ipynb .s { color: #BA2121 } /* Literal.String */
.highlight-ipynb .na { color: #7D9029 } /* Name.Attribute */
.highlight-ipynb .nb { color: #008000 } /* Name.Builtin */
.highlight-ipynb .nc { color: #0000FF; font-weight: bold } /* Name.Class */
.highlight-ipynb .no { color: #880000 } /* Name.Constant */
.highlight-ipynb .nd { color: #AA22FF } /* Name.Decorator */
.highlight-ipynb .ni { color: #999999; font-weight: bold } /* Name.Entity */
.highlight-ipynb .ne { color: #D2413A; font-weight: bold } /* Name.Exception */
.highlight-ipynb .nf { color: #0000FF } /* Name.Function */
.highlight-ipynb .nl { color: #A0A000 } /* Name.Label */
.highlight-ipynb .nn { color: #0000FF; font-weight: bold } /* Name.Namespace */
.highlight-ipynb .nt { color: #008000; font-weight: bold } /* Name.Tag */
.highlight-ipynb .nv { color: #19177C } /* Name.Variable */
.highlight-ipynb .ow { color: #AA22FF; font-weight: bold } /* Operator.Word */
.highlight-ipynb .w { color: #bbbbbb } /* Text.Whitespace */
.highlight-ipynb .mf { color: #666666 } /* Literal.Number.Float */
.highlight-ipynb .mh { color: #666666 } /* Literal.Number.Hex */
.highlight-ipynb .mi { color: #666666 } /* Literal.Number.Integer */
.highlight-ipynb .mo { color: #666666 } /* Literal.Number.Oct */
.highlight-ipynb .sb { color: #BA2121 } /* Literal.String.Backtick */
.highlight-ipynb .sc { color: #BA2121 } /* Literal.String.Char */
.highlight-ipynb .sd { color: #BA2121; font-style: italic } /* Literal.String.Doc */
.highlight-ipynb .s2 { color: #BA2121 } /* Literal.String.Double */
.highlight-ipynb .se { color: #BB6622; font-weight: bold } /* Literal.String.Escape */
.highlight-ipynb .sh { color: #BA2121 } /* Literal.String.Heredoc */
.highlight-ipynb .si { color: #BB6688; font-weight: bold } /* Literal.String.Interpol */
.highlight-ipynb .sx { color: #008000 } /* Literal.String.Other */
.highlight-ipynb .sr { color: #BB6688 } /* Literal.String.Regex */
.highlight-ipynb .s1 { color: #BA2121 } /* Literal.String.Single */
.highlight-ipynb .ss { color: #19177C } /* Literal.String.Symbol */
.highlight-ipynb .bp { color: #008000 } /* Name.Builtin.Pseudo */
.highlight-ipynb .vc { color: #19177C } /* Name.Variable.Class */
.highlight-ipynb .vg { color: #19177C } /* Name.Variable.Global */
.highlight-ipynb .vi { color: #19177C } /* Name.Variable.Instance */
.highlight-ipynb .il { color: #666666 } /* Literal.Number.Integer.Long */
</style>
<style type="text/css">
/* Overrides of notebook CSS for static HTML export */
div.entry-content {
overflow: visible;
padding: 8px;
}
.input_area {
padding: 0.2em;
}
a.heading-anchor {
white-space: normal;
}
.rendered_html
code {
font-size: .8em;
}
pre.ipynb {
color: black;
background: #f7f7f7;
border: none;
box-shadow: none;
margin-bottom: 0;
padding: 0;
margin: 0px;
font-size: 13px;
}
/* remove the prompt div from text cells */
div.text_cell .prompt {
display: none;
}
/* remove horizontal padding from text cells, */
/* so it aligns with outer body text */
div.text_cell_render {
padding: 0.5em 0em;
}
img.anim_icon{padding:0; border:0; vertical-align:middle; -webkit-box-shadow:none; -box-shadow:none}
div.collapseheader {
width=100%;
padding: 2px;
cursor: pointer;
font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;
}
</style>
<script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS_HTML" type="text/javascript"></script>
<script type="text/javascript">
init_mathjax = function() {
if (window.MathJax) {
// MathJax loaded
MathJax.Hub.Config({
tex2jax: {
inlineMath: [ ['$','$'], ["\\(","\\)"] ],
displayMath: [ ['$$','$$'], ["\\[","\\]"] ]
},
displayAlign: 'left', // Change this to 'center' to center equations.
"HTML-CSS": {
styles: {'.MathJax_Display': {"margin": 0}}
}
});
MathJax.Hub.Queue(["Typeset",MathJax.Hub]);
}
}
init_mathjax();
</script>

View File

@ -0,0 +1,3 @@
{% assets filters="rjsmin", output="tipuesearch/tipuesearch.packed.min.js", "tipuesearch/tipuesearch_set.js", "tipuesearch/tipuesearch.js" %}
<script type="text/javascript" src="{{ SITEURL }}/{{ ASSET_URL }}"></script>
{% endassets %}

View File

@ -0,0 +1,37 @@
{% if articles_page and articles_paginator.num_pages > 1 %}
{% if USE_PAGER %}
<ul class="pager">
{% if articles_page.has_previous() %}
<li class="previous"><a href="{{ SITEURL }}/{{ articles_previous_page.url }}">&larr; {{ _('Newer') }}</a></li>
{% else %}
<li class="previous disabled"><a href="#">&larr; {{ _('Newer') }}</a></li>
{% endif %}
{% if articles_page.has_next() %}
<li class="next"><a
href="{{ SITEURL }}/{{ articles_next_page.url }}">{{ _('Older') }} &rarr;</a></li>
{% else %}
<li class="next disabled"><a href="#">{{ _('Older') }} &rarr;</a></li>
{% endif %}
</ul>
{% else %}
<ul class="pagination">
{% if articles_page.has_previous() %}
{% set num = articles_page.previous_page_number() %}
<li class="prev"><a href="{{ SITEURL }}/{{ articles_previous_page.url }}">&laquo;</a>
</li>
{% else %}
<li class="prev disabled"><a href="#">&laquo;</a></li>
{% endif %}
{% for num in range( 1, 1 + articles_paginator.num_pages ) %}
<li class="{{ 'active' if num == articles_page.number else '' }}"><a
href="{{ SITEURL }}/{{ articles_paginator.page(num).url if num > 1 else articles_paginator.page(1).url }}">{{ num }}</a></li>
{% endfor %}
{% if articles_page.has_next() %}
<li class="next"><a
href="{{ SITEURL }}/{{ articles_next_page.url }}">&raquo;</a></li>
{% else %}
<li class="next disabled"><a href="#">&raquo;</a></li>
{% endif %}
</ul>
{% endif %}
{% endif %}

View File

@ -0,0 +1,20 @@
{% if PIWIK_SITE_ID and PIWIK_URL %}
{% if PIWIK_SSL_URL is not defined %}
{% set PIWIK_SSL_URL = PIWIK_URL %}
{% endif %}
<!-- Piwik -->
<script type="text/javascript">
var _paq = _paq || [];
_paq.push(["trackPageView"]);
_paq.push(["enableLinkTracking"]);
(function() {
var u=(("https:" == document.location.protocol) ? "https://{{ PIWIK_SSL_URL }}/" : "http://{{ PIWIK_URL }}/");
_paq.push(["setTrackerUrl", u+"piwik.php"]);
_paq.push(["setSiteId", "{{ PIWIK_SITE_ID }}"]);
var d=document, g=d.createElement("script"), s=d.getElementsByTagName("script")[0]; g.type="text/javascript";
g.defer=true; g.async=true; g.src=u+"piwik.js"; s.parentNode.insertBefore(g,s);
})();
</script>
<!-- End Piwik Code -->
{% endif %}

View File

@ -0,0 +1,10 @@
{% if article.related_posts %}
<section class="well" id="related-posts">
<h4>{{ RELATED_POSTS_TEXT|default('Related Posts:') }}</h4>
<ul>
{% for related_post in article.related_posts %}
<li><a href="{{ SITEURL }}/{{ related_post.url }}">{{ related_post.title }}</a></li>
{% endfor %}
</ul>
</section>
{% endif %}

View File

@ -0,0 +1,22 @@
{% if article.series %}
<section class="well" id="related-posts">
{% set text = SERIES_TEXT|default('Part %(index)s of the %(name)s series') %}
<h4>{{ text|format(index=article.series.index, name=article.series.name) }}</h4>
{% if article.series.all_previous %}
<h5>Previous articles</h5>
<ul>
{% for article in article.series.all_previous %}
<li><a href="{{ SITEURL }}/{{ article.url }}">{{ article.title }}</a></li>
{% endfor %}
</ul>
{% endif %}
{% if article.series.all_next %}
<h5>Next articles</h5>
<ul>
{% for article in article.series.all_next %}
<li><a href="{{ SITEURL }}/{{ article.url }}">{{ article.title }}</a></li>
{% endfor %}
</ul>
{% endif %}
</section>
{% endif %}

View File

@ -0,0 +1,10 @@
{% if SHOW_SOURCE_IN_SECTION %}
{% if article and article.show_source_url %}
<section class="well" id="show-source">
<h4>This Page</h4>
<ul>
<a href="{{ SITEURL }}/{{ article.show_source_url }}">Show source</a>
</ul>
</section>
{% endif %}
{% endif %}

View File

@ -0,0 +1,20 @@
<!-- Sidebar -->
<section class="well well-sm">
<ul class="list-group list-group-flush">
{% include 'includes/sidebar/optional_top.html' ignore missing %}
{% include 'includes/sidebar/social.html' %}
{% include 'includes/sidebar/recent_posts.html' %}
{% include 'includes/sidebar/categories.html' %}
{% include 'includes/sidebar/tag_cloud.html' %}
{% include 'includes/sidebar/show_source.html' %}
{% include 'includes/sidebar/series.html' %}
{% include 'includes/sidebar/github.html' %}
{% include 'includes/sidebar/twitter_timeline.html' %}
{% include 'includes/sidebar/links.html' %}
{% include 'includes/sidebar/authors.html' %}
{% include 'includes/sidebar/images.html' %}
{% include 'includes/sidebar/archive.html' %}
{% include 'includes/sidebar/optional_bottom.html' ignore missing %}
</ul>
</section>
<!-- End Sidebar -->

View File

@ -0,0 +1,23 @@
{% if DISPLAY_ARCHIVE_ON_SIDEBAR and MONTH_ARCHIVE_SAVE_AS %}
{% from 'includes/sidebar/macros.jinja' import title %}
<!-- Sidebar/Archive -->
<li class="list-group-item">
<h4>{{ title(_('Archive'), DISABLE_SIDEBAR_TITLE_ICONS) }}</h4>
<ul class="list-group" id="archive">
{% for year, date_year in dates|groupby( 'date.year' )|sort(reverse=True) %}
{% for month, articles in date_year|groupby( 'date.month' )|sort(reverse=True) %}
<li class="list-group-item">
<a href="{{ SITEURL }}/{{ MONTH_ARCHIVE_SAVE_AS.format(date=articles[0].date) }}">
{%- if not DISABLE_SIDEBAR_TITLE_ICONS -%}
<i class="fa fa-calendar fa-lg"></i>
{%- endif -%}
{{ articles[0].date.strftime('%B') }} {{ year }} ({{ articles|count }})
</a>
</li>
{% endfor %}
{% endfor %}
</ul>
</li>
<!-- End Sidebar/Archive -->
{% endif %}

View File

@ -0,0 +1 @@
<a href="{{ SITEURL }}/{{ article.url }}">{{ article.title }}</a>

View File

@ -0,0 +1,22 @@
{% if DISPLAY_AUTHORS_ON_SIDEBAR %}
{% from 'includes/sidebar/macros.jinja' import title %}
<!-- Sidebar/Authors -->
<li class="list-group-item">
<h4>{{ title(_('Authors'), DISABLE_SIDEBAR_TITLE_ICONS) }}</h4>
<ul class="list-group" id="authors">
{% for author, articles in authors|sort %}
<li class="list-group-item">
<a href="{{ SITEURL }}/{{ author.url }}">
{%- if not DISABLE_SIDEBAR_TITLE_ICONS -%}
<i class="fa fa-user fa-lg"></i>
{%- endif -%}
{{- author -}}
</a>
({{ articles|count }})
</li>
{% endfor %}
</ul>
</li>
<!-- End Sidebar/Authors -->
{% endif %}

View File

@ -0,0 +1,21 @@
{% if DISPLAY_CATEGORIES_ON_SIDEBAR %}
{% from 'includes/sidebar/macros.jinja' import title %}
<!-- Sidebar/Categories -->
<li class="list-group-item">
<h4>{{ title(_('Categories'), DISABLE_SIDEBAR_TITLE_ICONS) }}</h4>
<ul class="list-group" id="categories">
{% for cat, null in categories %}
<li class="list-group-item">
<a href="{{ SITEURL }}/{{ cat.url }}">
{%- if not DISABLE_SIDEBAR_TITLE_ICONS -%}
<i class="fa fa-folder-open fa-lg"></i>
{%- endif -%}
{{- cat -}}
</a>
</li>
{% endfor %}
</ul>
</li>
<!-- End Sidebar/Categories -->
{% endif %}

View File

@ -0,0 +1,36 @@
{% if GITHUB_USER %}
{% if GITHUB_REPO_COUNT is not defined %}
{% set GITHUB_REPO_COUNT = 5 %}
{% endif %}
{% if GITHUB_SKIP_FORK is not defined %}
{% set GITHUB_SKIP_FORK = "false" %}
{% else %}
{% if GITHUB_SKIP_FORK %}
{% set GITHUB_SKIP_FORK = "true" %}
{% else %}
{% set GITHUB_SKIP_FORK = "false" %}
{% endif %}
{% endif %}
<!-- GitHub JS Code -->
<script type="text/javascript">
$(document).ready(function () {
if (!window.jXHR) {
var jxhr = document.createElement('script');
jxhr.type = 'text/javascript';
jxhr.src = '{{ SITEURL }}/{{ THEME_STATIC_DIR }}/js/jXHR.js';
var s = document.getElementsByTagName('script')[0];
s.parentNode.insertBefore(jxhr, s);
}
github.showRepos({
user: '{{ GITHUB_USER }}',
count: {{ GITHUB_REPO_COUNT }},
skip_forks: {{ GITHUB_SKIP_FORK }},
target: '#gh_repos'
});
});
</script>
<script src="{{ SITEURL }}/{{ THEME_STATIC_DIR }}/js/github.js" type="text/javascript"></script>
<!-- End GitHub JS Code -->
{% endif %}

View File

@ -0,0 +1,15 @@
{% if GITHUB_USER %}
{% from 'includes/sidebar/macros.jinja' import title %}
<!-- Sidebar/Github -->
<li class="list-group-item">
<h4>{{ title('GitHub Repos', DISABLE_SIDEBAR_TITLE_ICONS, icon='github') }}</h4>
<div id="gh_repos">
<p class="list-group-item">Status updating...</p>
</div>
{% if GITHUB_SHOW_USER_LINK is defined %}
<a href="https://github.com/{{ GITHUB_USER }}">@{{ GITHUB_USER }}</a> on GitHub
{% endif %}
</li>
<!-- End Sidebar/Github -->
{% endif %}

View File

@ -0,0 +1,16 @@
{% if SIDEBAR_IMAGES %}
{% from 'includes/sidebar/macros.jinja' import title %}
<!-- Sidebar/Images -->
<li class="list-group-item">
{% if SIDEBAR_IMAGES_HEADER %}
<h4>{{ title(SIDEBAR_IMAGES_HEADER, DISABLE_SIDEBAR_TITLE_ICONS, icon='external-link-square') }}</h4>
{% endif %}
<ul class="list-group" id="links">
{% for image in SIDEBAR_IMAGES %}
<img width="100%" class="img-thumbnail" src="{{ image }}"/>
{% endfor %}
</ul>
</li>
<!-- End Sidebar/Images -->
{% endif %}

View File

@ -0,0 +1,16 @@
{% if LINKS %}
{% from 'includes/sidebar/macros.jinja' import title %}
<!-- Sidebar/Links -->
<li class="list-group-item">
<h4>{{ title(_('Links'), DISABLE_SIDEBAR_TITLE_ICONS, icon='external-link-square') }}</h4>
<ul class="list-group" id="links">
{% for name, link in LINKS %}
<li class="list-group-item">
<a href="{{ link }}" target="_blank">{{ name }}</a>
</li>
{% endfor %}
</ul>
</li>
<!-- End Sidebar/Links -->
{% endif %}

View File

@ -0,0 +1,7 @@
{% macro title(name, no_icon, icon='home') -%}
{%- if no_icon -%}
{{ name }}
{%- else -%}
<i class="fa fa-{{ icon }} fa-lg"></i><span class="icon-label">{{ name }}</span>
{%- endif -%}
{%- endmacro %}

View File

@ -0,0 +1,19 @@
{% if DISPLAY_RECENT_POSTS_ON_SIDEBAR %}
{% from 'includes/sidebar/macros.jinja' import title %}
{% if RECENT_POST_COUNT is not defined %}
{% set RECENT_POST_COUNT = 5 %}
{% endif %}
<!-- Sidebar/Recent Posts -->
<li class="list-group-item">
<h4>{{ title(_('Recent Posts'), DISABLE_SIDEBAR_TITLE_ICONS) }}</h4>
<ul class="list-group" id="recentposts">
{% for article in articles[:RECENT_POST_COUNT] %}
<li class="list-group-item">
{%- include 'includes/sidebar/article-li.html' -%}
</li>
{% endfor %}
</ul>
</li>
<!-- End Sidebar/Recent Posts -->
{% endif %}

View File

@ -0,0 +1,24 @@
{% if DISPLAY_SERIES_ON_SIDEBAR and article and article.series %}
{% from 'includes/sidebar/macros.jinja' import title %}
<!-- Sidebar/Series -->
<li class="list-group-item">
<h4>{{ title(_('Series'), DISABLE_SIDEBAR_TITLE_ICONS, icon='tags') }}</h4>
<ul class="list-group">
{% if article.series.previous %}
<li class="list-group-item">
<h5></i>{{ _('Previous article') }}</h5>
<a href="{{ SITEURL }}/{{ article.series.previous.url }}">{{ article.series.previous.title }}</a>
</li>
{% endif %}
{% if article.series.next %}
<li class="list-group-item">
<h5>{{ _('Next article') }}</h5>
<a href="{{ SITEURL }}/{{ article.series.next.url }}">{{ article.series.next.title }}</a>
</li>
{% endif %}
</ul>
</li>
<!-- End Sidebar/Series -->
{% endif %}

View File

@ -0,0 +1,19 @@
{% if SHOW_SOURCE_ON_SIDEBAR %}
{% if (article and article.show_source_url) or (page and page.show_source_url) %}
<!-- Show source -->
<li class="list-group-item"><h4><i class="fa fa-tags fa-file-text"></i><span class="icon-label">This Page</span></h4>
<ul class="list-group">
<li class="list-group-item">
{% if article %}
<a href="{{ SITEURL }}/{{ article.show_source_url }}">Show source</a>
{% elif page %}
<a href="{{ SITEURL }}/{{ page.show_source_url }}">Show source</a>
{% endif %}
</li>
</ul>
</li>
<!-- End Show source -->
{% endif %}
{% endif %}

View File

@ -0,0 +1,24 @@
{% if SOCIAL %}
{% from 'includes/sidebar/macros.jinja' import title %}
<!-- Sidebar/Social -->
<li class="list-group-item">
<h4>{{ title(_('Social'), DISABLE_SIDEBAR_TITLE_ICONS) }}</h4>
<ul class="list-group" id="social">
{% for s in SOCIAL %}
{% if s[2] %}
{% set name_sanitized = s[2]|lower|replace('+','-plus')|replace(' ','-') %}
{% else %}
{% set name_sanitized = s[0]|lower|replace('+','-plus')|replace(' ','-') %}
{% endif %}
{% if name_sanitized in ['flickr', 'slideshare', 'instagram', 'spotify', 'stack-overflow', 'weibo', 'line-chart', 'home', 'user', 'users', 'envelope', 'envelope-o', 'stack-exchange', 'hacker-news', 'gitlab', 'vk'] %}
{% set iconattributes = '"fa fa-' ~ name_sanitized ~ ' fa-lg"' %}
{% else %}
{% set iconattributes = '"fa fa-' ~ name_sanitized ~ '-square fa-lg"' %}
{% endif %}
<li class="list-group-item"><a href="{{ s[1] }}"><i class={{ iconattributes }}></i> {{ s[0] }}</a></li>
{% endfor %}
</ul>
</li>
<!-- End Sidebar/Social -->
{% endif %}

View File

@ -0,0 +1,27 @@
{% if DISPLAY_TAGS_ON_SIDEBAR is not defined %}
{% set DISPLAY_TAGS_ON_SIDEBAR = True %}
{% endif -%}
{% if 'tag_cloud' in PLUGINS and DISPLAY_TAGS_ON_SIDEBAR %}
{% from 'includes/sidebar/macros.jinja' import title %}
{% if DISPLAY_TAGS_INLINE %}
{% set tags = tag_cloud | sort(attribute='0') %}
{% else %}
{% set tags = tag_cloud | sort(attribute='1') %}
{% endif %}
<!-- Sidebar/Tag Cloud -->
<li class="list-group-item">
<a href="{{ SITEURL }}/{{ TAGS_URL }}"><h4>{{ title(_('Tags'), DISABLE_SIDEBAR_TITLE_ICONS, icon='tags') }}</h4></a>
<ul class="list-group {% if DISPLAY_TAGS_INLINE %}list-inline tagcloud{% endif %}" id="tags">
{% for tag in tags %}
<li class="list-group-item tag-{{ tag.1 }}">
<a href="{{ SITEURL }}/{{ tag.0.url }}">
{{- tag.0 -}}
</a>
</li>
{% endfor %}
</ul>
</li>
<!-- End Sidebar/Tag Cloud -->
{% endif %}

View File

@ -0,0 +1,12 @@
{% if TWITTER_WIDGET_ID %}
{% from 'includes/sidebar/macros.jinja' import title %}
<!-- Sidebar/Twitter Timeline -->
<li class="list-group-item">
<h4>{{ title('Latest Tweets', DISABLE_SIDEBAR_TITLE_ICONS, icon='twitter') }}</h4>
<div id="twitter_timeline">
<a class="twitter-timeline" data-width="250" data-height="300" data-dnt="true" data-theme="light" href="https://twitter.com/{{TWITTER_USERNAME}}">Tweets by {{TWITTER_USERNAME}}</a> <script async src="//platform.twitter.com/widgets.js" charset="utf-8"></script>
</div>
</li>
<!-- End Sidebar/Twitter Timeline -->
{% endif %}

View File

@ -0,0 +1,9 @@
{% if article.tags %}
<span class="label label-default">&nbsp;|&nbsp;{{ _('Tags') }}:&nbsp;</span>
{% for tag in article.tags %}
<a href="{{ SITEURL }}/{{ tag.url }}">{{ tag }}</a>
{% if not loop.last %}
/
{% endif %}
{% endfor %}
{% endif %}

View File

@ -0,0 +1,8 @@
{% macro translations_for(article) %}
{% if article.translations %}
<span class="label label-default">{{ _('Lang') }}</span>
{% for translation in article.translations %}
<a href="{{ SITEURL }}/{{ translation.url }}">{{ translation.lang }}</a>
{% endfor %}
{% endif %}
{% endmacro %}

View File

@ -0,0 +1,28 @@
{% if TWITTER_CARDS and USE_OPEN_GRAPH %}
{# Do not include duplicates tag with og ones. #}
{# Twitter is able to infer them from og. #}
<meta name="twitter:dnt" content="on">
<meta name="twitter:card" content="summary">
{% if TWITTER_USERNAME %}
<meta name="twitter:site" content="@{{ TWITTER_USERNAME }}">
<meta name="twitter:creator" content="@{{ TWITTER_USERNAME }}">
{% endif %}
<meta name="twitter:domain" content="{{ SITEURL }}">
{% if article %}
{% if article.og_image %}
<meta property="twitter:image"
content="{{ SITEURL }}/{{ article.og_image }}"/>
{% elif OPEN_GRAPH_IMAGE %}
<meta property="twitter:image"
content="{{ SITEURL }}/{{ OPEN_GRAPH_IMAGE }}"/>
{% endif %}
{% elif page %}
{% if page.og_image %}
<meta property="twitter:image"
content="{{ SITEURL }}/{{ page.og_image }}"/>
{% elif OPEN_GRAPH_IMAGE %}
<meta property="twitter:image"
content="{{ SITEURL }}/{{ OPEN_GRAPH_IMAGE }}"/>
{% endif %}
{% endif %}
{% endif %}