more updates
All checks were successful
Build and push container image / build-and-push-image (push) Successful in 2m59s

This commit is contained in:
2025-08-06 22:39:06 +01:00
parent df59a2c097
commit a0562330a3
23 changed files with 94 additions and 23 deletions

View File

@@ -1,5 +1,5 @@
# Imports # Imports
from flask import Blueprint, render_template, request, abort, send_from_directory from flask import Blueprint, render_template, request, abort, send_from_directory, send_file
from os import getenv as env from os import getenv as env
import logging import logging
@@ -23,22 +23,31 @@ def index():
return render_template('index.html') return render_template('index.html')
# Route for robots.txt, sitemap.xml, and favicon.ico # Route for favicon
@bp.route('/robots.txt')
@bp.route('/sitemap.xml')
@bp.route('/favicon.ico') @bp.route('/favicon.ico')
def web_stuffs(): def favicon():
return send_from_directory( return send_file('../static/content/other/favicon.ico')
env('STATIC_FOLDER', default='../static'),
request.path.lstrip('/')
)
# catch-all route for any other static pages (only in root path) # Route for robots.txt
@bp.route('/<string:filename>') @bp.route('/robots.txt')
def static_files(filename): def robots():
return send_file('../static/content/other/robots.txt')
# Route for sitemap.xml
@bp.route('/sitemap.xml')
def sitemap():
return send_file('../static/content/other/sitemap.xml')
# Catch-all route for generic pages
@bp.route('/<path:filename>')
def catch_all(filename):
# try to find template in the pages directory and add .html extension
if not filename.endswith('.html'):
filename += '.html'
try: try:
return render_template(filename if filename.endswith('.html') else filename + '.html') return render_template(f'pages/{filename}')
except Exception as e: except Exception as e:
log.error(f"Error serving static file {filename}: {e}") abort(404, f"Template '{filename}' not found: {e}")
abort(404)

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.2 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.6 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.5 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.3 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.0 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.5 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.7 MiB

View File

Before

Width:  |  Height:  |  Size: 743 KiB

After

Width:  |  Height:  |  Size: 743 KiB

View File

Before

Width:  |  Height:  |  Size: 4.5 KiB

After

Width:  |  Height:  |  Size: 4.5 KiB

View File

Before

Width:  |  Height:  |  Size: 49 KiB

After

Width:  |  Height:  |  Size: 49 KiB

View File

Before

Width:  |  Height:  |  Size: 240 KiB

After

Width:  |  Height:  |  Size: 240 KiB

View File

Before

Width:  |  Height:  |  Size: 2.7 MiB

After

Width:  |  Height:  |  Size: 2.7 MiB

View File

@@ -1,7 +1,7 @@
@import url('https://fonts.googleapis.com/css2?family=Fredoka:wdth,wght@125,700&family=Space+Mono:ital,wght@0,400;0,700;1,400;1,700&display=swap'); @import url('https://fonts.googleapis.com/css2?family=Fredoka:wdth,wght@125,700&family=Space+Mono:ital,wght@0,400;0,700;1,400;1,700&display=swap');
@font-face { @font-face {
font-family:"Irken"; font-family:"Irken";
src:url("/static/content/Irken-Like-AllCaps.woff") format("woff"); src:url("/static/content/fonts/Irken-Like-AllCaps.woff") format("woff");
font-weight:normal; font-weight:normal;
font-style:normal; font-style:normal;
} }
@@ -227,7 +227,7 @@ main section a {
right: 0; right: 0;
bottom: 0; bottom: 0;
opacity: 0.1; opacity: 0.1;
background-image: url('/static/content/background.png'); background-image: url('/static/content/general_images/background.png');
background-repeat: no-repeat; background-repeat: no-repeat;
background-position: 50% 0; background-position: 50% 0;
background-size: cover; background-size: cover;

View File

@@ -34,6 +34,35 @@ ul#toaster-specs li {
height: 100%; height: 100%;
} }
.fur-meet-gallery-small {
display: flex;
flex-wrap: wrap;
gap: 5px;
}
.fur-meet-gallery-small img {
width: 150px;
height: 150px;
object-fit: cover;
border-radius: 10px;
border: 2px solid var(--secondary-background-color);
}
.fur-meet-gallery-small img:hover {
transform: scale(1.05);
transition: transform 0.2s ease-in-out;
cursor: pointer;
}
#fur-meets {
list-style: none;
padding: 0;
margin: 10px;
display: flex;
flex-direction: column;
gap: 10px;
}
@media screen and (max-width: 740px) { @media screen and (max-width: 740px) {
.flex-row { .flex-row {
flex-direction: column; flex-direction: column;

View File

@@ -118,7 +118,7 @@ if (document.getElementById('spotify')) {
// load buttons // load buttons
function loadButtons() { function loadButtons() {
fetch('/static/content/buttons.txt').then(response => { fetch('/static/content/other/buttons.txt').then(response => {
return response.text(); return response.text();
}).then(data => { }).then(data => {
container = document.getElementById('button-collection'); container = document.getElementById('button-collection');

View File

@@ -7,7 +7,7 @@
<link rel="icon" href="/static/content/icon.webp"> <link rel="icon" href="/static/content/icon.webp">
<link rel="stylesheet" href="/static/css/base.css"> <link rel="stylesheet" href="/static/css/base.css">
<meta name="description" content="{% block description %}server backend survivor{% endblock %}"> <meta name="description" content="{% block description %}server backend survivor{% endblock %}">
<meta name="keywords" content="Alfie King, Alfie, King, Alfieking, Alfieking.dev, dev, server"> <meta name="keywords" content="{% block keywords %}Alfie King, Alfie, King, Alfieking, Alfieking.dev, dev, server, developer, backend, selfhost, homelab{% endblock %}">
<meta name="author" content="Alfie King"> <meta name="author" content="Alfie King">
<meta name="robots" content="all"> <meta name="robots" content="all">
<meta name="theme-color" content="#63de90" data-react-helmet="true"> <meta name="theme-color" content="#63de90" data-react-helmet="true">
@@ -15,7 +15,7 @@
<meta property="og:url" content="https://alfieking.dev/"> <meta property="og:url" content="https://alfieking.dev/">
<meta property="og:title" content="{{ self.title() }}"> <meta property="og:title" content="{{ self.title() }}">
<meta property="og:description" content="{{ self.description() }}"> <meta property="og:description" content="{{ self.description() }}">
<meta property="og:image" content="{% block og_image %}/static/content/icon.webp{% endblock %}"> <meta property="og:image" content="{% block og_image %}/static/content/general_images/icon.webp{% endblock %}">
{% block head %} {% block head %}
{% endblock %} {% endblock %}
</head> </head>
@@ -62,12 +62,12 @@
<section> <section>
<pre class="vsmoltext"> |\ _,,,---,,_<br>ZZZzz /,`.-'`' -. ;-;;,_<br> |,4- ) )-,_. ,\ ( `'-'<br> '---''(_/--' `-'\_)</pre> <pre class="vsmoltext"> |\ _,,,---,,_<br>ZZZzz /,`.-'`' -. ;-;;,_<br> |,4- ) )-,_. ,\ ( `'-'<br> '---''(_/--' `-'\_)</pre>
</section> </section>
<img src="/static/content/haj.gif" alt="haj" class="haj"> <img src="/static/content/general_images/haj.gif" alt="haj" class="haj">
</div> </div>
<main id="main"> <main id="main">
<header id="home"> <header id="home">
<div class="row"> <div class="row">
<img src="/static/content/icon.webp"> <img src="/static/content/general_images/icon.webp">
<div> <div>
<h1>Alfie King</h1> <h1>Alfie King</h1>
<h2 id="typing">server backend survivor</h2> <h2 id="typing">server backend survivor</h2>

View File

@@ -3,6 +3,12 @@
{% block title %}Toaster - Alfie's basement{% endblock %} {% block title %}Toaster - Alfie's basement{% endblock %}
{% block description %}furry corner{% endblock %} {% block description %}furry corner{% endblock %}
{% block og_image %}/static/content/Toaster_v1.0_Dark.png{% endblock %} {% block og_image %}/static/content/Toaster_v1.0_Dark.png{% endblock %}
{% block keywords %}
Alfie King, Alfie, King, Alfieking, Alfieking.dev, dev, server, developer, backend, selfhost, homelab, furry, protogen, toaster,
fursona, fur, furmeet, fursuit, persona, character, protogen fursona, protogen character, protogen fursona design,
protogen character design, critters mk, critters cmk, paws n pistons, paws'n'pistons, paws n pistons furry meet, paws'n'pistons furry meet,
protogen v1.0, toaster v1.0
{% endblock %}
{% block head %} {% block head %}
<link rel="stylesheet" href="/static/css/toaster.css"> <link rel="stylesheet" href="/static/css/toaster.css">
@@ -45,7 +51,7 @@
</ul> </ul>
</section> </section>
<div class="flex-col"> <div class="flex-col">
<img src="/static/content/Toaster_v1.0_Dark.png" alt="toaster" id="toaster-img"> <img src="/static/content/toaster/Toaster_v1.0_Dark.png" alt="toaster" id="toaster-img">
<section class="fill-height"> <section class="fill-height">
<p> <p>
NEW AND IMPROVED! Toaster v1.0 is here! NEW AND IMPROVED! Toaster v1.0 is here!
@@ -70,4 +76,31 @@
If I end up making a fursuit, I will probably make a post about it on my site and maybe even make a video of it (but dont hold me to that). If I end up making a fursuit, I will probably make a post about it on my site and maybe even make a video of it (but dont hold me to that).
</p> </p>
</section> </section>
<section>
<h1>Events</h1>
<p>
There are a few events that ive been to, however I plan on trying to go to more in the future.
<br>
</p>
<ul id="fur-meets">
<li>
<a href="https://x.com/cmkfurmeet"><b>CrittersCMK</b></a> - A furmeet in Milton Keynes.
<div class="fur-meet-gallery-small">
<img src="/static/content/fur_meets/26-08-2025_critters_mk/PXL_20250726_152110445.jpg" alt="CrittersCMK">
<img src="/static/content/fur_meets/26-08-2025_critters_mk/PXL_20250726_155134418.jpg" alt="CrittersCMK">
<img src="/static/content/fur_meets/26-08-2025_critters_mk/PXL_20250726_155226274.jpg" alt="CrittersCMK">
<img src="/static/content/fur_meets/26-08-2025_critters_mk/PXL_20250726_155434701.jpg" alt="CrittersCMK">
</div>
</li>
<li>
<a href="https://www.instagram.com/paws_n_pistons/"><b>Paws'N'Pistons</b></a> - A furry car meet around the UK.
<div class="fur-meet-gallery-small">
<img src="/static/content/fur_meets/03-08-2025_paws_n_pistons/PXL_20250803_141943558.jpg" alt="Paws'N'Pistons">
<img src="/static/content/fur_meets/03-08-2025_paws_n_pistons/PXL_20250803_150138054.jpg" alt="Paws'N'Pistons">
<img src="/static/content/fur_meets/03-08-2025_paws_n_pistons/PXL_20250803_150249916.jpg" alt="Paws'N'Pistons">
<img src="/static/content/fur_meets/03-08-2025_paws_n_pistons/PXL_20250803_183614897.jpg" alt="Paws'N'Pistons">
</div>
</li>
</ul>
</section>
{% endblock %} {% endblock %}