diff --git a/src/content/config.ts b/src/content/config.ts index 1aebb5b..a8c5f08 100644 --- a/src/content/config.ts +++ b/src/content/config.ts @@ -9,6 +9,18 @@ const posts = defineCollection({ image: z.string().optional(), }), }); +const projects = defineCollection({ + type: 'content', + schema: z.object({ + category: z.string(), + name: z.string(), + description: z.string(), + image: z.string().optional(), + links: z.array(z.object({text: z.string(), url: z.string()})), + }), +}); + export const collections = { posts, + projects, }; \ No newline at end of file diff --git a/src/content/projects/censura.md b/src/content/projects/censura.md new file mode 100644 index 0000000..10846bf --- /dev/null +++ b/src/content/projects/censura.md @@ -0,0 +1,16 @@ +--- +category: "minecraft" +name: "Censura" +description: "Advanced censorship plugin for bukkit minecraft servers." +image: "/assets/projects/censura.webp" +links: [ + { + text: "Website", + url: "https://modrinth.com/plugin/censura" + }, + { + text: "Source", + url: "https://github.com/YouHaveTrouble/Censura" + }, +] +--- diff --git a/src/content/projects/commandwhitelist.md b/src/content/projects/commandwhitelist.md new file mode 100644 index 0000000..bb288b5 --- /dev/null +++ b/src/content/projects/commandwhitelist.md @@ -0,0 +1,16 @@ +--- +category: "minecraft" +name: "CommandWhitelist" +description: "Minecraft bukkit plugin that allows to control precisely what commands players can see and use." +image: "/assets/projects/cw.png" +links: [ + { + text: "Website", + url: "https://modrinth.com/plugin/commandwhitelist" + }, + { + text: "Source", + url: "https://github.com/YouHaveTrouble/CommandWhitelist" + }, +] +--- diff --git a/src/content/projects/dumbforksgenerator.md b/src/content/projects/dumbforksgenerator.md new file mode 100644 index 0000000..f7aa00d --- /dev/null +++ b/src/content/projects/dumbforksgenerator.md @@ -0,0 +1,12 @@ +--- +category: "websites" +name: "Dumb Forks Generator" +description: "PHP name generator for dumb minecraft server software fork names." +image: "/assets/projects/dumbforkgenerator.png" +links: [ + { + text: "Website", + url: "https://dumbforks.yht.one" + }, +] +--- diff --git a/src/content/projects/guesstheanime.md b/src/content/projects/guesstheanime.md new file mode 100644 index 0000000..ea2fbe9 --- /dev/null +++ b/src/content/projects/guesstheanime.md @@ -0,0 +1,16 @@ +--- +category: "websites" +name: "Guess the Anime" +description: "A game where you guess an anime title based off blurred art and a synopsis." +image: "/assets/projects/guesstheanime.png" +links: [ + { + text: "Website", + url: "https://guessanime.yht.one" + }, + { + text: "Source", + url: "https://github.com/YouHaveTrouble/GuessTheAnime" + }, +] +--- diff --git a/src/content/projects/guildmaster.md b/src/content/projects/guildmaster.md new file mode 100644 index 0000000..e8f16d4 --- /dev/null +++ b/src/content/projects/guildmaster.md @@ -0,0 +1,16 @@ +--- +category: "websites" +name: "Guild Master" +description: "Adventurer's guild management browser game." +image: "/assets/projects/guildmaster.png" +links: [ + { + text: "Website", + url: "https://guildmaster.yht.one" + }, + { + text: "Source", + url: "https://github.com/YouHaveTrouble/GuildMaster" + }, +] +--- diff --git a/src/content/projects/iwotd.md b/src/content/projects/iwotd.md new file mode 100644 index 0000000..ec305fd --- /dev/null +++ b/src/content/projects/iwotd.md @@ -0,0 +1,12 @@ +--- +category: "websites" +name: "Interesting Website of the Day" +description: "Daily showcase of interesting websites from my personal database." +image: "/assets/projects/iwotd.png" +links: [ + { + text: "Website", + url: "https://interesting-website.yht.one" + }, +] +--- diff --git a/src/content/projects/meapi.md b/src/content/projects/meapi.md new file mode 100644 index 0000000..08e68ec --- /dev/null +++ b/src/content/projects/meapi.md @@ -0,0 +1,16 @@ +--- +category: "websites" +name: "MeAPI" +description: "API about me. See if I'm online, and if so, what game I'm playing." +image: "/assets/projects/meapi.png" +links: [ + { + text: "Website", + url: "https://api.youhavetrouble.me" + }, + { + text: "Source", + url: "https://github.com/YouHaveTrouble/MeAPI" + }, +] +--- diff --git a/src/content/projects/notjustnameplates.md b/src/content/projects/notjustnameplates.md new file mode 100644 index 0000000..3cd94c8 --- /dev/null +++ b/src/content/projects/notjustnameplates.md @@ -0,0 +1,16 @@ +--- +category: "minecraft" +name: "NotJustNameplates" +description: "Minecraft purpur plugin replacing player nametags with display entities for ultimate control over them." +image: "/assets/projects/njn.png" +links: [ + { + text: "Website", + url: "https://modrinth.com/plugin/notjustnameplates" + }, + { + text: "Source", + url: "https://github.com/YouHaveTrouble/NotJustNameplates" + }, +] +--- diff --git a/src/content/projects/preventstabby.md b/src/content/projects/preventstabby.md new file mode 100644 index 0000000..519c0c3 --- /dev/null +++ b/src/content/projects/preventstabby.md @@ -0,0 +1,16 @@ +--- +category: "minecraft" +name: "PreventStabby" +description: "Minecraft bukkit plugin that gives more control over PvP capabilities." +image: "/assets/projects/ps.webp" +links: [ + { + text: "Website", + url: "https://modrinth.com/plugin/preventstabby" + }, + { + text: "Source", + url: "https://github.com/YouHaveTrouble/PreventStabby" + }, +] +--- diff --git a/src/content/projects/purpur-extras.md b/src/content/projects/purpur-extras.md new file mode 100644 index 0000000..473fc57 --- /dev/null +++ b/src/content/projects/purpur-extras.md @@ -0,0 +1,16 @@ +--- +category: "minecraft" +name: "PurpurExtras" +description: "A companion plugin for Purpur server software that adds additional features and improvements." +image: "/assets/projects/purpur.svg" +links: [ + { + text: "Website", + url: "https://modrinth.com/plugin/purpurextras" + }, + { + text: "Source", + url: "https://github.com/PurpurMC/PurpurExtras" + }, +] +--- diff --git a/src/content/projects/purpur.md b/src/content/projects/purpur.md new file mode 100644 index 0000000..77ec43a --- /dev/null +++ b/src/content/projects/purpur.md @@ -0,0 +1,16 @@ +--- +category: "minecraft" +name: "Purpur" +description: "Purpur is a drop-in replacement for Paper servers designed for configurability and new, fun, exciting gameplay features." +image: "/assets/projects/purpur.svg" +links: [ + { + text: "Website", + url: "https://purpurmc.org" + }, + { + text: "Source", + url: "https://github.com/PurpurMC/Purpur" + }, +] +--- diff --git a/src/content/projects/yardwatch.md b/src/content/projects/yardwatch.md new file mode 100644 index 0000000..80f5e00 --- /dev/null +++ b/src/content/projects/yardwatch.md @@ -0,0 +1,20 @@ +--- +category: "minecraft" +name: "YardWatch" +description: "A pair of API and bukkit plugin that unifies protection plugin APIs." +image: "/assets/projects/yardwatch.png" +links: [ + { + text: "Website", + url: "https://modrinth.com/plugin/yardwatch" + }, + { + text: "Source (plugin)", + url: "https://github.com/YouHaveTrouble/YardWatch" + }, + { + text: "Source (plugin)", + url: "https://github.com/YouHaveTrouble/YardWatchAPI" + } +] +--- diff --git a/src/pages/projects.astro b/src/pages/projects.astro index e9def25..9dd1a07 100644 --- a/src/pages/projects.astro +++ b/src/pages/projects.astro @@ -1,9 +1,24 @@ --- import BaseLayout from '../layouts/BaseLayout.astro'; +import {getCollection} from "astro:content"; const title = 'Projects'; const description = 'Stuff I\'m working on.'; const permalink = `${Astro.site.href}projects`; + +const projectsCollection = await getCollection('projects'); +projectsCollection.sort((a, b) => a.data.name.localeCompare(b.data.name)); +const projects = {} + +for (const project of projectsCollection) { + const category = project.data.category.toLowerCase(); + const projectsInCategory = projects[category]; + if (projectsInCategory) { + projectsInCategory.push(project); + } else { + projects[category] = [project]; + } +} --- @@ -12,170 +27,50 @@ const permalink = `${Astro.site.href}projects`;

Here are some of the projects I'm working on. Most of them are open source, so feel free to check them out!
- Projects presented here are what I consider in presentable and/or finished state. They might or might not get updates. + Projects presented here are what I consider in presentable and/or finished state. They might or might not get + updates.
Most logos generated using DALL-E mini.

-

Minecraft

-
-
-
- Purpur logo -
-
-

Purpur

-

- Purpur is a drop-in replacement for Paper servers designed for configurability and new, fun, exciting gameplay features. -

-

- Website | Source -

-
-
-
- PurpurExtras logo -
-
-

PurpurExtras

-

- A companion plugin for Purpur server software that adds additional features and improvements. -

-

- Website | Source -

-
-
-
- CommandWhitelist logo -
-
-

CommandWhitelist

-

- Minecraft bukkit plugin that allows to control precisely what commands players can see and use. -

-

- Website | Source -

-
-
-
- PreventStabby logo -
-
-

PreventStabby

-

- Minecraft bukkit plugin that gives more control over PvP capabilities. -

-

- Website | Source -

-
-
-
- Censura logo -
-
-

Censura

-

- Advanced censorship plugin for bukkit minecraft servers. -

-

- Website | Source -

-
-
-
- NotJustNameplates logo -
-
-

NotJustNamePlates

-

- Minecraft purpur plugin replacing player nametags with display entities for ultimate control over them. -

-

- Website | Source -

-
-
-
- YardWatch logo -
-
-

YardWatch

-

- A pair of API and bukkit plugin that unifies protection plugin APIs -

-

- Website | Source (plugin) | Source (API) -

-
-

Websites

-
-
-
- MeAPI logo -
-
-

MeAPI

-

- API about me. See if I'm online, and if so, what game I'm playing. -

-

- Website | Source -

-
-
-
- Interesting website of the Day logo -
-
-

Interesting Website of the Day

-

- Daily showcase of interesting websites from my personal database. -

-

- Website -

-
-
-
- Guild Master logo -
-
-

Guild Master

-

- Adventurer's guild management browser game. -

-

- Website | Source -

-
-
-
- Dumb Forks Generator logo -
-
-

Dumb Forks Generator

-

- PHP name generator for dumb minecraft server software fork names. -

-

- Website -

-
-
-
- Guess the Anime logo -
-
-

Guess the Anime

-

- A game where you guess an anime title based off blurred art and a synopsis. -

-

- Website | Source -

-
+ { + Object.keys(projects).map((category) => { + return ( +

{category}

+
+
+ { + projects[category].map((project) => { + return ( +
+
+ +
+
+

{project.data.name}

+

+ {project.data.description} +

+

+ { + project.data.links.map((link, index) => { + return ( + index === 0 ? + {link.text} + : | {link.text} + ) + }) + } +

+
+
+ ) + }) + } +
+ ) + } + ) + }
@@ -190,6 +85,10 @@ const permalink = `${Astro.site.href}projects`; margin-bottom: 3.25rem; } + h2 { + text-transform: capitalize; + } + .icon { width: 8rem; aspect-ratio: 1;