Compare commits

...

30 Commits

Author SHA1 Message Date
efcceaade1 fix: fixed styling bug (prettier problem)
All checks were successful
Gitea Actions Demo / Build (push) Successful in 1m17s
Gitea Actions Demo / Upload (push) Successful in 8s
2025-10-26 13:37:02 +01:00
32db6a4cf4 feat: updated ressources
Some checks failed
Gitea Actions Demo / Upload (push) Has been cancelled
Gitea Actions Demo / Build (push) Has been cancelled
2025-10-26 13:35:45 +01:00
8004e2a8ef feat: added og to start page 2025-10-26 13:35:28 +01:00
f00add4960 feat: added og type
All checks were successful
Gitea Actions Demo / Build (push) Successful in 1m13s
Gitea Actions Demo / Upload (push) Successful in 8s
2025-10-26 13:30:01 +01:00
767f2593de fix: changed logos to jpgs for OG 2025-10-26 13:29:45 +01:00
1a9c4b7ff6 feat: improved podman desc
All checks were successful
Gitea Actions Demo / Build (push) Successful in 1m16s
Gitea Actions Demo / Upload (push) Successful in 8s
2025-10-26 12:59:13 +01:00
2c7ceb53f6 fix: changed to jpg for og
All checks were successful
Gitea Actions Demo / Build (push) Successful in 1m24s
Gitea Actions Demo / Upload (push) Successful in 9s
2025-10-26 12:36:35 +01:00
921e11264f refactor: removed unused files 2025-10-26 12:36:17 +01:00
76d7457cc7 fix: added domain to img in opengraph
All checks were successful
Gitea Actions Demo / Build (push) Successful in 1m19s
Gitea Actions Demo / Upload (push) Successful in 8s
2025-10-26 12:04:45 +01:00
01662d2bc3 fix: added protocoll to img in opengraph
All checks were successful
Gitea Actions Demo / Build (push) Successful in 1m26s
Gitea Actions Demo / Upload (push) Successful in 8s
2025-10-26 11:56:05 +01:00
4dea4d62d7 fix: added fallback for img in openGraph
All checks were successful
Gitea Actions Demo / Build (push) Successful in 1m21s
Gitea Actions Demo / Upload (push) Successful in 8s
2025-10-26 11:47:41 +01:00
fdb9a62855 feat: implemented open graph
Some checks failed
Gitea Actions Demo / Build (push) Failing after 1m10s
Gitea Actions Demo / Upload (push) Has been skipped
2025-10-26 11:43:20 +01:00
1a6f9b2582 refactor: changed blog cover reference name 2025-10-26 11:43:11 +01:00
d06cb8345e fix: changed link for moved file
All checks were successful
Gitea Actions Demo / Build (push) Successful in 1m18s
Gitea Actions Demo / Upload (push) Successful in 10s
2025-10-26 11:25:33 +01:00
a3708859ec feat: added images to blog entries
Some checks failed
Gitea Actions Demo / Build (push) Failing after 1m23s
Gitea Actions Demo / Upload (push) Has been skipped
2025-10-26 11:19:06 +01:00
22ce475889 feat: added favicon 2025-10-26 11:18:38 +01:00
70a8e42709 setup: added dev resources 2025-10-26 11:18:24 +01:00
648e922e3f refactor: changed svelts server processing 2025-10-26 11:18:07 +01:00
d1e592e8bf refactor: clean up 2025-10-26 11:17:36 +01:00
65a909ffea feat: added target to external blog entrys and bsky link
All checks were successful
Gitea Actions Demo / Build (push) Successful in 1m16s
Gitea Actions Demo / Upload (push) Successful in 8s
2025-09-30 19:15:03 +02:00
5e145e181b feat: added header titles to all routes
All checks were successful
Gitea Actions Demo / Build (push) Successful in 1m14s
Gitea Actions Demo / Upload (push) Successful in 8s
2025-09-30 18:51:56 +02:00
046a62f54b refactor: moved bsky button styling to its svelte component
All checks were successful
Gitea Actions Demo / Build (push) Successful in 1m32s
Gitea Actions Demo / Upload (push) Successful in 9s
2025-09-30 17:56:45 +02:00
416fc9f122 feat: added keys to sveltes each loop and added img alt 2025-09-30 17:55:06 +02:00
f4cf74cee9 fix: added title to BlogEntry interface 2025-09-30 17:54:06 +02:00
4702e5bf89 feat: source blog entrys at compile time to improve loading time
All checks were successful
Gitea Actions Demo / Build (push) Successful in 1m16s
Gitea Actions Demo / Upload (push) Successful in 9s
2025-09-30 17:11:44 +02:00
3aca1afecb fix: changed nav bar to general media margin class 2025-09-30 17:11:09 +02:00
fdff2c2688 feat: added blank target to all external links 2025-09-30 17:10:08 +02:00
97dcc9c909 feat: added content to the about page
All checks were successful
Gitea Actions Demo / Build (push) Successful in 1m16s
Gitea Actions Demo / Upload (push) Successful in 8s
2025-09-26 13:03:01 +02:00
7ef5d2bbb9 feat: added general media margin for consistant margins 2025-09-26 13:02:43 +02:00
fc23cb6e90 refactor: moved style of nav bar to it's svelte 2025-09-26 13:01:47 +02:00
25 changed files with 208 additions and 243 deletions

135
2
View File

@@ -1,135 +0,0 @@
@import '/node_modules/@rose-pine/palette/dist/css/rose-pine-hsl.css';
@import url('https://fonts.googleapis.com/css2?family=Fraunces:ital,opsz,wght@0,9..144,100..900;1,9..144,100..900&display=swap');
.fraunces-me {
}
body {
color: var(--rp-moon-text);
background: var(--rp-moon-base);
padding: 0;
margin: 0;
text-align: justify;
}
pre {
background: var(--rp-moon-base);
border-radius: 0.5rem;
}
a {
color: var(--rp-moon-iris);
text-decoration: none;
}
a:visited {
color: hsl(from var(--rp-moon-iris) h s calc(l * 0.85))
}
.nav {
margin: auto;
margin-top: 1rem;
padding: 2rem;
max-width: 60rem;
width: calc(100%-4rem);
font-family: "Fraunces", serif;
font-optical-sizing: auto;
font-weight: 400;
font-style: normal;
font-variation-settings:
"SOFT" 0,
"WONK" 0;
font-size:1.728rem;
}
a.nav{
margin: 1rem;
margin-left: 0rem;
padding-left: 0rem;
color: var(--rp-moon-text);
}
.main {
background: var(--rp-moon-surface);
padding: 1rem;
margin: auto;
margin-top: 1rem;
max-width: 60rem;
width: calc(100%-4rem);
box-shadow: 0px 0px 1rem 0px hsl(from var(--rp-moon-base) h s calc(l * 0.85));
border-radius: 0.5rem;
}
hr {
color: var(--rp-moon-muted);
}
.blog-entry{
background: var(--rp-moon-overlay);
padding-left: 0.5rem;
border-radius: 0.5rem;
#display: block;
#height:10rem;
width:100%;
color: var(--rp-moon-text) !important;
text-decoration : none !important;
display: flex;
}
.blog-entry:hover{
box-shadow: 0px 0px 1rem 0px hsl(from var(--rp-moon-surface) h s calc(l * 0.85));
transition: 0.15s;
}
.blog-entry div {
width: calc(100% - 15rem);
min-width: 20rem;
}
.blog-entry img{
#height:100%;
width:15rem;
object-fit: cover;
border-radius: 0 0.5rem 0.5rem 0;
}
@media only screen and (max-width: 600px) {
.blog-entry div {
width: 100%;
}
.blog-entry img {
width: 100%;
}
}
.blog-entry h4{
margin-top:1rem;
}
h1{font-size: 2.986rem}
h2{font-size: 2.488rem}
h3{font-size: 2.074rem}
h4{font-size: 1.728rem}
h1, h2, h3, h4{
font-family: "Fraunces", serif;
font-optical-sizing: auto;
font-weight: 400;
font-style: normal;
text-align: left;
font-variation-settings:
"SOFT" 0,
"WONK" 0;
}

BIN
ressources/Untitled.xcf Normal file

Binary file not shown.

BIN
ressources/icon.xcf Normal file

Binary file not shown.

View File

@@ -1,5 +1,5 @@
<script lang="ts">
import favicon from '$lib/assets/favicon.svg';
import favicon from '/favicon.png';
import '/node_modules/@rose-pine/palette/dist/css/rose-pine-hsl.css';
import '/node_modules/@rose-pine/palette/dist/css/rose-pine-hsl.css';
import 'prism-rose-pine/dist/prism-rose-pine-moon.css';
@@ -12,12 +12,16 @@
<svelte:head>
<link rel="icon" href={favicon} />
<meta property="og:type" content="website" />
</svelte:head>
<nav>
<nav class="media-margin">
<a href="/">Home</a>
<a href="/about">About</a>
<a href="https://bsky.app/profile/amyt3a.bsky.social" aria-label="Link to my Bluesky account"
<a
href="https://bsky.app/profile/amyt3a.bsky.social"
aria-label="Link to my Bluesky account"
target="_blank"
><svg fill="none" class="bsky" viewBox="0 0 64 57"
><path
fill="var(--rp-moon-pine)"
@@ -27,3 +31,33 @@
>
</nav>
{@render children?.()}
<style>
nav {
font-family: 'Fraunces', serif;
font-optical-sizing: auto;
font-weight: 400;
font-style: normal;
font-variation-settings:
'SOFT' 0,
'WONK' 0;
font-size: 1.728rem;
}
.bsky {
display: block;
height: 2rem;
float: right;
}
nav a {
margin: 1rem;
margin-left: 0rem;
padding-left: 0rem;
#border-bottom: solid var(--rp-moon-foam);
color: var(--rp-moon-foam);
&:visited {
color: var(--rp-moon-foam);
}
}
</style>

View File

@@ -0,0 +1,45 @@
import type { SvelteComponent } from 'svelte';
import type { MDsveXComponent } from '$lib/types';
export interface BlogEntry {
title: string;
src: string;
src_target: string;
img: string;
scale: string;
date: string;
desc: string;
}
export function load() {
const blog_entries: BlogEntry[] =
Object.entries(import.meta.glob('/src/routes/blogs/**/+page.svx', { eager: true }))
.map(([key, value]) => {
return {
src: key.split('/src/routes').pop()?.split('/+page.svx').slice(0, -1).pop() as string,
metadata: (value as MDsveXComponent).metadata
} as Record<string, any>
})
.filter(entry => entry.metadata.listed)
.map(entry => {
entry.src = (entry.metadata.src ?? entry.src) as string;
entry.title = entry.metadata.title as string ?? "Needs Title!!";
entry.desc = entry.metadata.desc as string ?? "Needs Description!!";
entry.date = Date.parse(entry.metadata.date as string ?? "");
entry.src_target = (entry.src.includes('https://') || entry.src.includes('http://')) ? '_blank' : '';
[entry.img, entry.scale = ""] = (entry.metadata?.img_cov as string ?? "blog-1.png").split('|');
entry.img_bg = entry.metadata.img_bg == "dark" ? "var(--rp-moon-base" : "var(--rp-moon-text)";
entry.scale = (entry.scale == "") ? "" : "transform: scale(" + entry.scale + "); height:auto;border-radius:0;";
return entry;
})
.sort((a, b) => b.date - a.date)
.map((entry) => {
entry.date = new Date(entry.date).toDateString();
return entry as BlogEntry;
})
return {
blogs: blog_entries
};
}

View File

@@ -1,61 +1,56 @@
<script lang="ts">
import type { MDsveXComponent } from '$lib/types';
import type { SvelteComponent } from 'svelte';
import './style-entries.css';
import type { BlogEntry } from './+page.server.ts';
let blog_entries: [string, SvelteComponent][] = Object.entries(
import.meta.glob('/src/routes/blogs/**/+page.svx', { eager: true })
).map(([key, value]) => [
key.split('/src/routes').pop()?.split('/+page.svx').slice(0, -1).pop() as string,
value as MDsveXComponent
]).map(([link,val])=>
typeof val.metadata?.src !== 'undefined' ? [val.metadata?.src, val] : [link,val]
).map(([link,val])=>{
if(val.metadata)
val.metadata.date = Date.parse(val.metadata?.date);
return [link,val];
}
).sort(([link1,a],[link2,b])=>b.metadata?.date-a.metadata?.date);
console.log(blog_entries);
let { data } = $props();
let blogs = data.blogs as BlogEntry[];
let desc =
"This is a collection of things I've set up and created that I think might interest others.";
</script>
<svelte:head>
<title>Home - Amys Blog</title>
<meta property="og:title" content="Home - Amys Blog" />
<meta property="og:description" content={desc} />
<meta property="og:image" content="https://madeio.net/blog-covers/flame.jpg" />
</svelte:head>
<main>
<div class="start">
<h1>Welcome to SvelteKit</h1>
<p>
Visit <a href="https://svelte.dev/docs/kit">svelte.dev/docs/kit</a> to read the documentation
</p>
<div class="media-margin">
<h1>Hi, I'm Amy</h1>
<p>{desc}</p>
</div>
{#each blog_entries as [href, page]}
<a {href}>
<div class="blog-entry">
<div>
<h4>{page.metadata?.title}</h4>
<p>{page.metadata?.desc}</p>
<p class="date">{new Date(page.metadata?.date).toDateString()}</p>
{#each blogs as blog (blog.src)}
<a href={blog.src} target={blog.src_target} class="blog-entry">
<div class="blog-text">
<h4>{blog.title}</h4>
<p>{blog.desc}</p>
<p class="date">{blog.date}</p>
</div>
<img src="blog-1.png" class="blog-image" />
<div class="blog-img" style={'background-color:' + blog.img_bg}>
<span style="display: inline-block;height: 100%;vertical-align: middle;"></span><img
src={'/blog-covers/' + blog.img}
alt="Preview of the described article"
style={blog.scale}
/>
<!---->
</div>
</a>
<br />
<!-- svelte:component this={page.default} /-->
{/each}
</main>
<style>
.start {
padding: var(--d2);
}
.blog-entry {
display: block;
margin: var(--d3) 0;
background: var(--rp-moon-surface);
border-radius: var(--border-round);
width: 100%;
color: var(--rp-moon-text);
display: flex;
flex-flow: row wrap;
box-shadow: 0px 0px 1rem 0px hsl(from var(--rp-moon-base) h s calc(l * 0.75));
box-shadow: 0px 0px 1rem 0px hsl(from var(--rp-moon-base) h s calc(l * 0.55));
transition: 0.2s;
}
@@ -65,26 +60,46 @@
transition: 0.2s;
}
.blog-entry div {
width: calc(100% - 15rem - var(--d2) * 2);
padding: var(--d2);
.blog-text {
width: calc(100% - 15rem - var(--d3) * 2);
padding: var(--d3);
}
.blog-img {
width: 15rem;
margin: 0;
padding: 0;
background-color: var(--rp-moon-text);
border-radius: 0 calc(var(--border-round) + 3px) calc(var(--border-round) + 3px) 0;
}
.blog-entry img {
width: 15rem;
display: inline-block;
vertical-align: middle;
height: 100%;
object-fit: cover;
border-radius: 0 var(--border-round) var(--border-round) 0;
}
@media only screen and (max-width: 700px) {
.blog-entry div {
width: calc(100% - var(--d2) * 2);
.blog-text {
width: calc(100% - var(--d1) * 2);
padding: var(--d1);
}
.blog-img {
border-radius: 0 0rem var(--border-round) var(--border-round);
max-height: 10rem;
}
.blog-img {
width: 100%;
}
.blog-entry img {
width: 100%;
max-height: 14rem;
border-radius: 0 0rem var(--border-round) var(--border-round) ;
border-radius: 0 0rem var(--border-round) var(--border-round);
}
}

View File

@@ -0,0 +1,14 @@
<svelte:head>
<title>About - Amys Blog</title>
<meta property="og:title" content="About - Amys Blog" />
</svelte:head>
<main>
<div class="media-margin">
<h1>About</h1>
<p>
Hi, I'm Amy Retzerau! I'm a computer science student who wants to share my hobby in the hope
of helping like-minded people.
</p>
</div>
</main>

View File

@@ -3,6 +3,8 @@ title: "The creation of this Blog"
date: 2025-09-12
desc: "The goal was to create an easy to maintain blog with while the main focus relays on keeping the effort
to write new posts minimal. This is more a ressource summery with tips, than an full tutorial."
listed: true
img_cov: blog-1.jpg
---
@@ -14,7 +16,7 @@ The stack consists of:
The core functionallity provides which allow you to combine svelte and markdown.
![Tasd|20rem](/blog-1.png)
![Tasd|20rem](/blog-covers/blog-1.png)
# Image sizing

View File

@@ -2,6 +2,7 @@
title: "64k Demo"
date: 2025-09-15
desc: "Dev Diary of the Demo"
listed: false
---
asd

View File

@@ -1,7 +1,9 @@
---
title: Setup up Gitea Runner with Podman in LXC
desc: "For some time now I already host a gitea instace and now with this blog I finally have some real usage for CI, but setting up gitea actions in an LXC and using Podman instead of Docker Engine was not as straight forward as expected."
desc: "Using CLIs is very helpful, but setting up gitea actions in an LXC and using rootless Podman is not as straight forward as expected."
date: 2025-09-17
img_cov: gitea-logo.jpg
listed: true
---
# Setup PVE
@@ -125,14 +127,11 @@ systemctl edit user@1001 --drop-in=start_act_runner
and inserting
```ini
[Unit]
After=gitea.service
[Install]
WantedBy=multi-user.target
```
In the end, all left to do is, enable the user:
```bash
systemctl status user@1001
systemctl enable --now user@<USER_ID>
```

View File

@@ -0,0 +1,7 @@
<script lang="ts">
export let href;
let target = href.includes('https://') || href.includes('http://') ? '_blank' : '';
</script>
<a {href} {target}><slot /></a>

View File

@@ -1,25 +1,35 @@
<script context="module">
import img from './img.svelte';
import a from './a.svelte';
import h1 from './h1.svelte';
import h2 from './h2.svelte';
import h3 from './h3.svelte';
export { img, h1, h2, h3 };
export { img, a, h1, h2, h3 };
</script>
<script>
export let title;
export let date;
export let desc;
export let img_cov;
let ddate = new Date(Date.parse(date));
let ogImgage = 'https://madeio.net/blog-covers/' + (img_cov ?? 'flame.png').split('|')[0];
let ddate = new Date(Date.parse(date)).toDateString();
</script>
<svelte:head>
<title>{title} - Amys Blog</title>
<meta property="og:title" content={title} />
<meta property="og:description" content={desc} />
<meta property="og:image" content={ogImgage} />
</svelte:head>
<main>
<div class="title">
<div class="title media-margin">
<!-- prettier-ignore -->
<h1>{title}</h1><p class="date">Last updated {ddate.toDateString()}</p>
<h1>{title}</h1><p class="date">Last updated {ddate}</p>
</div>
<div class="blog-text">
<div class="blog-text media-margin">
<p>{desc}</p>
<slot>
<!-- the mdsvex content will be slotted in here -->
@@ -33,15 +43,8 @@
border-radius: 1rem;
}
.title {
padding: var(--d3);
#margin: var(--d3) 0;
flex-wrap: row;
}
.title h1 {
width: calc(100% - 15rem);
margin: 0;
vertical-align: baseline;
display: inline-block;
}
@@ -54,6 +57,12 @@
#float: right;
}
.blog-text {
border-radius: var(--border-round);
#background: var(--rp-moon-surface);
#box-shadow: 0px 0px 0.5rem 0px hsl(from var(--rp-moon-pine) h calc(s * 0.5) calc(l * 0.25));
}
@media only screen and (max-width: 700px) {
.title {
margin-bottom: -5.3px;
@@ -68,11 +77,4 @@
width: 100%;
}
}
.blog-text {
border-radius: var(--border-round);
#background: var(--rp-moon-surface);
#box-shadow: 0px 0px 0.5rem 0px hsl(from var(--rp-moon-pine) h calc(s * 0.5) calc(l * 0.25));
padding: var(--d2) var(--d3) var(--d4);
}
</style>

View File

@@ -4,4 +4,6 @@ date: 2024-11-10
src: "https://elkortes.itch.io/catastrophe"
desc: "I took part in the amazing FemDev Game and helped to creathe this little game.
My work are the animations, 3d Models and some texturing"
listed: true
img_cov: catastrophe.png
---

View File

@@ -3,4 +3,7 @@ title: "Flame Demo"
date: 2024-11-26
src: "https://madeio.net/fox"
desc: "A WebGL Project wich shows that deffered rendering and volumetric fog is very possible in Three.js"
listed: true
img_cov: flame.jpg
img_bg: dark
---

View File

@@ -1,5 +1,3 @@
@import url('https://fonts.googleapis.com/css2?family=Fraunces:ital,opsz,wght@0,9..144,100..900;1,9..144,100..900&display=swap');
@font-face {
font-family: 'fira';
font-style: normal;
@@ -78,33 +76,6 @@ h1,h2,h3,h4,p:first-child {
}
nav {
margin: var(--d3) 0 ;
padding: 0 var(--d3) 0;
font-family: "Fraunces", serif;
font-optical-sizing: auto;
font-weight: 400;
font-style: normal;
font-variation-settings:
"SOFT" 0,
"WONK" 0;
font-size:1.728rem;
}
nav a{
margin: 1rem;
margin-left: 0rem;
padding-left: 0rem;
border-bottom: solid var(--rp-moon-foam);
color: var(--rp-moon-foam);
#text-decoration: underline;
&:visited {
color: var(--rp-moon-foam);
}
}
main {
width: 100%;
#box-shadow: 0px 0px 1rem 0px hsl(from var(--rp-moon-base) h s calc(l * 0.85));
@@ -120,11 +91,6 @@ hr {
color: var(--rp-moon-muted);
}
.bsky{
display:block;
height: 2rem;
float:right;
}
h1{font-size: 2.986rem}
h2{font-size: 2.488rem}
@@ -146,4 +112,14 @@ h4{
color: var(--rp-moon-foam);
}
.media-margin{
margin: var(--d3);
}
@media only screen and (max-width: 700px) {
.media-margin{
margin: var(--d3) var(--d1);
}
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 39 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 68 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 240 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 31 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 46 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.8 KiB

BIN
static/favicon.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

BIN
static/gitea-logo.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.8 KiB