Skip to content

Commit 0e50e82

Browse files
committed
feat: add specific rss/atom feeds for dotnet
1 parent ebb761e commit 0e50e82

File tree

4 files changed

+19
-3
lines changed

4 files changed

+19
-3
lines changed

nuxt.config.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,8 @@ export default defineNuxtConfig({
5353
'/api/search.json': { prerender: true },
5454
'/feed.atom': {prerender: true},
5555
'/feed.rss': {prerender: true},
56+
'/dotnet_feed.atom': {prerender: true},
57+
'/dotnet_feed.rss': {prerender: true},
5658
'/gitcheatsheet': {redirect: '/goodies/gitcheatsheet', prerender: true},
5759
},
5860
devtools: {
@@ -73,4 +75,4 @@ export default defineNuxtConfig({
7375
}
7476
},
7577
compatibilityDate: '2024-09-05'
76-
})
78+
})

server/feed.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import {Feed} from "feed";
33
import {serverQueryContent} from "#content/server";
44
import type {EventHandlerRequest, H3Event} from "h3";
55

6-
export async function generateFeed(event: H3Event<EventHandlerRequest>) {
6+
export async function generateFeed(event: H3Event<EventHandlerRequest>, tags: string[] = []): Promise<Feed> {
77
const baseUrl = 'https://techwatching.dev'
88
const siteUrl = joinURL(baseUrl, 'posts')
99
const feed = new Feed({
@@ -24,7 +24,7 @@ export async function generateFeed(event: H3Event<EventHandlerRequest>) {
2424
.where({ _partial: false, _draft: false, _type: 'markdown' })
2525
.find()
2626

27-
for (const article of articles) {
27+
for (const article of articles.filter(article => tags.length === 0 || article.tags.some((tag: string) => tags.includes(tag)))) {
2828
feed.addItem({
2929
link: joinURL(baseUrl, article._path ?? ''),
3030
image: joinURL(baseUrl, article.image.src),

server/routes/dotnet_feed.atom.ts

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
import {generateFeed} from "~/server/feed";
2+
3+
export default defineEventHandler(async (event) => {
4+
const feed = await generateFeed(event, [".NET"])
5+
appendHeader(event, 'Content-Type', 'application/xml')
6+
return feed.atom1()
7+
})

server/routes/dotnet_feed.rss.ts

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
import {generateFeed} from "~/server/feed";
2+
3+
export default defineEventHandler(async (event) => {
4+
const feed = await generateFeed(event, [".NET"])
5+
appendHeader(event, 'Content-Type', 'application/xml')
6+
return feed.rss2()
7+
})

0 commit comments

Comments
 (0)