fix: correct wording regarding degree
All checks were successful
Docker / build-and-push-image (push) Successful in 2m30s

This commit is contained in:
Troy 2025-07-13 11:37:40 +01:00
parent 42d09aa9f0
commit add8db083e
Signed by: troy
GPG key ID: DFC06C02ED3B4711
6 changed files with 47 additions and 28 deletions

View file

@ -33,6 +33,7 @@ export default defineConfig({
}, },
redirects: { redirects: {
"/archive": "/projects/archive", "/archive": "/projects/archive",
"/cv": "/about",
}, },
image: { image: {
responsiveStyles: false, responsiveStyles: false,

32
package-lock.json generated
View file

@ -13,7 +13,7 @@
"@astrojs/rss": "^4.0.12", "@astrojs/rss": "^4.0.12",
"@astrojs/sitemap": "3.4.1", "@astrojs/sitemap": "3.4.1",
"@tailwindcss/vite": "^4.1.11", "@tailwindcss/vite": "^4.1.11",
"astro": "^5.10.2", "astro": "^5.11.0",
"astro-icon": "^1.1.5", "astro-icon": "^1.1.5",
"rehype-external-links": "^3.0.0", "rehype-external-links": "^3.0.0",
"tailwindcss": "^4.1.11", "tailwindcss": "^4.1.11",
@ -22,11 +22,11 @@
"devDependencies": { "devDependencies": {
"@iconify-json/mdi": "^1.2.3", "@iconify-json/mdi": "^1.2.3",
"@tailwindcss/typography": "^0.5.16", "@tailwindcss/typography": "^0.5.16",
"@types/node": "^24.0.10", "@types/node": "^24.0.13",
"npm-check-updates": "^18.0.1", "npm-check-updates": "^18.0.1",
"prettier": "^3.6.2", "prettier": "^3.6.2",
"prettier-plugin-astro": "^0.14.1", "prettier-plugin-astro": "^0.14.1",
"prettier-plugin-tailwindcss": "^0.6.13" "prettier-plugin-tailwindcss": "^0.6.14"
} }
}, },
"node_modules/@ampproject/remapping": { "node_modules/@ampproject/remapping": {
@ -2139,9 +2139,9 @@
} }
}, },
"node_modules/@types/node": { "node_modules/@types/node": {
"version": "24.0.10", "version": "24.0.13",
"resolved": "https://registry.npmjs.org/@types/node/-/node-24.0.10.tgz", "resolved": "https://registry.npmjs.org/@types/node/-/node-24.0.13.tgz",
"integrity": "sha512-ENHwaH+JIRTDIEEbDK6QSQntAYGtbvdDXnMXnZaZ6k13Du1dPMmprkEHIL7ok2Wl2aZevetwTAb5S+7yIF+enA==", "integrity": "sha512-Qm9OYVOFHFYg3wJoTSrz80hoec5Lia/dPp84do3X7dZvLikQvM1YpmvTBEdIr/e+U8HTkFjLHLnl78K/qjf+jQ==",
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"undici-types": "~7.8.0" "undici-types": "~7.8.0"
@ -2455,9 +2455,9 @@
} }
}, },
"node_modules/astro": { "node_modules/astro": {
"version": "5.10.2", "version": "5.11.0",
"resolved": "https://registry.npmjs.org/astro/-/astro-5.10.2.tgz", "resolved": "https://registry.npmjs.org/astro/-/astro-5.11.0.tgz",
"integrity": "sha512-CCBU+e/Apk6NWEMnc/R9dVZD/+FaCnNqWJicX1Oe6T18vLKop+LPs/m/88ekJk4zxP1g1N/GfUq4wEedUSk1Wg==", "integrity": "sha512-MEICntERthUxJPSSDsDiZuwiCMrsaYy3fnDhp4c6ScUfldCB8RBnB/myYdpTFXpwYBy6SgVsHQ1H4MuuA7ro/Q==",
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"@astrojs/compiler": "^2.12.2", "@astrojs/compiler": "^2.12.2",
@ -6576,9 +6576,9 @@
} }
}, },
"node_modules/prettier-plugin-tailwindcss": { "node_modules/prettier-plugin-tailwindcss": {
"version": "0.6.13", "version": "0.6.14",
"resolved": "https://registry.npmjs.org/prettier-plugin-tailwindcss/-/prettier-plugin-tailwindcss-0.6.13.tgz", "resolved": "https://registry.npmjs.org/prettier-plugin-tailwindcss/-/prettier-plugin-tailwindcss-0.6.14.tgz",
"integrity": "sha512-uQ0asli1+ic8xrrSmIOaElDu0FacR4x69GynTh2oZjFY10JUt6EEumTQl5tB4fMeD6I1naKd+4rXQQ7esT2i1g==", "integrity": "sha512-pi2e/+ZygeIqntN+vC573BcW5Cve8zUB0SSAGxqpB4f96boZF4M3phPVoOFCeypwkpRYdi7+jQ5YJJUwrkGUAg==",
"dev": true, "dev": true,
"license": "MIT", "license": "MIT",
"engines": { "engines": {
@ -6586,6 +6586,8 @@
}, },
"peerDependencies": { "peerDependencies": {
"@ianvs/prettier-plugin-sort-imports": "*", "@ianvs/prettier-plugin-sort-imports": "*",
"@prettier/plugin-hermes": "*",
"@prettier/plugin-oxc": "*",
"@prettier/plugin-pug": "*", "@prettier/plugin-pug": "*",
"@shopify/prettier-plugin-liquid": "*", "@shopify/prettier-plugin-liquid": "*",
"@trivago/prettier-plugin-sort-imports": "*", "@trivago/prettier-plugin-sort-imports": "*",
@ -6607,6 +6609,12 @@
"@ianvs/prettier-plugin-sort-imports": { "@ianvs/prettier-plugin-sort-imports": {
"optional": true "optional": true
}, },
"@prettier/plugin-hermes": {
"optional": true
},
"@prettier/plugin-oxc": {
"optional": true
},
"@prettier/plugin-pug": { "@prettier/plugin-pug": {
"optional": true "optional": true
}, },

View file

@ -17,7 +17,7 @@
"@astrojs/rss": "^4.0.12", "@astrojs/rss": "^4.0.12",
"@astrojs/sitemap": "3.4.1", "@astrojs/sitemap": "3.4.1",
"@tailwindcss/vite": "^4.1.11", "@tailwindcss/vite": "^4.1.11",
"astro": "^5.10.2", "astro": "^5.11.0",
"astro-icon": "^1.1.5", "astro-icon": "^1.1.5",
"rehype-external-links": "^3.0.0", "rehype-external-links": "^3.0.0",
"tailwindcss": "^4.1.11", "tailwindcss": "^4.1.11",
@ -26,10 +26,10 @@
"devDependencies": { "devDependencies": {
"@iconify-json/mdi": "^1.2.3", "@iconify-json/mdi": "^1.2.3",
"@tailwindcss/typography": "^0.5.16", "@tailwindcss/typography": "^0.5.16",
"@types/node": "^24.0.10", "@types/node": "^24.0.13",
"npm-check-updates": "^18.0.1", "npm-check-updates": "^18.0.1",
"prettier": "^3.6.2", "prettier": "^3.6.2",
"prettier-plugin-astro": "^0.14.1", "prettier-plugin-astro": "^0.14.1",
"prettier-plugin-tailwindcss": "^0.6.13" "prettier-plugin-tailwindcss": "^0.6.14"
} }
} }

View file

@ -8,8 +8,12 @@
<p <p
class="text-secondary/70 animate-reveal text-lg font-medium opacity-0 [animation-delay:0.1s]" class="text-secondary/70 animate-reveal text-lg font-medium opacity-0 [animation-delay:0.1s]"
> >
I am in my final year of studying on a Game Arts and Design BA (Hons) degree Im a recent <a
and on the side I manage online operations for a family run href="/about#education"
class="text-secondary underline hover:no-underline"
>Game Arts and Design</a
> graduate with a chosen area of focus on the design, lighting, and rendering
of 3D environments. On the side I manage online operations for a family run
<a <a
href="/projects/camouflage-store" href="/projects/camouflage-store"
class="text-secondary underline hover:no-underline" class="text-secondary underline hover:no-underline"

View file

@ -41,7 +41,7 @@ export const SITE: Site = {
}, },
{ {
name: "Git", name: "Git",
href: "https://code.threepop.com", href: "https://code.threepop.com/explore",
icon: "mdi:git", icon: "mdi:git",
}, },
{ {

View file

@ -25,6 +25,7 @@ const projects = [
"A fast-paced first person shooter set following the realization that youre all out of beans. The problem is, youre nearing the end of cooking all the other items and you cant just not have them. Without beans, the day just wont be started off right.", "A fast-paced first person shooter set following the realization that youre all out of beans. The problem is, youre nearing the end of cooking all the other items and you cant just not have them. Without beans, the day just wont be started off right.",
tags: ["Godot", "Blender", "GIMP", "Steamworks"], tags: ["Godot", "Blender", "GIMP", "Steamworks"],
link: "/projects/must-find-beans", link: "/projects/must-find-beans",
print_link: "https://troylusty.com/projects/must-find-beans",
done: false, done: false,
}, },
{ {
@ -34,6 +35,7 @@ const projects = [
"Keep control of the castle, but more importantly: your armour.", "Keep control of the castle, but more importantly: your armour.",
tags: ["Unreal Engine", "Blender", "GIMP", "FL Studio", "Inkscape"], tags: ["Unreal Engine", "Blender", "GIMP", "FL Studio", "Inkscape"],
link: "/projects/sinkie-soldiers", link: "/projects/sinkie-soldiers",
print_link: "https://troylusty.com/projects/sinkie-soldiers",
done: true, done: true,
}, },
{ {
@ -49,6 +51,7 @@ const projects = [
"Docker", "Docker",
], ],
link: "https://code.threepop.com/troy/troylusty.com", link: "https://code.threepop.com/troy/troylusty.com",
print_link: "https://code.threepop.com/troy/troylusty.com",
done: true, done: true,
}, },
{ {
@ -58,6 +61,7 @@ const projects = [
"A collection of digital artwork created with a variety of tools.", "A collection of digital artwork created with a variety of tools.",
tags: ["Blender", "Cinema 4D", "DaVinci Resolve"], tags: ["Blender", "Cinema 4D", "DaVinci Resolve"],
link: "/projects", link: "/projects",
print_link: "https://troylusty.com/projects",
done: true, done: true,
}, },
{ {
@ -67,6 +71,7 @@ const projects = [
"Packard is a simple terminal based RSS aggregator meant to allow you to take a quick glance at whats occurring in topics you care about.", "Packard is a simple terminal based RSS aggregator meant to allow you to take a quick glance at whats occurring in topics you care about.",
tags: ["Rust", "Tokio", "Clap", "NixOS Flake"], tags: ["Rust", "Tokio", "Clap", "NixOS Flake"],
link: "/projects/packard", link: "/projects/packard",
print_link: "https://troylusty.com/projects/packard",
done: true, done: true,
}, },
]; ];
@ -175,7 +180,7 @@ const sortedEducation = [...education].sort((a, b) => a.id - b.id);
<Icon name="mdi:email" class="h-4 w-4" /> <Icon name="mdi:email" class="h-4 w-4" />
</Link> </Link>
<Link <Link
href="https://code.threepop.com" href="https://code.threepop.com/explore"
aria-label="Git" aria-label="Git"
class="bg-button text-secondary hover:bg-button-active flex w-fit flex-row items-center gap-1 justify-self-center rounded-full p-2 text-center text-sm text-nowrap capitalize transition-colors duration-300" class="bg-button text-secondary hover:bg-button-active flex w-fit flex-row items-center gap-1 justify-self-center rounded-full p-2 text-center text-sm text-nowrap capitalize transition-colors duration-300"
> >
@ -214,17 +219,18 @@ const sortedEducation = [...education].sort((a, b) => a.id - b.id);
<section class="animate-reveal opacity-0 [animation-delay:0.1s]"> <section class="animate-reveal opacity-0 [animation-delay:0.1s]">
<p class="text-secondary/70 text-lg font-medium"> <p class="text-secondary/70 text-lg font-medium">
Im a <a Im a recent <a
href="#education" href="#education"
class="text-secondary underline hover:no-underline" class="text-secondary underline hover:no-underline"
>Game Arts and Design</a >Game Arts and Design</a
> degree student with a chosen area of focus on the design, lighting, and rendering > graduate with a chosen area of focus on the design, lighting, and rendering
of 3D environments. Using either real-time or offline rendering techniques of 3D environments. Using either real-time or offline rendering techniques
in software packages such as Blender, Unreal Engine, and more recently: Godot. in software packages such as Blender, Unreal Engine, and more recently: Godot.
In addition to this I also have an interest in web development, graphic design, In addition to this I also have interests in web development, graphic design,
and cyber security which partially make up my hobbies excluding riding motorbikes. and cyber security in addition to motorbike touring. An up-to-date portfolio
If you're reading this offline, my portfolio of work can be found on my website of my work can be found on my website at <a
at <a href="/projects" class="text-secondary underline hover:no-underline" href="/projects"
class="text-secondary underline hover:no-underline"
>troylusty.com/projects</a >troylusty.com/projects</a
>. >.
</p> </p>
@ -292,7 +298,7 @@ const sortedEducation = [...education].sort((a, b) => a.id - b.id);
</div> </div>
<div class="flex flex-wrap gap-2"> <div class="flex flex-wrap gap-2">
<div <div
class="mt-3 flex w-fit items-center gap-2 rounded-full bg-green-200/20 px-3 py-1.5 transition-transform duration-300 hover:scale-102 hover:-rotate-2 dark:bg-green-900/20" class="mt-3 flex w-fit items-center gap-2 rounded-full bg-green-200/20 p-2 transition-transform duration-300 hover:scale-102 hover:-rotate-2 dark:bg-green-900/20"
> >
<Icon <Icon
name="mdi:check-decagram-outline" name="mdi:check-decagram-outline"
@ -301,7 +307,7 @@ const sortedEducation = [...education].sort((a, b) => a.id - b.id);
<p>Full drivers licence (A & B)</p> <p>Full drivers licence (A & B)</p>
</div> </div>
<div <div
class="mt-3 flex w-fit items-center gap-2 rounded-full bg-cyan-200/20 px-3 py-1.5 transition-transform duration-300 hover:scale-102 hover:-rotate-2 dark:bg-cyan-900/20" class="mt-3 flex w-fit items-center gap-2 rounded-full bg-cyan-200/20 p-2 transition-transform duration-300 hover:scale-102 hover:-rotate-2 dark:bg-cyan-900/20"
> >
<Icon <Icon
name="mdi:water" name="mdi:water"
@ -378,7 +384,7 @@ const sortedEducation = [...education].sort((a, b) => a.id - b.id);
</h3> </h3>
<p class="text-secondary/70 text-sm">{project.description}</p> <p class="text-secondary/70 text-sm">{project.description}</p>
<p class="text-secondary/40 hidden text-xs print:block"> <p class="text-secondary/40 hidden text-xs print:block">
Available at {project.link}. Available at {project.print_link}.
</p> </p>
</> </>
</div> </div>