Change indenting to 1 tab (4 spaces)

It's more readable this way
This commit is contained in:
daudix
2024-02-27 18:38:23 +03:00
parent 9fc6befbf4
commit d0eaa63568
33 changed files with 1208 additions and 1256 deletions

View File

@ -2,8 +2,8 @@
{% block content %}
<picture>
<source srcset="{{ get_url(path='404.png') }}" media="(prefers-reduced-motion: reduce)"></source>
<img id="not-found" class="pixels transparent no-hover" srcset="{{ get_url(path='404.gif') }}">
<source srcset="{{ get_url(path='404.png') }}" media="(prefers-reduced-motion: reduce)"></source>
<img id="not-found" class="pixels transparent no-hover" srcset="{{ get_url(path='404.gif') }}">
</picture>
<h1>Page Not Found</h1>
@ -11,7 +11,7 @@
<p>The requested page could not be found. If you feel this is not normal, then you can create an issue on the issue tracker.</p>
<p class="dialog-buttons">
<a onclick="window.history.go(-1)" class="inline-button">Go Back</a>
<a href="{{ config.extra.issues_url }}">File an Issue</a>
<a onclick="window.history.go(-1)" class="inline-button">Go Back</a>
<a href="{{ config.extra.issues_url }}">File an Issue</a>
</p>
{% endblock content %}

View File

@ -2,11 +2,11 @@
<html lang="en">
{% include "partials/head.html" ignore missing -%}
<body>
{% include "partials/nav.html" ignore missing -%}
<div id="main" class="container">
{% block custom %}{%- endblock -%}
{% block content %}{%- endblock -%}
</div>
{% include "partials/footer.html" ignore missing -%}
{% include "partials/nav.html" ignore missing -%}
<div id="main" class="container">
{% block custom %}{%- endblock -%}
{% block content %}{%- endblock -%}
</div>
{% include "partials/footer.html" ignore missing -%}
</body>
</html>

View File

@ -4,98 +4,96 @@
<h1>{{ page.title }}</h1>
{%- if page.date %}
<small>
<time datetime='{{ page.date | date(format='%+') }}' pubdate>
{{- page.date | date(format=config.extra.date_format) -}}
</time>
{%- if page.authors %}
<span></span>
<span>Author: {{ page.authors[0] }}</span>
{%- endif %}
{%- if page.taxonomies %}
{%- for name, taxon in page.taxonomies %}
<span></span>
<ul class="tags">
{%-for item in taxon %}
<li>
<a class="tag" href="{{ get_taxonomy_url(kind=name, name=item) }}">{{ item }}</a>
</li>
{%- endfor %}
</ul>
{%- endfor %}
{%- endif %}
</small>
<small>
<time datetime="{{ page.date | date(format=' %+') }}" pubdate>
{{- page.date | date(format=config.extra.date_format) -}}
</time>
{%- if page.authors %}
<span></span>
<span>Author: {{ page.authors[0] }}</span>
{%- endif %}
{%- if page.taxonomies %}
{%- for name, taxon in page.taxonomies %}
<span></span>
<ul class="tags">
{%-for item in taxon %}
<li>
<a class="tag" href="{{ get_taxonomy_url(kind=name, name=item) }}">{{ item }}</a>
</li>
{%- endfor %}
</ul>
{%- endfor %}
{%- endif %}
</small>
{%- endif %}
{% if page.extra.archive %}
<div class="statement-container archive">
<strong class="big">⚠ Archived</strong>
{{ page.extra.archive | markdown | safe }}
</div>
<div class="statement-container archive">
<strong class="big">⚠ Archived</strong>
{{ page.extra.archive | markdown | safe }}
</div>
{% endif %}
{% if page.extra.trigger %}
<div class="statement-container trigger">
<strong class="big">⚠ Trigger Warning</strong>
{{ page.extra.trigger | markdown | safe }}
</div>
<div class="statement-container trigger">
<strong class="big">⚠ Trigger Warning</strong>
{{ page.extra.trigger | markdown | safe }}
</div>
{% endif %}
{% if page.extra.disclaimer %}
<div class="statement-container disclaimer">
<strong class="big">⚠ Disclaimer(s)</strong>
{{ page.extra.disclaimer | markdown | safe }}
</div>
<div class="statement-container disclaimer">
<strong class="big">⚠ Disclaimer(s)</strong>
{{ page.extra.disclaimer | markdown | safe }}
</div>
{% endif %}
{% if page.extra.toc %}
<h2>
Table of Contents
</h2>
<ul>
{% for h1 in page.toc %}
<li>
<a href="{{ h1.permalink | safe }}">{{ h1.title }}</a>
{% if h1.children %}
<ul>
{% for h2 in h1.children %}
<li>
<a href="{{ h2.permalink | safe }}">{{ h2.title }}</a>
</li>
{% endfor %}
</ul>
{% endif %}
</li>
{% endfor %}
</ul>
<h2>Table of Contents</h2>
<ul>
{% for h1 in page.toc %}
<li>
<a href="{{ h1.permalink | safe }}">{{ h1.title }}</a>
{% if h1.children %}
<ul>
{% for h2 in h1.children %}
<li>
<a href="{{ h2.permalink | safe }}">{{ h2.title }}</a>
</li>
{% endfor %}
</ul>
{% endif %}
</li>
{% endfor %}
</ul>
{% endif %}
{{ page.content | safe }}
{% if page.extra.comments.id %}
{% include "partials/comments.html" %}
{% include "partials/comments.html" %}
{% endif %}
{% if page.lower or page.higher %}
<hr>
<nav id="post-nav">
{% if page.higher %}
<a class="post-nav-item post-nav-prev" href="{{ page.higher.permalink }}">
<div class="nav-arrow">← Previous</div>
<span class="post-title">{{ page.higher.title }}</span>
</a>
{% endif %}
{% if page.lower %}
<a class="post-nav-item post-nav-next" href="{{ page.lower.permalink }}">
<div class="nav-arrow">Next →</div>
<span class="post-title">{{ page.lower.title }}</span>
</a>
{% endif %}
</nav>
<hr>
<nav id="post-nav">
{% if page.higher %}
<a class="post-nav-item post-nav-prev" href="{{ page.higher.permalink }}">
<div class="nav-arrow">← Previous</div>
<span class="post-title">{{ page.higher.title }}</span>
</a>
{% endif %}
{% if page.lower %}
<a class="post-nav-item post-nav-next" href="{{ page.lower.permalink }}">
<div class="nav-arrow">Next →</div>
<span class="post-title">{{ page.lower.title }}</span>
</a>
{% endif %}
</nav>
{% endif %}
<p class="dialog-buttons">
<a class="inline-button" href="#top">Go to top</a>
<a class="inline-button colored" href="{{ config.extra.issues_url }}">File an issue</a>
<a class="inline-button" href="#top">Go to top</a>
<a class="inline-button colored" href="{{ config.extra.issues_url }}">File an issue</a>
</p>
{% endblock content %}

View File

@ -6,45 +6,39 @@
<p>{{ section.description }}</p>
<small>
<a class="link-page" href="{{ get_url(path='tags') }}">Filter by tag</a>
<br />
From newest to oldest ↓
<a class="link-page" href="{{ get_url(path='tags') }}">Filter by tag</a>
<br />
From newest to oldest ↓
</small>
<div class="blog-list">
{% for page in section.pages %}
<article>
<h3>
<a class="link-page" href="{{ page.permalink | safe }}">{{ page.title }}</a>
</h3>
{%- if page.description %}
<p>{{ page.description }}</p>
{%- endif %}
{%- if page.date %}
<small>
<time datetime="{{ page.date | date(format='%+') }}" pubdate>
{{- page.date | date(format=config.extra.date_format) -}}
</time>
{%- if page.authors %}
<span></span>
<span>Author: {{ page.authors[0] }}</span>
{%- endif %}
{%- if page.taxonomies %}
{%- for name, taxon in page.taxonomies %}
<span></span>
<ul class="tags">
{%-for item in taxon %}
<li>
<a class="tag" href="{{ get_taxonomy_url(kind=name, name=item) }}">{{ item }}</a>
</li>
{%- endfor %}
</ul>
{%- endfor %}
{%- endif %}
</small>
{%- endif %}
</article>
<hr>
{% endfor %}
{% for page in section.pages %}
<article>
<h3><a class="link-page" href="{{ page.permalink | safe }}">{{ page.title }}</a></h3>
{%- if page.description %}
<p>{{ page.description }}</p>
{%- endif %}
{%- if page.date %}
<small>
<time datetime="{{ page.date | date(format='%+') }}" pubdate>{{- page.date | date(format=config.extra.date_format) -}}</time>
{%- if page.authors %}
<span></span>
<span>Author: {{ page.authors[0] }}</span>
{%- endif %}
{%- if page.taxonomies %}
{%- for name, taxon in page.taxonomies %}
<span></span>
<ul class="tags">
{%-for item in taxon %}
<li><a class="tag" href="{{ get_taxonomy_url(kind=name, name=item) }}">{{ item }}</a></li>
{%- endfor %}
</ul>
{%- endfor %}
{%- endif %}
</small>
{%- endif %}
</article>
<hr>
{% endfor %}
</div>
{% endblock content %}

View File

@ -2,4 +2,4 @@
{% block content %}
{{ section.content | safe }}
{% endblock content %}
{% endblock content %}

View File

@ -2,10 +2,10 @@
{% block content %}
{% if page.extra.archive %}
<div class="statement-container archive">
<strong class="big">⚠ Archived</strong>
{{ page.extra.archive | markdown | safe }}
</div>
<div class="statement-container archive">
<strong class="big">⚠ Archived</strong>
{{ page.extra.archive | markdown | safe }}
</div>
{% endif %}
{{ page.content | safe }}
{% endblock content %}
{% endblock content %}

View File

@ -1,251 +1,252 @@
<!-- Taken from the https://carlschwan.eu/2020/12/29/adding-comments-to-your-static-blog-with-mastodon/ -->
{% if page.extra.comments.host %}
{% set host = page.extra.comments.host %}
{% set host = page.extra.comments.host %}
{% else %}
{% set host = config.extra.comments.host %}
{% set host = config.extra.comments.host %}
{% endif %}
{% if page.extra.comments.user %}
{% set username = page.extra.comments.user %}
{% set username = page.extra.comments.user %}
{% else %}
{% set username = config.extra.comments.user %}
{% set username = config.extra.comments.user %}
{% endif %}
{% set id = page.extra.comments.id %}
<section id="comments">
<img id="qrcode" class="no-hover pixels" alt="QR code to a Mastodon post"
src="https://api.qrserver.com/v1/create-qr-code/?data=https://{{ host }}/@{{ username }}/{{ id }}">
<h2>Comments</h2>
<p>
You can respond to this <a href="https://{{ host }}/@{{ username }}/{{ id }}">post</a> with an account on the
Fediverse (e.g Mastodon, Akkoma, Sharkey or any Mastodon API compatible server).
</p>
<p>
<small>
Since Fediverse is decentralized, you can use your existing Mastodon API compatible account if you don't have an
account on this server. Known non-private replies are displayed below.
</small>
</p>
<img id="qrcode" class="no-hover pixels" alt="QR code to a Mastodon post"
src="https://api.qrserver.com/v1/create-qr-code/?data=https://{{ host }}/@{{ username }}/{{ id }}">
<h2>Comments</h2>
<p>
You can respond to this <a href="https://{{ host }}/@{{ username }}/{{ id }}">post</a> with an account on the
Fediverse (e.g Mastodon, Akkoma, Sharkey or any Mastodon API compatible server).
</p>
<p>
<small>
Since Fediverse is decentralized, you can use your existing Mastodon API compatible account if you don't
have an
account on this server. Known non-private replies are displayed below.
</small>
</p>
<p>
<a id="load-comments" class="inline-button" onclick="loadComments()">Load comments…</a>
</p>
<div id="comments-wrapper">
<noscript>
<p>
Loading comments relies on JavaScript. Try enabling JavaScript and
reloading, or visit
<a href="https://{{ host }}/@{{ username }}/{{ id }}">
the original post
</a>
on Mastodon.
</p>
</noscript>
</div>
<script type="text/javascript">
function escapeHtml(unsafe) {
return unsafe
.replace(/&/g, "&amp;")
.replace(/</g, "&lt;")
.replace(/>/g, "&gt;")
.replace(/"/g, "&quot;")
.replace(/'/g, "&#039;");
}
function emojify(input, emojis) {
let output = input;
<p>
<a id="load-comments" class="inline-button" onclick="loadComments()">Load comments…</a>
</p>
<div id="comments-wrapper">
<noscript>
<p>
Loading comments relies on JavaScript. Try enabling JavaScript and
reloading, or visit
<a href="https://{{ host }}/@{{ username }}/{{ id }}">
the original post
</a>
on Mastodon.
</p>
</noscript>
</div>
<script type="text/javascript">
function escapeHtml(unsafe) {
return unsafe
.replace(/&/g, "&amp;")
.replace(/</g, "&lt;")
.replace(/>/g, "&gt;")
.replace(/"/g, "&quot;")
.replace(/'/g, "&#039;");
}
function emojify(input, emojis) {
let output = input;
emojis.forEach((emoji) => {
let picture = document.createElement("picture");
emojis.forEach((emoji) => {
let picture = document.createElement("picture");
let source = document.createElement("source");
source.setAttribute("srcset", escapeHtml(emoji.url));
source.setAttribute("media", "(prefers-reduced-motion: no-preference)");
let source = document.createElement("source");
source.setAttribute("srcset", escapeHtml(emoji.url));
source.setAttribute("media", "(prefers-reduced-motion: no-preference)");
let img = document.createElement("img");
img.className = "emoji";
img.setAttribute("src", escapeHtml(emoji.static_url));
img.setAttribute("alt", `:${emoji.shortcode}:`);
img.setAttribute("title", `:${emoji.shortcode}:`);
img.setAttribute("width", "20");
img.setAttribute("height", "20");
let img = document.createElement("img");
img.className = "emoji";
img.setAttribute("src", escapeHtml(emoji.static_url));
img.setAttribute("alt", `:${emoji.shortcode}:`);
img.setAttribute("title", `:${emoji.shortcode}:`);
img.setAttribute("width", "20");
img.setAttribute("height", "20");
picture.appendChild(source);
picture.appendChild(img);
picture.appendChild(source);
picture.appendChild(img);
output = output.replace(`:${emoji.shortcode}:`, picture.outerHTML);
});
output = output.replace(`:${emoji.shortcode}:`, picture.outerHTML);
});
return output;
}
return output;
}
function loadComments() {
let commentsWrapper = document.getElementById("comments-wrapper");
document.getElementById("load-comments").innerHTML = "Loading…";
fetch("https://{{ host }}/api/v1/statuses/{{ id }}/context")
.then(function (response) {
return response.json();
})
.then(function (data) {
let descendants = data["descendants"];
if (
descendants &&
Array.isArray(descendants) &&
descendants.length > 0
) {
commentsWrapper.innerHTML = "";
function loadComments() {
let commentsWrapper = document.getElementById("comments-wrapper");
document.getElementById("load-comments").innerHTML = "Loading…";
fetch("https://{{ host }}/api/v1/statuses/{{ id }}/context")
.then(function (response) {
return response.json();
})
.then(function (data) {
let descendants = data["descendants"];
if (
descendants &&
Array.isArray(descendants) &&
descendants.length > 0
) {
commentsWrapper.innerHTML = "";
descendants.forEach(function (status) {
console.log(descendants);
if (status.account.display_name.length > 0) {
status.account.display_name = escapeHtml(
status.account.display_name
);
status.account.display_name = emojify(
status.account.display_name,
status.account.emojis
);
} else {
status.account.display_name = status.account.username;
}
descendants.forEach(function (status) {
console.log(descendants);
if (status.account.display_name.length > 0) {
status.account.display_name = escapeHtml(
status.account.display_name
);
status.account.display_name = emojify(
status.account.display_name,
status.account.emojis
);
} else {
status.account.display_name = status.account.username;
}
let instance = "";
if (status.account.acct.includes("@")) {
instance = status.account.acct.split("@")[1];
} else {
instance = "{{ host }}";
}
let instance = "";
if (status.account.acct.includes("@")) {
instance = status.account.acct.split("@")[1];
} else {
instance = "{{ host }}";
}
const isReply = status.in_reply_to_id !== "{{ id }}";
const isReply = status.in_reply_to_id !== "{{ id }}";
let op = false;
if (status.account.acct == "{{ username }}") {
op = true;
}
let op = false;
if (status.account.acct == "{{ username }}") {
op = true;
}
status.content = emojify(status.content, status.emojis);
status.content = emojify(status.content, status.emojis);
let avatarSource = document.createElement("source");
avatarSource.setAttribute(
"srcset",
escapeHtml(status.account.avatar)
);
avatarSource.setAttribute(
"media",
"(prefers-reduced-motion: no-preference)"
);
let avatarSource = document.createElement("source");
avatarSource.setAttribute(
"srcset",
escapeHtml(status.account.avatar)
);
avatarSource.setAttribute(
"media",
"(prefers-reduced-motion: no-preference)"
);
let avatarImg = document.createElement("img");
avatarImg.className = "avatar";
avatarImg.setAttribute(
"src",
escapeHtml(status.account.avatar_static)
);
avatarImg.setAttribute(
"alt",
`@${status.account.username}@${instance} avatar`
);
let avatarImg = document.createElement("img");
avatarImg.className = "avatar";
avatarImg.setAttribute(
"src",
escapeHtml(status.account.avatar_static)
);
avatarImg.setAttribute(
"alt",
`@${status.account.username}@${instance} avatar`
);
let avatarPicture = document.createElement("picture");
avatarPicture.appendChild(avatarSource);
avatarPicture.appendChild(avatarImg);
let avatarPicture = document.createElement("picture");
avatarPicture.appendChild(avatarSource);
avatarPicture.appendChild(avatarImg);
let avatar = document.createElement("a");
avatar.className = "avatar-link";
avatar.setAttribute("href", status.account.url);
avatar.setAttribute("rel", "external nofollow");
avatar.setAttribute(
"title",
`View profile at @${status.account.username}@${instance}`
);
avatar.appendChild(avatarPicture);
let avatar = document.createElement("a");
avatar.className = "avatar-link";
avatar.setAttribute("href", status.account.url);
avatar.setAttribute("rel", "external nofollow");
avatar.setAttribute(
"title",
`View profile at @${status.account.username}@${instance}`
);
avatar.appendChild(avatarPicture);
let instanceBadge = document.createElement("a");
instanceBadge.className = "instance";
instanceBadge.setAttribute("href", status.account.url);
instanceBadge.setAttribute(
"title",
`@${status.account.username}@${instance}`
);
instanceBadge.setAttribute("rel", "external nofollow");
instanceBadge.textContent = instance;
let instanceBadge = document.createElement("a");
instanceBadge.className = "instance";
instanceBadge.setAttribute("href", status.account.url);
instanceBadge.setAttribute(
"title",
`@${status.account.username}@${instance}`
);
instanceBadge.setAttribute("rel", "external nofollow");
instanceBadge.textContent = instance;
let display = document.createElement("span");
display.className = "display";
display.setAttribute("itemprop", "author");
display.setAttribute("itemtype", "http://schema.org/Person");
display.innerHTML = status.account.display_name;
let display = document.createElement("span");
display.className = "display";
display.setAttribute("itemprop", "author");
display.setAttribute("itemtype", "http://schema.org/Person");
display.innerHTML = status.account.display_name;
let header = document.createElement("header");
header.className = "author";
header.appendChild(display);
header.appendChild(instanceBadge);
let header = document.createElement("header");
header.className = "author";
header.appendChild(display);
header.appendChild(instanceBadge);
let permalink = document.createElement("a");
permalink.setAttribute("href", status.url);
permalink.setAttribute("itemprop", "url");
permalink.setAttribute("title", `View comment at ${instance}`);
permalink.setAttribute("rel", "external nofollow");
permalink.textContent = new Date(
status.created_at
).toLocaleString("en-IE", {
dateStyle: "long",
timeStyle: "short",
});
let permalink = document.createElement("a");
permalink.setAttribute("href", status.url);
permalink.setAttribute("itemprop", "url");
permalink.setAttribute("title", `View comment at ${instance}`);
permalink.setAttribute("rel", "external nofollow");
permalink.textContent = new Date(
status.created_at
).toLocaleString("en-IE", {
dateStyle: "long",
timeStyle: "short",
});
let timestamp = document.createElement("time");
timestamp.setAttribute("datetime", status.created_at);
timestamp.appendChild(permalink);
let timestamp = document.createElement("time");
timestamp.setAttribute("datetime", status.created_at);
timestamp.appendChild(permalink);
let main = document.createElement("main");
main.setAttribute("itemprop", "text");
main.innerHTML = status.content;
let main = document.createElement("main");
main.setAttribute("itemprop", "text");
main.innerHTML = status.content;
let interactions = document.createElement("footer");
let interactions = document.createElement("footer");
let faves = document.createElement("a");
faves.className = "faves";
faves.setAttribute("href", `${status.url}/favourites`);
faves.setAttribute("title", `Favorites from ${instance}`);
faves.textContent = status.favourites_count;
interactions.appendChild(faves);
let faves = document.createElement("a");
faves.className = "faves";
faves.setAttribute("href", `${status.url}/favourites`);
faves.setAttribute("title", `Favorites from ${instance}`);
faves.textContent = status.favourites_count;
interactions.appendChild(faves);
let comment = document.createElement("article");
comment.id = `comment-${status.id}`;
comment.className = isReply ? "comment comment-reply" : "comment";
comment.setAttribute("itemprop", "comment");
comment.setAttribute("itemtype", "http://schema.org/Comment");
comment.appendChild(avatar);
comment.appendChild(header);
comment.appendChild(timestamp);
comment.appendChild(main);
if (status.favourites_count > 0) {
comment.appendChild(interactions);
}
let comment = document.createElement("article");
comment.id = `comment-${status.id}`;
comment.className = isReply ? "comment comment-reply" : "comment";
comment.setAttribute("itemprop", "comment");
comment.setAttribute("itemtype", "http://schema.org/Comment");
comment.appendChild(avatar);
comment.appendChild(header);
comment.appendChild(timestamp);
comment.appendChild(main);
if (status.favourites_count > 0) {
comment.appendChild(interactions);
}
if (op === true) {
comment.classList.add("op");
if (op === true) {
comment.classList.add("op");
avatar.classList.add("op");
avatar.setAttribute(
"title",
"Blog post author; " + avatar.getAttribute("title")
);
avatar.classList.add("op");
avatar.setAttribute(
"title",
"Blog post author; " + avatar.getAttribute("title")
);
instanceBadge.classList.add("op");
instanceBadge.setAttribute(
"title",
"Blog post author: " + instanceBadge.getAttribute("title")
);
}
instanceBadge.classList.add("op");
instanceBadge.setAttribute(
"title",
"Blog post author: " + instanceBadge.getAttribute("title")
);
}
commentsWrapper.innerHTML += comment.outerHTML;
});
}
let loadCommentsButton = document.getElementById("load-comments");
loadCommentsButton.remove();
});
}
</script>
</section>
commentsWrapper.innerHTML += comment.outerHTML;
});
}
let loadCommentsButton = document.getElementById("load-comments");
loadCommentsButton.remove();
});
}
</script>
</section>

View File

@ -1,19 +1,20 @@
<footer id="site-footer">
{% if config.extra.footer.show_copyright %}
<p title="Last built at {{ now() | date(format='%F %R %Z') }}">&copy; {{ config.title }}, {{ now() | date(format="%Y") }}</p>
{% endif %}
{% if config.extra.footer.show_copyright %}
<p title="Last built at {{ now() | date(format='%F %R %Z') }}">&copy; {{ config.title }}, {{ now() | date(format="%Y") }}</p>
{% endif %}
{% if config.extra.footer.show_source %}
<p><a href="{{ config.extra.source_url }}">Website source</a></p>
{% endif %}
{% if config.extra.footer.show_source %}
<p><a href="{{ config.extra.source_url }}">Website source</a></p>
{% endif %}
{% if config.extra.footer.show_powered_by %}
<p><small>Powered by <a href="https://www.getzola.org">Zola</a> and <a href="https://daudix.codeberg.page/duckquill">Duckquill</a></small></p>
{% endif %}
{% if config.extra.footer.show_powered_by %}
<p><small>Powered by <a href="https://www.getzola.org">Zola</a> and <a href="https://daudix.codeberg.page/duckquill">Duckquill</a></small></p>
{% endif %}
{% if config.extra.footer.show_johnvert %}
<details><summary>Johnvertisement</summary>
<iframe id="johnvertisement" title="Johnvertisement" src="https://john.citrons.xyz/embed?ref={{ config.extra.footer.johnvert_ref }}"></iframe>
</details>
{% endif %}
{% if config.extra.footer.show_johnvert %}
<details>
<summary>Johnvertisement</summary>
<iframe id="johnvertisement" title="Johnvertisement" src="https://john.citrons.xyz/embed?ref={{ config.extra.footer.johnvert_ref }}"></iframe>
</details>
{% endif %}
</footer>

View File

@ -1,62 +1,60 @@
<head>
<meta charset="UTF-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="description" content="{{ config.description }}" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<meta name="theme-color" content="{{ config.extra.primary_color }}" />
<link rel="canonical" href="{{ current_url | default(value='/') }}" />
<meta charset="UTF-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="description" content="{{ config.description }}" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<meta name="theme-color" content="{{ config.extra.primary_color }}" />
<link rel="canonical" href="{{ current_url | default(value='/') }}" />
<title>
{%- if page.title -%}
{{- page.title }} - {{ config.title -}}
{%- elif section.title -%}
{{- section.title }} - {{ config.title -}}
{%- else -%}
{{- config.title -}}
{%- endif -%}
</title>
<title>
{%- if page.title -%}
{{- page.title }} - {{ config.title -}}
{%- elif section.title -%}
{{- section.title }} - {{ config.title -}}
{%- else -%}
{{- config.title -}}
{%- endif -%}
</title>
<link rel="stylesheet" type="text/css" href="{{ get_url(path='style.css') }}" />
<link rel="stylesheet" type="text/css" href="/syntax-theme-dark.css" media="(prefers-color-scheme: dark)" />
<link rel="stylesheet" type="text/css" href="/syntax-theme-light.css" media="(prefers-color-scheme: light)" />
{% if config.extra.stylesheets %}
{% for stylesheet in config.extra.stylesheets %}
<link rel="stylesheet" type="text/css" href="{{ get_url(path=stylesheet) }}" />
{% endfor %}
{% endif %}
<link rel="stylesheet" type="text/css" href="{{ get_url(path='style.css') }}" />
<link rel="stylesheet" type="text/css" href="/syntax-theme-dark.css" media="(prefers-color-scheme: dark)" />
<link rel="stylesheet" type="text/css" href="/syntax-theme-light.css" media="(prefers-color-scheme: light)" />
{% if config.extra.stylesheets %}
{% for stylesheet in config.extra.stylesheets %}
<link rel="stylesheet" type="text/css" href="{{ get_url(path=stylesheet) }}" />
{% endfor %}
{% endif %}
<style type="text/css">
:root {
--primary-color-alpha: {{ config.extra.primary_color_alpha }};
--primary-color: {{ config.extra.primary_color }};
}
</style>
<style type="text/css">
:root {
--primary-color-alpha: {{ config.extra.primary_color_alpha }};
--primary-color: {{ config.extra.primary_color }};
}
</style>
{% if page.extra.emoji_favicon %}
<link rel="icon" type="image/svg+xml" href="data:image/svg+xml,<svg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 100 100%22><text x=%22-.1em%22 y=%22.9em%22 font-size=%2290%22>{{ page.extra.emoji_favicon }}</text></svg>">
<link rel="apple-touch-icon" type="image/svg+xml" sizes="180x180" href="data:image/svg+xml,<svg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 100 100%22><text x=%22-.1em%22 y=%22.9em%22 font-size=%2290%22>{{ page.extra.emoji_favicon }}</text></svg>">
{% elif section.extra.emoji_favicon %}
<link rel="icon" type="image/svg+xml" href="data:image/svg+xml,<svg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 100 100%22><text x=%22-.1em%22 y=%22.9em%22 font-size=%2290%22>{{ section.extra.emoji_favicon }}</text></svg>">
<link rel="apple-touch-icon" type="image/svg+xml" sizes="180x180" href="data:image/svg+xml,<svg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 100 100%22><text x=%22-.1em%22 y=%22.9em%22 font-size=%2290%22>{{ section.extra.emoji_favicon }}</text></svg>">
{% elif config.extra.emoji_favicon %}
<link rel="icon" type="image/svg+xml" href="data:image/svg+xml,<svg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 100 100%22><text x=%22-.1em%22 y=%22.9em%22 font-size=%2290%22>{{ config.extra.emoji_favicon }}</text></svg>">
<link rel="apple-touch-icon" type="image/svg+xml" sizes="180x180" href="data:image/svg+xml,<svg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 100 100%22><text x=%22-.1em%22 y=%22.9em%22 font-size=%2290%22>{{ config.extra.emoji_favicon }}</text></svg>">
{% elif config.extra.animated_favicon %}
<link rel="icon" type="image/gif" href="{{ get_url(path='favicon.gif') }}" />
<link rel="apple-touch-icon" type="image/png" sizes="180x180" href="{{ get_url(path='apple-touch-icon.png') }}" />
{% else %}
<link rel="icon" type="image/png" href="{{ get_url(path='favicon.png') }}" />
<link rel="apple-touch-icon" type="image/png" sizes="180x180" href="{{ get_url(path='apple-touch-icon.png') }}" />
{% endif %}
<link rel="me" href="https://{{ config.extra.comments.host }}/@{{ config.extra.comments.user }}" />
{% if page.extra.emoji_favicon %}
<link rel="icon" type="image/svg+xml" href="data:image/svg+xml,<svg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 100 100%22><text x=%22-.1em%22 y=%22.9em%22 font-size=%2290%22>{{ page.extra.emoji_favicon }}</text></svg>">
<link rel="apple-touch-icon" type="image/svg+xml" sizes="180x180" href="data:image/svg+xml,<svg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 100 100%22><text x=%22-.1em%22 y=%22.9em%22 font-size=%2290%22>{{ page.extra.emoji_favicon }}</text></svg>">
{% elif section.extra.emoji_favicon %}
<link rel="icon" type="image/svg+xml" href="data:image/svg+xml,<svg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 100 100%22><text x=%22-.1em%22 y=%22.9em%22 font-size=%2290%22>{{ section.extra.emoji_favicon }}</text></svg>">
<link rel="apple-touch-icon" type="image/svg+xml" sizes="180x180" href="data:image/svg+xml,<svg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 100 100%22><text x=%22-.1em%22 y=%22.9em%22 font-size=%2290%22>{{ section.extra.emoji_favicon }}</text></svg>">
{% elif config.extra.emoji_favicon %}
<link rel="icon" type="image/svg+xml" href="data:image/svg+xml,<svg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 100 100%22><text x=%22-.1em%22 y=%22.9em%22 font-size=%2290%22>{{ config.extra.emoji_favicon }}</text></svg>">
<link rel="apple-touch-icon" type="image/svg+xml" sizes="180x180" href="data:image/svg+xml,<svg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 100 100%22><text x=%22-.1em%22 y=%22.9em%22 font-size=%2290%22>{{ config.extra.emoji_favicon }}</text></svg>">
{% elif config.extra.animated_favicon %}
<link rel="icon" type="image/gif" href="{{ get_url(path='favicon.gif') }}" />
<link rel="apple-touch-icon" type="image/png" sizes="180x180" href="{{ get_url(path='apple-touch-icon.png') }}" />
{% else %}
<link rel="icon" type="image/png" href="{{ get_url(path='favicon.png') }}" />
<link rel="apple-touch-icon" type="image/png" sizes="180x180" href="{{ get_url(path='apple-touch-icon.png') }}" />
{% endif %}
<link rel="me" href="https://{{ config.extra.comments.host }}/@{{ config.extra.comments.user }}" />
<!-- Open Graph -->
<meta property="og:site_name" content="{{ config.title }}" />
<meta property="og:title" content="{%- if page.title -%} {{- page.title }} - {{ config.title -}}
{%- elif section.title -%} {{- section.title }} - {{ config.title -}}
{%- else -%} {{- config.title -}} {%- endif -%}" />
<meta property="og:url" content="{{ current_url | default(value='/') }}" />
<meta property="og:description" content="{{ page.description | default(value=config.description) }}" />
<meta property="og:image" content="{{ get_url(path='card.png') }}" />
<meta property="twitter:card" content="summary_large_image" />
<!-- Open Graph -->
<meta property="og:site_name" content="{{ config.title }}" />
<meta property="og:title" content="{%- if page.title -%}{{- page.title }} - {{ config.title -}}{%- elif section.title -%}{{- section.title }} - {{ config.title -}}{%- else -%}{{- config.title -}}{%- endif -%}" />
<meta property="og:url" content="{{ current_url | default(value='/') }}" />
<meta property="og:description" content="{{ page.description | default(value=config.description) }}" />
<meta property="og:image" content="{{ get_url(path='card.png') }}" />
<meta property="twitter:card" content="summary_large_image" />
</head>

View File

@ -1,25 +1,24 @@
<header id="site-nav">
<nav>
<a href="#main" id="main-content" tabindex="0">Skip to main content</a>
<ul>
<li id="home">
<a href="{{ get_url(path='') }}">{{ config.title }}</a>
</li>
{% for link in config.extra.nav.links %}
<li>
<a href="{{ link.url | safe | replace(from='$BASE_URL', to=get_url(path='')) | safe }}">{{ link.name }}</a>
</li>
{% endfor %}
{% if config.extra.nav.show_feed %}
<li id="feed">
<a href="{{ get_url(path='') }}/{{ config.feed_filename }}">
<svg width="16" height="16" fill="currentColor" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg">
<path d="M1.988 1.988V3c.008.547.453.984 1 .988.004-.004.008-.004.012-.004v.028A8.977 8.977 0 0 1 11.988 13a.991.991 0 0 0 1 .984h1V13h-.004c0-.004 0-.004.004-.008C13.984 7.02 9.184 2.148 3.242 2.02A1.004 1.004 0 0 0 3 1.988v-.004zm0 4V7c.008.547.453.984 1 .988.004-.004.008-.004.012-.004V8a4.985 4.985 0 0 1 4.996 4.844 1.002 1.002 0 0 0 .988 1.145c.008-.005.012-.005.016-.005v.004h.984V13H10c0-3.793-3.047-6.898-6.82-6.992 0-.004-.004-.004-.004-.004A.892.892 0 0 0 3 5.988v-.004zm2 4a1.999 1.999 0 1 0-.002 3.998 1.999 1.999 0 0 0 .002-3.998m0 0" />
</svg>
<span>Feed</span>
</a>
</li>
{% endif %}
</ul>
</nav>
<nav>
<a href="#main" id="main-content" tabindex="0">Skip to main content</a>
<ul>
<li id="home">
<a href="{{ get_url(path='') }}">{{ config.title }}</a>
</li>
{% for link in config.extra.nav.links %}
<li>
<a href="{{ link.url | safe | replace(from='$BASE_URL', to=get_url(path='')) | safe }}">{{ link.name
}}</a>
</li>
{% endfor %}
{% if config.extra.nav.show_feed %}
<li id="feed">
<a href="{{ get_url(path='') }}/{{ config.feed_filename }}">
<svg width="16" height="16" fill="currentColor" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg"><path d="M1.988 1.988V3c.008.547.453.984 1 .988.004-.004.008-.004.012-.004v.028A8.977 8.977 0 0 1 11.988 13a.991.991 0 0 0 1 .984h1V13h-.004c0-.004 0-.004.004-.008C13.984 7.02 9.184 2.148 3.242 2.02A1.004 1.004 0 0 0 3 1.988v-.004zm0 4V7c.008.547.453.984 1 .988.004-.004.008-.004.012-.004V8a4.985 4.985 0 0 1 4.996 4.844 1.002 1.002 0 0 0 .988 1.145c.008-.005.012-.005.016-.005v.004h.984V13H10c0-3.793-3.047-6.898-6.82-6.992 0-.004-.004-.004-.004-.004A.892.892 0 0 0 3 5.988v-.004zm2 4a1.999 1.999 0 1 0-.002 3.998 1.999 1.999 0 0 0 .002-3.998m0 0" /></svg>
<span>Feed</span>
</a>
</li>
{% endif %}
</ul>
</nav>
</header>

View File

@ -2,4 +2,4 @@
{% block content %}
{{ section.content | safe }}
{% endblock content %}
{% endblock content %}

View File

@ -1,3 +1,3 @@
<div class="crt scanlines">
{{ body | markdown | safe }}
{{ body | markdown | safe }}
</div>

View File

@ -1,12 +1,10 @@
<a href="{{url}}">
<img
class="
{% if full %}full{% endif %}
{% if pixels %}pixels{% endif %}
{% if transparent %}transparent{% endif %}
{% if no_hover %}no-hover{% endif %}
"
{% if alt %}alt="{{alt}}"{% endif %}
src="{% if url_min %}{{url_min}}{% else %}{{url}}{% endif %}"
/>
<img class="
{% if full %}full{% endif %}
{% if pixels %}pixels{% endif %}
{% if transparent %}transparent{% endif %}
{% if no_hover %}no-hover{% endif %}
"
{% if alt %}alt="{{alt}}"{% endif %}
src="{% if url_min %}{{url_min}}{% else %}{{url}}{% endif %}" />
</a>

View File

@ -1,10 +1,9 @@
<video
class="
{% if full %}full{% endif %}
{% if pixels %}pixels{% endif %}
{% if transparent %}transparent{% endif %}
"
{% if alt %}alt="{{alt}}"{% endif %}
controls
src="{{url}}">
class="
{% if full %}full{% endif %}
{% if pixels %}pixels{% endif %}
{% if transparent %}transparent{% endif %}
"
{% if alt %}alt="{{alt}}"{% endif %}
controls src="{{url}}">
</video>

View File

@ -5,12 +5,10 @@
<small> {{ terms | length }} tags in total </small>
<br />
<small>
<ul class="tags">
{% for tag in terms %}
<li>
<a class="tag" href="{{ get_taxonomy_url(kind='tags', name=tag.name) }}">{{ tag.name }}</a>
</li>
{% endfor %}
</ul>
<ul class="tags">
{% for tag in terms %}
<li><a class="tag" href="{{ get_taxonomy_url(kind='tags', name=tag.name) }}">{{ tag.name }}</a></li>
{% endfor %}
</ul>
</small>
{% endblock content %}

View File

@ -3,37 +3,29 @@
{% block content %}
<h1>Posts with tag “{{ term.name }}”</h1>
<small>
<a class="link-page" href="{{ get_url(path='tags') }}">See all tags</a>
<br />
{{ term.pages | length }} posts in total
<a class="link-page" href="{{ get_url(path='tags') }}">See all tags</a>
<br />
{{ term.pages | length }} posts in total
</small>
<article>
{% for page in term.pages %}
<h3>
<a class="link-page" href="{{ page.permalink | safe }}">
{{ page.title }}
</a>
</h3>
{%- if page.description %}
<p>{{ page.description }}</p>
{%- endif %}
<small>
<time datetime='{{ page.date | date(format='%+') }}' pubdate>
{{- page.date | date(format=config.extra.date_format) -}}
</time>
{%- if page.taxonomies %}
{%- for name, taxon in page.taxonomies %}
<span></span>
<ul class="tags">
{%-for item in taxon %}
<li>
<a class="tag" href="{{ get_taxonomy_url(kind=name, name=item) }}">{{ item }}</a>
</li>
{%- endfor %}
</ul>
{%- endfor %}
{%- endif %}
</small>
{% endfor %}
{% for page in term.pages %}
<h3><a class="link-page" href="{{ page.permalink | safe }}">{{ page.title }}</a></h3>
{%- if page.description %}
<p>{{ page.description }}</p>
{%- endif %}
<small>
<time datetime='{{ page.date | date(format=' %+') }}' pubdate>{{- page.date | date(format=config.extra.date_format) -}}</time>
{%- if page.taxonomies %}
{%- for name, taxon in page.taxonomies %}
<span></span>
<ul class="tags">
{%-for item in taxon %}
<li><a class="tag" href="{{ get_taxonomy_url(kind=name, name=item) }}">{{ item }}</a></li>
{%- endfor %}
</ul>
{%- endfor %}
{%- endif %}
</small>
{% endfor %}
</article>
{% endblock content %}