atom feed generator, titles
parent
b6b84cfa33
commit
4dfcf1b408
@ -0,0 +1,46 @@
|
||||
import { Feed } from 'feed';
|
||||
import { readBlogPosts } from '~~/lib/blog/read-posts';
|
||||
|
||||
const BASE_URL = 'https://lunasqu.ee/blog';
|
||||
|
||||
export default defineEventHandler(async (event) => {
|
||||
const posts = await readBlogPosts(undefined, true, false);
|
||||
const feed = new Feed({
|
||||
title: "Evert's Blog",
|
||||
description: 'Projects and Tutorials',
|
||||
id: BASE_URL,
|
||||
link: BASE_URL,
|
||||
copyright: 'Evert "Diamond" Prants 2022',
|
||||
language: 'en',
|
||||
updated: new Date(posts[0].date),
|
||||
generator: 'https://gitlab.icynet.eu/evert/lunasqu.ee-nuxt',
|
||||
feedLinks: {
|
||||
atom: `${BASE_URL}/atom.xml`,
|
||||
},
|
||||
});
|
||||
|
||||
posts.forEach((post) => {
|
||||
const description = post.html
|
||||
.replace(/<[^>]*>?/gm, '')
|
||||
.replace('\n', ' ')
|
||||
.substring(0, 240);
|
||||
|
||||
feed.addItem({
|
||||
title: post.title,
|
||||
id: `${BASE_URL}/${post.fullSlug}`,
|
||||
link: `${BASE_URL}/${post.fullSlug}`,
|
||||
description,
|
||||
content: post.html,
|
||||
date: new Date(post.date),
|
||||
published: new Date(post.date),
|
||||
category: post.tags.map((tag) => ({
|
||||
term: tag,
|
||||
scheme: `${BASE_URL}/tags/${tag}`,
|
||||
})),
|
||||
});
|
||||
});
|
||||
|
||||
appendResponseHeader(event, 'Content-Type', 'text/xml');
|
||||
|
||||
return feed.atom1();
|
||||
});
|
Loading…
Reference in New Issue