a new start

This commit is contained in:
2025-10-25 12:39:30 +02:00
commit c97cadef78
726 changed files with 454051 additions and 0 deletions

46
_layouts/about.html Normal file
View File

@@ -0,0 +1,46 @@
---
# Copyright (c) 2018 Florian Klampfer <https://qwtel.com/>
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
layout: base
---
<article class="page mb6" role="article">
{% if content contains "<!--author-->" %}
{% assign plugins = site.plugins | default:site.gems %}
{% assign author = site.data.authors[page.author] | default:site.data.authors.first[1] | default:site.author %}
{% capture author_x %}
{% if author.picture %}
{% include_cached components/hy-img.html class="avatar" img=author.picture alt=author.name %}
{% elsif plugins contains 'jekyll-avatar' %}
{% assign avatar = author.social.github | default:author.github.username | default:author.github %}
{% include components/avatar-tag.html user=avatar %}
{% endif %}
{{ author.about | markdownify }}
{% endcapture %}
{% assign content = content | replace:"<!--author-->", author_x %}
{% endif %}
<header>
<h1 class="page-title">{{ page.title }}</h1>
{% include components/message.html text=page.description hide=page.hide_description %}
</header>
{{ content }}
</article>
{% include components/dingbat.html %}
{% include body/comments.html %}

43
_layouts/base.html Normal file
View File

@@ -0,0 +1,43 @@
---
# Copyright (c) 2019 Florian Klampfer <https://qwtel.com/>
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
layout: compress
---
{% assign plugins = site.plugins | default:site.gems %}
{% assign author = site.data.authors[page.author] | default:site.data.authors.first[1] | default:site.author %}
{% assign image = page.accent_image | default:site.accent_image | default:'/assets/bg/sidebar.webp' %}
{% assign invert_sidebar = page.invert_sidebar | default:site.invert_sidebar | default:false %}
{% assign cover = page.cover | default:site.cover | default:false %}
{% if image == site.accent_image and site.accent_video %}
{% assign video = site.accent_video %}
{% elsif image == page.accent_image and page.accent_video %}
{% assign video = page.accent_video %}
{% endif %}
{% assign color = page.accent_color | default:site.accent_color | default:'rgb(79,177,186)' %}
{% assign theme_color = page.theme_color | default:site.theme_color | default:'rgb(8,46,57)' %}
<head>
{% include head/index.html %}
</head>
<body class="{% include_cached base-classes %}">
{% include body/index.html %}
</body>

34
_layouts/blog.html Normal file
View File

@@ -0,0 +1,34 @@
---
# Copyright (c) 2018 Florian Klampfer <https://qwtel.com/>
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
layout: base
---
{% assign plugins = site.plugins | default:site.gems %}
{% if plugins contains 'jekyll-paginate-v2' %}
{% assign posts = paginator.posts %}
{% else %}
{% assign posts = site.categories[page.slug] | default:site.tags[page.slug] | default:site.posts %}
{% endif %}
{% for post in posts %}
{% include_cached components/post.html post=post no_link_title=page.no_link_title no_excerpt=page.no_excerpt hide_image=page.hide_image %}
{% endfor %}
{% if plugins contains 'jekyll-paginate-v2' %}
{% include components/pagination.html %}
{% endif %}

3
_layouts/compress.html Normal file
View File

@@ -0,0 +1,3 @@
<!DOCTYPE html>
<html lang="{{ page.lang | default:site.lang | default:'en' | split:'-' | first | split:'_' | first }}">{% capture _LINE_FEED %}
{% endcapture %}{% if site.compress_html.ignore.envs contains jekyll.environment %}{{ content }}{% else %}{% capture _content %}{{ content }}{% endcapture %}{% assign _profile = site.compress_html.profile %}{% if site.compress_html.endings == "all" %}{% assign _endings = "html head body li dt dd p rt rp optgroup option colgroup caption thead tbody tfoot tr td th" | split: " " %}{% else %}{% assign _endings = site.compress_html.endings %}{% endif %}{% for _element in _endings %}{% capture _end %}</{{ _element }}>{% endcapture %}{% assign _content = _content | remove: _end %}{% endfor %}{% if _profile and _endings %}{% assign _profile_endings = _content | size | plus: 1 %}{% endif %}{% for _element in site.compress_html.startings %}{% capture _start %}<{{ _element }}>{% endcapture %}{% assign _content = _content | remove: _start %}{% endfor %}{% if _profile and site.compress_html.startings %}{% assign _profile_startings = _content | size | plus: 1 %}{% endif %}{% if site.compress_html.comments == "all" %}{% assign _comments = "<!-- -->" | split: " " %}{% else %}{% assign _comments = site.compress_html.comments %}{% endif %}{% if _comments.size == 2 %}{% capture _comment_befores %}.{{ _content }}{% endcapture %}{% assign _comment_befores = _comment_befores | split: _comments.first %}{% for _comment_before in _comment_befores %}{% if forloop.first %}{% continue %}{% endif %}{% capture _comment_outside %}{% if _carry %}{{ _comments.first }}{% endif %}{{ _comment_before }}{% endcapture %}{% capture _comment %}{% unless _carry %}{{ _comments.first }}{% endunless %}{{ _comment_outside | split: _comments.last | first }}{% if _comment_outside contains _comments.last %}{{ _comments.last }}{% assign _carry = false %}{% else %}{% assign _carry = true %}{% endif %}{% endcapture %}{% assign _content = _content | remove_first: _comment %}{% endfor %}{% if _profile %}{% assign _profile_comments = _content | size | plus: 1 %}{% endif %}{% endif %}{% assign _pre_befores = _content | split: "<pre" %}{% assign _content = "" %}{% for _pre_before in _pre_befores %}{% assign _pres = _pre_before | split: "</pre>" %}{% assign _pres_after = "" %}{% if _pres.size != 0 %}{% if site.compress_html.blanklines %}{% assign _lines = _pres.last | split: _LINE_FEED %}{% capture _pres_after %}{% for _line in _lines %}{% assign _trimmed = _line | split: " " | join: " " %}{% if _trimmed != empty or forloop.last %}{% unless forloop.first %}{{ _LINE_FEED }}{% endunless %}{{ _line }}{% endif %}{% endfor %}{% endcapture %}{% else %}{% assign _pres_after = _pres.last | split: " " | join: " " %}{% endif %}{% endif %}{% capture _content %}{{ _content }}{% if _pre_before contains "</pre>" %}<pre{{ _pres.first }}</pre>{% endif %}{% unless _pre_before contains "</pre>" and _pres.size == 1 %}{{ _pres_after }}{% endunless %}{% endcapture %}{% endfor %}{% if _profile %}{% assign _profile_collapse = _content | size | plus: 1 %}{% endif %}{% if site.compress_html.clippings == "all" %}{% assign _clippings = "html head title base link meta style body article section nav aside h1 h2 h3 h4 h5 h6 hgroup header footer address p hr blockquote ol ul li dl dt dd figure figcaption main div table caption colgroup col tbody thead tfoot tr td th" | split: " " %}{% else %}{% assign _clippings = site.compress_html.clippings %}{% endif %}{% for _element in _clippings %}{% assign _edges = " <e;<e; </e>;</e>;</e> ;</e>" | replace: "e", _element | split: ";" %}{% assign _content = _content | replace: _edges[0], _edges[1] | replace: _edges[2], _edges[3] | replace: _edges[4], _edges[5] %}{% endfor %}{% if _profile and _clippings %}{% assign _profile_clippings = _content | size | plus: 1 %}{% endif %}{{ _content }}{% if _profile %} <table id="compress_html_profile_{{ site.time | date: "%Y%m%d" }}" class="compress_html_profile"> <thead> <tr> <td>Step <td>Bytes <tbody> <tr> <td>raw <td>{{ content | size }}{% if _profile_endings %} <tr> <td>endings <td>{{ _profile_endings }}{% endif %}{% if _profile_startings %} <tr> <td>startings <td>{{ _profile_startings }}{% endif %}{% if _profile_comments %} <tr> <td>comments <td>{{ _profile_comments }}{% endif %}{% if _profile_collapse %} <tr> <td>collapse <td>{{ _profile_collapse }}{% endif %}{% if _profile_clippings %} <tr> <td>clippings <td>{{ _profile_clippings }}{% endif %} </table>{% endif %}{% endif %}</html>

83
_layouts/default.html Normal file
View File

@@ -0,0 +1,83 @@
---
# Copyright (c) 2018 Florian Klampfer <https://qwtel.com/>
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
layout: base
---
{% assign strings = site.data.strings %}
<article class="page" role="article">
<header>
<h1 class="page-title">{{ page.title | default:strings.home | default:"Home" }}</h1>
{% include components/message.html text=page.description hide=page.hide_description %}
</header>
{{ content }}
{% if page.show_music %}
{% assign music_posts = site.categories.Music %}
{% if music_posts.size > 0 %}
<h2 class="hr-bottom">{{ strings.music | default:"Music" }}</h2>
<a href="{{ music_posts.first.url | relative_url }}" class="no-hover no-print-link flip-project" tabindex="-1">
<div class="img-wrapper lead aspect-ratio flip-project-img sixteen-nine">
{% include_cached components/hy-img.html img=music_posts.first.image alt=music_posts.first.title %}
</div>
</a>
<ul class="related-posts">
{% for post in music_posts limit:5 %}
{% include_cached components/post-list-item.html post=post %}
{% endfor %}
</ul>
{% endif %}
{% endif %}
{% if page.show_pages %}
{% assign pages = site.html_pages | where_exp:"item","item.layout == 'page' or item.layout == 'about'" | where_exp:"page","page.sitemap != false" %}
{% if pages.size > 0 %}
<h2 class="hr-bottom">{{ strings.pages | default:"Pages" }}</h2>
<ul class="related-posts">
{% for page in pages limit:5 %}
<li class="h4">
<a href="{{ page.url | relative_url }}" class="flip-title">
<span>{{ page.title }}</span>
</a>
</li>
{% endfor %}
</ul>
{% endif %}
{% endif %}
{% if page.show_visual %}
{% if site.featured_categories.size > 0 %}
<h2 class="hr-bottom">{{ strings.Visual | default:"Visual" }}</h2>
{% assign posts = site.posts | where_exp: "post", "post.categories.first != 'Music'" %}
<a href="{{ posts.first.url | relative_url }}" class="no-hover no-print-link flip-project" tabindex="-1">
<div class="img-wrapper lead aspect-ratio flip-project-img sixteen-nine">
{% include_cached components/hy-img.html img=posts.first.image alt=posts.first.title %}
</div>
</a>
<ul class="related-posts">
{% assign categories = site.featured_categories | where_exp: "category", "category.title != 'Music'" %}
{% for category in categories %}
<li class="h4">
<a href="{{category.url }}" class="flip-title"><span>{{category.title}}</span></a>
<span class="faded">{{ site.categories[category.title].size }}</span>
</li>
{% endfor %}
</ul>
{% endif %}
{% endif %}
</article>

20
_layouts/home.html Normal file
View File

@@ -0,0 +1,20 @@
---
# Copyright (c) 2018 Florian Klampfer <https://qwtel.com/>
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
layout: default
---
{{ content }}

40
_layouts/list.html Normal file
View File

@@ -0,0 +1,40 @@
---
# Copyright (c) 2018 Florian Klampfer <https://qwtel.com/>
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
layout: page
---
{{ content }}
{% assign posts = site.categories[page.slug] | default:site.tags[page.slug] | default:site[page.slug] | default:site.posts %}
{% assign date_formats = site.data.strings.date_formats %}
{% assign list_group_by = date_formats.list_group_by | default:"%Y" %}
{% assign list_entry = date_formats.list_entry | default:"%d %b" %}
{% assign prev_date = 0 %}
{% if page.no_groups %}<ul class="related-posts">{% endif %}
{% for post in posts %}
{% assign current_date = post.date | date:list_group_by %}
{% unless page.no_groups %}{% if current_date != prev_date %}
{% unless forloop.first %}</ul>{% endunless %}
<h2 id="{{ list_group_by | slugify }}-{{ current_date | slugify }}" class="hr-bottom">{{ current_date }}</h2>
<ul class="related-posts">
{% assign prev_date = current_date %}
{% endif %}{% endunless %}
{% include_cached components/post-list-item.html post=post format=list_entry %}
{% if forloop.last %}</ul>{% endif %}
{% endfor %}

37
_layouts/not-found.html Normal file
View File

@@ -0,0 +1,37 @@
---
# Copyright (c) 2018 Florian Klampfer <https://qwtel.com/>
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
layout: base
---
{% assign strings = site.data.strings %}
<div class="page">
<h1 class="page-title">{{ page.title | default:strings.not_found.title | default: "404: Page Not Found" }}</h1>
<div class="hr pb0"></div>
{% assign test = page.content | strip_newlines %}
{% if test != "" %}
{{ content }}
{% else %}
{% capture home_link %}<a href="{{ '/' | relative_url }}">{{ strings.not_found.home_link | default:"Head back home" }}</a>{% endcapture %}
{% assign text = strings.not_found.message
| default:"Sorry, we've misplaced that URL or it's pointing to something that doesn't exist. <!--home_link--> to try finding it again." %}
<p class="lead">
{{ text | replace:"<!--home_link-->", home_link }}
</p>
{% endif %}
</div>

30
_layouts/page.html Normal file
View File

@@ -0,0 +1,30 @@
---
# Copyright (c) 2018 Florian Klampfer <https://qwtel.com/>
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
layout: base
---
<article class="page mb6" role="article">
<header>
<h1 class="page-title">{{ page.title }}</h1>
{% include components/message.html text=page.description hide=page.hide_description %}
</header>
{{ content }}
</article>
{% include components/dingbat.html %}
{% include body/comments.html %}

29
_layouts/plain.html Normal file
View File

@@ -0,0 +1,29 @@
---
# Copyright (c) 2020 Florian Klampfer <https://qwtel.com/>
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
layout: base
---
<article class="page mb6" role="article">
<header>
<h1 class="page-title">{{ page.title }}</h1>
{% include components/message.html text=page.description hide=page.hide_description %}
</header>
{{ content }}
</article>
{% include components/dingbat.html hidden=true %}

41
_layouts/post.html Normal file
View File

@@ -0,0 +1,41 @@
---
# Copyright (c) 2018 Florian Klampfer <https://qwtel.com/>
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
layout: base
---
{% assign version = jekyll.version | split:'.' %}
{% assign major = version[0] | plus:0 %}
{% assign minor = version[1] | plus:0 %}
{% assign patch = version[2] | plus:0 %}
{% include_cached components/post.html post=page no_link_title=true no_excerpt=true hide_image=page.hide_image hide_description=page.hide_description show_gallery=page.show_gallery show_video=page.video show_iframe=page.iframe hide_dates=page.hide_dates %}
{% include components/dingbat.html %}
{% assign addons = page.addons | default:site.pivoine.post_addons %}
{% unless addons %}{% assign addons = "about,newsletter,related,random" | split:"," %}{% endunless %}
{% for addon in addons %}
{% case addon %}
{% when 'about' %}
{% include_cached components/about.html author=page.author %}
{% when 'related' %}
{% include_cached components/related-posts.html %}
{% when 'comments' %}
{% include body/comments.html %}
{% else %}
{% endcase %}
{% endfor %}

23
_layouts/redirect.html Normal file
View File

@@ -0,0 +1,23 @@
---
# Copyright (c) 2018 Florian Klampfer <https://qwtel.com/>
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
layout: base
---
<div class="page">
<h1 class="page-title">{{ site.data.strings.redirecting | default:"Redirecting…" }}</h1>
<p class="lead"><a href="{{ page.redirect.to }}">{{ page.redirect.to }}</a></p>
</div>