Skip to content

Commit 8f24c19

Browse files
committed
rss feed of log
1 parent 1062425 commit 8f24c19

File tree

3 files changed

+284
-21
lines changed

3 files changed

+284
-21
lines changed

package.json

+1
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@
3636
"@nais/ds-svelte-community": "^0.7.5",
3737
"@slack/web-api": "^7.7.0",
3838
"date-fns": "^4.1.0",
39+
"feed": "^4.2.2",
3940
"mdast-util-find-and-replace": "^3.0.1",
4041
"node-emoji": "^2.1.3",
4142
"shiki": "^1.23.0",
+53
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
import { Feed } from "feed";
2+
3+
export async function GET() {
4+
const feed = new Feed({
5+
title: "nais log",
6+
description:
7+
"Her poster Naisteamet informasjon om nyheter, endringer eller hendelser i plattformen.",
8+
id: "https://nais.io/log/",
9+
link: "https://nais.io/log/",
10+
language: "no",
11+
favicon: "https://nais.io/favicon.ico",
12+
copyright: `Copyright ${new Date().getFullYear().toString()}, nais.io`,
13+
feedLinks: {
14+
rss: "https://nais.io/log/rss.xml",
15+
},
16+
ttl: 60,
17+
});
18+
19+
const markdownFiles = import.meta.glob<{
20+
metadata: {
21+
date: string;
22+
title: string;
23+
author: string;
24+
};
25+
}>("../posts/*.md", { eager: true });
26+
27+
const posts = Object.entries(markdownFiles)
28+
.map(([path, post]) => ({
29+
slug: path.match(/([^\/]+)\.md$/)?.[1],
30+
...post,
31+
}))
32+
.sort((a, b) => new Date(b.metadata.date).getTime() - new Date(a.metadata.date).getTime());
33+
34+
for (const post of posts) {
35+
feed.addItem({
36+
title: post.metadata.title,
37+
description: post.metadata.title,
38+
link: `https://nais.io/log#${post.slug}`,
39+
date: new Date(post.metadata.date),
40+
author: [
41+
{
42+
name: post.metadata.author,
43+
},
44+
],
45+
});
46+
}
47+
48+
return new Response(feed.rss2(), {
49+
headers: {
50+
"Content-Type": "application/xml; charset=utf-8",
51+
},
52+
});
53+
}

0 commit comments

Comments
 (0)