Files
pages/src/routes/feed/+page.ts

50 lines
1.2 KiB
TypeScript
Raw Normal View History

2026-04-13 16:54:50 +02:00
import { entries } from './feed';
interface FeedEntry {
content: any;
title: string;
subtitle: string;
date: string;
}
let entriesPerPage = 8;
export async function load({ params, url }) {
// Get page index
let pageIndex = Number(url.searchParams.get('p'));
if (pageIndex == 0) {
pageIndex = 1;
}
// TODO check if index exceeds maximum permitted and redirect (to max page?)
let feedEntries: FeedEntry[] = [];
let start = (pageIndex - 1) * entriesPerPage;
for (let i = start; i < start + entriesPerPage; i += 1) {
// Stop iterating when end reached
if (i >= entries.length) {
break;
}
// Vite complains if I don't do this even though it's stupid
const path = entries[i].split("/");
const page = await import(`./${path[0]}/${path[1]}.md`);
const md = page.metadata;
feedEntries.push({
content: page.default,
title: md.title,
subtitle: md.subtitle,
date: md.date,
});
}
let currentPage = pageIndex;
let maxPages = Math.ceil(entries.length / entriesPerPage);
return {
currentPage,
maxPages,
feedEntries,
};
}