mirror of
https://github.com/PretendoNetwork/website.git
synced 2026-09-25 10:15:40 -05:00
47 lines
1.3 KiB
TypeScript
47 lines
1.3 KiB
TypeScript
import { queryCollection } from '@nuxt/content/server';
|
|
import { Feed } from 'feed';
|
|
|
|
export default defineEventHandler(async (event) => {
|
|
const allPosts = await queryCollection(event, 'blog').all();
|
|
|
|
const posts = allPosts.filter(p => !p.path.startsWith('/blog/_')).sort((a, b) => {
|
|
return new Date(b.date).getTime() - new Date(a.date).getTime();
|
|
});
|
|
|
|
const feed = new Feed({
|
|
title: 'Pretendo Network Blog',
|
|
description: 'The latest updates in condensed chunks',
|
|
updated: posts[0] ? new Date(posts[0].date) : undefined,
|
|
id: 'http://pretendo.network/',
|
|
link: 'https://pretendo.network/blog/',
|
|
image: 'https://pretendo.network/assets/images/opengraph/opengraph-image.png',
|
|
favicon: 'http://pretendo.network/favicon.ico',
|
|
copyright: 'Pretendo Network',
|
|
feedLinks: {
|
|
atom: 'https://pretendo.network/blog/feed.xml'
|
|
}
|
|
});
|
|
|
|
posts.forEach((post) => {
|
|
feed.addItem({
|
|
title: post.title,
|
|
id: post.path,
|
|
link: `https://pretendo.network${post.path}`,
|
|
description: post.caption,
|
|
author: [
|
|
{
|
|
name: post.author
|
|
}
|
|
],
|
|
date: new Date(post.date),
|
|
image: `https://pretendo.network${post.cover_image}`
|
|
});
|
|
});
|
|
|
|
feed.addCategory('Technology');
|
|
|
|
setHeader(event, 'content-type', 'application/rss+xml');
|
|
|
|
return feed.rss2();
|
|
});
|