2018-07-20 16:45:42 +01:00
<!DOCTYPE html>
< html { % block lang % } lang = "{{ post.lang }}" { % endblock % } >
< head >
2018-08-02 22:47:49 +01:00
< title > {% block title %}{{ post.title }} - {{ site.domain }}{% endblock %}< / title >
2018-07-20 16:45:42 +01:00
< meta charset = "UTF-8" / >
< meta name = "viewport" content = "width=device-width,initial-scale=1,minimum-scale=1" / >
2018-08-02 22:47:49 +01:00
< link rel = "icon" href = "{{ site.url }}/favicon.ico" / >
2018-11-10 20:49:13 +00:00
{% block licence %}{% endblock %}
2018-07-20 16:45:42 +01:00
{% for key, value in meta.items() %}
< link rel = "{{ key }}" href = "{{ value }}" / >
{% endfor %}
{% block meta %}{% endblock %}
< style media = "all" >
2018-08-02 22:47:49 +01:00
{% include 'style.css' %}
2018-07-20 16:45:42 +01:00
< / style >
2018-11-10 20:49:13 +00:00
< style id = "css_alt" media = "speech" >
2018-08-02 22:47:49 +01:00
{% include 'style-alt.css' %}
2018-07-20 16:45:42 +01:00
< / style >
< style media = "print" >
{% include 'style-print.css' %}
< / style >
< script >
var current = localStorage.getItem("stylesheet");
2018-11-04 13:40:44 +00:00
if (current != null) {
2018-08-02 22:47:49 +01:00
document.querySelector('#css_alt').setAttribute("media", current);
2018-07-20 16:45:42 +01:00
}
2018-11-04 13:40:44 +00:00
else if( ! window.matchMedia("(prefers-color-scheme: dark)").matches) {
2018-11-03 09:48:37 +00:00
toggleStylesheet(this);
}
2018-07-20 16:45:42 +01:00
function toggleStylesheet(trigger){
var setto = 'all';
2018-08-02 22:47:49 +01:00
var e = document.querySelector('#css_alt');
2018-07-20 16:45:42 +01:00
if (e.getAttribute("media") == 'all') {
2018-11-10 20:49:13 +00:00
setto = 'speech';
2018-07-20 16:45:42 +01:00
}
localStorage.setItem("stylesheet", setto);
e.setAttribute("media", setto);
Back To Pandoc
So, Python Markdown is a bottomless pit of horrors, including crippling parsing bugs,
random out of nowhere, lack of features. It's definitely much faster, than
Pandoc, but Pandoc doesn't go full retard where there's a regex in a fenced code block,
that happens to be a regex for markdown elements.
Also added some ugly post string replacements to make Pandoc fenced code output work
with Prism:
instead of the Pandoc <pre class="codelang"><code>, Prism wants
<pre><code class="language-codelang>, so I added a regex sub, because it's 00:32.
2018-08-04 00:28:55 +01:00
return false;
2018-07-20 16:45:42 +01:00
}
< / script >
< / head >
2018-09-04 21:58:25 +01:00
< body itemscope = "" itemtype = "http://schema.org/Blog http://schema.org/WebPage" >
2018-07-20 16:45:42 +01:00
{% macro activemenu(name) %}{% if (post is defined and post.category == name ) or ( category is defined and category.name == name ) %}active{% endif %}{% endmacro %}
2018-08-02 22:47:49 +01:00
< header >
< nav >
2018-07-20 16:45:42 +01:00
< ul >
< li >
2018-08-08 09:42:42 +01:00
< a title = "home" href = "{{ site.url }}/" class = "{{ activemenu('') }}" >
2018-08-13 14:57:27 +01:00
< svg width = "16" height = "16" > < use xlink:href = "#icon-home" / > < / svg >
2018-07-20 16:45:42 +01:00
home
< / a >
< / li >
< li >
2018-08-08 09:42:42 +01:00
< a title = "photos" href = "{{ site.url }}/category/photo/" class = "{{ activemenu('photo') }}" >
2018-08-13 14:57:27 +01:00
< svg width = "18" height = "16" > < use xlink:href = "#icon-photo" / > < / svg >
2018-07-20 16:45:42 +01:00
photos
< / a >
< / li >
< li >
2018-08-08 09:42:42 +01:00
< a title = "journal" href = "{{ site.url }}/category/journal/" class = "{{ activemenu('journal') }}" >
2018-08-13 14:57:27 +01:00
< svg width = "16" height = "16" > < use xlink:href = "#icon-journal" / > < / svg >
2018-07-20 16:45:42 +01:00
journal
< / a >
< / li >
< li >
2018-08-08 09:42:42 +01:00
< a title = "IT" href = "{{ site.url }}/category/article/" class = "{{ activemenu('article') }}" >
2018-08-13 14:57:27 +01:00
< svg width = "16" height = "16" > < use xlink:href = "#icon-article" / > < / svg >
2018-07-20 16:45:42 +01:00
IT
< / a >
< / li >
< li >
2018-08-08 09:42:42 +01:00
< a title = "notes" href = "{{ site.url }}/category/note/" class = "{{ activemenu('note') }}" >
2018-08-13 14:57:27 +01:00
< svg width = "16" height = "16" > < use xlink:href = "#icon-note" / > < / svg >
2018-07-20 16:45:42 +01:00
notes
< / a >
< / li >
< / ul >
< / nav >
2018-08-08 09:42:42 +01:00
< div >
< form role = "search" method = "get" action = "{{ site.url }}/search.php" >
2018-11-04 12:57:51 +00:00
< label for = "q" > Search< / label >
2018-08-08 09:42:42 +01:00
< input type = "search" placeholder = "search..." value = "" name = "q" id = "q" title = "Search for:" / >
< input type = "submit" value = "➡" / >
2018-07-20 16:45:42 +01:00
2018-08-08 09:42:42 +01:00
< label for = "contrast" > Toggle website contrast< / label >
< button title = "toggle website contrast" id = "contrast" name = "contrast" onclick = "return toggleStylesheet(this)" >
2018-08-13 14:57:27 +01:00
< svg width = "16" height = "16" >
2018-08-08 09:42:42 +01:00
< use xlink:href = "#icon-contrast" > < / use >
< / svg >
< / button >
< / form >
< p class = "follow" >
2018-11-04 12:57:51 +00:00
< a title = "follow petermolnar.net" href = "{{ site.url }}/follow/" >
2018-08-13 14:57:27 +01:00
< svg width = "16" height = "16" >
2018-08-14 14:56:13 +01:00
< use xlink:href = "#icon-feed" / >
2018-08-08 09:42:42 +01:00
< / svg >
follow
< / a >
< / p >
< / div >
2018-07-20 16:45:42 +01:00
< / header >
{% block content %}
2018-11-04 14:45:54 +00:00
{% if post.event %}
{% set mftype = 'h-entry h-event' %}
{% else %}
{% set mftype = 'h-entry' %}
{% endif %}
2018-08-13 14:57:27 +01:00
< main >
2018-11-04 14:45:54 +00:00
< article class = "{{ mftype }} hentry singular" lang = "{{ post.lang }}" property = "{{ mftype }}" itemscope = "" itemprop = "blogPost" itemtype = "http://schema.org/BlogPosting" itemref = "author" >
2018-07-20 16:45:42 +01:00
< header >
2018-11-04 12:57:51 +00:00
< h1 class = "entry-title p-name" itemprop = "name headline" property = "p-name" >
2018-07-20 16:45:42 +01:00
{% if post.is_reply %}
2018-08-14 14:56:13 +01:00
< span >
2018-08-13 14:57:27 +01:00
< svg width = "16" height = "16" >
2018-07-20 16:45:42 +01:00
< use xlink:href = "#icon-reply" / >
< / svg >
2018-08-08 09:42:42 +01:00
< a href = "{{ post.url }}" class = "u-url" >
2018-07-20 16:45:42 +01:00
RE:
< / a >
2018-11-04 12:57:51 +00:00
< a href = "{{ post.is_reply }}" class = "u-in-reply-to" property = "u-in-reply-to" >
2018-07-20 16:45:42 +01:00
{{ post.is_reply }}
< / a >
< / span >
{% else %}
2018-08-08 09:42:42 +01:00
< a href = "{{ post.url }}" title = "{{ post.title }}" >
2018-08-14 14:56:13 +01:00
< span > {{ post.title }}< / span >
2018-07-20 16:45:42 +01:00
< / a >
{% endif %}
< / h1 >
< / header >
{% if post.review %}
2018-08-08 09:42:42 +01:00
< hr / >
2018-11-04 12:57:51 +00:00
< div class = "h-review hreview" property = "h-review" itemprop = "review" itemscope = "" itemtype = "http://schema.org/Review" >
< strong > Review summary of: < a href = "{{ post.review.url }}" class = "item fn p-name u-url p-item h-product" property = "p-name u-url p-item h-product" > {{ post.review.title }}< / a > < / strong >
2018-08-14 14:56:13 +01:00
< p >
2018-08-13 14:57:27 +01:00
By
2018-11-04 12:57:51 +00:00
< span class = "p-author h-card vcard reviewer" property = "p-author" itemprop = "author" itemscope = "" itemtype = "http://schema.org/Person" >
< a class = "fn p-name url u-url u-uid" property = "p-name u-url u-uid" href = "{{ author.url }}" itemprop = "url" >
2018-09-04 21:58:25 +01:00
< span itemprop = "name" > {{ author.name }}< / span >
2018-11-04 12:57:51 +00:00
< / a > < / span > at < time class = "dt-published dtreviewed" property = "dt-published" datetime = "{{ post.pubtime }}" itemprop = "datePublished" > {{ post.pubdate }}< / time >
2018-07-20 16:45:42 +01:00
< / p >
< p >
2018-09-04 21:58:25 +01:00
< span class = "rating" itemprop = "reviewRating" itemscope itemtype = "http://schema.org/Rating" >
< meta itemprop = "worstRating" content = "1" >
< span class = "value" itemprop = "ratingValue" > {{ post.review.rated }}< / span >
2018-07-20 16:45:42 +01:00
out of
2018-09-04 21:58:25 +01:00
< span class = "best" itemprop = "bestRating" > {{ post.review.outof }}< / span >
2018-07-20 16:45:42 +01:00
< / span >
< / p >
2018-11-04 12:57:51 +00:00
< p class = "p-summary summary" property = "p-summary" itemprop = "reviewBody" > {{ post.review.summary }}< / p >
2018-07-20 16:45:42 +01:00
< / div >
2018-08-08 09:42:42 +01:00
< hr / >
2018-07-20 16:45:42 +01:00
{% endif %}
{% if post.summary %}
2018-11-04 12:57:51 +00:00
< div class = "e-summary entry-summary" property = "e-summary" itemprop = "description" >
2018-07-20 16:45:42 +01:00
{{ post.html_summary }}
< / div >
{% endif %}
2018-11-04 12:57:51 +00:00
< div class = "e-content entry-content" property = "e-content" itemprop = "articleBody" >
2018-08-02 22:47:49 +01:00
{{ post.html_content }}
2018-07-20 16:45:42 +01:00
< / div >
2018-08-08 09:42:42 +01:00
< hr / >
2018-07-20 16:45:42 +01:00
< footer >
< dl >
2018-11-04 14:45:54 +00:00
{% if post.event %}
< dt > Trip details< / dt >
< dd >
From
< time class = "dt-start dtstart" property = "dt-end" datetime = "{{ post.event.starttime }}" >
{{ post.event.startdate }}
< / time >
to
< time class = "dt-end dtend" property = "dt-end" datetime = "{{ post.event.endtime }}" >
{{ post.event.enddate }}
< / time > , in
< span class = "p-location location" property = "p-location" >
{{ post.event.location }}
< / span >
< / dd >
{% endif %}
2018-07-20 16:45:42 +01:00
< dt > Published< / dt >
2018-09-04 21:58:25 +01:00
< dd class = "published updated" >
< time class = "dt-published dt-updated"
2018-11-04 12:57:51 +00:00
property="dt-published dt-updated"
2018-08-14 14:56:13 +01:00
datetime="{{ post.pubtime }}"
2018-09-04 21:58:25 +01:00
itemprop="dateModified datePublished"
2018-08-14 14:56:13 +01:00
>{{ post.pubdate }}< / time >
2018-07-20 16:45:42 +01:00
< / dd >
< dt > Author< / dt >
< dd >
2018-11-04 12:57:51 +00:00
< p class = "p-author h-card vcard" property = "p-author h-card" itemprop = "author" itemscope = "" itemtype = "http://schema.org/Person" >
2018-07-20 16:45:42 +01:00
< img class = "photo avatar u-photo u-avatar"
2018-11-04 12:57:51 +00:00
property="p-author h-card"
2018-07-20 16:45:42 +01:00
src="{{ author.avatar }}"
2018-08-14 14:56:13 +01:00
alt="Photo of {{ author.name }}"
2018-09-04 21:58:25 +01:00
itemprop="image" />
2018-08-14 14:56:13 +01:00
< a class = "fn p-name url u-url u-uid"
2018-11-04 12:57:51 +00:00
property="p-name u-url u-uid"
2018-08-14 14:56:13 +01:00
href="{{ author.url }}"
rel="author"
2018-09-04 21:58:25 +01:00
itemprop="url">
< span itemprop = "name" > {{ author.name }}< / span >
< / a >
2018-11-04 12:57:51 +00:00
< < a class = "u-email email" property = "u-email" href = "mailto:{{ author.email }}" >
2018-09-04 21:58:25 +01:00
< span itemprop = "email" > {{ author.email }}< / span >
2018-11-03 09:48:37 +00:00
< / a > >
2018-07-20 16:45:42 +01:00
< / p >
< / dd >
< dt > Entry URL< / dt >
< dd >
2018-09-04 21:58:25 +01:00
{% if not post.has_mainimg %}
< img aria-hidden = "true" src = "{{ author.avatar }}" itemprop = "image" hidden = "hidden" / >
{% endif %}
2018-11-04 12:57:51 +00:00
< a class = "u-url u-uuid" property = "u-url u-uuid" rel = "bookmark" href = "{{ post.url }}" itemprop = "url mainEntityOfPage" >
2018-07-20 16:45:42 +01:00
{{ post.url }}
< / a >
< / dd >
< dt > License< / dt >
< dd class = "license" >
2018-11-10 20:49:13 +00:00
{% if post.licence == 'CC-BY-4.0' %}
< a rel = "license" href = "https://creativecommons.org/licenses/by/4.0/" class = "u-license" property = "u-licence" itemprop = "license" > {{ post.licence }}< / a >
2018-07-20 16:45:42 +01:00
< ul >
< li > you can share it< / li >
< li > you can republish it< / li >
< li > you can modify it, but you need to indicate the modifications< / li >
< li > you can use it for commercial purposes< / li >
< li > you always need to make a link back here< / li >
< / ul >
2018-11-10 20:49:13 +00:00
{% elif post.licence == 'CC-BY-NC-4.0' %}
< a rel = "license" href = "https://creativecommons.org/licenses/by-nc/4.0/" class = "u-license" property = "u-licence" itemprop = "license" > {{ post.licence }}< / a >
2018-07-20 16:45:42 +01:00
< ul >
< li > you can share it< / li >
< li > you can republish it< / li >
< li > you can modify it, but you need to indicate the modifications< / li >
< li > you can't use it for commercial purposes< / li >
< li > you always need to make a link back here< / li >
< / ul >
For commercial use, please contact me.
2018-11-10 20:49:13 +00:00
{% elif post.licence == 'CC-BY-NC-ND-4.0' %}
< a rel = "license" href = "https://creativecommons.org/licenses/by-nc-nd/4.0/" class = "u-license" property = "u-licence" itemprop = "license" > {{ post.licence }}< / a >
2018-07-20 16:45:42 +01:00
< ul >
< li > you can share it< / li >
< li > you can't modify it< / li >
< li > you can't republish it< / li >
< li > you can't use it for commercial purposes< / li >
< li > you always need to make a link back here< / li >
< / ul >
For commercial use, please contact me.
{% endif %}
< / dd >
< / dl >
2018-09-04 21:58:25 +01:00
< p aria-hidden = "true" hidden = "hidden" itemprop = "publisher" itemscope = "" itemtype = "https://schema.org/Organization" >
< span itemprop = "name" > {{ site.domain }}< / span >
< a href = "{{ site.url }}" itemprop = "url" > {{ site.url }}< / a >
< span itemprop = "logo" itemscope = "" itemtype = "https://schema.org/ImageObject" >
< img src = "{{ author.avatar }}" alt = "" itemprop = "url" / >
< / span >
< / p >
2018-07-20 16:45:42 +01:00
< / footer >
{% if post.syndicate|length %}
< section class = "syndication" >
{% for url in post.syndicate %}
2018-11-04 12:57:51 +00:00
< a href = "{{ url }}" class = "u-syndication" itemprop = "u-syndication" > < / a >
2018-07-20 16:45:42 +01:00
{% endfor %}
< / section >
{% endif %}
{% if post.replies|length %}
< section class = "replies" >
< h2 > < a id = "replies" > < / a > Replies< / h2 >
< ol >
{% for mtime, comment in post.replies.items() %}
2018-11-04 12:57:51 +00:00
< li class = "h-entry p-comment" property = "h-entry p-comment" >
< time class = "dt-published" property = "dt-published" datetime = "{{ comment.pubtime }}" >
2018-07-20 16:45:42 +01:00
{{ comment.pubdate }}
< / time > from
2018-11-04 12:57:51 +00:00
< span class = "p-author h-card" property = "p-author h-card" >
2018-07-20 16:45:42 +01:00
{% if comment.author.url %}
2018-11-04 12:57:51 +00:00
< a class = "url u-url" property = "u-url" href = "{{ comment.author.url }}" >
< span class = "p-name fn" property = "p-name" >
2018-07-20 16:45:42 +01:00
{{ comment.author.name }}
< / span >
< / a >
{% else %}
2018-11-04 12:57:51 +00:00
< span class = "p-name fn" property = "p-name" >
2018-07-20 16:45:42 +01:00
{{ comment.author.name }}
< / span >
{% endif %}
< / span > < br / >
< span class = "source" >
2018-08-13 14:57:27 +01:00
< svg width = "16" height = "16" >
2018-07-20 16:45:42 +01:00
< use xlink:href = "#icon-link" > < / use >
< / svg >
2018-11-04 12:57:51 +00:00
< a class = "u-url" property = "u-url" href = "{{ comment.source }}" >
2018-07-20 16:45:42 +01:00
{{ comment.source }}
< / a >
< / span >
< / li >
{% endfor %}
< / ol >
< / section >
{% endif %}
{% if post.reactions|length %}
< section class = "reactions" >
< h2 > < a id = "reactions" > < / a > Reactions< / h2 >
< dl >
{% for character, comments in post.reactions.items() %}
< dt > {{ character }}< / dt >
< dd >
< ul >
{% for mtime, comment in comments.items() %}
2018-11-04 12:57:51 +00:00
< li class = "h-entry p-comment" property = "h-entry p-comment" >
2018-07-20 16:45:42 +01:00
< span class = "reaction" >
2018-11-04 12:57:51 +00:00
< a class = "u-url" property = "u-url" href = "{{ comment.source }}" >
2018-07-20 16:45:42 +01:00
{{ comment.type }}
< / a >
< / span >
2018-11-04 12:57:51 +00:00
< time class = "dt-published" property = "dt-published" datetime = "{{ comment.pubtime }}" >
2018-07-20 16:45:42 +01:00
{{ comment.pubdate }}
< / time > from
2018-11-04 12:57:51 +00:00
< span class = "p-author h-card" property = "p-author h-card" >
2018-07-20 16:45:42 +01:00
{% if comment.author.url %}
2018-11-04 12:57:51 +00:00
< a class = "url u-url" property = "u-url" href = "{{ comment.author.url }}" >
< span class = "p-name fn" property = "p-name" >
2018-07-20 16:45:42 +01:00
{{ comment.author.name }}
< / span >
< / a >
{% else %}
2018-11-04 12:57:51 +00:00
< span class = "p-name fn" property = "p-name" >
2018-07-20 16:45:42 +01:00
{{ comment.author.name }}
< / span >
{% endif %}
< / span >
< / li >
{% endfor %}
< / ul >
< / dd >
{% endfor %}
< / dl >
< / section >
{% endif %}
< / article >
2018-08-13 14:57:27 +01:00
< / main >
2018-07-20 16:45:42 +01:00
{% endblock %}
{% block pagination %}
{% endblock %}
2018-09-04 21:58:25 +01:00
< footer >
2018-11-04 12:57:51 +00:00
< div class = "p-author h-card vcard" property = "p-author h-card" id = "author" itemprop = "author publisher" itemscope = "" itemtype = "https://schema.org/Person https://schema.org/Organization" >
2018-09-04 21:58:25 +01:00
< p >
< a href = "https://creativecommons.org/" > CC< / a > ,
1999-2018,
< span itemprop = "logo" itemscope = "" itemtype = "https://schema.org/ImageObject" >
< img class = "photo avatar u-photo u-avatar"
2018-11-04 12:57:51 +00:00
property="u-photo u-avatar"
2018-09-04 21:58:25 +01:00
src="{{ author.avatar }}"
alt="Photo of {{ author.name }}"
itemprop="image url" />
< / span >
2018-11-04 12:57:51 +00:00
< a class = "fn p-name url u-url u-uid" property = "p-name u-url u-uid" rel = "me" href = "{{ site.url }}/about.html" >
2018-09-04 21:58:25 +01:00
< span itemprop = "name" > {{ author.name }}< / span >
< / a >
2018-11-04 12:57:51 +00:00
< a class = "u-email email" property = "u-email" rel = "me" href = "mailto:{{ author.email }}" >
2018-09-04 21:58:25 +01:00
< span itemprop = "email" > {{ author.email }}< / span >
< / a >
< / p >
< nav >
< ul >
{% for name, value in author.contact.items() %}
< li >
2018-11-04 12:57:51 +00:00
< a class = "url u-url x-{{name}}" property = "u-url x-{{name}}" rel = "me" href = "{{ value }}" itemprop = "sameAs" >
2018-09-04 21:58:25 +01:00
< svg width = "16" height = "16" >
< use xlink:href = "#icon-{{ name }}" > < / use >
< / svg >
{{ name }}
< / a >
< / li >
{% endfor %}
< / ul >
< / nav >
< / div >
2018-08-14 14:56:13 +01:00
< p >
Leave a tip!
< a rel = "payment" href = "{{ tips.paypal }}" >
< svg width = "16" height = "16" >
< use xlink:href = "#icon-paypal" > < / use >
< / svg > Paypal< / a >
or
< a rel = "payment" href = "{{ tips.monzo }}" >
< svg width = "16" height = "16" >
< use xlink:href = "#icon-monzo" > < / use >
< / svg > Monzo< / a > (UK only).
< / p >
< p >
2018-08-13 14:57:27 +01:00
< a href = "https://xn--sr8hvo.ws/🇻🇮📢/previous" > ←< / a >
Member of < a href = "https://xn--sr8hvo.ws" > IndieWeb Webring< / a >
< a href = "https://xn--sr8hvo.ws/🇻🇮📢/next" > →< / a >
2018-08-14 14:56:13 +01:00
< / p >
2018-07-20 16:45:42 +01:00
< / footer >
{% include 'symbols.svg' %}
2018-08-04 09:30:26 +01:00
{% block prism %}
{% endblock %}
2018-07-20 16:45:42 +01:00
< / body >
< / html >