summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorBobby <[email protected]>2026-02-27 13:38:06 +0530
committerBobby <[email protected]>2026-02-27 13:38:06 +0530
commit968c54505dc53a787967a87b4a6bcc2e2475cd47 (patch)
tree0047d7b36c5444fd204387fc0481e6b2139e386f /src
parent9246437b4b9f56af9c8671a9b26d37323829bb32 (diff)
downloadpagoda-968c54505dc53a787967a87b4a6bcc2e2475cd47.tar.xz
pagoda-968c54505dc53a787967a87b4a6bcc2e2475cd47.zip
fresh start: archive old astro site, add nekoweb deploy pipeline
Diffstat (limited to 'src')
-rw-r--r--src/components/AnnouncementsMarqueeComponent.astro13
-rw-r--r--src/components/DistrictCardComponent.astro12
-rw-r--r--src/components/DistrictSiteComponent.astro54
-rw-r--r--src/components/DistrictSiteResultComponent.astro53
-rw-r--r--src/components/LeftSidebarComponent.astro31
-rw-r--r--src/components/NavigationComponent.astro29
-rw-r--r--src/components/NavigationComponentLink.astro8
-rw-r--r--src/components/RightNavigationComponent.astro29
-rw-r--r--src/components/RightNavigationComponentLink.astro7
-rw-r--r--src/components/RightSidebarComponent.astro19
-rw-r--r--src/components/SearchComponent.astro31
-rw-r--r--src/components/SingleAnnouncementComponent.astro15
-rw-r--r--src/data/announcements.ts24
-rw-r--r--src/data/districts/arcadia.ts15
-rw-r--r--src/data/districts/arles.ts3
-rw-r--r--src/data/districts/districts.ts64
-rw-r--r--src/data/districts/functions.ts58
-rw-r--r--src/data/districts/hollywood.ts3
-rw-r--r--src/data/districts/oxford.ts3
-rw-r--r--src/data/districts/petsburg.ts3
-rw-r--r--src/data/districts/purgatory.ts3
-rw-r--r--src/data/districts/siliconValley.ts3
-rw-r--r--src/data/districts/silverLake.ts3
-rw-r--r--src/data/districts/stratfordUponAvon.ts3
-rw-r--r--src/data/districts/tokyo.ts15
-rw-r--r--src/data/districts/types.ts16
-rw-r--r--src/layouts/Layout.astro39
-rw-r--r--src/pages/_dynamicClasses.astro12
-rw-r--r--src/pages/districts/[district].astro41
-rw-r--r--src/pages/districts/[district]/[page].astro57
-rw-r--r--src/pages/districts/index.astro18
-rw-r--r--src/pages/index.astro22
-rw-r--r--src/pages/not_found.astro7
-rw-r--r--src/scripts/sidebarImage.ts30
-rw-r--r--src/styles/global.css46
35 files changed, 0 insertions, 789 deletions
diff --git a/src/components/AnnouncementsMarqueeComponent.astro b/src/components/AnnouncementsMarqueeComponent.astro
deleted file mode 100644
index ea5ca39..0000000
--- a/src/components/AnnouncementsMarqueeComponent.astro
+++ /dev/null
@@ -1,13 +0,0 @@
----
-import { getAnnouncements, Announcement } from '../data/announcements';
-import SingleAnnouncementComponent from './SingleAnnouncementComponent.astro';
-
-const announcements: Announcement[] = getAnnouncements();
----
-<marquee behavior="scroll" direction="up" scrollamount="1" scrolldelay="30" onmouseover="this.stop()" onmouseout="this.start()" class="h-[180px] w-[672px] border-b-2 border-white/75 relative left-2">
- {announcements.map((announcement) => (
- <SingleAnnouncementComponent isNew={announcement.isNew} date={announcement.date}>
- {announcement.text}
- </SingleAnnouncementComponent>
- ))}
-</marquee> \ No newline at end of file
diff --git a/src/components/DistrictCardComponent.astro b/src/components/DistrictCardComponent.astro
deleted file mode 100644
index 6da9aa2..0000000
--- a/src/components/DistrictCardComponent.astro
+++ /dev/null
@@ -1,12 +0,0 @@
----
-const { district } = Astro.props;
----
-<a class={`flex flex-row bg-${district.id} rounded items-center px-4 py-2`} href={`/districts/${district.id}`}>
- <div class="w-2/3">
- <h2 class="text-lg saira">{district.name}</h2>
- <p class="text-xs">{district.description}</p>
- </div>
- <div class="w-1/3 flex justify-end">
- <img src={district.image} alt={district.name} class="max-h-[70px]" />
- </div>
-</a> \ No newline at end of file
diff --git a/src/components/DistrictSiteComponent.astro b/src/components/DistrictSiteComponent.astro
deleted file mode 100644
index 7fe9187..0000000
--- a/src/components/DistrictSiteComponent.astro
+++ /dev/null
@@ -1,54 +0,0 @@
----
-const { site } = Astro.props;
----
-
-<div class="flex flex-row justify-between px-2 gap-2 my-4">
- <div class="w-2/3">
- <div class="flex flex-row gap-2 items-center justify-between">
- <h2 class="text-xl saira">
- <a href={site.url} target="_blank" rel="noopener">{site.name}</a>
- </h2>
- <span class="text-gray-500 text-xs"
- >Added: {new Date(site.added).toLocaleDateString()}</span
- >
- </div>
- <p class="text-xs my-2" set:html={site.description} />
- <div class="text-xs my-2">
- Owner:
- <a
- class="link"
- href={`https://neocities.org/site/${site.owner}`}
- target="_blank"
- rel="noopener"
- >
- @{site.owner}
- </a>
- </div>
- {
- site.tags && (
- <div class="text-xs mt-4">
- {site.tags.map((tag: string) => (
- <span class="bg-pagodapurple text-white rounded px-2 py-1 mr-1 uppercase">
- <a
- href={`https://neocities.org/browse?tag=${tag}`}
- target="_blank"
- rel="noopener"
- >
- {tag}
- </a>
- </span>
- ))}
- </div>
- )
- }
- </div>
- <div class="w-1/3 flex justify-center items-center">
- <a href={site.url} target="_blank" rel="noopener">
- <img
- src={site.screenshotUrl}
- alt={site.name}
- class="w-full h-auto pointer-events-none user-select-none"
- />
- </a>
- </div>
-</div>
diff --git a/src/components/DistrictSiteResultComponent.astro b/src/components/DistrictSiteResultComponent.astro
deleted file mode 100644
index 6726d7f..0000000
--- a/src/components/DistrictSiteResultComponent.astro
+++ /dev/null
@@ -1,53 +0,0 @@
----
-import type { Site } from "../data/districts/types";
-import DistrictSiteComponent from "./DistrictSiteComponent.astro";
-
-const { district, sites, totalPages, currentPage, sitesPerPage } = Astro.props;
----
-
-<section class="my-4">
- {
- sites.length > 0 ? (
- <>
- <p class="text-xs font-bold text-justify">
- Showing {currentPage} of {totalPages} pages. (Max {sitesPerPage} sites
- per page, Showing {sites.length} sites)
- </p>
- {sites.map((site: Site) => (
- <DistrictSiteComponent site={site} />
- ))}
- </>
- ) : (
- <p class="text-xs text-justify">No sites found in this district yet.</p>
- )
- }
-</section>
-<div class="text-sm flex items-center justify-center gap-2">
- {
- Array.from({ length: totalPages }, (_, i) => i + 1).map((page) =>
- page === currentPage ? (
- <a
- class="link font-bold"
- href={
- page === 1
- ? `/districts/${district}`
- : `/districts/${district}/${page}`
- }
- >
- {page}
- </a>
- ) : (
- <a
- class="link"
- href={
- page === 1
- ? `/districts/${district}`
- : `/districts/${district}/${page}`
- }
- >
- {page}
- </a>
- )
- )
- }
-</div>
diff --git a/src/components/LeftSidebarComponent.astro b/src/components/LeftSidebarComponent.astro
deleted file mode 100644
index 0580d09..0000000
--- a/src/components/LeftSidebarComponent.astro
+++ /dev/null
@@ -1,31 +0,0 @@
----
-import NavigationComponent from './NavigationComponent.astro';
-import NavigationComponentLink from './NavigationComponentLink.astro';
----
-
-<aside class="w-1/6">
- <NavigationComponent title="Navigation">
- <NavigationComponentLink href="/">Home</NavigationComponentLink>
- <NavigationComponentLink href="/districts">Districts</NavigationComponentLink>
- <NavigationComponentLink href="/guides">Guides</NavigationComponentLink>
- <NavigationComponentLink href="/thoughts">Thoughts</NavigationComponentLink>
- <NavigationComponentLink href="/faq">FAQ</NavigationComponentLink>
- </NavigationComponent>
-
- <img
- id="sidebar-image"
- src="/images/internal/sidebar/default.gif"
- alt="Left Sidebar Image"
- class="w-full h-auto rounded-xl pointer-events-none select-none"
- />
-
- <NavigationComponent title="Resources" variation="alternate">
- <NavigationComponentLink href="/resources/avatars">Avatars</NavigationComponentLink>
- <NavigationComponentLink href="/resources/backgrounds">Tiled Backgrounds</NavigationComponentLink>
- <NavigationComponentLink href="/resources/blinkies">Blinkies</NavigationComponentLink>
- <NavigationComponentLink href="/resources/flags">Flags</NavigationComponentLink>
- <NavigationComponentLink href="/resources/stamps">Stamps</NavigationComponentLink>
- </NavigationComponent>
-</aside>
-
-<script src="../scripts/sidebarImage.ts"></script>
diff --git a/src/components/NavigationComponent.astro b/src/components/NavigationComponent.astro
deleted file mode 100644
index 9987c2f..0000000
--- a/src/components/NavigationComponent.astro
+++ /dev/null
@@ -1,29 +0,0 @@
----
-const { title, variation, bordered = true } = Astro.props;
----
-
-<section class="saira uppercase my-4">
- <div class="text-xl flex flex-row gap-2 justify-center items-center">
- <div class={`${
- variation === "alternate" ? "bg-pagodapink" : "bg-pagodapurple"
- }
- rounded-l-2xl px-4 h-6`}></div>
- <div>{title}</div>
- <div class={`${
- variation === "alternate" ? "bg-pagodapurple" : "bg-pagodapink"
- } ${
- bordered ? "rounded-tr-2xl" : "rounded-r-2xl"
- }
- flex-grow h-6`}></div>
- </div>
- <div class={`
- ${
- bordered ? variation === "alternate" ? "border-pagodapurple bg-pagodapurple" : "border-pagodapink bg-pagodapink" : ""
- }
- ${
- bordered ? "border-r-8 border-b-2 border-solid relative bottom-1" : ""
- }
- rounded-br ml-8`}>
- <slot />
- </div>
-</section> \ No newline at end of file
diff --git a/src/components/NavigationComponentLink.astro b/src/components/NavigationComponentLink.astro
deleted file mode 100644
index 30fa456..0000000
--- a/src/components/NavigationComponentLink.astro
+++ /dev/null
@@ -1,8 +0,0 @@
----
-const { href } = Astro.props;
----
-
-<div class="text-pagodagreen group hover:text-pagodagreen-shine bg-black py-1 flex flex-row gap-2 justify-end transition-all ease-in-out hover:gap-4 duration-300 font-semibold first:rounded-tr-xl">
- <a href={href}><slot /></a>
- <span class="text-black group-hover:text-pagodapink-shine">▎</span>
-</div> \ No newline at end of file
diff --git a/src/components/RightNavigationComponent.astro b/src/components/RightNavigationComponent.astro
deleted file mode 100644
index fcf0c39..0000000
--- a/src/components/RightNavigationComponent.astro
+++ /dev/null
@@ -1,29 +0,0 @@
----
-const { title, variation, bordered = true } = Astro.props;
----
-
-<section class="saira uppercase my-4">
- <div class="text-xl flex flex-row gap-2 justify-center items-center">
- <div class={`${
- variation === "alternate" ? "bg-pagodapink" : "bg-pagodapurple"
- }
- rounded-tl-2xl px-4 h-6`}></div>
- <div>{title}</div>
- <div class={`${
- variation === "alternate" ? "bg-pagodapurple" : "bg-pagodapink"
- } ${
- bordered ? "rounded-r-2xl" : "rounded-tr-2xl"
- }
- flex-grow h-6`}></div>
- </div>
- <div class={`
- ${
- bordered ? variation === "alternate" ? "border-pagodapink bg-pagodapink" : "border-pagodapurple bg-pagodapurple" : ""
- }
- ${
- bordered ? "border-l-8 border-b-2 border-solid relative bottom-1" : ""
- }
- rounded-bl mr-8`}>
- <slot />
- </div>
-</section> \ No newline at end of file
diff --git a/src/components/RightNavigationComponentLink.astro b/src/components/RightNavigationComponentLink.astro
deleted file mode 100644
index cda2cb7..0000000
--- a/src/components/RightNavigationComponentLink.astro
+++ /dev/null
@@ -1,7 +0,0 @@
----
-const { href } = Astro.props;
----
-<div class="text-pagodagreen group hover:text-pagodapurple-shine bg-black p-1 flex flex-row gap-2 justify-start transition-all ease-in-out hover:gap-4 duration-300 font-semibold first:rounded-tl-xl">
- <span class="text-black group-hover:text-pagodapurple-shine">▎</span>
- <a href={href}><slot /></a>
-</div>
diff --git a/src/components/RightSidebarComponent.astro b/src/components/RightSidebarComponent.astro
deleted file mode 100644
index 466cf86..0000000
--- a/src/components/RightSidebarComponent.astro
+++ /dev/null
@@ -1,19 +0,0 @@
----
-import SearchComponent from './SearchComponent.astro';
-import RightNavigationComponent from './RightNavigationComponent.astro';
-import RightNavigationComponentLink from './RightNavigationComponentLink.astro';
----
-
-<aside class="w-1/6">
- <img src="/images/internal/search.webp" alt="Search Image" class="h-32 mt-4 relative ml-20 pointer-events-none select-none" />
- <SearchComponent />
- <RightNavigationComponent title="Pagoda Services" variation="alternate">
- <RightNavigationComponentLink href="/services/ad">Advertisement</RightNavigationComponentLink>
- <RightNavigationComponentLink href="/services/blogs">Blogs</RightNavigationComponentLink>
- <RightNavigationComponentLink href="/services/comments">Comments</RightNavigationComponentLink>
- <RightNavigationComponentLink href="/services/counter">Counter</RightNavigationComponentLink>
- <RightNavigationComponentLink href="/services/guestbook">Guestbook</RightNavigationComponentLink>
- <RightNavigationComponentLink href="/services/journals">Journals</RightNavigationComponentLink>
- <RightNavigationComponentLink href="/services/webring">Webring</RightNavigationComponentLink>
- </RightNavigationComponent>
-</aside> \ No newline at end of file
diff --git a/src/components/SearchComponent.astro b/src/components/SearchComponent.astro
deleted file mode 100644
index 9a269d8..0000000
--- a/src/components/SearchComponent.astro
+++ /dev/null
@@ -1,31 +0,0 @@
-<div class="saira uppercase mb-4 relative bottom-1">
- <div class="text-xl flex flex-row gap-2 justify-center items-center">
- <div class="flex-grow h-6 bg-pagodapurple rounded-tl-2xl"></div>
- <div>Site Search</div>
- </div>
- <div class="bg-pagodapurple rounded-br-2xl relative bottom-1 pl-2 pr-1 pt-1 pb-1">
- <form action="/search" method="GET" class="flex flex-col gap-1">
- <div class="flex flex-row gap-2 items-center">
- <label for="search" class="text-white w-1/4">Query:</label>
- <input type="text" id="search" name="q" class="w-3/4 bg-black text-white border-2 border-pagodapurple rounded-lg px-2 py-1 focus:outline-none focus:border-pagodapink" placeholder="Search..." required />
- </div>
- <div class="flex flex-row gap-2 items-center">
- <label for="category" class="text-white w-1/4">In:</label>
- <select id="category" name="category" class="w-3/4 bg-black text-white border-2 border-pagodapurple rounded-lg px-2 py-1 focus:outline-none focus:border-pagodapink">
- <option value="all">All</option>
- <option value="avatars">Avatars</option>
- <option value="backgrounds">Tiled Backgrounds</option>
- <option value="blinkies">Blinkies</option>
- <option value="districts">Districts</option>
- <option value="flags">Flags</option>
- <option value="guides">Guides</option>
- <option value="stamps">Stamps</option>
- <option value="thoughts">Thoughts</option>
- </select>
- </div>
- <div class="flex flex-row items-center">
- <button type="submit" class="bg-pagodapink text-white rounded-lg px-4 py-1 hover:bg-pagodagreen font-bold hover:text-black transition duration-300 cursor-pointer">Search</button>
- </div>
- </form>
- </div>
-</div> \ No newline at end of file
diff --git a/src/components/SingleAnnouncementComponent.astro b/src/components/SingleAnnouncementComponent.astro
deleted file mode 100644
index f80d622..0000000
--- a/src/components/SingleAnnouncementComponent.astro
+++ /dev/null
@@ -1,15 +0,0 @@
----
-const { isNew, date } = Astro.props;
----
-<div class="flex flex-row gap-2 my-4">
- <img src={isNew ? '/images/internal/new_announcement.gif' : '/images/internal/announcement.gif'} alt="Announcement" class="w-4 h-4 pointer-events-none select-none" />
- <div class="flex flex-col text-xs w-full">
- <div class={`flex flex-row gap-2 justify-between ${isNew ? 'text-pagodapink' : 'text-pagodagreen'}`}>
- <span class="font-bold">{isNew ? 'NEW!' : 'Announcement!'}</span>
- <span class="text-gray-500">{new Date(date).toLocaleDateString()}</span>
- </div>
- <div class="text-justify">
- <slot />
- </div>
- </div>
-</div>
diff --git a/src/data/announcements.ts b/src/data/announcements.ts
deleted file mode 100644
index 33a7fb0..0000000
--- a/src/data/announcements.ts
+++ /dev/null
@@ -1,24 +0,0 @@
-export interface Announcement {
- text: string;
- date: string;
- isNew: boolean;
-}
-
-const announcements: Announcement[] = [
- {
- text: "Welcome to Pagoda on Neocities. The site is currently under construction and as we progress and add more features and content, this announcement section will get updated alongside it. Stay tuned for more updates!",
- date: "2025-05-13 02:00",
- isNew: false,
- },
- {
- text: "Announcement section and Districts are now added!",
- date: "2025-05-13 02:15",
- isNew: true,
- },
-];
-
-export const getAnnouncements = (): Announcement[] => {
- return announcements.sort((a, b) => {
- return new Date(b.date).getTime() - new Date(a.date).getTime();
- });
-};
diff --git a/src/data/districts/arcadia.ts b/src/data/districts/arcadia.ts
deleted file mode 100644
index 88b12b8..0000000
--- a/src/data/districts/arcadia.ts
+++ /dev/null
@@ -1,15 +0,0 @@
-import type { Site } from "./types";
-
-export const arcadia: Site[] = [
- {
- name: "The Great Pretender",
- url: "https://thegreatpretender02.neocities.org/",
- description:
- "Howdy! You can call me Eve or Pretender—that’s what I go by online (and in my head, lol). I’m a 22-year-old gal who uses she/her pronouns, and I live in Texas, aka cowboy land. Yeehaw! 🤠🐄 <br><br> I’m extremely online, which is one reason I created this website. I’ve always been a creative person, even if my skills aren’t perfect—I have to express myself somehow! My journey started with Carrd, but I wanted more freedom, so here we are.<br><br> A little about me: I love gaming, drawing, writing, roleplaying, and yapping about my hyperfixations.",
- owner: "thegreatpretender02",
- tags: ["art", "videogames", "startrek", "oldies", "personal"],
- added: new Date("2025-05-13 08:50"),
- screenshotUrl:
- "https://neocities.org/site_screenshots/14/07/thegreatpretender02/index.html.540x405.webp",
- },
-];
diff --git a/src/data/districts/arles.ts b/src/data/districts/arles.ts
deleted file mode 100644
index 246553a..0000000
--- a/src/data/districts/arles.ts
+++ /dev/null
@@ -1,3 +0,0 @@
-import type { Site } from "./types";
-
-export const arles: Site[] = [];
diff --git a/src/data/districts/districts.ts b/src/data/districts/districts.ts
deleted file mode 100644
index a134d56..0000000
--- a/src/data/districts/districts.ts
+++ /dev/null
@@ -1,64 +0,0 @@
-import type { District } from "./types";
-
-export const districts: District[] = [
- {
- id: "arcadia",
- name: "Arcadia",
- description: "Video games, puzzles, toys",
- image: "/images/districts/internal/arcadia.png",
- },
- {
- id: "arles",
- name: "Arles",
- description: "Drawings, photos, visual art",
- image: "/images/districts/internal/arles.png",
- },
- {
- id: "hollywood",
- name: "Hollywood",
- description: "Cartoons, movies, western media",
- image: "/images/districts/internal/hollywood.png",
- },
- {
- id: "oxford",
- name: "Oxford",
- description: "Books, literature, poetry",
- image: "/images/districts/internal/oxford.png",
- },
- {
- id: "petsburg",
- name: "Petsburg",
- description: "Animals and people who love them",
- image: "/images/districts/internal/petsburg.png",
- },
- {
- id: "purgatory",
- name: "Purgatory",
- description: "Horror, dark, gothic",
- image: "/images/districts/internal/purgatory.png",
- },
- {
- id: "silicon-valley",
- name: "Silicon Valley",
- description: "Tech, programming, computers",
- image: "/images/districts/internal/silicon.png",
- },
- {
- id: "silver-lake",
- name: "Silver Lake",
- description: "Music, bands, concerts",
- image: "/images/districts/internal/silver.png",
- },
- {
- id: "stratford-upon-avon",
- name: "Stratford-upon-Avon",
- description: "Writers and their writing",
- image: "/images/districts/internal/stratford.png",
- },
- {
- id: "tokyo",
- name: "Tokyo",
- description: "Anime, manga, and the far east",
- image: "/images/districts/internal/tokyo.png",
- },
-];
diff --git a/src/data/districts/functions.ts b/src/data/districts/functions.ts
deleted file mode 100644
index 6e34f11..0000000
--- a/src/data/districts/functions.ts
+++ /dev/null
@@ -1,58 +0,0 @@
-import type { District, Site } from "./types";
-import { districts } from "./districts";
-import { arcadia } from "./arcadia";
-import { arles } from "./arles";
-import { hollywood } from "./hollywood";
-import { oxford } from "./oxford";
-import { petsburg } from "./petsburg";
-import { purgatory } from "./purgatory";
-import { siliconValley } from "./siliconValley";
-import { silverLake } from "./silverLake";
-import { stratfordUponAvon } from "./stratfordUponAvon";
-import { tokyo } from "./tokyo";
-
-export const getDistrictById = (id: string): District | undefined => {
- return districts.find((district) => district.id === id);
-};
-
-export const getSitesByDistrictId = (id: string): Site[] => {
- switch (id) {
- case "arcadia":
- return arcadia;
- case "arles":
- return arles;
- case "hollywood":
- return hollywood;
- case "oxford":
- return oxford;
- case "petsburg":
- return petsburg;
- case "purgatory":
- return purgatory;
- case "silicon-valley":
- return siliconValley;
- case "silver-lake":
- return silverLake;
- case "stratford-upon-avon":
- return stratfordUponAvon;
- case "tokyo":
- return tokyo;
- default:
- return [];
- }
-};
-
-export const getPaginatedSitesByDistrictId = (
- id: string,
- page: number,
- limit: number
-): { sites: Site[]; totalPages: number; currentPage: number } => {
- const sites = getSitesByDistrictId(id);
- const startIndex = (page - 1) * limit;
- const endIndex = startIndex + limit;
- return {
- sites: sites.slice(startIndex, endIndex),
- totalPages: Math.ceil(sites.length / limit),
- currentPage: page,
- };
-};
diff --git a/src/data/districts/hollywood.ts b/src/data/districts/hollywood.ts
deleted file mode 100644
index 9689426..0000000
--- a/src/data/districts/hollywood.ts
+++ /dev/null
@@ -1,3 +0,0 @@
-import type { Site } from "./types";
-
-export const hollywood: Site[] = [];
diff --git a/src/data/districts/oxford.ts b/src/data/districts/oxford.ts
deleted file mode 100644
index 599b46b..0000000
--- a/src/data/districts/oxford.ts
+++ /dev/null
@@ -1,3 +0,0 @@
-import type { Site } from "./types";
-
-export const oxford: Site[] = [];
diff --git a/src/data/districts/petsburg.ts b/src/data/districts/petsburg.ts
deleted file mode 100644
index 56b62d5..0000000
--- a/src/data/districts/petsburg.ts
+++ /dev/null
@@ -1,3 +0,0 @@
-import type { Site } from "./types";
-
-export const petsburg: Site[] = [];
diff --git a/src/data/districts/purgatory.ts b/src/data/districts/purgatory.ts
deleted file mode 100644
index 8aee047..0000000
--- a/src/data/districts/purgatory.ts
+++ /dev/null
@@ -1,3 +0,0 @@
-import type { Site } from "./types";
-
-export const purgatory: Site[] = [];
diff --git a/src/data/districts/siliconValley.ts b/src/data/districts/siliconValley.ts
deleted file mode 100644
index 8b0fe61..0000000
--- a/src/data/districts/siliconValley.ts
+++ /dev/null
@@ -1,3 +0,0 @@
-import type { Site } from "./types";
-
-export const siliconValley: Site[] = [];
diff --git a/src/data/districts/silverLake.ts b/src/data/districts/silverLake.ts
deleted file mode 100644
index 878762e..0000000
--- a/src/data/districts/silverLake.ts
+++ /dev/null
@@ -1,3 +0,0 @@
-import type { Site } from "./types";
-
-export const silverLake: Site[] = [];
diff --git a/src/data/districts/stratfordUponAvon.ts b/src/data/districts/stratfordUponAvon.ts
deleted file mode 100644
index 3e818bb..0000000
--- a/src/data/districts/stratfordUponAvon.ts
+++ /dev/null
@@ -1,3 +0,0 @@
-import type { Site } from "./types";
-
-export const stratfordUponAvon: Site[] = [];
diff --git a/src/data/districts/tokyo.ts b/src/data/districts/tokyo.ts
deleted file mode 100644
index 8788c21..0000000
--- a/src/data/districts/tokyo.ts
+++ /dev/null
@@ -1,15 +0,0 @@
-import type { Site } from "./types";
-
-export const tokyo: Site[] = [
- {
- name: "Shifoo (That Computer Scientist)",
- url: "https://crvs.neocities.org/",
- description:
- "Welcome to the home of Shifoo (previously That Computer Scientist). My name is Bobby, and this is my personal website. I aim to build a retro looking personal website, where I share my thoughts, ideas, and experiences through articles, and will showcase some cool nostalgic features and tools.",
- owner: "crvs",
- tags: ["anime", "personal", "community", "programming", "blog"],
- added: new Date("2025-05-16 02:22"),
- screenshotUrl:
- "https://neocities.org/site_screenshots/40/23/crvs/index.html.540x405.webp",
- },
-];
diff --git a/src/data/districts/types.ts b/src/data/districts/types.ts
deleted file mode 100644
index e495070..0000000
--- a/src/data/districts/types.ts
+++ /dev/null
@@ -1,16 +0,0 @@
-export interface District {
- id: string;
- name: string;
- description: string;
- image: string;
-}
-
-export interface Site {
- name: string;
- url: string;
- description: string;
- owner: string;
- tags: string[];
- added: Date;
- screenshotUrl: string;
-}
diff --git a/src/layouts/Layout.astro b/src/layouts/Layout.astro
deleted file mode 100644
index c191e4d..0000000
--- a/src/layouts/Layout.astro
+++ /dev/null
@@ -1,39 +0,0 @@
----
-import LeftSidebar from "../components/LeftSidebarComponent.astro";
-import RightSidebar from "../components/RightSidebarComponent.astro";
-import "../styles/global.css";
-
-const { title } = Astro.props;
----
-
-<!doctype html>
-<html lang="en">
- <head>
- <meta charset="UTF-8" />
- <meta name="viewport" content="width=device-width" />
- <meta name="generator" content={Astro.generator} />
- <link rel="icon" type="image/png" href="/images/internal/favicon.png" />
- <link rel="preconnect" href="https://fonts.googleapis.com">
- <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin="true">
- <link href="https://fonts.googleapis.com/css2?family=Saira+Extra+Condensed:wght@100;200;300;400;500;600;700;800;900&amp;family=IBM+Plex+Sans:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;1,100;1,200;1,300;1,400;1,500;1,600;1,700&amp;display=swap" rel="stylesheet">
- <title>Pagoda — {title || "default"}</title>
- </head>
- <body>
- <nav class="navigation py-4 min-w-[1080px]">
- <img src="/images/internal/pagoda.webp" alt="Pagoda" class="w-64 m-auto select-none pointer-events-none" />
- </nav>
- <main class="w-[1080px] m-auto flex flex-row gap-4">
- <LeftSidebar />
- <div class="w-2/3 py-4 bg-black/50">
- <slot />
- </div>
- <RightSidebar />
- </main>
- <footer class="w-[1080px] m-auto text-center mt-8">
- <hr>
- <p class="text-xs py-4">
- &copy; {new Date().getFullYear()} Pagoda on Neocities. All rights reserved. Brought to you by <a href="https://shi.foo" target="_blank" rel="noopener noreferrer" class="text-pagodapurple-shine hover:text-pagodapink-shine hover:decoration-dotted hover:underline">shi.foo</a>.
- </p>
- </footer>
- </body>
-</html>
diff --git a/src/pages/_dynamicClasses.astro b/src/pages/_dynamicClasses.astro
deleted file mode 100644
index c8d1250..0000000
--- a/src/pages/_dynamicClasses.astro
+++ /dev/null
@@ -1,12 +0,0 @@
-<!-- Force Tailwind to build Dynamic classes. File to be deleted after generation -->
-<!-- District Colos -->
-<span class="bg-arcadia"></span>
-<span class="bg-arles"></span>
-<span class="bg-hollywood"></span>
-<span class="bg-oxford"></span>
-<span class="bg-petsburg"></span>
-<span class="bg-purgatory"></span>
-<span class="bg-silicon-valley"></span>
-<span class="bg-silver-lake"></span>
-<span class="bg-stratford-upon-avon"></span>
-<span class="bg-tokyo"></span> \ No newline at end of file
diff --git a/src/pages/districts/[district].astro b/src/pages/districts/[district].astro
deleted file mode 100644
index 136780c..0000000
--- a/src/pages/districts/[district].astro
+++ /dev/null
@@ -1,41 +0,0 @@
----
-import Layout from "../../layouts/Layout.astro";
-import DistrictCardComponent from "../../components/DistrictCardComponent.astro";
-import DistrictSiteResultComponent from "../../components/DistrictSiteResultComponent.astro";
-import {
- getDistrictById,
- getPaginatedSitesByDistrictId,
-} from "../../data/districts/functions";
-import { districts } from "../../data/districts/districts";
-
-export function getStaticPaths() {
- return districts.map((district) => ({
- params: { district: district.id },
- }));
-}
-
-const { district } = Astro.params;
-const districtData = getDistrictById(district);
-
-const sitesPerPage = 10;
-const currentPage = 1;
-const { sites, totalPages } = getPaginatedSitesByDistrictId(
- district,
- currentPage,
- sitesPerPage
-);
----
-
-<Layout title={`${districtData?.name || district} District`}>
- <div class="text-sm mb-4">
- <a class="link" href="/districts">← Back to All Districts</a>
- </div>
- <DistrictCardComponent district={districtData} />
- <DistrictSiteResultComponent
- district={district}
- sites={sites}
- totalPages={totalPages}
- currentPage={currentPage}
- sitesPerPage={sitesPerPage}
- />
-</Layout>
diff --git a/src/pages/districts/[district]/[page].astro b/src/pages/districts/[district]/[page].astro
deleted file mode 100644
index 810174b..0000000
--- a/src/pages/districts/[district]/[page].astro
+++ /dev/null
@@ -1,57 +0,0 @@
----
-import Layout from "../../../layouts/Layout.astro";
-import DistrictCardComponent from "../../../components/DistrictCardComponent.astro";
-import DistrictSiteResultComponent from "../../../components/DistrictSiteResultComponent.astro";
-import {
- getDistrictById,
- getPaginatedSitesByDistrictId,
-} from "../../../data/districts/functions";
-import { districts } from "../../../data/districts/districts";
-
-export async function getStaticPaths() {
- const paths = [];
- const sitesPerPage = 3;
-
- for (const district of districts) {
- const { totalPages } = getPaginatedSitesByDistrictId(
- district.id,
- 1,
- sitesPerPage
- );
- for (let page = 1; page <= totalPages; page++) {
- paths.push({
- params: { district: district.id, page: String(page) },
- });
- }
- }
-
- return paths;
-}
-
-const { district, page } = Astro.params;
-const currentPage = parseInt(page || "1");
-const districtData = getDistrictById(district);
-const sitesPerPage = 10;
-
-const { sites, totalPages } = getPaginatedSitesByDistrictId(
- district,
- currentPage,
- sitesPerPage
-);
----
-
-<Layout
- title={`${districtData?.name || district} District - Page ${currentPage}`}
->
- <div class="text-sm mb-4">
- <a class="link" href="/districts">← Back to All Districts</a>
- </div>
- <DistrictCardComponent district={districtData} />
- <DistrictSiteResultComponent
- district={district}
- sites={sites}
- totalPages={totalPages}
- currentPage={currentPage}
- sitesPerPage={sitesPerPage}
- />
-</Layout>
diff --git a/src/pages/districts/index.astro b/src/pages/districts/index.astro
deleted file mode 100644
index 0990b35..0000000
--- a/src/pages/districts/index.astro
+++ /dev/null
@@ -1,18 +0,0 @@
----
-import Layout from "../../layouts/Layout.astro";
-import DistrictCardComponent from "../../components/DistrictCardComponent.astro";
-import { districts } from "../../data/districts/districts";
----
-<Layout title="Districts">
- <h1 class="text-2xl saira">Districts on Pagoda</h1>
- <div class="text-justify mb-8 text-sm">
- <p>Districts are collections of Neocities sites that share a common theme or interest. Each district has its own unique style and personality, and you can find a variety of sites to explore within each one. You can also find districts that are dedicated to specific topics, such as art, music, or gaming.</p>
- <p>Each district contains a curated list of sites that are related to the district's theme. You can explore these sites and discover new content that you may not have found otherwise. Districts are a great way to connect with other Neocities users who share your interests, and to find new sites to explore.</p>
- <p>Districts are constantly evolving, and new districts are being added all the time. If you have a site that you think would be a good fit for a district, check out the <a class="link" href="/faq">FAQ</a> for more information on how to get your site added to a district.</p>
- </div>
- <section class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-2 gap-4 mt-4">
- {districts.map((district) => (
- <DistrictCardComponent district={district} />
- ))}
- </section>
-</Layout> \ No newline at end of file
diff --git a/src/pages/index.astro b/src/pages/index.astro
deleted file mode 100644
index e84a590..0000000
--- a/src/pages/index.astro
+++ /dev/null
@@ -1,22 +0,0 @@
----
-import Layout from "../layouts/Layout.astro";
-import AnnouncementsMarqueeComponent from "../components/AnnouncementsMarqueeComponent.astro";
----
-
-<Layout title="Home">
- <section class="mb-4 bg-yellow-500/20 px-2 pt-1 rounded text-xs">
- <marquee behavior="scroll" direction="left" scrollamount="5" scrolldelay="30" onmouseout="this.start()" onmouseover="this.stop()">
- <p class="text-pagodagreen-shine">Pagoda is currently under construction and breaking changes may occur. You are welcome to browse around, but please be aware that the site is not yet complete. Potential breaking changes include, but are not limited to: Design, UI, and UX changes, changes to the Page Layouts and Components, as well as the addition of new features and tools that may not be fully functional yet. We are working hard to get everything up and running as soon as possible, so please bear with us! Thank you for your understanding and support!</p>
- </marquee>
- </section>
- <section class="text-justify mb-8 text-sm">
- <p>Welcome to <em>Pagoda</em> on <a class="link" href="https://neocities.org" target="_blank" rel="noopener noreferrer">Neocities</a>! This is a project dedicated to provide a collection of resources and tools for the Neocities community. Pagoda is a hub for all things Neocities, where you can find avatars, backgrounds, blinkies, flags, stamps, and more. Pagoda also offers a variety of services to enhance your own Neocities site, like guestbooks, comments, and webrings. Whether you're a new user or a seasoned veteran, Pagoda has something for everyone.</p>
- <p>Additionally, you can also find <a class="link" href="/guides">guides</a> to help you with efficiently running and maintaining your Neocities site. These guides cover a wide range of topics, from basic HTML and CSS to more advanced techniques. We also have <a class="link" href="/districts">Districts</a> that you can explore, which are collections of Neocities sites that share a common theme or interest. Each district has its own unique style and personality, and you can find a variety of sites to explore within each one.</p>
- <p>Pagoda is constantly evolving, and always looking for new ways to improve and expand the project and its offerings. Any feedback or suggestions are always welcome! If you would like to contribute to Pagoda, or want to get your own site added or a district, or if you have any questions or concerns, please check out the <a class="link" href="/faq">FAQ</a> for more information.
- </section>
- <section class="mb-8">
- <img src="/images/internal/updates.gif" alt="News and Updates" class="h-6 w-auto pointer-events-none select-none" />
- <img src="/images/internal/divider.gif" alt="Divider" class="w-full h-auto pointer-events-none select-none" />
- <AnnouncementsMarqueeComponent />
- </section>
-</Layout>
diff --git a/src/pages/not_found.astro b/src/pages/not_found.astro
deleted file mode 100644
index a16f258..0000000
--- a/src/pages/not_found.astro
+++ /dev/null
@@ -1,7 +0,0 @@
----
-import Layout from "../layouts/Layout.astro";
----
-
-<Layout>
- <h1>404 Page Not Found</h1>
-</Layout>
diff --git a/src/scripts/sidebarImage.ts b/src/scripts/sidebarImage.ts
deleted file mode 100644
index 456059e..0000000
--- a/src/scripts/sidebarImage.ts
+++ /dev/null
@@ -1,30 +0,0 @@
-document.addEventListener("DOMContentLoaded", (): void => {
- const currentMinute: number = Math.floor(Date.now() / 60000);
- const sidebarImagePathPrefix: string = "/images/internal/sidebar";
-
- type ImageRule = {
- divisor: number;
- filename: string;
- };
-
- const imageRules: ImageRule[] = [
- { divisor: 7, filename: "7.gif" },
- { divisor: 5, filename: "5.gif" },
- { divisor: 3, filename: "3.gif" },
- { divisor: 2, filename: "2.gif" },
- ];
-
- const matchedRule: ImageRule | undefined = imageRules.find(
- (rule: ImageRule): boolean => currentMinute % rule.divisor === 0
- );
-
- const imageName: string = matchedRule ? matchedRule.filename : "default.gif";
- const sidebarImage: string = `${sidebarImagePathPrefix}/${imageName}`;
-
- const imageElement: HTMLImageElement | null = document.getElementById(
- "sidebar-image"
- ) as HTMLImageElement;
- if (imageElement) {
- imageElement.src = sidebarImage;
- }
-});
diff --git a/src/styles/global.css b/src/styles/global.css
deleted file mode 100644
index e6ab12e..0000000
--- a/src/styles/global.css
+++ /dev/null
@@ -1,46 +0,0 @@
-@import "tailwindcss";
-
-@theme {
- --color-pagodapurple: #8853e7;
- --color-pagodapurple-shine: #d4c5ff;
- --color-pagodagreen: #91d027;
- --color-pagodagreen-shine: #cff294;
- --color-pagodapink: #e42b8f;
- --color-pagodapink-shine: #ffc8f0;
- --color-arcadia: #5882ce;
- --color-arles: #9a7570;
- --color-hollywood: #a9562d;
- --color-oxford: #312630;
- --color-petsburg: #417958;
- --color-purgatory: #5c518e;
- --color-silicon-valley: #427571;
- --color-silver-lake: #39516c;
- --color-stratford-upon-avon: #ab5742;
- --color-tokyo: #a25373;
-}
-
-
-:root {
- /* page prefers dark mode */
- color-scheme: dark;
- font-family: IBM Plex Sans, sans-serif;
-}
-
-
-body {
- background-image: url('/images/internal/background.webp');
- background-repeat: repeat;
-}
-
-.navigation {
- background-image: url('/images/internal/banner_backdrop.webp');
- background-repeat: repeat-x;
-}
-
-.saira {
- font-family: Saira Extra Condensed, sans-serif;
-}
-
-.link {
- @apply text-pagodapink hover:text-pagodapurple hover:underline decoration-dotted
-} \ No newline at end of file