diff --git a/src/components/ui/Categories.astro b/src/components/ui/Categories.astro
index 33d0248..853a874 100644
--- a/src/components/ui/Categories.astro
+++ b/src/components/ui/Categories.astro
@@ -1,5 +1,5 @@
---
-import { categoryMap, getCategoryPath } from "@/utils/taxonomy";
+import { getTaxonomyMap, getTaxonomyPath } from "@/utils/taxonomy";
export interface Props {
categories: string[];
@@ -15,10 +15,10 @@ const { categories, class: className = "text-sm" } = Astro.props;
{categories.map((category) => (
- {categoryMap.get(category)?.name ?? category}
+ {getTaxonomyMap("category").get(category)?.name ?? category}
))}
diff --git a/src/components/ui/Destinations.astro b/src/components/ui/Destinations.astro
index fce439c..e81a224 100644
--- a/src/components/ui/Destinations.astro
+++ b/src/components/ui/Destinations.astro
@@ -1,5 +1,5 @@
---
-import { destinationMap, getDestinationPath } from "@/utils/taxonomy";
+import { getTaxonomyMap, getTaxonomyPath } from "@/utils/taxonomy";
export interface Props {
destinations: string[];
@@ -15,7 +15,7 @@ const { destinations, class: className = "text-sm" } = Astro.props;
{destinations.map((destination) => (
- {destinationMap.get(destination)?.name ?? destination}
+ {getTaxonomyMap("destination").get(destination)?.name ??
+ destination}
))}
diff --git a/src/components/ui/Pagination.astro b/src/components/ui/Pagination.astro
index 5ac2532..bd9322e 100644
--- a/src/components/ui/Pagination.astro
+++ b/src/components/ui/Pagination.astro
@@ -1,10 +1,14 @@
---
-import type { Page } from "astro";
-import type { CollectionEntry } from "astro:content";
import { Icon } from "astro-icon/components";
+export interface SimplePage {
+ currentPage: number;
+ lastPage: number;
+ url: { prev?: string; next?: string };
+}
+
export interface Props {
- page: Page>;
+ page: SimplePage;
class?: string;
}
diff --git a/src/components/ui/Tags.astro b/src/components/ui/Tags.astro
index 889b8b5..1570f36 100644
--- a/src/components/ui/Tags.astro
+++ b/src/components/ui/Tags.astro
@@ -1,5 +1,5 @@
---
-import { tagMap } from "@/utils/taxonomy";
+import { getTaxonomyMap } from "@/utils/taxonomy";
export interface Props {
tags: string[];
@@ -18,7 +18,7 @@ const { tags, class: className = "text-sm" } = Astro.props;
href={`/tag/${tag}`}
class="inline-block bg-muted/50 hover:bg-muted text-muted-foreground hover:text-foreground px-3 py-1 rounded-full border border-border transition-colors duration-200"
>
- #{tagMap.get(tag)?.name ?? tag}
+ #{getTaxonomyMap("tag").get(tag)?.name ?? tag}
))}
diff --git a/src/pages/category/[...rest].astro b/src/pages/category/[...rest].astro
index 6e0ec49..118df7b 100644
--- a/src/pages/category/[...rest].astro
+++ b/src/pages/category/[...rest].astro
@@ -7,8 +7,8 @@ import Pagination from "@/components/ui/Pagination.astro";
import type { Page } from "astro";
import type { CollectionEntry } from "astro:content";
import {
- categoryMap,
- getCategoryPath,
+ getTaxonomyMap,
+ getTaxonomyPath,
type TaxonomyItem,
} from "@/utils/taxonomy";
@@ -27,8 +27,10 @@ export async function getStaticPaths() {
.filter((post) => post.data.categories?.includes(slug))
.sort((a, b) => b.data.pubDate.valueOf() - a.data.pubDate.valueOf());
- const fullPath = getCategoryPath(slug);
- const cat = categoryMap.get(slug) ?? ({ slug, name: slug } as TaxonomyItem);
+ const fullPath = getTaxonomyPath("category", slug);
+ const cat =
+ getTaxonomyMap("category").get(slug) ??
+ ({ slug, name: slug } as TaxonomyItem);
const totalPages = Math.max(1, Math.ceil(catPosts.length / PAGE_SIZE));
return Array.from({ length: totalPages }, (_, i) => {
@@ -65,7 +67,7 @@ const page = {
currentPage,
lastPage,
url: { prev: prevUrl, next: nextUrl },
-} as unknown as Page>;
+};
const metadata = {
title: cat.name,
diff --git a/src/pages/category/[category]/[...page].astro b/src/pages/category/[category]/[...page].astro
index 8de289f..b083be3 100644
--- a/src/pages/category/[category]/[...page].astro
+++ b/src/pages/category/[category]/[...page].astro
@@ -5,7 +5,7 @@ import Headline from "@/components/ui/Headline.astro";
import PostItem from "@/components/blog/PostItem.astro";
import Pagination from "@/components/ui/Pagination.astro";
import type { GetStaticPathsOptions } from "astro";
-import { categoryMap } from "@/utils/taxonomy";
+import { getTaxonomyMap } from "@/utils/taxonomy";
export async function getStaticPaths({ paginate }: GetStaticPathsOptions) {
const allPosts = await getCollection("blog");
@@ -31,7 +31,7 @@ export async function getStaticPaths({ paginate }: GetStaticPathsOptions) {
const { page } = Astro.props;
const { category } = Astro.params;
-const categoryInfo = categoryMap.get(category!);
+const categoryInfo = getTaxonomyMap("category").get(category!);
const displayName = categoryInfo?.name ?? category!;
const description = categoryInfo?.description;
diff --git a/src/pages/destination/[...rest].astro b/src/pages/destination/[...rest].astro
index 90521ff..3bfef66 100644
--- a/src/pages/destination/[...rest].astro
+++ b/src/pages/destination/[...rest].astro
@@ -7,8 +7,8 @@ import Pagination from "@/components/ui/Pagination.astro";
import type { Page } from "astro";
import type { CollectionEntry } from "astro:content";
import {
- destinationMap,
- getDestinationPath,
+ getTaxonomyMap,
+ getTaxonomyPath,
type TaxonomyItem,
} from "@/utils/taxonomy";
@@ -27,9 +27,10 @@ export async function getStaticPaths() {
.filter((post) => post.data.destination?.includes(slug))
.sort((a, b) => b.data.pubDate.valueOf() - a.data.pubDate.valueOf());
- const fullPath = getDestinationPath(slug);
+ const fullPath = getTaxonomyPath("destination", slug);
const dest =
- destinationMap.get(slug) ?? ({ slug, name: slug } as TaxonomyItem);
+ getTaxonomyMap("destination").get(slug) ??
+ ({ slug, name: slug } as TaxonomyItem);
const totalPages = Math.max(1, Math.ceil(destPosts.length / PAGE_SIZE));
return Array.from({ length: totalPages }, (_, i) => {
@@ -66,7 +67,7 @@ const page = {
currentPage,
lastPage,
url: { prev: prevUrl, next: nextUrl },
-} as unknown as Page>;
+};
const metadata = {
title: dest.name,
diff --git a/src/pages/tag/[tag]/[...page].astro b/src/pages/tag/[tag]/[...page].astro
index 2065677..4984bd4 100644
--- a/src/pages/tag/[tag]/[...page].astro
+++ b/src/pages/tag/[tag]/[...page].astro
@@ -5,7 +5,7 @@ import Headline from "@/components/ui/Headline.astro";
import PostItem from "@/components/blog/PostItem.astro";
import Pagination from "@/components/ui/Pagination.astro";
import type { GetStaticPathsOptions } from "astro";
-import { tagMap } from "@/utils/taxonomy";
+import { getTaxonomyMap } from "@/utils/taxonomy";
export async function getStaticPaths({ paginate }: GetStaticPathsOptions) {
const allPosts = await getCollection("blog");
@@ -31,7 +31,7 @@ export async function getStaticPaths({ paginate }: GetStaticPathsOptions) {
const { page } = Astro.props;
const { tag } = Astro.params;
-const tagInfo = tagMap.get(tag!);
+const tagInfo = getTaxonomyMap("tag").get(tag!);
const displayName = tagInfo?.name ?? tag!;
const description = tagInfo?.description;
diff --git a/src/utils/taxonomy.ts b/src/utils/taxonomy.ts
index 5a496c1..01ddfb1 100644
--- a/src/utils/taxonomy.ts
+++ b/src/utils/taxonomy.ts
@@ -51,14 +51,3 @@ export function getTaxonomyItem(
): TaxonomyItem | undefined {
return getTaxonomyMap(type).get(slug);
}
-
-// Convenience aliases kept for backward compatibility
-export const categoryMap = getTaxonomyMap("category");
-export const destinationMap = getTaxonomyMap("destination");
-export const tagMap = getTaxonomyMap("tag");
-
-export const getCategoryPath = (slug: string) =>
- getTaxonomyPath("category", slug);
-export const getDestinationPath = (slug: string) =>
- getTaxonomyPath("destination", slug);
-export const getTagPath = (slug: string) => getTaxonomyPath("tag", slug);