diff --git a/src/app.html b/src/app.html
index 9fc88ed..a3a6687 100755
--- a/src/app.html
+++ b/src/app.html
@@ -5,7 +5,7 @@
-
+
%sveltekit.head%
diff --git a/src/lib/components/Footer.svelte b/src/lib/components/Footer.svelte
index c08d8a3..a694cbd 100755
--- a/src/lib/components/Footer.svelte
+++ b/src/lib/components/Footer.svelte
@@ -78,7 +78,7 @@
{
+ const slug = path.split('/').at(-1)?.replace('.md', '')
+ const rawDate = metadata.date
+ const date = new Date(typeof rawDate === 'number' ? rawDate * 1000 : rawDate).getTime()
+
+ if (!slug || !path || Number.isNaN(date)) {
+ console.error(`Invalid file ${path} ${JSON.stringify({ ...metadata, date, slug })}`)
+ return []
+ }
+
+ return { slug, ...metadata, date }
+ })
+ .sort(({ date: a }, { date: b }) => new Date(b).getTime() - new Date(a).getTime())
+
+ return posts
+}
diff --git a/src/routes/api/news/+server.js b/src/routes/api/news/+server.js
index d92e827..c89e552 100644
--- a/src/routes/api/news/+server.js
+++ b/src/routes/api/news/+server.js
@@ -1,24 +1,6 @@
+import { getNews } from '$lib/posts'
import { json } from '@sveltejs/kit'
-async function getNews() {
- const posts = Object.entries(import.meta.glob('/src/content/news/*.md', { eager: true }))
- .flatMap(([path, { metadata }]) => {
- const slug = path.split('/').at(-1)?.replace('.md', '')
- const rawDate = metadata.date
- const date = new Date(typeof rawDate === 'number' ? rawDate * 1000 : rawDate).getTime()
-
- if (!slug || !path || Number.isNaN(date)) {
- console.error(`Invalid file ${path} ${JSON.stringify({ ...metadata, date, slug })}`)
- return []
- }
-
- return { slug, ...metadata, date }
- })
- .sort(({ date: a }, { date: b }) => new Date(b).getTime() - new Date(a).getTime())
-
- return posts
-}
-
export async function GET() {
const news = await getNews()
return json(news)
diff --git a/src/routes/news/[slug]/+page.js b/src/routes/news/[slug]/+page.js
index 3e15cab..ebe8d6a 100644
--- a/src/routes/news/[slug]/+page.js
+++ b/src/routes/news/[slug]/+page.js
@@ -1,5 +1,3 @@
-import { error } from '@sveltejs/kit'
-
export async function load({ params, fetch }) {
try {
const post = await import(`../../../content/news/${params.slug}.md`)
diff --git a/src/routes/rss/+server.js b/src/routes/rss.xml/+server.js
similarity index 77%
rename from src/routes/rss/+server.js
rename to src/routes/rss.xml/+server.js
index be9be8e..bd76dd6 100644
--- a/src/routes/rss/+server.js
+++ b/src/routes/rss.xml/+server.js
@@ -1,13 +1,15 @@
+import { getNews } from '$lib/posts'
+
const siteURL = 'https://hyprland.org'
const siteTitle = 'Hyprland'
const siteDescription = 'Tiling window manager with the looks'
export const prerender = true
-export const GET = async ({ fetch }) => {
- const allNews = await fetch('api/news')
- .then((response) => response.json())
- .then((news) => news.sort((a, b) => new Date(b.date) - new Date(a.date)))
+export const GET = async () => {
+ const allNews = await getNews().then((news) =>
+ news.sort((a, b) => new Date(b.date) - new Date(a.date))
+ )
const body = renderXml(allNews)
const options = {
@@ -24,7 +26,7 @@ function renderXml(posts) {
return `
-
+
${siteTitle} News
${siteURL}/news
${siteDescription}