Skip to content

Commit 0043804

Browse files
committed
Fix category name encoding in pagination
1 parent de70e0f commit 0043804

6 files changed

Lines changed: 19 additions & 10 deletions

File tree

src/routes/blog/category/[category]/+page.server.js

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,14 @@ import fetchPosts from "$lib/assets/js/fetchPosts";
33
import { underscoreToSpace } from "$lib/assets/ts/utils.js";
44

55
export const load = async ({ params }) => {
6-
const category = underscoreToSpace(params.category);
6+
const category = params.category;
77
const page = params.page || 1;
88
const options = { category, limit: -1 };
99
const { posts: allPosts } = await fetchPosts(options);
10-
const { posts } = await fetchPosts({ category, limit: postsPerPage });
10+
const { posts } = await fetchPosts({
11+
category: underscoreToSpace(category),
12+
limit: postsPerPage,
13+
});
1114

1215
const total = allPosts.length;
1316
const pagesAvailable = Math.ceil(total / postsPerPage);

src/routes/blog/category/[category]/+page.svelte

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
<!-- Renders any page at /blog/category/* -->
22
<script lang="ts">
3+
import { underscoreToSpace } from "$lib/assets/ts/utils";
34
import PostsList from "$lib/components/PostsList.svelte";
45
let { data } = $props();
56
@@ -11,7 +12,7 @@
1112
</svelte:head>
1213

1314
<div class="flex w-full flex-col items-center p-4 pb-32">
14-
<span class="scroll-mt-16 pb-8 pt-4 font-script text-4xl"
15-
>Category: {category}</span>
15+
<span class="font-script scroll-mt-16 pt-4 pb-8 text-4xl"
16+
>Category: {underscoreToSpace(category)}</span>
1617
<PostsList {posts} />
1718
</div>

src/routes/blog/category/[category]/page/+page.server.js

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,5 @@ import { redirect } from "@sveltejs/kit";
22
import { underscoreToSpace } from "$lib/assets/ts/utils.js";
33

44
export const load = async ({ params }) => {
5-
const category = underscoreToSpace(params.category);
6-
redirect(301, `/blog/category/${category}/`);
5+
redirect(301, `/blog/category/${params.category}/`);
76
};

src/routes/blog/category/[category]/page/[page]/+page.server.js

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import { redirect } from "@sveltejs/kit";
44
import { underscoreToSpace } from "$lib/assets/ts/utils.js";
55

66
export const load = async ({ url, params, fetch }) => {
7-
const category = underscoreToSpace(params.category);
7+
const category = params.category;
88
const page = parseInt(params.page) || 1;
99

1010
// Keeps from duplicating the blog index route as page 1
@@ -14,7 +14,10 @@ export const load = async ({ url, params, fetch }) => {
1414

1515
let offset = page * postsPerPage - postsPerPage;
1616

17-
const totalPostsRes = await fetchPosts({ category: category, limit: -1 });
17+
const totalPostsRes = await fetchPosts({
18+
category: underscoreToSpace(category),
19+
limit: -1,
20+
});
1821
const total = totalPostsRes.posts.length;
1922
const { posts } = await fetchPosts({ offset, page, category });
2023

src/routes/blog/category/[category]/page/[page]/+page.svelte

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
<!-- This file handles any /blog/page/x route for pagination -->
22
<script lang="ts">
3+
import { underscoreToSpace } from "$lib/assets/ts/utils";
34
import PostsList from "$lib/components/PostsList.svelte";
45
import { postsPerPage, siteDescription } from "$lib/config";
56
@@ -13,15 +14,16 @@
1314

1415
<svelte:head>
1516
<title
16-
>Category: {category} (posts {lowerBound}–{upperBound} of {totalPosts})</title>
17+
>Category: {underscoreToSpace(category)} (posts {lowerBound}–{upperBound} of {totalPosts})</title>
1718
</svelte:head>
1819

1920
<!-- TODO: this is duplicated across multiple `+page.svelte` files -->
2021

2122
<div class="flex w-full flex-col py-4 pb-32">
2223
{#if posts.length}
2324
<span class="font-script mx-auto scroll-mt-16 pt-4 pb-8 text-4xl"
24-
>Category: {category} (posts {lowerBound}–{upperBound} of {totalPosts})</span>
25+
>Category: {underscoreToSpace(category)} (posts {lowerBound}–{upperBound} of
26+
{totalPosts})</span>
2527
<PostsList {posts} />
2628
{:else}
2729
<h1>Oops!</h1>

svelte.config.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -95,6 +95,7 @@ const config = {
9595
"/api/rss.xml/",
9696
"/blog/",
9797
"/blog/category/",
98+
"/blog/category/[category]/page",
9899
"/blog/page",
99100
"/blog/post",
100101
],

0 commit comments

Comments
 (0)