blog: Zola site, nginx image, Forgejo deploy pipeline
All checks were successful
Build and Deploy to Production / check (push) Successful in 9s
Build and Deploy to Production / build (push) Successful in 25s
Build and Deploy to Production / deploy (push) Successful in 36s

This commit is contained in:
Sergei Poljanski 2026-07-16 19:51:31 +04:00
commit a4b677f898
Signed by: asxpi
GPG key ID: 4F8851660FA4121B
23 changed files with 561 additions and 0 deletions

8
templates/404.html Normal file
View file

@ -0,0 +1,8 @@
{% extends "base.html" %}
{% block title %}404 · {{ config.title }}{% endblock title %}
{% block content %}
<h1>404</h1>
<p>No such page. <a href="/">Back to the index.</a></p>
{% endblock content %}

59
templates/base.html Normal file
View file

@ -0,0 +1,59 @@
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>{% block title %}{{ config.title }}{% endblock title %}</title>
<meta name="description" content="{% block description %}{{ config.description }}{% endblock description %}" />
<meta name="author" content="Sergei Poljanski" />
<link rel="canonical" href="{{ current_url | default(value=config.base_url) }}" />
<meta property="og:type" content="{% block og_type %}website{% endblock og_type %}" />
<meta property="og:site_name" content="{{ config.title }}" />
<meta property="og:title" content="{% block og_title %}{{ config.title }}{% endblock og_title %}" />
<meta property="og:url" content="{{ current_url | default(value=config.base_url) }}" />
{% block extra_head %}{% endblock extra_head %}
<link rel="icon" type="image/png" href="/hedgehog.png" sizes="32x32" />
<link rel="apple-touch-icon" href="/hedgehog.png" />
<link rel="alternate" type="application/atom+xml" title="{{ config.title }}" href="{{ get_url(path='atom.xml') }}" />
<!-- Fonts are self-hosted; see @font-face in style.css -->
<link rel="preload" href="/fonts/ibm-plex-sans-latin-400-normal.woff2" as="font" type="font/woff2" crossorigin />
<link rel="preload" href="/fonts/ibm-plex-sans-latin-600-normal.woff2" as="font" type="font/woff2" crossorigin />
<link rel="stylesheet" href="/style.css" />
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Blog",
"@id": "{{ config.base_url | safe }}/#blog",
"url": "{{ config.base_url | safe }}",
"name": "{{ config.title }}",
"description": "{{ config.description }}",
"inLanguage": "en",
"author": { "@id": "https://asxp.io/#person" },
"publisher": { "@id": "https://asxp.io/#organization" }
}
</script>
</head>
<body>
<main>
<header class="site-header">
<a class="site-title" href="/">blog.asxp.io</a>
<nav>
<a href="https://asxp.io">asxp.io</a>
<a href="{{ get_url(path='atom.xml') }}">feed</a>
</nav>
</header>
{% block content %}{% endblock content %}
</main>
<div class="footer">
<div class="footer-line">
IE Sergei Poljanski · Tbilisi, Georgia
</div>
</div>
</body>
</html>

12
templates/index.html Normal file
View file

@ -0,0 +1,12 @@
{% extends "base.html" %}
{% block content %}
<ul class="post-list">
{% for page in section.pages %}
<li>
<time datetime="{{ page.date }}">{{ page.date | date(format="%Y-%m-%d") }}</time>
<a href="{{ page.permalink }}">{{ page.title }}</a>
</li>
{% endfor %}
</ul>
{% endblock content %}

19
templates/page.html Normal file
View file

@ -0,0 +1,19 @@
{% extends "base.html" %}
{% block title %}{{ page.title }} · {{ config.title }}{% endblock title %}
{% block og_type %}article{% endblock og_type %}
{% block og_title %}{{ page.title }}{% endblock og_title %}
{% block description %}{{ page.description | default(value=config.description) }}{% endblock description %}
{% block extra_head %}
<meta property="article:published_time" content="{{ page.date }}" />
{% endblock extra_head %}
{% block content %}
<article>
<h1>{{ page.title }}</h1>
<p class="post-meta">
<time datetime="{{ page.date }}">{{ page.date | date(format="%Y-%m-%d") }}</time>
</p>
{{ page.content | safe }}
</article>
{% endblock content %}