patch(): fix the nits

This commit is contained in:
2026-03-04 17:46:10 +01:00
parent e16c84e879
commit abb6bc52ce
30 changed files with 1129 additions and 249 deletions

View File

@@ -1,5 +1,5 @@
// Place any global data in this file.
// You can import this data from anywhere in your site by using the `import` keyword.
export const SITE_TITLE = 'Projects';
export const SITE_DESCRIPTION = 'Homepage for Varius of Projects';
export const SITE_TITLE = "Projects";
export const SITE_DESCRIPTION = "Homepage for Varius of Projects";

View File

@@ -1,35 +1,40 @@
import { defineCollection, z } from 'astro:content';
import { glob } from 'astro/loaders';
import { defineCollection, z } from "astro:content";
import { glob } from "astro/loaders";
const personal = defineCollection({
// Load Markdown and MDX files in the `src/content/blog/` directory.
loader: glob({ base: './src/content/blog/personal', pattern: '**/*.{md,mdx}' }),
// Type-check frontmatter using a schema
schema: ({ image }) =>
z.object({
title: z.string(),
description: z.string(),
// Transform string to Date object
pubDate: z.coerce.date(),
gitLink: z.string().optional(),
heroImage: image().optional(),
}),
// Load Markdown and MDX files in the `src/content/blog/` directory.
loader: glob({
base: "./src/content/blog/personal",
pattern: "**/*.{md,mdx}",
}),
// Type-check frontmatter using a schema
schema: ({ image }) =>
z.object({
title: z.string(),
description: z.string(),
// Transform string to Date object
pubDate: z.coerce.date(),
gitLink: z.string().optional(),
heroImage: image().optional(),
}),
});
const uni = defineCollection({
// Load Markdown and MDX files in the `src/content/blog/` directory.
loader: glob({ base: './src/content/blog/university', pattern: '**/*.{md,mdx}' }),
// Type-check frontmatter using a schema
schema: ({ image }) =>
z.object({
title: z.string(),
description: z.string(),
// Transform string to Date object
pubDate: z.coerce.date(),
gitLink: z.string().optional(),
heroImage: image().optional(),
}),
// Load Markdown and MDX files in the `src/content/blog/` directory.
loader: glob({
base: "./src/content/blog/university",
pattern: "**/*.{md,mdx}",
}),
// Type-check frontmatter using a schema
schema: ({ image }) =>
z.object({
title: z.string(),
description: z.string(),
// Transform string to Date object
pubDate: z.coerce.date(),
gitLink: z.string().optional(),
heroImage: image().optional(),
}),
});
export const collections = { personal, uni };

View File

@@ -1,13 +1,13 @@
---
title: 'FileClap'
description: 'Doormat'
pubDate: 'Mar 01 2026'
gitLink: 'https://github.com/juli0n21/fileclap'
title: "FileClap"
description: "Doormat"
pubDate: "Mar 01 2026"
gitLink: "https://github.com/juli0n21/fileclap"
---
import { Image } from 'astro:assets';
import homeview from '@assets/fileclap/homeview.png';
import search from '@assets/fileclap/search.png';
import { Image } from "astro:assets";
import homeview from "@assets/fileclap/homeview.png";
import search from "@assets/fileclap/search.png";
<style is:global>{`
h1, h2, h3, h4, h5, h6, figcaption::before { color: #ffdf20 }
@@ -22,7 +22,9 @@ import search from '@assets/fileclap/search.png';
}
}
`}</style>
# FileClap: Clear the paperwork off the table
Your digital assistant for students and trainees
No more paper chaos! FileClap helps you easily organize photos, receipts, and important documents. Securely stored and accessible from anywhere—for a stress-free daily life with more clarity!
@@ -32,8 +34,10 @@ No more paper chaos! FileClap helps you easily organize photos, receipts, and im
Advanced Search Capabilites using Vector embeddings for shit
<figure>
<Image src={search} alt="search" />
<figcaption>Preview of the Search result for value "golang books"</figcaption>
<Image src={search} alt="search" />
<figcaption>Preview of the Search result for value "golang books"</figcaption>
</figure>
<a href="https://fileclap.com/home" target="_blank" ><h1>check it out!</h1></a>
<a href="https://fileclap.com/home" target="_blank">
<h1>check it out!</h1>
</a>

View File

@@ -1,8 +1,9 @@
---
title: 'Deployment'
description: 'Lorem ipsum dolor sit amet'
pubDate: 'Mar 02 2026'
title: "Deployment"
description: "Lorem ipsum dolor sit amet"
pubDate: "Mar 02 2026"
---
<style is:global>
h1,
h2,
@@ -25,10 +26,11 @@ img {
justify-content: space-between;
}
</style>
# Here is A List of Frequently Used Services for Easy Access <3
//extract the fucking uhh thingy ma bob
<ul>
<li>
<a href="https://horsa.illegalesachen.download">
@@ -60,4 +62,3 @@ img {
<a href="https://docker-ui.illegalesachen.download/"><img src="https://docker-ui.illegalesachen.download/favicon.ico" heigth="100px" width="100px" /></a>
</li>
</ul>

View File

@@ -1,9 +1,10 @@
---
title: 'Horsa'
description: 'Lorem ipsum dolor sit amet'
pubDate: 'Feb 27 2026'
gitLink: 'https://github.com/juli0n21/horsa'
title: "Horsa"
description: "Lorem ipsum dolor sit amet"
pubDate: "Feb 27 2026"
gitLink: "https://github.com/juli0n21/horsa"
---
<style is:global>
h1,
h2,
@@ -19,16 +20,18 @@ img {
border-color: #bb4d00;
}
</style>
# Horsa Haas HorseShoe as a Service
Horsa is an Mobile First all in One Solution for ur BlackSmithing Shop
## Features
- Invoice Management
- Appointment Planning
- Automatic VRT planning
- Customer Management
- Inventory Management
- WorkUnit preperation
- WorkUnit preperation
![homeview](@assets/horsa/invoices.png)

View File

@@ -1,8 +1,9 @@
---
title: 'osu!Progress'
description: 'Lorem ipsum dolor sit amet'
pubDate: 'Jun 20 2024'
title: "osu!Progress"
description: "Lorem ipsum dolor sit amet"
pubDate: "Jun 20 2024"
---
<style is:global>
h1,
h2,
@@ -16,6 +17,7 @@ img {
border-color: #aaaeaf;
}
</style>
# osu!Progress - track ur scores and time wasted
## Features
@@ -35,10 +37,11 @@ img {
- C#
- Liquid for Templates
- Tailwind for Styling
- Tailwind for Styling
- Sqlite as DB
## Canceld Extension - [osuProgress Server](https://github.com/JuLi0n21/osuprogressserver)
The idea was to extend the concept and make it easy to share local scores only, due to lazer not being supported by the score extraction library at the time and now live score feed being established went no where
# Arcitectur
@@ -46,4 +49,4 @@ The idea was to extend the concept and make it easy to share local scores only,
- golang
- a-h/templ + tailwind
- Sqlite as DB
![Score](@assets/osuProgress/scorePage.png)
![Score](@assets/osuProgress/scorePage.png)

View File

@@ -1,8 +1,9 @@
---
title: 'pwa-player'
description: 'Lorem ipsum dolor sit amet'
pubDate: 'Jul 08 2022'
title: "pwa-player"
description: "Lorem ipsum dolor sit amet"
pubDate: "Jul 08 2022"
---
<style is:global>
h1,
h2,
@@ -19,6 +20,7 @@ pubDate: 'Jul 08 2022'
</style>
# Osu!Music (Pwa Player)
Pwa player is a Website that allows u to play and share ur local osu music with ur friends and listen to it on the go
The Focus is on easy setup, customization and most emportantly Enjoying the music

View File

@@ -1,8 +1,9 @@
---
title: 'eai-presentation-frameworks'
description: 'Lorem ipsum dolor sit amet'
pubDate: 'Jul 08 2022'
title: "eai-presentation-frameworks"
description: "Lorem ipsum dolor sit amet"
pubDate: "Jul 08 2022"
---
<style is:global>
h1,
h2,

View File

@@ -1,8 +1,9 @@
---
title: 'eai'
description: 'Lorem ipsum dolor sit amet'
pubDate: 'Jul 08 2022'
title: "eai"
description: "Lorem ipsum dolor sit amet"
pubDate: "Jul 08 2022"
---
<style is:global>
h1,
h2,

View File

@@ -1,8 +1,9 @@
---
title: 'eai-xmpp'
description: 'Lorem ipsum dolor sit amet'
pubDate: 'Jul 08 2022'
title: "eai-xmpp"
description: "Lorem ipsum dolor sit amet"
pubDate: "Jul 08 2022"
---
<style is:global>
h1,
h2,

View File

@@ -1,8 +1,9 @@
---
title: 'vr-threejs'
description: 'Lorem ipsum dolor sit amet'
pubDate: 'Jul 08 2022'
title: "vr-threejs"
description: "Lorem ipsum dolor sit amet"
pubDate: "Jul 08 2022"
---
<style is:global>
h1,
h2,

View File

@@ -1,8 +1,9 @@
---
title: 'GWA-webshop'
description: 'Lorem ipsum dolor sit amet'
pubDate: 'Jul 08 2022'
title: "GWA-webshop"
description: "Lorem ipsum dolor sit amet"
pubDate: "Jul 08 2022"
---
<style is:global>
h1,
h2,

View File

@@ -1,8 +1,9 @@
---
title: 'Ina2-Webshop'
description: 'Lorem ipsum dolor sit amet'
pubDate: 'Jul 08 2022'
title: "Ina2-Webshop"
description: "Lorem ipsum dolor sit amet"
pubDate: "Jul 08 2022"
---
<style is:global>
h1,
h2,

View File

@@ -1,8 +1,9 @@
---
title: 'ISE-Tweeter'
description: 'Lorem ipsum dolor sit amet'
pubDate: 'Jul 08 2022'
title: "ISE-Tweeter"
description: "Lorem ipsum dolor sit amet"
pubDate: "Jul 08 2022"
---
<style is:global>
h1,
h2,

View File

@@ -1,8 +1,9 @@
---
title: 'MandelBrot'
description: 'Lorem ipsum dolor sit amet'
pubDate: 'Jul 08 2022'
title: "MandelBrot"
description: "Lorem ipsum dolor sit amet"
pubDate: "Jul 08 2022"
---
<style is:global>
h1,
h2,

View File

@@ -1,8 +1,9 @@
---
title: 'Messenger-App/Server'
description: 'Lorem ipsum dolor sit amet'
pubDate: 'Jul 08 2022'
title: "Messenger-App/Server"
description: "Lorem ipsum dolor sit amet"
pubDate: "Jul 08 2022"
---
<style is:global>
h1,
h2,

View File

@@ -1,8 +1,9 @@
---
title: 'PicShare'
description: 'Lorem ipsum dolor sit amet'
pubDate: 'Jul 08 2022'
title: "PicShare"
description: "Lorem ipsum dolor sit amet"
pubDate: "Jul 08 2022"
---
<style is:global>
h1,
h2,

View File

@@ -1,8 +1,9 @@
---
title: 'Project-1'
description: 'Lorem ipsum dolor sit amet'
pubDate: 'Jul 08 2022'
title: "Project-1"
description: "Lorem ipsum dolor sit amet"
pubDate: "Jul 08 2022"
---
<style is:global>
h1,
h2,

View File

@@ -3,8 +3,6 @@ import BaseHead from '@components/BaseHead.astro';
import Header from '@components/Header.astro';
import GithubIcon from '@assets/github.svg'
// Has some irrelevant flags that we WILL use in the future.
// const { title, description, pubDate, updatedDate, gitLink } = Astro.props;
const { title, description, gitLink } = Astro.props;
---

View File

@@ -7,17 +7,18 @@ import type {
GetStaticPaths,
} from "astro";
export const getStaticPaths = (async () => {
export async function getStaticPaths() {
const posts = await getCollection('personal');
return posts.map(post => ({
params: { id: post.id },
props: { post },
}));
}) satisfies GetStaticPaths;
}
getStaticPaths satisfies GetStaticPaths;
type Params = InferGetStaticParamsType<typeof getStaticPaths>;
type Props = InferGetStaticPropsType<typeof getStaticPaths>;
const { post } = Astro.props as Props;
const { id } = Astro.params as Params;
const { Content } = await render(post);

View File

@@ -7,20 +7,23 @@ import type {
GetStaticPaths,
} from "astro";
export const getStaticPaths = (async () => {
export async function getStaticPaths() {
const posts = await getCollection('uni');
return posts.map(post => ({
params: { id: post.id },
props: { post },
}));
}) satisfies GetStaticPaths;
}
getStaticPaths satisfies GetStaticPaths;
type Params = InferGetStaticParamsType<typeof getStaticPaths>;
type Props = InferGetStaticPropsType<typeof getStaticPaths>;
const { post } = Astro.props;
const { post } = Astro.props as Props;
const { id } = Astro.params as Params;
const { Content } = await render(post);
---
<BlogPost {...post.data}>
<Content />
<Content />
</BlogPost>

View File

@@ -3,62 +3,16 @@ import BaseHead from '@components/BaseHead.astro';
import Header from '@components/Header.astro';
import { SITE_DESCRIPTION, SITE_TITLE } from '@ptypes/consts.ts';
let images = [
'https://fshare.kami.boo/u/xH0KLo.jpg',
'https://fshare.kami.boo/u/a0a2234c-b361-425f-8794-612c7c9fbafe.jpg',
'https://fshare.kami.boo/u/7ceef00c-35cf-4a2f-bec1-0fb489db5f7c.jpg',
'https://fshare.kami.boo/u/1dc11a22-b492-4d83-b39f-08dc46033c68.jpg',
'https://fshare.kami.boo/u/ede1face-6905-47a2-bf44-7c2bf73206e3.jpg',
'https://fshare.kami.boo/u/a5fcf2c4-4f2e-4070-a798-0fbc82bd9c78.jpg',
'https://fshare.kami.boo/u/7e772637-8deb-474e-b0af-6a28823d81cd.jpg',
'https://fshare.kami.boo/u/54362679-999f-48e3-8ccd-74265a70bfdf.jpg',
'https://fshare.kami.boo/u/08db3d3f-2a60-4298-a348-06c5cdb7a76e.jpg',
'https://fshare.kami.boo/u/c99e11e5-860e-4db6-b34e-15f2161f0eed.jpg',
'https://fshare.kami.boo/u/ILaX7V.jpg',
'https://fshare.kami.boo/u/3a54d27d-cd50-4042-af12-58548ac4bc18.jpg',
'https://fshare.kami.boo/u/0bd180d7-64e2-4873-b1fc-b5019668cfdb.jpg',
'https://fshare.kami.boo/u/939f2614-a85a-4a24-8920-992cd93a57cf.jpg',
'https://fshare.kami.boo/u/cb877b4c-202f-42db-91f7-84cc8807985d.jpg',
'https://fshare.kami.boo/u/l8LvNF.jpg',
'https://fshare.kami.boo/u/ee1a2ad8-0989-4b08-8b50-2477c1ecb4cd.jpg',
'https://fshare.kami.boo/u/5d0272fd-a693-4940-a110-c731ca03e5f5.jpg',
'https://fshare.kami.boo/u/f8422aae-671c-4dc5-8f47-7088b230c8b9.jpg',
'https://fshare.kami.boo/u/e0b096d5-eaac-4185-8049-e9e4e6e517ec.jpg',
'https://fshare.kami.boo/u/5e1e8a74-eba0-4a9a-82a8-a99707d3a536.jpg'
].sort(() => Math.random() - .5);
let shuffeled = [
'https://fshare.kami.boo/u/7e9423b9-f3f7-412b-af30-45b1a0f4957b.jpg',
'https://fshare.kami.boo/u/cfe345a2-f91c-4486-a3b1-714c8a5f6279.jpg',
'https://fshare.kami.boo/u/7ddd3e93-dedf-448d-ae82-1f1182084195.jpg',
'https://fshare.kami.boo/u/9129a055-ceb9-49f1-a549-a3e5e4dc1629.jpg',
'https://fshare.kami.boo/u/ccdfe9bc-e317-4dcd-9c6c-7f7491cf34a2.jpg',
'https://fshare.kami.boo/u/40ba2a78-2aaf-4f85-a722-f918d8095a72.jpg',
'https://fshare.kami.boo/u/dc64b765-aac1-454a-a40c-8599b7581690.jpg',
'https://fshare.kami.boo/u/7399f2a9-28f7-4c43-9890-6cc681ec7ecf.jpg',
'https://fshare.kami.boo/u/efee574e-3945-46e4-8d4e-9b132561fef0.jpg',
'https://fshare.kami.boo/u/230fd5a9-ef97-4bbb-a997-ef11accb5da4.jpg',
'https://fshare.kami.boo/u/43be89ba-2d40-402b-90ee-bcb1e6ffd789.jpg',
'https://fshare.kami.boo/u/4093c11f-c1f0-4a18-8e1c-60404eafafb5.jpg',
'https://fshare.kami.boo/u/cd2ffbbc-56be-4643-8540-9297c74dc8dd.jpg',
'https://fshare.kami.boo/u/0db3ec0a-d325-4f75-a0e9-57e1b3d39025.jpg',
'https://fshare.kami.boo/u/b5ffd08b-5200-4208-8c27-c1f0f30754d5.jpg',
'https://fshare.kami.boo/u/3ef0ae02-5cb1-4560-843f-d9fd4637b05e.jpg',
'https://fshare.kami.boo/u/a1c71338-579d-4e81-8edb-c1b9b243c748.jpg',
'https://fshare.kami.boo/u/d0e8a4cd-a04e-46dd-a22f-5d66bc5bfbb8.jpg',
'https://fshare.kami.boo/u/bb229c83-0755-4c5f-a1d3-5a7edf2bd8c7.jpg',
'https://fshare.kami.boo/u/8f5b50a9-567b-4563-9fd6-0d35fafed4f9.jpg'
].sort(() => Math.random() - .5);
let shuffled: string[] = [];
let images: string[] = [];
const response = await fetch('https://fshare.kami.boo/api/server/folder/cmm9jbqvt00025omwu5cnpw9i')
if (response.ok) {
const data = await response.json();
const files = data.files.map((f: Response) => `https://fshare.kami.boo/raw${f.url.substring(2)}`).sort(() => Math.random() - .5);
const files = data.files.map((f: Response) => `https://fshare.kami.boo/raw${f.url.substring(2)}`).sort(() => Math.random() - .5) as string[];
const middle = Math.round(files.length / 2);
shuffeled = files.slice(0,middle);
shuffled = files.slice(0,middle);
images = files.slice(middle);
//console.log(shuffeled)
//console.log(images)
} else {
const errorBody = await response.text();
console.error("FAILED TO FETCH", response.status, response.statusText, errorBody);
@@ -186,12 +140,12 @@ if (response.ok) {
))}
</div>
<div class="scroll-track track-reverse">
{shuffeled.slice().reverse().map((src) => (
{shuffled.slice().reverse().map((src) => (
<div class="tilted-container">
<img src={src} />
</div>
))}
{shuffeled.slice().reverse().map((src) => (
{shuffled.slice().reverse().map((src) => (
<div class="tilted-container">
<img src={src} />
</div>

View File

@@ -5,38 +5,38 @@
*/
:root {
min-width: 0px;
min-height: 0px;
min-width: 0px;
min-height: 0px;
}
@font-face {
font-family: "Atkinson";
src: url("/fonts/atkinson-regular.woff") format("woff");
font-weight: 400;
font-style: normal;
font-display: swap;
font-family: "Atkinson";
src: url("/fonts/atkinson-regular.woff") format("woff");
font-weight: 400;
font-style: normal;
font-display: swap;
}
@font-face {
font-family: "Atkinson";
src: url("/fonts/atkinson-bold.woff") format("woff");
font-weight: 700;
font-style: normal;
font-display: swap;
font-family: "Atkinson";
src: url("/fonts/atkinson-bold.woff") format("woff");
font-weight: 700;
font-style: normal;
font-display: swap;
}
body {
font-family: "Atkinson", sans-serif;
margin: 0;
padding: 0;
text-align: left;
background: linear-gradient(var(--gray-gradient)) no-repeat;
background-size: 100% 600px;
word-wrap: break-word;
overflow-wrap: break-word;
font-size: 17px;
line-height: 1.5;
font-family: "Atkinson", sans-serif;
margin: 0;
padding: 0;
text-align: left;
background: linear-gradient(var(--gray-gradient)) no-repeat;
background-size: 100% 600px;
word-wrap: break-word;
overflow-wrap: break-word;
font-size: 17px;
line-height: 1.5;
}
ul {
padding: 5px;
margin: 0;
padding: 5px;
margin: 0;
}
h1,
h2,
@@ -44,77 +44,77 @@ h3,
h4,
h5,
h6 {
margin: 0 0 0.5rem 0;
color: rgb(var(--black));
line-height: 1.2;
margin: 0 0 0.5rem 0;
color: rgb(var(--black));
line-height: 1.2;
}
h1 {
font-size: 3.052em;
font-size: 3.052em;
}
h2 {
font-size: 2.441em;
font-size: 2.441em;
}
h3 {
font-size: 1.953em;
font-size: 1.953em;
}
h4 {
font-size: 1.563em;
font-size: 1.563em;
}
h5 {
font-size: 1.25em;
font-size: 1.25em;
}
strong,
b {
font-weight: 700;
font-weight: 700;
}
a {
color: var(--accent);
color: var(--accent);
}
a:hover {
color: var(--accent);
color: var(--accent);
}
p {
margin-bottom: 1em;
margin-bottom: 1em;
}
.prose p {
margin-bottom: 2em;
margin-bottom: 2em;
}
textarea {
width: 100%;
font-size: 16px;
width: 100%;
font-size: 16px;
}
input {
font-size: 16px;
font-size: 16px;
}
table {
width: 100%;
width: 100%;
}
img {
max-width: 100%;
height: auto;
border-radius: 8px;
max-width: 100%;
height: auto;
border-radius: 8px;
}
code {
padding: 2px 5px;
background-color: rgb(var(--gray-light));
border-radius: 2px;
padding: 2px 5px;
background-color: rgb(var(--gray-light));
border-radius: 2px;
}
pre {
padding: 1.5em;
border-radius: 8px;
padding: 1.5em;
border-radius: 8px;
}
pre > code {
all: unset;
all: unset;
}
blockquote {
border-left: 4px solid var(--accent);
padding: 0 0 0 20px;
margin: 0;
font-size: 1.333em;
border-left: 4px solid var(--accent);
padding: 0 0 0 20px;
margin: 0;
font-size: 1.333em;
}
hr {
border: none;
border-top: 1px solid rgb(var(--gray-light));
border: none;
border-top: 1px solid rgb(var(--gray-light));
}
figure {
display: flex;
@@ -137,28 +137,28 @@ figcaption::before {
}
@media (max-width: 720px) {
body {
font-size: 18px;
}
main {
padding: 1em;
}
body {
font-size: 18px;
}
main {
padding: 1em;
}
}
.sr-only {
border: 0;
padding: 0;
margin: 0;
position: absolute !important;
height: 1px;
width: 1px;
overflow: hidden;
/* IE6, IE7 - a 0 height clip, off to the bottom right of the visible 1px box */
clip: rect(1px 1px 1px 1px);
/* maybe deprecated but we need to support legacy browsers */
clip: rect(1px, 1px, 1px, 1px);
/* modern browsers, clip-path works inwards from each corner */
clip-path: inset(50%);
/* added line to stop words getting smushed together (as they go onto separate lines and some screen readers do not understand line feeds as a space */
white-space: nowrap;
border: 0;
padding: 0;
margin: 0;
position: absolute !important;
height: 1px;
width: 1px;
overflow: hidden;
/* IE6, IE7 - a 0 height clip, off to the bottom right of the visible 1px box */
clip: rect(1px 1px 1px 1px);
/* maybe deprecated but we need to support legacy browsers */
clip: rect(1px, 1px, 1px, 1px);
/* modern browsers, clip-path works inwards from each corner */
clip-path: inset(50%);
/* added line to stop words getting smushed together (as they go onto separate lines and some screen readers do not understand line feeds as a space */
white-space: nowrap;
}