aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitignore1
-rwxr-xr-xbun.lockbbin296778 -> 256188 bytes
-rw-r--r--package.json39
-rw-r--r--src/components/3DModels.jsx2
-rw-r--r--src/content.config.ts (renamed from src/content/config.ts)6
-rw-r--r--src/data/contacts.json40
-rw-r--r--src/data/models.json18
-rw-r--r--src/data/website.json78
-rw-r--r--src/layouts/BlogPost.astro12
-rw-r--r--src/layouts/Default.astro3
-rw-r--r--src/pages/archive/index.astro47
-rw-r--r--src/pages/blog/[...slug].astro4
-rw-r--r--src/pages/blog/index.astro2
-rw-r--r--src/pages/blog/tags/[tag].astro2
-rw-r--r--src/pages/contacts.astro3
-rw-r--r--src/pages/downloads/osft-software-archive.astro26
-rw-r--r--src/pages/guidelines.md39
-rw-r--r--src/pages/index.astro6
-rw-r--r--src/pages/privacy.md27
-rw-r--r--src/pages/projects/index.astro2
-rw-r--r--src/pages/projects/programming.astro4
-rw-r--r--src/styles/cards.css1
22 files changed, 223 insertions, 139 deletions
diff --git a/.gitignore b/.gitignore
index 7cd801f..24a2c45 100644
--- a/.gitignore
+++ b/.gitignore
@@ -22,3 +22,4 @@ pnpm-debug.log*
.DS_Store
.idea/
+.vercel
diff --git a/bun.lockb b/bun.lockb
index ab7abe2..c2bc450 100755
--- a/bun.lockb
+++ b/bun.lockb
Binary files differ
diff --git a/package.json b/package.json
index 6cbc633..0bf7919 100644
--- a/package.json
+++ b/package.json
@@ -10,27 +10,28 @@
"astro": "astro"
},
"dependencies": {
- "@astrojs/react": "4.4.2",
- "@astrojs/rss": "4.0.14",
- "@astrojs/svelte": "7.2.2",
- "@astrojs/vercel": "9.0.2",
- "@iconify-json/fa6-brands": "^1.2.5",
- "@iconify-json/fa6-solid": "^1.2.3",
- "@react-three/drei": "^10.7.6",
- "@react-three/fiber": "^9.3.0",
- "@types/react": "^19.1.13",
- "@types/react-dom": "^19.1.9",
+ "@astrojs/react": "6.0.1",
+ "@astrojs/rss": "4.0.19",
+ "@astrojs/svelte": "9.0.1",
+ "@astrojs/vercel": "11.0.2",
+ "@iconify-json/fa6-brands": "^1.2.6",
+ "@iconify-json/fa6-solid": "^1.2.4",
+ "@iconify-json/simple-icons": "^1.2.71",
+ "@react-three/drei": "^10.7.7",
+ "@react-three/fiber": "^9.5.0",
+ "@types/react": "^19.2.14",
+ "@types/react-dom": "^19.2.3",
"@types/three": "^0.180.0",
- "astro": "5.16.4",
+ "astro": "7.0.6",
"astro-icon": "^1.1.5",
- "dompurify": "^3.2.5",
- "markdown-it": "^14.1.0",
- "marked": "^15.0.11",
- "react": "^19.2.1",
- "react-dom": "^19.2.1",
- "sanitize-html": "^2.16.0",
- "svelte": "^5.28.2",
+ "dompurify": "^3.3.1",
+ "markdown-it": "^14.1.1",
+ "marked": "^15.0.12",
+ "react": "^19.2.4",
+ "react-dom": "^19.2.4",
+ "sanitize-html": "^2.17.1",
+ "svelte": "^5.53.5",
"three": "^0.180.0",
- "typescript": "^5.8.3"
+ "typescript": "^5.9.3"
}
}
diff --git a/src/components/3DModels.jsx b/src/components/3DModels.jsx
index a691568..85e85d0 100644
--- a/src/components/3DModels.jsx
+++ b/src/components/3DModels.jsx
@@ -1,6 +1,6 @@
import { Canvas, useLoader } from "@react-three/fiber";
import { OrbitControls, PerspectiveCamera } from "@react-three/drei";
-import { GLTFLoader } from 'three/addons/loaders/GLTFLoader';
+import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js';
const Model = ({ model, scale }) => {
const gltf = useLoader(GLTFLoader, model);
diff --git a/src/content/config.ts b/src/content.config.ts
index 8dd2162..4ba5c7c 100644
--- a/src/content/config.ts
+++ b/src/content.config.ts
@@ -1,8 +1,10 @@
-import { defineCollection, z } from "astro:content";
+import { defineCollection } from "astro:content";
+import { z } from 'astro/zod';
+import { glob } from 'astro/loaders';
import { rssSchema } from '@astrojs/rss';
const blogCollection = defineCollection({
- type: 'content',
+ loader: glob({ pattern: '**/[^_]*.{md,mdx}', base: "./src/content/blog" }),
schema: z.object({
title: z.string(),
description: z.string(),
diff --git a/src/data/contacts.json b/src/data/contacts.json
index 6ff24fd..ccc6415 100644
--- a/src/data/contacts.json
+++ b/src/data/contacts.json
@@ -1,65 +1,79 @@
[
{
"platform": "LinkedIn",
- "icon": "linkedin",
+ "icon": "fa6-brands:linkedin",
"username": "AndrewLeeCAN",
"url": "https://linkedin.alee14.me",
"mouseover": "LinkedIn"
},
{
"platform": "GitHub",
- "icon": "github",
+ "icon": "fa6-brands:github",
"username": "Alee14",
"url": "https://github.alee14.me",
"mouseover": "GitHub"
},
{
"platform": "YouTube",
- "icon": "youtube",
+ "icon": "fa6-brands:youtube",
"username": "AndrewLeeCAN",
"url": "https://youtube.alee14.me",
"mouseover": "YouTube"
},
{
"platform": "Bluesky",
- "icon": "bluesky",
+ "icon": "fa6-brands:bluesky",
"username": "alee14.me",
"url": "https://bsky.app/profile/alee14.me",
"mouseover": "Bluesky"
},
{
"platform": "Mastodon",
- "icon": "mastodon",
+ "icon": "fa6-brands:mastodon",
"username": "alee@mstdn.ca",
"url": "https://mstdn.ca/@alee",
"mouseover": "Mastodon"
},
{
"platform": "Instagram",
- "icon": "instagram",
+ "icon": "fa6-brands:instagram",
"username": "alee14498",
"url": "https://instagram.alee14.me",
"mouseover": "Instagram"
},
{
"platform": "Reddit",
- "icon": "reddit",
+ "icon": "fa6-brands:reddit",
"username": "alee1449",
"url": "https://reddit.alee14.me",
"mouseover": "Reddit"
},
{
+ "platform": "Steam",
+ "icon": "fa6-brands:steam",
+ "username": "Alee14498",
+ "url": "https://steamcommunity.com/id/Alee14498",
+ "mouseover": "Steam"
+ },
+ {
"platform": "Discord",
- "icon": "discord",
+ "icon": "fa6-brands:discord",
"username": "Andrew Lee Projects",
"url": "https://discord.alee14.me",
"mouseover": "Discord"
},
{
- "platform": "Steam",
- "icon": "steam",
- "username": "Alee14498",
- "url": "https://steamcommunity.com/id/Alee14498",
- "mouseover": "Steam"
+ "platform": "Matrix",
+ "icon": "simple-icons:matrix",
+ "username": "Alee",
+ "url": "https://matrix.to/#/@alee:alee14.me",
+ "mouseover": "Matrix"
+ },
+ {
+ "platform": "Matrix Space",
+ "icon": "simple-icons:matrix",
+ "username": "Andrew Lee",
+ "url": "https://matrix.to/#/#alee:alee14.me",
+ "mouseover": "Matrix Space"
}
]
diff --git a/src/data/models.json b/src/data/models.json
index 27bfde6..50c95c2 100644
--- a/src/data/models.json
+++ b/src/data/models.json
@@ -9,6 +9,24 @@
"download": "https://files.alee14.me/Models/snug_cup_model.glb"
},
{
+ "name": "Face",
+ "description": "My attempt at sculpting.",
+ "model": "https://files.alee14.me/Models/Face.glb",
+ "scale": 0.3,
+ "fallback": "/images/snug_cup.png",
+ "license": "CC BY-NC-SA",
+ "download": "https://files.alee14.me/Models/Face.glb"
+ },
+ {
+ "name": "Chair",
+ "description": "Just a chair, nothing interesting.",
+ "model": "https://files.alee14.me/Models/Chair.glb",
+ "scale": 1,
+ "fallback": "/images/snug_cup.png",
+ "license": "CC BY-NC-SA",
+ "download": "https://files.alee14.me/Models/Chair.glb"
+ },
+ {
"name": "Alee Logo",
"description": "My 2020 logo but in 3D.",
"model": "https://files.alee14.me/Models/alee_logo.glb",
diff --git a/src/data/website.json b/src/data/website.json
index 7be493a..f337ecd 100644
--- a/src/data/website.json
+++ b/src/data/website.json
@@ -4,117 +4,117 @@
"name": "First Website",
"description": "Created by my dad using iFrames.",
"year": 2013,
- "link": "first-website.alee14.me"
+ "link": "https://first-website.alee14.me"
},
{
"name": "alee14.ga (Iteration 1)",
"description": "First personal website that I made",
"year": 2017,
- "link": "2017.alee14.me"
+ "link": "https://2017.alee14.me"
},
{
"name": "alee14.ga (Iteration 2)",
"description": "First personal website that I made",
"year": 2017,
- "link": "2017.alee14.me/index2"
+ "link": "https://2017.alee14.me/index2"
},
{
- "name": "alee14.me (2018)",
+ "name": "alee14.me",
"description": "Lorem ipsum",
"year": 2018,
- "link": "2018.alee14.me"
+ "link": "https://2018.alee14.me"
},
{
- "name": "alee14.me (2020)",
+ "name": "alee14.me",
"description": "Lorem ipsum",
"year": 2020,
- "link": "2020.alee14.me"
+ "link": "https://2020.alee14.me"
},
{
- "name": "alee14.me (2021)",
+ "name": "alee14.me",
"description": "Lorem ipsum",
"year": 2021,
- "link": "2021.alee14.me"
+ "link": "https://2021.alee14.me"
},
{
- "name": "AleeCorp (9f5cd) (2017)",
+ "name": "AleeCorp (9f5cd)",
"description": "Lorem ipsum",
"year": 2017,
- "link": "aleecorp-9f5cd.alee14.me"
+ "link": "https://aleecorp-9f5cd.alee14.me"
},
{
- "name": "AleeCorp (658acd) (2017)",
+ "name": "AleeCorp (658acd)",
"description": "Lorem ipsum",
"year": 2017,
- "link": "aleecorp-658acd.alee14.me"
+ "link": "https://aleecorp-658acd.alee14.me"
},
{
- "name": "Alee Productions (2019)",
+ "name": "Alee Productions",
"description": "Lorem ipsum",
"year": 2019,
- "link": "aleeproductions.alee14.me"
+ "link": "https://aleeproductions.alee14.me"
}
],
- "school-project": [
+ "school": [
{
- "name": "Weather Website (2016)",
+ "name": "Weather Website",
"description": "Lorem ipsum",
"year": 2016,
- "link": "weather-website.alee14.me"
+ "link": "https://weather-website.alee14.me"
},
{
- "name": "Chine (2020)",
+ "name": "Chine",
"description": "Lorem ipsum",
"year": 2020,
- "link": "chine.alee14.me"
+ "link": "https://chine.alee14.me"
},
{
- "name": "Lawrence Hill (2021)",
+ "name": "Lawrence Hill",
"description": "Lorem ipsum",
"year": 2021,
- "link": "lawrence-hill.alee14.me"
+ "link": "https://lawrence-hill.alee14.me"
},
{
- "name": "CV (VEEP) (français) (2021)",
+ "name": "CV (VEEP) (français)",
"description": "Lorem ipsum",
"year": 2021,
- "link": "cv-francais.alee14.me"
+ "link": "https://cv-francais.alee14.me"
},
{
- "name": "Snug Cup (2021)",
+ "name": "Snug Cup",
"description": "Lorem ipsum",
"year": 2021,
- "link": "snug-cup.alee14.me"
+ "link": "https://snug-cup.alee14.me"
},
{
- "name": "War of 1812 (2021)",
+ "name": "War of 1812",
"description": "Lorem ipsum",
"year": 2021,
- "link": "war-of-1812.alee14.me"
+ "link": "https://war-of-1812.alee14.me"
},
{
- "name": "Maitre Cuisinier (2022)",
+ "name": "Maitre Cuisinier",
"description": "Lorem ipsum",
"year": 2022,
- "link": "maitre-cuisinier.alee14.me"
+ "link": "https://maitre-cuisinier.alee14.me"
},
{
- "name": "Frank's Springy Shoes (2022)",
+ "name": "Frank's Springy Shoes",
"description": "Lorem ipsum",
"year": 2022,
- "link": "frankspringyshoes.alee14.me"
+ "link": "https://frankspringyshoes.alee14.me"
},
{
- "name": "Homelab (2023)",
+ "name": "Homelab",
"description": "Lorem ipsum",
"year": 2023,
- "link": "homelab.alee14.me"
+ "link": "https://homelab.alee14.me"
},
{
- "name": "Homelab Part 2 (2023)",
+ "name": "Homelab Part 2",
"description": "Lorem ipsum",
"year": 2023,
- "link": "war-of-1812.alee14.me"
+ "link": "https://war-of-1812.alee14.me"
}
],
"collaborations": [
@@ -122,13 +122,13 @@
"name": "Silicon Valley",
"description": "Lorem ipsum",
"year": 2018,
- "link": "silicon-linux.alee14.me"
+ "link": "https://silicon-linux.alee14.me"
},
{
- "name": "PokeWorld (2019)",
+ "name": "PokeWorld",
"description": "Lorem ipsum",
"year": 2019,
- "link": "pokeworld.alee14.me"
+ "link": "https://pokeworld.alee14.me"
}
]
}
diff --git a/src/layouts/BlogPost.astro b/src/layouts/BlogPost.astro
index 70562c6..0d7abd4 100644
--- a/src/layouts/BlogPost.astro
+++ b/src/layouts/BlogPost.astro
@@ -5,11 +5,11 @@ import "../styles/cards.css";
const { title, description, pubDate, tags } = Astro.props;
const { slug } = Astro.params;
-let disableComments;
+// let disableComments: Boolean;
-const response = await fetch(`${import.meta.env.PUBLIC_API_URL}/comments/${slug}/disabled`);
-const data = await response.json();
-disableComments = data.postDisabled;
+// const response = await fetch(`${import.meta.env.PUBLIC_API_URL}/comments/${slug}/disabled`);
+// const data = await response.json();
+// disableComments = data.postDisabled;
---
@@ -27,11 +27,11 @@ disableComments = data.postDisabled;
<main>
<slot />
</main>
- {
+ <!-- {
disableComments ? null :
<h1>Comments</h1>
<BlogComments client:visible slug={slug} />
- }
+ } -->
</div>
</Layout>
diff --git a/src/layouts/Default.astro b/src/layouts/Default.astro
index 368f089..0d8633e 100644
--- a/src/layouts/Default.astro
+++ b/src/layouts/Default.astro
@@ -50,7 +50,8 @@ const date = new Date();
<slot />
<footer>
<p class="small">Made with Astro and Hosted on Vercel</p>
- <p>Copyright &copy; {date.getFullYear()} Andrew Lee. <a href="https://github.com/Alee14/personal-website" target="_blank">View source code.</a></p>
+ <p>Copyright &copy; {date.getFullYear()} Andrew Lee.</p>
+ <small><a href="https://github.com/Alee14/personal-website" target="_blank">View source code</a> | <a href="/privacy">Privacy Policy</a></small>
</footer>
</div>
</body>
diff --git a/src/pages/archive/index.astro b/src/pages/archive/index.astro
index 7a23d95..920a65f 100644
--- a/src/pages/archive/index.astro
+++ b/src/pages/archive/index.astro
@@ -1,21 +1,48 @@
---
import Page from "../../layouts/Page.astro";
import "../../styles/cards.css";
+import archive from '../../data/website.json';
---
<Page title="Website Archive" description="Collection of my old websites">
<main>
<h1>Personal</h1>
<div class="grid">
- <article class="card">
- <h1>First website</h1>
- <p>Created by my dad using iFrames</p>
- <small>2013</small>
- </article>
- <article class="card">
- <h1>alee14.ga</h1>
- <p>My first website that I made using Bootstrap 3 with a template</p>
- <small>2017</small>
- </article>
+ {
+ archive.personal.map((item) => {
+ return (
+ <article class="card">
+ <h1><a href={item.link}>{item.name} (<small>{item.year}</small>)</a></h1>
+ <p>{item.description}</p>
+ </article>
+ )
+ })
+ }
+ </div>
+ <h1>School Project</h1>
+ <div class="grid">
+ {
+ archive.school.map((item) => {
+ return (
+ <article class="card">
+ <h1><a href={item.link}>{item.name} (<small>{item.year}</small>)</a></h1>
+ <p>{item.description}</p>
+ </article>
+ )
+ })
+ }
+ </div>
+ <h1>Collaboration</h1>
+ <div class="grid">
+ {
+ archive.collaborations.map((item) => {
+ return (
+ <article class="card">
+ <h1><a href={item.link}>{item.name} (<small>{item.year}</small>)</a></h1>
+ <p>{item.description}</p>
+ </article>
+ )
+ })
+ }
</div>
</main>
</Page>
diff --git a/src/pages/blog/[...slug].astro b/src/pages/blog/[...slug].astro
index 5f1b34a..6dc78ba 100644
--- a/src/pages/blog/[...slug].astro
+++ b/src/pages/blog/[...slug].astro
@@ -1,6 +1,6 @@
---
import Page from '../../layouts/BlogPost.astro';
-import { getEntry } from 'astro:content';
+import { getEntry, render } from 'astro:content';
import { formatDate } from "../../util";
const { slug } = Astro.params;
@@ -14,7 +14,7 @@ if(entry === undefined) {
return Astro.redirect('/404');
}
-const { Content } = await entry.render();
+const { Content } = await render(entry);
---
<Page title={entry.data.title} description={entry.data.description} pubDate={formatDate(entry.data.pubDate)} tags={entry.data.tags}>
<main>
diff --git a/src/pages/blog/index.astro b/src/pages/blog/index.astro
index a35537a..0e4e25e 100644
--- a/src/pages/blog/index.astro
+++ b/src/pages/blog/index.astro
@@ -23,7 +23,7 @@ const allBlogPosts = (await getCollection('blog')).sort((a, b) => b.data.pubDate
<div class="grid">
{allBlogPosts.map((post) => (
<article class="card">
- <h1><a href={`/blog/${post.slug}`}>{post.data.title}</a></h1>
+ <h1><a href={`/blog/${post.id}`}>{post.data.title}</a></h1>
<small>{formatDate(post.data.pubDate)}</small>
<p>{post.data.description}</p>
<div class="tags">
diff --git a/src/pages/blog/tags/[tag].astro b/src/pages/blog/tags/[tag].astro
index 01bd03a..b0b0ccb 100644
--- a/src/pages/blog/tags/[tag].astro
+++ b/src/pages/blog/tags/[tag].astro
@@ -4,7 +4,7 @@ import {formatDate} from "../../../util";
import "../../../styles/cards.css";
export const prerender = true;
export async function getStaticPaths() {
- const allPosts = await Astro.glob('../../../content/blog/**/*.md');
+ const allPosts = Object.values(import.meta.glob('../../../content/blog/**/*.md', { eager: true }));
let uniqueTags = [];
if (allPosts) {
diff --git a/src/pages/contacts.astro b/src/pages/contacts.astro
index aef523d..60eeff2 100644
--- a/src/pages/contacts.astro
+++ b/src/pages/contacts.astro
@@ -6,10 +6,9 @@ import contacts from "../data/contacts.json";
<Page title="Contacts" description="Follow me on these platforms">
<main>
{contacts.map((contact)=> {
- let icon = "fa6-brands:" + contact.icon;
return (
<a href={contact.url} target="_blank" title={contact.mouseover}><div class="contacts-card">
- <Icon name={icon} class="contact-icon" />
+ <Icon name={contact.icon} class="contact-icon" />
{contact.platform} ({contact.username})
</div></a>
)
diff --git a/src/pages/downloads/osft-software-archive.astro b/src/pages/downloads/osft-software-archive.astro
index 1090c35..a339136 100644
--- a/src/pages/downloads/osft-software-archive.astro
+++ b/src/pages/downloads/osft-software-archive.astro
@@ -6,7 +6,11 @@ import '../../styles/cards.css';
<main>
<div class="content-warning">
<h2>Content Warning</h2>
- <p>Some of the software in this pack contains a jumpscare. If you have epilepsy, please be cautious.</p>
+ <p>Some of the software in this pack contains the following:</p>
+ <ul>
+ <li>Jumpscare</li>
+ <li>Flashing screen (Epilepsy warning)</li>
+ </ul>
<p>Disable your antivirus as it can detect false positive, feel free to use a VM if you feel unsafe.</p>
</div>
<div class="card note">
@@ -14,6 +18,11 @@ import '../../styles/cards.css';
<p>There was a mention back in the AstralPhaser Chats that the Histacom 1.8.5 (2013) copy in IndieDB is not the original copy from Phil.</p>
<p>I have retrieved the original 2010 copy from Phil himself which has the original compile date of July 5th 2010, and I will be keeping both versions for the time being.</p>
</div>
+ <div class="card encrypted">
+ <h2>Encrypted Zips</h2>
+ <p>Some files uses an encrypted zip due to them being flagged as malware.</p>
+ <p>Password: osft</p>
+ </div>
<div class="card requirements">
<h2>Minimal Requirements</h2>
<ul>
@@ -44,7 +53,7 @@ import '../../styles/cards.css';
<li>File Wars</li>
<li>&quot;funny nana and grampa sounds version 1.1&quot;</li>
<li>Guess The Number</li>
- <li>Histacom 1.8.5 (2010 Edition) (Epilepsy warning)</li>
+ <li>Histacom 1.8 (2010 Edition) (Epilepsy warning)</li>
<li>Histacom 1.8.5 (2013 Edition) (Epilepsy warning)</li>
<li>HTMLive</li>
<li>IIR (Interactive Infinite Road)</li>
@@ -60,7 +69,9 @@ import '../../styles/cards.css';
<li>Pixel Physics 0.3</li>
<li>Road Simulator 0.4</li>
<li>RPG Map Maker</li>
- <li>ShiftOS 0.0.8 (Epilepsy warning)</li>
+ <li>ShiftOS 0.0.7.1 (Epilepsy warning)</li>
+ <li>ShiftOS 0.0.8 Beta 1.1 (Epilepsy warning)</li>
+ <li>ShiftOS 0.0.8 (Community) (Epilepsy warning)</li>
<li>Theme Test</li>
<li>Thoto 0.3</li>
<li>Time Machine 0.4</li>
@@ -70,14 +81,9 @@ import '../../styles/cards.css';
<li>Zeon OS 0.2</li>
</ul>
</div>
- <div class="checksum">
- <p>MD5: f56c1670e2481f8755dba8e4faf97e6d</p>
- <p>SHA512: 8710d2c1d85f4acffcbf42676e65b28831c899317b064ce016d3cfcc782478ab1e3aa9bc6d30ce277f9fb58943933919f12041992fe79db3354c4717fa33bab7</p>
- <p>SHA256: 6b04ef59c0e0b4cc1c96cbdebfa3400e27fe855f88cb31da554df8691d9845d2</p>
- </div>
<div class="links">
- <a href="https://files.alee14.me/Software/OSFT-Software-Archive.zip">Download Archive</a>
- <a href="https://archive.org/details/osfirsttimer-software-archive">Download Archive (archive.org)</a>
+ <a href="https://files.alee14.me/Software/OSFT-Software-Archive">Download Archive</a>
+ <a href="https://archive.org/details/osfirsttimer-software-archive">Download Archive (archive.org)</a>
</div>
</main>
</Page>
diff --git a/src/pages/guidelines.md b/src/pages/guidelines.md
index 5a257a6..fb07add 100644
--- a/src/pages/guidelines.md
+++ b/src/pages/guidelines.md
@@ -1,38 +1,29 @@
---
title: Guidelines
-description: Guidelines for Andrew Lee Projects Communities/Services
+description: Guidelines for Andrew Lee Projects
layout: ../layouts/PageMarkdown.astro
---
# General Guidelines
-These are the main guidelines that must be followed in every community/services we own.
+These are the main guidelines that must be followed:
-- No spamming. Any spam will result in an official warning.
+- Respect others.
+- Any type of spam is not allowed.
- No advertisements/giveaways of any kind, unless asking staff.
-- Do not attempt to enforce the rules on other users. Only staff members have the authority to do so.
-- Refrain from asking for staff.
-- Cursing is allowed within reason, but using racial slurs or using them to harm others will result in severe punishment.
-- Accusations are not tolerated. Making accusations without evidence will result in an investigation by the staff and may lead to temporary or permanent removal from our services.
-- Do not engage in blackmail, attacks, cyberbullying, or threats against any members.
-- Organized raids are not allowed. We have measures in place to deal with these situations.
+- Using language that includes slurs is not allowed.
- Only one account per person at a time.
-- Any content that does not fit here (i.e. viruses, malware, adware, NSFW, illegal content, etc) is strictly forbidden.
-- Do not speak negatively about other members, including in private messages.
-- If you encounter someone requesting, sending unsolicited, or sharing illegal or NSFW content, or behaving in a way that is disrespectful or harassing, please report the behavior to the staff immediately.
-
-By being part of here, you must respect all members, regardless of their gender, race, sexual orientation, beliefs, or opinions. Disrespect will not be tolerated and will result in staff action.
-
-Use common sense and good judgement while participating in our community/services.
+- Posting illegal/offensive material is strictly forbidden.
+- Use common sense and good judgement while participating.
Staff members reserve the right to make impromptu decisions as necessary to maintain a peaceful environment.
-Action will be taken against any users consistently breaking these guidelines. If there is content that is extremely illegal or if someone is threatening or harming another person in real life, it is our responsibility to report it to the appropriate authorities.
+Action will be taken against any users consistently breaking these guidelines, and punishment toward the user will be adjusted based on the situation.
# Andrew Lee Projects Policies
## COPPA Policy
-In order to comply with the Children's Online Privacy Protection Act (COPPA), you must be at least 13 years of age to use these services. You will be kicked if found to be under 13 years of age. A ban will be issued if you do not comply with the staff.
+In order to comply with the Children's Online Privacy Protection Act (COPPA), you must be at least 13 years of age to use our services. You will be kicked if found to be under 13 years of age.
## Delta Policy
@@ -47,6 +38,16 @@ Violation of these rules may result in a temporary or permanent ban. If you are
\* These policies may not apply to servers (e.g: Anarchy) that allow these actions.
+## Wiki Policy
+- Any vandalism (defacing, blanking, inserting misinformation into an article) will result an immediate revert, permanent block if it is persistent.
+- Any irrelevant information that is not related to this wiki will be removed.
+- Any illegal and offensive content will immediately be removed and suppressed. Author of the change will get blocked permanently.
+### Using Generative AI
+Using generative AI has its benefits, but also it can have drawbacks.
+- It is not fine to use it to generate or rewrite an entire article.
+- It is fine to use it for translating if checked properly.
+- It is fine to use it to correct your grammar/spelling mistake if checked properly.
+
# Discord Policies
If you are part of our discord server(s), we have set policies that you must follow.
@@ -81,4 +82,4 @@ Threads/Posts is a new feature on Discord that allows users to create subchannel
We recommend you to follow Discord's [Terms of Service](https://discord.com/terms) and [Community Guidelines](https://discord.com/guidelines)
-*Last updated: December 16th, 2022*
+*Last updated: July 6th, 2026*
diff --git a/src/pages/index.astro b/src/pages/index.astro
index daabea8..943dc01 100644
--- a/src/pages/index.astro
+++ b/src/pages/index.astro
@@ -68,7 +68,7 @@ const allBlogPosts = (await getCollection('blog')).sort((a, b) => b.data.pubDate
</ul>
<h2>AleeWorkstation</h2>
<ul>
- <li>OS: Arch Linux (KDE)</li>
+ <li>OS: Arch Linux</li>
<li>CPU: AMD Ryzen 3 2200G</li>
<li>RAM: 16 GB DDR4</li>
<li>Storage: 2 TB NVME SSD, 4 TB HDD, 2 TB HDD</li>
@@ -83,7 +83,7 @@ const allBlogPosts = (await getCollection('blog')).sort((a, b) => b.data.pubDate
</ul>
<h2>ServaRica (Server)</h2>
<ul>
- <li>OS: Debian 12 Bookworm</li>
+ <li>OS: Debian 13 Trixie</li>
<li>CPU: AMD EPYC 7302</li>
<li>RAM: 4 GB</li>
<li>Storage: 206 GB</li>
@@ -100,7 +100,7 @@ const allBlogPosts = (await getCollection('blog')).sort((a, b) => b.data.pubDate
<h1>Latest Posts</h1>
{allBlogPosts.map((post) => (
<article>
- <h1 class="blog-title"><a href={`/blog/${post.slug}`}>{post.data.title}</a></h1>
+ <h1 class="blog-title"><a href={`/blog/${post.id}`}>{post.data.title}</a></h1>
<small>{formatDate(post.data.pubDate)}</small>
<p>{post.data.description}</p>
</article>
diff --git a/src/pages/privacy.md b/src/pages/privacy.md
index e81296a..b9cfb7f 100644
--- a/src/pages/privacy.md
+++ b/src/pages/privacy.md
@@ -4,24 +4,28 @@ description: This policy covers any services provided under alee14.me, including
layout: '../layouts/PageMarkdown.astro'
---
# Privacy Policy
-Last updated: April 2, 2024 (EDT)
+Effective: (date)<br>
+Last revised: July 4, 2026 (EDT)
## Introduction
Privacy is a human right. If you have any concerns or complaints about how we handle privacy, feel free to reach out at privacy@alee14.me.
+## Definitions
+Logging: An event that collects messages, and user ID and sending them to a channel.
+
## Services We Provide
-This policy covers any services provided under alee14.me, including websites, applications, and tools we develop. Below are specific policies for different services.
+This policy covers any services provided under websites, applications, and tools we develop. Below are specific policies for different services.
### AleeBot (Discord Bot)
**Information Collected:**
-- User IDs (for personal settings & command usage)
+- Message IDs (logging)
+- User IDs (for personal settings, logging & command usage)
- Server IDs (to store bot settings & command usage)
**How We Use It:**
- To provide bot features
- To store preferences per server
- To store preferences per user
-- To improve bot performance
**Opting Out:**
- Removing AleeBot from a server will automatically delete all settings related to that server.
@@ -29,22 +33,33 @@ This policy covers any services provided under alee14.me, including websites, ap
### Websites & Other Applications
**Information Collected:**
-- Basic analytics (e.g., visitor count, page interactions)
+- Basic analytics using Plausible (e.g., visitor count, page interactions)
- User-submitted content (if applicable)
**How We Use It:**
- To analyze website performance
- To ensure proper functionality
+## Wikis
+Our wikis uses the MediaWiki software, you do not need to sign up when browsing or editing an article (unless it requires to do so).
+
+**Information Collected:**
+- User-submitted content (username, password, email)
+- IP address (when logged out)
+
## General Data Practices
We don’t collect personal information like your real name, address, or payment details. Data is only used to operate and improve services.
## Data Retention
We only keep data as long as it’s needed for the service. If you want your data removed, contact us.
+## Children's Privacy
+Everyone who uses this service are able to use it including children without providing any personal information about themselves. We highly discourage any children under the age of 13 to not use our services.
+
+If you are a parent who is concerned about your children's data being provided to us without your consent, please contact us.
+
## Future Changes
We may update this policy as we add new services. Any significant changes will be posted here.
## Contact
For any questions, reach out at privacy@alee14.me.
-
diff --git a/src/pages/projects/index.astro b/src/pages/projects/index.astro
index 4d997c5..ddecff3 100644
--- a/src/pages/projects/index.astro
+++ b/src/pages/projects/index.astro
@@ -16,7 +16,7 @@ const featuredProjects = projects.filter(project => project.featured);
<p>Things I programmed</p>
</div>
<div class="card">
- <h1><a href="/projects/website">Website Archive</a></h1>
+ <h1><a href="/archive">Website Archive</a></h1>
<p>Websites I created</p>
</div>
</div>
diff --git a/src/pages/projects/programming.astro b/src/pages/projects/programming.astro
index 2c5d073..6a6c9a1 100644
--- a/src/pages/projects/programming.astro
+++ b/src/pages/projects/programming.astro
@@ -28,8 +28,8 @@ import GitHubProjects from "../../components/GitHubProjects.svelte";
</div>
<h2><a href="https://github.com/Alee14" target="_blank">Andrew Lee GitHub Repositories</a></h2>
<GitHubProjects client:load username="Alee14" isOrganization={false} />
- <h2><a href="https://github.com/alee14-projects" target="_blank">AleeCorp/Alee Productions GitHub Repositories</a></h2>
- <GitHubProjects client:load username="alee14-projects" isOrganization={true} />
+ <h2><a href="https://github.com/alee14-archive" target="_blank">Archive GitHub Repositories</a></h2>
+ <GitHubProjects client:load username="alee14-archive" isOrganization={true} />
</main>
</Page>
<style>
diff --git a/src/styles/cards.css b/src/styles/cards.css
index 7376a54..eb07f3a 100644
--- a/src/styles/cards.css
+++ b/src/styles/cards.css
@@ -15,7 +15,6 @@
.card {
background-color: #3B513B;
- drop-shadow(2px 3px 5px black);
padding: 1.2em;
border-radius: 20px;
gap: 0.5em;