summaryrefslogtreecommitdiff
path: root/templates
diff options
context:
space:
mode:
authorxAlpharax <42233094+xAlpharax@users.noreply.github.com>2023-11-18 12:15:16 +0200
committerxAlpharax <42233094+xAlpharax@users.noreply.github.com>2023-11-18 12:15:16 +0200
commit8628a4ae2e7c8998c8d2ffe2ecc51f2624aa66b1 (patch)
treebd4bfbb9a9a77dfca3f3849f567fae45155b10b8 /templates
parentd0a72793fffc208323292430bbbd8a0c7c2b6a2d (diff)
Massive changes - migrating to Hermit with a few tweaks.
Changes to be committed: new file: .gitignore modified: .gitmodules modified: config.toml new file: content/about.md deleted: content/blog/_index.md deleted: content/blog/first.md deleted: content/blog/second.md new file: content/posts/_index.md new file: content/posts/code_test.md new file: content/posts/good_first_post.md new file: content/posts/later_posts.md new file: content/posts/typography.md deleted: description deleted: index.html deleted: public/blog/first/index.html deleted: public/blog/index.html deleted: public/blog/second/index.html deleted: public/elasticlunr.min.js deleted: public/search_index.en.js deleted: public/typography.css new file: sass/_animate.scss new file: sass/_icons.scss new file: sass/_normalize.scss new file: sass/_predefined.scss new file: sass/_syntax.scss new file: sass/style.scss new file: static/favicon-32x32.png new file: static/favicon.ico new file: static/js/main.js modified: templates/404.html deleted: templates/base.html deleted: templates/blog-page.html deleted: templates/blog.html new file: templates/index.html new file: templates/macros.html new file: templates/page.html new file: templates/section.html new file: templates/tags/list.html new file: templates/tags/single.html new file: themes/404.html new file: themes/config.toml deleted: themes/hermit_zola
Diffstat (limited to 'templates')
-rw-r--r--templates/404.html27
-rw-r--r--templates/base.html20
-rw-r--r--templates/blog-page.html9
-rw-r--r--templates/blog.html13
-rw-r--r--templates/index.html121
-rw-r--r--templates/macros.html77
-rw-r--r--templates/page.html176
-rw-r--r--templates/section.html73
-rw-r--r--templates/tags/list.html54
-rw-r--r--templates/tags/single.html71
10 files changed, 598 insertions, 43 deletions
diff --git a/templates/404.html b/templates/404.html
index 882327e..ee5e10b 100644
--- a/templates/404.html
+++ b/templates/404.html
@@ -1 +1,26 @@
-404 Police Door not found.
+{% extends "index.html" %}
+
+{% block header %}
+{% endblock header %}
+
+{% block title %}
+{% endblock title %}
+
+{% block main %}
+<div id="spotlight" class="error-404 animated fadeIn">
+ <p class="img-404">
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 167.8 163.4" fill="currentColor"><title>404-lighthouse</title><path d="M83,27.5c.5-8.4,12.5-8.4,13,0,.2,3.2,5.2,3.2,5,0C100.7,21.3,96,16,89.5,16S78.3,21.3,78,27.5c-.2,3.2,4.8,3.2,5,0Z" transform="translate(-6.6 -6.6)"/><path d="M92,18V9c0-3.2-5-3.2-5,0v9c0,3.2,5,3.2,5,0Z" transform="translate(-6.6 -6.6)"/><path d="M78,44.5l-7.9,86.7L69,143.5c-.3,3.2,4.7,3.2,5,0l7.9-86.7L83,44.5c.3-3.2-4.7-3.2-5,0Z" transform="translate(-6.6 -6.6)"/><path d="M96,44.5l7.9,86.7,1.1,12.3c.3,3.2,5.3,3.2,5,0l-7.9-86.7L101,44.5c-.3-3.2-5.3-3.2-5,0Z" transform="translate(-6.6 -6.6)"/><path d="M88.5,26.5v18a1,1,0,0,0,2,0v-18a1,1,0,0,0-2,0Z" transform="translate(-6.6 -6.6)"/><path d="M79.1,69.6l21.2-12.2a1.5,1.5,0,0,0-1.5-2.6L77.6,67a1.5,1.5,0,0,0,1.5,2.6Z" transform="translate(-6.6 -6.6)"/><path d="M76.4,99.2,102.7,84a1.5,1.5,0,0,0-1.5-2.6L74.9,96.6a1.5,1.5,0,0,0,1.5,2.6Z" transform="translate(-6.6 -6.6)"/><path d="M73.7,128.7l31.4-18.1a1.5,1.5,0,0,0-1.5-2.6L72.2,126.1a1.5,1.5,0,0,0,1.5,2.6Z" transform="translate(-6.6 -6.6)"/><path d="M98.5,42h-18L83,44.5v-18L80.5,29h18L96,26.5v18c0,3.2,5,3.2,5,0v-18A2.5,2.5,0,0,0,98.5,24h-18A2.5,2.5,0,0,0,78,26.5v18A2.5,2.5,0,0,0,80.5,47h18C101.7,47,101.7,42,98.5,42Z" transform="translate(-6.6 -6.6)"/><path d="M172,165c-5.8-.3-9.5-4.7-15.8-3.8-2.6.4-4.4,1.6-6.7,2.7s-6.9,1.3-10.2-.5-9.5-3.2-14.3-1c-3.3,1.5-5.6,3.3-9.5,2.4-2.4-.5-4.3-2.3-6.7-3.1a15.5,15.5,0,0,0-8.3-.3c-2.5.6-4.3,2.2-6.7,3.1-6.2,2.2-10.8-3.5-16.9-3.5s-10.7,5.6-17,3.5c-2.3-.8-4.2-2.5-6.7-3.1a15.4,15.4,0,0,0-8.3.3c-3.1,1-5.4,3.3-8.9,3.3s-5.8-2.2-8.9-3.3a15.4,15.4,0,0,0-8.8-.2c-3.4,1-5.7,3.3-9.5,3.5s-3.2,5.2,0,5c6-.3,10.9-5.5,17-3.5,2.4.8,4.2,2.5,6.7,3.1a15.4,15.4,0,0,0,8.3-.3c2.3-.8,4.2-2.5,6.7-3.1s6.3.9,9.5,2.4c4.8,2.3,9.8,1.5,14.3-1s6.7-2.2,10.2-.5,4.1,2.3,6.7,2.7a14.9,14.9,0,0,0,7.9-1c2.7-1.2,4.8-2.9,7.9-2.9s5.2,1.7,7.9,2.9a14.9,14.9,0,0,0,7.9,1c2.6-.4,4.4-1.6,6.7-2.7s6.9-1.3,10.2.5a15.9,15.9,0,0,0,16.1,0c7.3-3.9,11.9,2,19.1,2.3,3.2.2,3.2-4.8,0-5Z" transform="translate(-6.6 -6.6)"/><path d="M46.3,165.8l9.6-9.3c4.9-4.6,9.7-11.1,17.2-9.2,4.9,1.2,9.2,5.5,13,8.5s8,6.5,12.1,9.7c2.6,2,5-2.4,2.5-4.3-5-3.8-9.7-7.9-14.7-11.7s-8.7-7-14.6-7.6-11.2,3.6-15.9,8S47,158,42.7,162.2c-2.3,2.3,1.2,5.8,3.5,3.5Z" transform="translate(-6.6 -6.6)"/><path d="M84.8,152.8c8.3-3.7,16.7-8.3,26.1-5.6s15.5,9,19.4,16.6c1.5,2.9,5.8.3,4.3-2.5-4.5-8.7-12.9-16.2-22.4-18.9s-20.3,1.7-29.9,6.1c-2.9,1.3-.4,5.6,2.5,4.3Z" transform="translate(-6.6 -6.6)"/><g class="animated flash infinite slower" ><path d="M62.5,34h-23a1.5,1.5,0,0,0,0,3h23a1.5,1.5,0,0,0,0-3Z" transform="translate(-6.6 -6.6)"/><path d="M63.3,25.2l-18-9c-1.7-.9-3.2,1.7-1.5,2.6l18,9c1.7.9,3.2-1.7,1.5-2.6Z" transform="translate(-6.6 -6.6)"/><path d="M61.7,43.2l-18,9c-1.7.9-.2,3.5,1.5,2.6l18-9c1.7-.9.2-3.5-1.5-2.6Z" transform="translate(-6.6 -6.6)"/><path d="M116.5,37h23a1.5,1.5,0,0,0,0-3h-23a1.5,1.5,0,0,0,0,3Z" transform="translate(-6.6 -6.6)"/><path d="M117.3,27.8l18-9c1.7-.9.2-3.5-1.5-2.6l-18,9c-1.7.9-.2,3.5,1.5,2.6Z" transform="translate(-6.6 -6.6)"/><path d="M115.7,45.8l18,9c1.7.9,3.2-1.7,1.5-2.6l-18-9c-1.7-.9-3.2,1.7-1.5,2.6Z" transform="translate(-6.6 -6.6)"/></g></svg>
+ </p>
+ <div class="banner-404">
+ <h1>404</h1>
+ <p>Oops, page not found…</p>
+ <p class="btn-404">
+ <a href="{{config.base_url}}"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-home"><path d="M3 9l9-7 9 7v11a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z"></path><polyline points="9 22 9 12 15 12 15 22"></polyline></svg>Home</a>
+ <a href='{{config.base_url}}/posts'><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-archive"><polyline points="21 8 21 21 3 21 3 8"></polyline><rect x="1" y="3" width="22" height="5"></rect><line x1="10" y1="12" x2="14" y2="12"></line></svg>Archives</a>
+ </p>
+ </div>
+</div>
+{% endblock main %}
+
+{% block footer %}
+{% endblock footer %}
diff --git a/templates/base.html b/templates/base.html
deleted file mode 100644
index a85bca1..0000000
--- a/templates/base.html
+++ /dev/null
@@ -1,20 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-
-<head>
- <meta charset="utf-8">
- <title>MyBlog</title>
- {% block rss %}
- <link rel="alternate" type="application/atom+xml" title="RSS" href="{{ get_url(path="atom.xml", trailing_slash=false) }}">
- {% endblock %}
-</head>
-
-<body>
- <section class="section">
- <div class="container">
- {% block content %} {% endblock %}
- </div>
- </section>
-</body>
-
-</html>
diff --git a/templates/blog-page.html b/templates/blog-page.html
deleted file mode 100644
index f0f638e..0000000
--- a/templates/blog-page.html
+++ /dev/null
@@ -1,9 +0,0 @@
-{% extends "base.html" %}
-
-{% block content %}
-<h1 class="title">
- {{ page.title }}
-</h1>
-<p class="subtitle"><strong>{{ page.date }}</strong></p>
-{{ page.content | safe }}
-{% endblock content %}
diff --git a/templates/blog.html b/templates/blog.html
deleted file mode 100644
index 8e3cc52..0000000
--- a/templates/blog.html
+++ /dev/null
@@ -1,13 +0,0 @@
-{% extends "base.html" %}
-
-{% block content %}
-<h1 class="title">
- {{ section.title }}
-</h1>
-<ul>
- <!-- If you are using pagination, section.pages will be empty. You need to use the paginator object -->
- {% for page in section.pages %}
- <li><a href="{{ page.permalink | safe }}">{{ page.title }}</a></li>
- {% endfor %}
-</ul>
-{% endblock content %}
diff --git a/templates/index.html b/templates/index.html
new file mode 100644
index 0000000..9066226
--- /dev/null
+++ b/templates/index.html
@@ -0,0 +1,121 @@
+{% import "macros.html" as macros %}
+<!DOCTYPE html>
+<html lang="en-us">
+ <meta charset="UTF-8" />
+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
+ <meta http-equiv="X-UA-Compatible" content="ie=edge" />
+ <meta itemprop="name" content="{{config.title}}" />
+ <meta itemprop="description" content="{{config.description}}" />
+
+ <link rel="apple-touch-icon" sizes="180x180" href="{{get_url(path="apple-touch-icon.png")}}"/>
+ <link rel="icon" type="image/png" sizes="32x32" href="{{get_url(path="favicon-32x32.png")}}" />
+ <link
+ rel="icon"
+ type="image/png"
+ sizes="16x16"
+ href="{{get_url(path="favicon-16x16.png")}}"
+ />
+ <link
+ rel="shortcut icon"
+ href="{{get_url(path="favicon.ico")}}"
+ />
+ <link rel="stylesheet" href="{{get_url(path="style.css")}}"/>
+ {% if page.title %}
+ <title>{{page.title}}</title>
+ {% else %}
+ <title>{{config.title}}</title>
+ {% endif %}
+
+ {% if config.generate_feed %}
+ <link rel="alternate" type="application/rss+xml" title="RSS" href="{{ get_url(path=config.feed_filename, trailing_slash=false) }}">
+ {% endif %}
+
+ <body id="page">
+
+ {% block header %}
+ {% endblock header %}
+
+ {% block title %}
+ <div id="spotlight" class="animated fadeIn">
+ <div id="home-center">
+ <h1 id="home-title">{{config.title}}</h1>
+ <p id="home-subtitle">{{config.extra.home_subtitle}}</p>
+ <div id="home-social">
+ {{macros::render_social_icons()}}
+ </div>
+ {% endblock title %}
+ {% block main %}
+ <nav id="home-nav" class="site-nav">
+ {% for s in config.extra.hermit_menu %}
+ <a href="{{config.base_url ~ s.link}}">{{s.name}}</a>
+ {% endfor %}
+ </nav>
+ {% endblock main %}
+ </div>
+
+ {% block footer %}
+ <div id="home-footer">
+ <p>&copy; {{ now() | date(format="%Y")}}
+ <a href="{{config.base_url}}">{{config.extra.author.name}}</a>
+ {% if config.generate_feed %}
+ &#183; <a href="{{ get_url(path=config.feed_filename, trailing_slash=false) }}" target="_blank" title="rss">
+ <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-rss"><path d="M4 11a9 9 0 0 1 9 9"></path><path d="M4 4a16 16 0 0 1 16 16"></path><circle cx="5" cy="19" r="1"></circle></svg>
+ {% endif %}
+ </a>
+ </p>
+ </div>
+ {% endblock footer %}
+ </div>
+
+ <script src="{{get_url(path="js/main.js")}}"></script>
+
+ <!-- Math rendering -->
+ <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/katex@0.11.1/dist/katex.min.css" integrity="sha384-zB1R0rpPzHqg7Kpt0Aljp8JPLqbXI3bhnPWROx27a9N0Ll6ZP/+DiW/UqRcLbRjq" crossorigin="anonymous">
+ <script defer src="https://cdn.jsdelivr.net/npm/katex@0.11.1/dist/katex.min.js" integrity="sha384-y23I5Q6l+B6vatafAwxRu/0oK/79VlbSz7Q9aiSZUvyWYIYsd+qj+o24G5ZU2zJz" crossorigin="anonymous"></script>
+ <script defer src="https://cdn.jsdelivr.net/npm/katex@0.11.1/dist/contrib/auto-render.min.js" integrity="sha384-kWPLUVMOks5AQFrykwIup5lo0m3iMkkHrD0uJ4H5cjeGihAutqP0yW0J6dpFiVkI" crossorigin="anonymous"
+ onload="renderMathInElement(document.body, { delimiters: [ {left: '$$', right: '$$', display: true}, {left: '$', right: '$', display: false}, {left: '\\[', right: '\\]', display: true}, {left: '\\(', right: '\\)', display: false}]});"></script>
+
+ {% if config.extra.highlightjs.enable %}
+ <link href="https://unpkg.com/highlightjs-badge/highlightjs/styles/{{config.extra.highlightjs.theme}}.css" rel="stylesheet">
+ <!-- https://cdn.jsdelivr.net/gh/highlightjs/cdn-release@10.1.1/build/styles/ for min version -->
+ <script src="https://unpkg.com/highlightjs-badge/highlightjs/highlight.pack.js"></script>
+ <script src="https://unpkg.com/highlightjs-badge/highlightjs-badge.min.js"></script>
+ <script>
+ var pres = document.querySelectorAll("pre>code");
+ for (var i = 0; i < pres.length; i++) {
+ hljs.highlightBlock(pres[i]);
+ }
+ </script>
+ {% if config.extra.highlightjs.clipboard %}
+ <script src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.6/clipboard.min.js"></script>
+ <script>
+ var options = {
+ copyIconClass: "gg-clipboard",
+ checkIconClass: "gg-check"
+ };
+ window.highlightJsBadge(options);
+ </script>
+ {% endif %}
+
+ {% endif %}
+
+ {% if not config.extra.highlightjs.enable %}
+ <script src="{{get_url(path="js/copy.js")}}"></script>
+ {% endif %}
+ <script src="{{get_url(path="js/main.js")}}"></script>
+
+ {% block js_footer %}
+ {% endblock js_footer %}
+
+ {% if config.extra.google_analytics.enable %}
+ <!-- Global Site Tag (gtag.js) - Google Analytics -->
+ <script async src="https://www.googletagmanager.com/gtag/js?id={{ config.extra.google_analytics.id }}"></script>
+ <script>
+ window.dataLayer = window.dataLayer || [];
+ function gtag(){dataLayer.push(arguments);}
+ gtag('js', new Date());
+ gtag('config', '{{ config.extra.google_analytics.id }}');
+ </script>
+ {% endif %}
+ </body>
+</html>
diff --git a/templates/macros.html b/templates/macros.html
new file mode 100644
index 0000000..ab2f0cc
--- /dev/null
+++ b/templates/macros.html
@@ -0,0 +1,77 @@
+{% macro read_time(words) %}
+<span class="reading-time" title="Estimated read time">
+ {% if words < 530 %}
+ 1 min read
+ {% else %}
+ {{ words / 265 | round }} min read
+ {% endif %}
+</span>
+{% endmacro read_time %}
+
+{% macro footer() %}
+
+<footer id="site-footer" class="section-inner thin animated fadeIn faster">
+ <p>&copy; {{ now() | date(format="%Y") }} <a href="{{ config.base_url }}">{{ config.extra.author.name }}</a>{{ config.extra.footer_copyright | safe }}</p>
+ <p>Made with <a href="https://www.getzola.org" target="_blank" rel="noopener">Zola</a> &#183; Theme <a href="https://github.com/VersBinarii/hermit_zola" target="_blank" rel="noopener">Hermit_Zola</a>
+ {% if config.generate_feed %}
+ &#183; <a href="{{ get_url(path=config.feed_filename, trailing_slash=false) }}" target="_blank" title="rss"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-rss"><path d="M4 11a9 9 0 0 1 9 9"></path><path d="M4 4a16 16 0 0 1 16 16"></path><circle cx="5" cy="19" r="1"></circle></svg></a>
+ {% endif %}
+ </p>
+</footer>
+
+{% endmacro footer %}
+
+
+
+{% macro render_social_icons() %}
+{% for icon in config.extra.hermit_social %}
+<a href="{{ icon.link }}" target="_blank" rel="noopener me"
+ title="{{ icon.name }}">
+ {% if icon.name == "codepen" %}
+ <svg xmlns="http://www.w3.org/2000/svg" class="feather" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polygon points="12 2 22 8.5 22 15.5 12 22 2 15.5 2 8.5 12 2"></polygon><line x1="12" y1="22" x2="12" y2="15.5"></line><polyline points="22 8.5 12 15.5 2 8.5"></polyline><polyline points="2 15.5 12 8.5 22 15.5"></polyline><line x1="12" y1="2" x2="12" y2="8.5"></line></svg>
+ {% elif icon.name == "facebook" %}
+ <svg xmlns="http://www.w3.org/2000/svg" class="feather" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M18 2h-3a5 5 0 0 0-5 5v3H7v4h3v8h4v-8h3l1-4h-4V7a1 1 0 0 1 1-1h3z"></path></svg>
+ {% elif icon.name == "github" %}
+ <svg xmlns="http://www.w3.org/2000/svg" class="feather" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M9 19c-5 1.5-5-2.5-7-3m14 6v-3.87a3.37 3.37 0 0 0-.94-2.61c3.14-.35 6.44-1.54 6.44-7A5.44 5.44 0 0 0 20 4.77 5.07 5.07 0 0 0 19.91 1S18.73.65 16 2.48a13.38 13.38 0 0 0-7 0C6.27.65 5.09 1 5.09 1A5.07 5.07 0 0 0 5 4.77a5.44 5.44 0 0 0-1.5 3.78c0 5.42 3.3 6.61 6.44 7A3.37 3.37 0 0 0 9 18.13V22"></path></svg>
+ {% elif icon.name == "gitlab" %}
+ <svg xmlns="http://www.w3.org/2000/svg" class="feather" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M22.65 14.39L12 22.13 1.35 14.39a.84.84 0 0 1-.3-.94l1.22-3.78 2.44-7.51A.42.42 0 0 1 4.82 2a.43.43 0 0 1 .58 0 .42.42 0 0 1 .11.18l2.44 7.49h8.1l2.44-7.51A.42.42 0 0 1 18.6 2a.43.43 0 0 1 .58 0 .42.42 0 0 1 .11.18l2.44 7.51L23 13.45a.84.84 0 0 1-.35.94z"></path></svg>
+ {% elif icon.name == "instagram" %}
+ <svg xmlns="http://www.w3.org/2000/svg" class="feather" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="2" y="2" width="20" height="20" rx="5" ry="5"></rect><path d="M16 11.37A4 4 0 1 1 12.63 8 4 4 0 0 1 16 11.37z"></path><line x1="17.5" y1="6.5" x2="17.5" y2="6.5"></line></svg>
+ {% elif icon.name == "linkedin" %}
+ <svg xmlns="http://www.w3.org/2000/svg" class="feather" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M16 8a6 6 0 0 1 6 6v7h-4v-7a2 2 0 0 0-2-2 2 2 0 0 0-2 2v7h-4v-7a6 6 0 0 1 6-6z"></path><rect x="2" y="9" width="4" height="12"></rect><circle cx="4" cy="4" r="2"></circle></svg>
+ {% elif icon.name == "slack" %}
+ <svg xmlns="http://www.w3.org/2000/svg" class="feather" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M22.08 9C19.81 1.41 16.54-.35 9 1.92S-.35 7.46 1.92 15 7.46 24.35 15 22.08 24.35 16.54 22.08 9z"></path><line x1="12.57" y1="5.99" x2="16.15" y2="16.39"></line><line x1="7.85" y1="7.61" x2="11.43" y2="18.01"></line><line x1="16.39" y1="7.85" x2="5.99" y2="11.43"></line><line x1="18.01" y1="12.57" x2="7.61" y2="16.15"></line></svg>
+ {% elif icon.name == "stackoverflow" %}
+ <svg xmlns="http://www.w3.org/2000/svg" class="feather" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M2.913 16.041v6.848h17.599v-6.848M7.16 18.696h8.925M7.65 13.937l8.675 1.8M9.214 9.124l8.058 3.758M12.086 4.65l6.849 5.66M15.774 1.111l5.313 7.162"/></svg>
+ {% elif icon.name == "telegram" %}
+ <svg xmlns="http://www.w3.org/2000/svg" class="feather" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M21.198 2.433a2.242 2.242 0 0 0-1.022.215l-8.609 3.33c-2.068.8-4.133 1.598-5.724 2.21a405.15 405.15 0 0 1-2.849 1.09c-.42.147-.99.332-1.473.901-.728.968.193 1.798.919 2.286 1.61.516 3.275 1.009 4.654 1.472.509 1.793.997 3.592 1.48 5.388.16.36.506.494.864.498l-.002.018s.281.028.555-.038a2.1 2.1 0 0 0 .933-.517c.345-.324 1.28-1.244 1.811-1.764l3.999 2.952.032.018s.442.311 1.09.355c.324.022.75-.04 1.116-.308.37-.27.613-.702.728-1.196.342-1.492 2.61-12.285 2.997-14.072l-.01.042c.27-1.006.17-1.928-.455-2.474a1.654 1.654 0 0 0-1.034-.407z"/></svg>
+ {% elif icon.name == "mastodon" %}
+ <svg xmlns="http://www.w3.org/2000/svg" class="feather" width="24" height="24" viewBox="0 0 24 24" fill="currentColor" stroke="none"><path fill="none" d="M0 0h24v24H0z"/> <path fill-rule="nonzero" d="M3.018 12.008c-.032-1.26-.012-2.448-.012-3.442 0-4.338 2.843-5.61 2.843-5.61 1.433-.658 3.892-.935 6.45-.956h.062c2.557.02 5.018.298 6.451.956 0 0 2.843 1.272 2.843 5.61 0 0 .036 3.201-.396 5.424-.275 1.41-2.457 2.955-4.963 3.254-1.306.156-2.593.3-3.965.236-2.243-.103-4.014-.535-4.014-.535 0 .218.014.426.04.62.084.633.299 1.095.605 1.435.766.85 2.106.93 3.395.974 1.82.063 3.44-.449 3.44-.449l.076 1.646s-1.274.684-3.542.81c-1.25.068-2.803-.032-4.612-.51-1.532-.406-2.568-1.29-3.27-2.471-1.093-1.843-1.368-4.406-1.431-6.992zm3.3 4.937v-2.548l2.474.605a20.54 20.54 0 0 0 1.303.245c.753.116 1.538.2 2.328.235 1.019.047 1.901-.017 3.636-.224 1.663-.199 3.148-1.196 3.236-1.65.082-.422.151-.922.206-1.482a33.6 33.6 0 0 0 .137-2.245c.015-.51.02-.945.017-1.256v-.059c0-1.43-.369-2.438-.963-3.158a3.008 3.008 0 0 0-.584-.548c-.09-.064-.135-.089-.13-.087-1.013-.465-3.093-.752-5.617-.773h-.046c-2.54.02-4.62.308-5.65.782.023-.01-.021.014-.112.078a3.008 3.008 0 0 0-.584.548c-.594.72-.963 1.729-.963 3.158 0 .232 0 .397-.003.875a77.483 77.483 0 0 0 .014 2.518c.054 2.197.264 3.835.7 5.041.212.587.472 1.07.78 1.45a5.7 5.7 0 0 1-.18-1.505zM8.084 6.37a1.143 1.143 0 1 1 0 2.287 1.143 1.143 0 0 1 0-2.287z"/> </svg>
+ {% elif icon.name == "twitter" %}
+ <svg xmlns="http://www.w3.org/2000/svg" class="feather" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M23 3a10.9 10.9 0 0 1-3.14 1.53 4.48 4.48 0 0 0-7.86 3v1A10.66 10.66 0 0 1 3 4s-4 9 5 13a11.64 11.64 0 0 1-7 2c9 5 20 0 20-11.5a4.5 4.5 0 0 0-.08-.83A7.72 7.72 0 0 0 23 3z"></path></svg>
+ {% elif icon.name == "youtube" %}
+ <svg xmlns="http://www.w3.org/2000/svg" class="feather" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M22.54 6.42a2.78 2.78 0 0 0-1.94-2C18.88 4 12 4 12 4s-6.88 0-8.6.46a2.78 2.78 0 0 0-1.94 2A29 29 0 0 0 1 11.75a29 29 0 0 0 .46 5.33A2.78 2.78 0 0 0 3.4 19c1.72.46 8.6.46 8.6.46s6.88 0 8.6-.46a2.78 2.78 0 0 0 1.94-2 29 29 0 0 0 .46-5.25 29 29 0 0 0-.46-5.33z"></path><polygon points="9.75 15.02 15.5 11.75 9.75 8.48 9.75 15.02"></polygon></svg>
+ {% elif icon.name == "email" %}
+ <svg xmlns="http://www.w3.org/2000/svg" class="feather" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M4 4h16c1.1 0 2 .9 2 2v12c0 1.1-.9 2-2 2H4c-1.1 0-2-.9-2-2V6c0-1.1.9-2 2-2z"></path><polyline points="22,6 12,13 2,6"></polyline></svg>
+ {% elif icon.name == "dribbble" %}
+ <svg xmlns="http://www.w3.org/2000/svg" class="feather" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle style="font-variation-settings:normal" cx="12.004" cy="12" r="9.39" paint-order="stroke fill markers"/><path style="font-variation-settings:normal" d="M5.858 19.136s2.343-5.79 8.161-6.422c5.818-.633 7.442.479 7.442.479M2.68 10.839s4.91.752 10.112-1.11c5.202-1.863 5.887-4.601 5.887-4.601"/><path style="font-variation-settings:normal" d="M8.533 3.208s2.888 2.73 5.339 9.235c2.451 6.505 2.344 8.4 2.344 8.4"/></svg>
+ {% elif icon.name == "behance" %}
+ <svg xmlns="http://www.w3.org/2000/svg" class="feather" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path paint-order="stroke fill markers" stroke-linejoin="miter" stroke-width="2" style="font-variation-settings:normal" d="M1.774 18.063V5.466h5.51c1.978 0 3.116 1.326 3.055 2.806-.043 1.049-.711 2.988-2.643 2.988h-5.93H7.73c1.224 0 3.532 1.13 3.532 3.532 0 2.4-1.873 3.27-3.318 3.27zm12.57-4.459h7.89s.012-4.18-4.167-4.18c-5.237 0-5.277 9.11-.3 9.11 3.06 0 3.935-1.806 3.935-1.806M15.526 5.823h4.987"/></svg>
+ {% elif icon.name == "freepik" %}
+ <svg xmlns="http://www.w3.org/2000/svg" class="feather" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M5.737 17.28s3.423.84 7.61.162c4.188-.676 6.862-2.57 6.862-2.57s.28 3.943-4.967 5.33c-5.248 1.388-8.543.657-9.506-2.923zm-.62-3.104s4.491 1.361 8.728.344c4.237-1.016 5.94-2.568 5.94-2.568s-1.81-6.448-7.405-5.648c-5.597.8-8.061 4.414-7.263 7.872z" style="font-variation-settings:normal" stroke-linejoin="round"/><path d="M1.265 12.607c.159-1.98.561-3.898 2.08-5.701m5.148-3.29c2.006-.66 3.968-1.157 6.446-.844m5.202 2.98c1.192 1.275 1.963 2.163 2.594 3.815" style="font-variation-settings:normal" stroke="currentColor" stroke-linejoin="round"/><circle r=".989" cy="10.404" cx="14.746" fill="currentColor" stroke="none"/><circle cx="9.637" cy="11.305" r="1.477" fill="currentColor" stroke="none"/></svg>
+ {% elif icon.name == "adobestock" %}
+ <svg xmlns="http://www.w3.org/2000/svg" class="feather" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path style="font-variation-settings:normal" d="M2.235 2.235h19.53v19.53H2.235z"/><path style="font-variation-settings:normal" d="M6.165 16.659s3.16 1.2 4.602-.17c1.37-1.3.787-3.163-.754-4.05-1.68-.969-3.284-1.788-3.036-3.536.446-3.138 4.386-1.851 4.386-1.851M15.792 7.794v7.774c0 1.023.635 1.766 2.043 1.624M17.826 10.04h-3.582"/></svg>
+ {% elif icon.name == "shutterstock" %}
+ <svg xmlns="http://www.w3.org/2000/svg" class="feather" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect ry="5" rx="5" height="20" width="20" y="2" x="2"/><path d="M7.728 11.725V9.032c0-1.025.824-1.85 1.849-1.85h2.815m3.88 5.093v2.693a1.845 1.845 0 0 1-1.849 1.85h-2.815" stroke-linecap="square" stroke-linejoin="miter"/></svg>
+ {% elif icon.name == "123rf" %}
+ <svg xmlns="http://www.w3.org/2000/svg" class="feather" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path style="font-variation-settings:normal" d="M7.48 3.826c-.702 0-1.345.388-1.675 1.008l-.711 1.334a4.214 4.214 0 0 1-1.614 1.67l-.388.224a2.207 2.207 0 0 0-1.104 1.913v8.607c0 .878.712 1.592 1.59 1.592h1.186c.468 0 .916-.19 1.244-.524l1.478-1.504c.266-.27.628-.421 1.006-.421h7.04c.378 0 .74.151 1.005.421l1.478 1.504c.329.334.778.524 1.247.524h1.183c.879 0 1.592-.714 1.592-1.592V9.975c0-.79-.422-1.518-1.106-1.912l-.388-.225a4.214 4.214 0 0 1-1.613-1.67l-.711-1.334a1.899 1.899 0 0 0-1.676-1.008z" stroke-linejoin="miter"/><circle cx="12" cy="12.467" r="2.723"/></svg>
+ {% elif icon.name == "dreamstime" %}
+ <svg xmlns="http://www.w3.org/2000/svg" class="feather" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M19.834 20.994s4.824-4.08 2.044-12.03C19.252 1.456 6.822-1.223 2.508 7.566c-3.936 8.023 2.18 14.46 7.88 14.374 4.889-.075 8.475-3.226 7.813-8.604-.76-6.18-6.73-6.816-9.275-4.184-2.256 2.334-1.816 7.034.873 7.823 2.241.844 4.661-1.265 3.161-3.215" style="font-variation-settings:normal" stroke="currentColor" stroke-linejoin="bevel" paint-order="stroke fill markers"/></svg>
+ {% elif icon.name == "paypal" %}
+ <svg xmlns="http://www.w3.org/2000/svg" class="feather" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M7.144 19.532l1.049-5.751c.11-.606.691-1.002 1.304-.948 2.155.192 6.877.1 8.818-4.002 2.554-5.397-.59-7.769-6.295-7.769H7.43a1.97 1.97 0 0 0-1.944 1.655L2.77 19.507a.857.857 0 0 0 .846.994h2.368a1.18 1.18 0 0 0 1.161-.969zM7.967 22.522a.74.74 0 0 0 .666.416h2.313c.492 0 .923-.351 1.003-.837l.759-4.601c.095-.523.597-.866 1.127-.819 1.86.166 5.567-.118 6.85-3.821.554-1.6.705-2.954.408-4.018" style="font-variation-settings:normal" stroke="currentColor" stroke-linejoin="miter"/></svg>
+ {% else %}
+ <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-link"><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"></path><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"></path></svg>
+ {% endif %}
+</a>
+{% endfor %}
+{% endmacro render_social_icons %}
diff --git a/templates/page.html b/templates/page.html
new file mode 100644
index 0000000..bd58389
--- /dev/null
+++ b/templates/page.html
@@ -0,0 +1,176 @@
+{% extends "index.html" %}
+
+{% import "macros.html" as macros %}
+
+{% block header %}
+<header id="site-header" class="animated slideInUp faster">
+ <div class="hdr-wrapper section-inner">
+ <div class="hdr-left">
+ <div class="site-branding">
+ <a href="{{ config.base_url}}">{{ config.title }}</a>
+ </div>
+ <nav class="site-nav hide-in-mobile">
+
+ {% for menu_item in config.extra.hermit_menu %}
+ <a href="{{ config.base_url ~ menu_item.link }}">{{ menu_item.name }}</a>
+ {% endfor %}
+ </nav>
+ </div>
+ <div class="hdr-right hdr-icons">
+ <span class="hdr-social hide-in-mobile">
+ {{ macros::render_social_icons() }}
+ </span>
+ <button id="menu-btn" class="hdr-btn" title="Menu">
+ <svg
+ xmlns="http://www.w3.org/2000/svg"
+ width="24"
+ height="24"
+ viewBox="0 0 24 24"
+ fill="none"
+ stroke="currentColor"
+ stroke-width="2"
+ stroke-linecap="round"
+ stroke-linejoin="round"
+ class="feather feather-menu"
+ >
+ <line x1="3" y1="12" x2="21" y2="12"></line>
+ <line x1="3" y1="6" x2="21" y2="6"></line>
+ <line x1="3" y1="18" x2="21" y2="18"></line>
+ </svg>
+ </button>
+ </div>
+ </div>
+</header>
+<div id="mobile-menu" class="animated fast">
+ <ul>
+ {% for menu_item in config.extra.hermit_menu %}
+ <li><a href="{{ config.base_url ~ menu_item.link }}">{{ menu_item.name }}</a></li>
+ {% endfor %}
+ </ul>
+</div>
+{% endblock header %}
+
+{% block title %}
+{% endblock title %}
+
+{% block main %}
+<main class="site-main section-inner animated fadeIn faster">
+ <article class="thin">
+ <header class="post-header">
+ <div class="post-meta">
+ {% if page.date %}
+ <span>{{ page.date | date(format="%b %d, %Y")}}</span>
+ <small> - {{ macros::read_time(words=page.word_count) }}</small>
+ {% endif %}
+ {% if page.extra.toc %}
+ <button id="toc-btn" class="hdr-btn desktop-only-ib">
+ <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24"
+ viewBox="0 0 24 24" fill="none" stroke="currentColor"
+ stroke-width="2" stroke-linecap="round" stroke-linejoin="round"
+ class="feather feather-list">
+ <line x1="8" y1="6" x2="21" y2="6"></line>
+ <line x1="8" y1="12" x2="21" y2="12"></line>
+ <line x1="8" y1="18" x2="21" y2="18"></line>
+ <line x1="3" y1="6" x2="3" y2="6"></line>
+ <line x1="3" y1="12" x2="3" y2="12"></line>
+ <line x1="3" y1="18" x2="3" y2="18"></line>
+ </svg>
+ </button>
+ {% endif %}
+ </div>
+ <h1>{{ page.title }}</h1>
+ </header>
+
+ <div class="content">
+
+ {{ page.content | safe }}
+ </div>
+ <hr class="post-end">
+ <footer class="post-info">
+ {% if page.taxonomies and page.taxonomies.tags %}
+ <p>
+ <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-tag meta-icon"><path d="M20.59 13.41l-7.17 7.17a2 2 0 0 1-2.83 0L2 12V2h10l8.59 8.59a2 2 0 0 1 0 2.82z"></path><line x1="7" y1="7" x2="7" y2="7"></line></svg>
+ {% for k, tags in page.taxonomies %}
+ {% for t in tags %}
+ <span class="tag"><a href="{{get_taxonomy_url(kind="tags", name=t)}}">{{t}}</a></span>
+ {% endfor %}
+ {% endfor %}
+ </p>
+ {% endif %}
+ <p><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-file-text"><path d="M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"></path><polyline points="14 2 14 8 20 8"></polyline><line x1="16" y1="13" x2="8" y2="13"></line><line x1="16" y1="17" x2="8" y2="17"></line><polyline points="10 9 9 9 8 9"></polyline></svg>{{ page.word_count}} Words</p>
+ {% if page.date %}
+ <p><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-calendar"><rect x="3" y="4" width="18" height="18" rx="2" ry="2"></rect><line x1="16" y1="2" x2="16" y2="6"></line><line x1="8" y1="2" x2="8" y2="6"></line><line x1="3" y1="10" x2="21" y2="10"></line></svg>{{ page.date }}</p>
+ {% endif %}
+ </footer>
+ </article>
+ {% if page.extra.toc %}
+ <aside id="toc">
+ <div id="TableOfContents">
+ <div class="toc-title">Table of content</div>
+ <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>
+ </div>
+ </aside>
+ {% endif %}
+
+ <div class="post-nav thin">
+ {% if page.later %}
+ <a class="next-post" href="{{ page.later.permalink }}">
+ <span class="post-nav-label">
+ <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-arrow-left">
+ <line x1="19" y1="12" x2="5" y2="12"></line>
+ <polyline points="12 19 5 12 12 5"></polyline>
+ </svg>&nbsp;Newer</span><br>
+ <span>{{ page.later.title }}</span>
+ </a>
+ {% endif %}
+ {% if page.earlier %}
+ <a class="prev-post" href="{{ page.earlier.permalink }}">
+ <span class="post-nav-label">Older&nbsp;<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-arrow-right"><line x1="5" y1="12" x2="19" y2="12"></line><polyline points="12 5 19 12 12 19"></polyline></svg></span><br>
+ <span>{{ page.earlier.title }}</span>
+ </a>
+ {% endif %}
+ </div>
+
+ {% if config.extra.disqus.enable and not page.extra.disable_comments%}
+ <div id="disqus_thread" class="thin"></div>
+ <script>
+ /**
+ * RECOMMENDED CONFIGURATION VARIABLES: EDIT AND UNCOMMENT THE SECTION BELOW TO INSERT DYNAMIC VALUES FROM YOUR PLATFORM OR CMS.
+ * LEARN WHY DEFINING THESE VARIABLES IS IMPORTANT: https://disqus.com/admin/universalcode/#configuration-variables */
+
+ (function() { // DON'T EDIT BELOW THIS LINE
+ var disqus_config = function () {
+ this.page.url = "{{ page.permalink }}"; // Replace PAGE_URL with your page's canonical URL variable
+ this.page.identifier = "{{ page.permalink }}"; // Replace PAGE_IDENTIFIER with your page's unique identifier variable
+ };
+ var d = document, s = d.createElement('script');
+ s.src = 'https://{{config.extra.disqus.shortname}}.disqus.com/embed.js';
+ s.setAttribute('data-timestamp', +new Date());
+ (d.head || d.body).appendChild(s);
+ })();
+ </script>
+ <noscript>Please enable JavaScript to view the <a href="https://disqus.com/?ref_noscript">comments powered by Disqus.</a></noscript>
+ {% endif %}
+</main>
+{% endblock main %}
+
+{% block footer %}
+
+{{ macros::footer() }}
+
+{% endblock footer %}
diff --git a/templates/section.html b/templates/section.html
new file mode 100644
index 0000000..446c57c
--- /dev/null
+++ b/templates/section.html
@@ -0,0 +1,73 @@
+{% extends "index.html" %} {% import "macros.html" as macros %} {% block header
+%}
+<header id="site-header" class="animated slideInUp faster">
+ <div class="hdr-wrapper section-inner">
+ <div class="hdr-left">
+ <div class="site-branding">
+ <a href="{{ config.base_url}}">{{ config.title }}</a>
+ </div>
+ <nav class="site-nav hide-in-mobile">
+ {% for menu_item in config.extra.hermit_menu %}
+ <a href="{{ config.base_url ~ menu_item.link }}"
+ >{{ menu_item.name }}</a
+ >
+ {% endfor %}
+ </nav>
+ </div>
+ <div class="hdr-right hdr-icons">
+ <span class="hdr-social hide-in-mobile">
+ {{ macros::render_social_icons() }}
+ </span>
+ <button id="menu-btn" class="hdr-btn" title="Menu">
+ <svg
+ xmlns="http://www.w3.org/2000/svg"
+ width="24"
+ height="24"
+ viewBox="0 0 24 24"
+ fill="none"
+ stroke="currentColor"
+ stroke-width="2"
+ stroke-linecap="round"
+ stroke-linejoin="round"
+ class="feather feather-menu"
+ >
+ <line x1="3" y1="12" x2="21" y2="12"></line>
+ <line x1="3" y1="6" x2="21" y2="6"></line>
+ <line x1="3" y1="18" x2="21" y2="18"></line>
+ </svg>
+ </button>
+ </div>
+ </div>
+</header>
+<div id="mobile-menu" class="animated fast">
+ <ul>
+ {% for menu_item in config.extra.hermit_menu %}
+ <li>
+ <a href="{{ config.base_url ~ menu_item.link }}">{{ menu_item.name }}</a>
+ </li>
+ {% endfor %}
+ </ul>
+</div>
+{% endblock header %} {% block title %} {% endblock title %} {% block main %}
+
+<main class="site-main section-inner thin animated fadeIn faster">
+ <h1>{{ section.title }}</h1>
+ {% for year, pages in section.pages | group_by(attribute="year") %}
+ <div class="posts-group">
+ <div class="post-year">{{ year }}</div>
+ <ul class="posts-list">
+ {% for page in pages %}
+ <li class="post-item">
+ <a href="{{ page.permalink }}">
+ <span class="post-title">{{ page.title }}</span>
+ <span class="post-day">{{ page.date | date(format="%b %d") }}</span>
+ </a>
+ </li>
+ {% endfor %}
+ </ul>
+ </div>
+ {% endfor %}
+</main>
+
+{% endblock main %} {% block footer %} {{ macros::footer() }} {% endblock footer
+%}
diff --git a/templates/tags/list.html b/templates/tags/list.html
new file mode 100644
index 0000000..8f9a35f
--- /dev/null
+++ b/templates/tags/list.html
@@ -0,0 +1,54 @@
+{% extends "index.html" %} {% import "macros.html" as macros %} {% block header
+%}
+<header id="site-header" class="animated slideInUp faster">
+ <div class="hdr-wrapper section-inner">
+ <div class="hdr-left">
+ <div class="site-branding">
+ <a href="{{ config.base_url}}">{{ config.title }}</a>
+ </div>
+ <nav class="site-nav hide-in-mobile">
+ {% for menu_item in config.extra.hermit_menu %}
+ <a href="{{ menu_item.link }}">{{ menu_item.name }}</a>
+ {% endfor %}
+ </nav>
+ </div>
+ <div class="hdr-right hdr-icons">
+ <span class="hdr-social hide-in-mobile">
+ {{ macros::render_social_icons() }}
+ </span>
+ <button id="menu-btn" class="hdr-btn" title="Menu">
+ <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none"
+ stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"
+ class="feather feather-menu">
+ <line x1="3" y1="12" x2="21" y2="12"></line>
+ <line x1="3" y1="6" x2="21" y2="6"></line>
+ <line x1="3" y1="18" x2="21" y2="18"></line>
+ </svg>
+ </button>
+ </div>
+ </div>
+</header>
+<div id="mobile-menu" class="animated fast">
+ <ul>
+ {% for menu_item in config.extra.hermit_menu %}
+ <li><a href="{{ menu_item.link }}">{{ menu_item.name }}</a></li>
+ {% endfor %}
+ </ul>
+</div>
+{% endblock header %} {% block title %} {% endblock title %} {% block main %}
+
+<main class="site-main section-inner thin animated fadeIn faster" style="text-align: center;">
+ {% block content %}
+ {% for tag in terms %}
+ <header class="post-header">
+ <h1 class="post-header__title"><a href="{{ config.base_url }}/tags/{{ tag.slug }}">{{ tag.name }}</a></h1>
+ <p class="post-header__info">
+ {{ tag.pages | length }} post{{ tag.pages | length | pluralize }}
+ </p>
+ </header>
+ {% endfor %}
+ {% endblock content %}
+</main>
+
+{% endblock main %} {% block footer %} {{ macros::footer() }} {% endblock footer
+%}
diff --git a/templates/tags/single.html b/templates/tags/single.html
new file mode 100644
index 0000000..e04b872
--- /dev/null
+++ b/templates/tags/single.html
@@ -0,0 +1,71 @@
+{% extends "index.html" %} {% import "macros.html" as macros %} {% block header
+%}
+<header id="site-header" class="animated slideInUp faster">
+ <div class="hdr-wrapper section-inner">
+ <div class="hdr-left">
+ <div class="site-branding">
+ <a href="{{ config.base_url}}">{{ config.title }}</a>
+ </div>
+ <nav class="site-nav hide-in-mobile">
+ {% for menu_item in config.extra.hermit_menu %}
+ <a href="{{ menu_item.link }}">{{ menu_item.name }}</a>
+ {% endfor %}
+ </nav>
+ </div>
+ <div class="hdr-right hdr-icons">
+ <span class="hdr-social hide-in-mobile">
+ {{ macros::render_social_icons() }}
+ </span>
+ <button id="menu-btn" class="hdr-btn" title="Menu">
+ <svg
+ xmlns="http://www.w3.org/2000/svg"
+ width="24"
+ height="24"
+ viewBox="0 0 24 24"
+ fill="none"
+ stroke="currentColor"
+ stroke-width="2"
+ stroke-linecap="round"
+ stroke-linejoin="round"
+ class="feather feather-menu"
+ >
+ <line x1="3" y1="12" x2="21" y2="12"></line>
+ <line x1="3" y1="6" x2="21" y2="6"></line>
+ <line x1="3" y1="18" x2="21" y2="18"></line>
+ </svg>
+ </button>
+ </div>
+ </div>
+</header>
+<div id="mobile-menu" class="animated fast">
+ <ul>
+ {% for menu_item in config.extra.hermit_menu %}
+ <li><a href="{{ menu_item.link }}">{{ menu_item.name }}</a></li>
+ {% endfor %}
+ </ul>
+</div>
+{% endblock header %} {% block title %} {% endblock title %} {% block main %}
+
+<main class="site-main section-inner thin animated fadeIn faster">
+ <h1>{{ term.name }}</h1>
+ {% for year, pages in term.pages | group_by(attribute="year") %}
+ <div class="posts-group">
+ <div class="post-year">{{ year }}</div>
+ <ul class="posts-list">
+ {% for page in pages %}
+ <li class="post-item">
+ <a href="{{ page.permalink }}">
+ <span class="post-title">{{ page.title }}</span>
+ <span class="post-day"
+ >{{ page.date | date(format="%b %d") }}</span
+ >
+ </a>
+ </li>
+ {% endfor %}
+ </ul>
+ </div>
+ {% endfor %}
+</main>
+
+{% endblock main %} {% block footer %} {{ macros::footer() }} {% endblock footer
+%}