Compare commits
2 Commits
c8b5f72657
...
21fb068901
Author | SHA1 | Date | |
---|---|---|---|
21fb068901 | |||
ab5a83202e |
12
src/handlers/feed.ts
Normal file
12
src/handlers/feed.ts
Normal file
@ -0,0 +1,12 @@
|
||||
import { Hono, Context } from 'hono';
|
||||
import { Feed } from 'feed';
|
||||
|
||||
const feed = new Hono<{ Variables: { feed: Feed }}>();
|
||||
|
||||
export async function getFeedFile(c: Context) {
|
||||
c.header('content-type', 'text/xml');
|
||||
c.body("");
|
||||
}
|
||||
|
||||
feed.get('/rss.xml', getFeedFile);
|
||||
export default feed;
|
@ -1,3 +1,6 @@
|
||||
/**
|
||||
* SiteMeta is often used for the `<meta />` tags in the document header
|
||||
*/
|
||||
export type SiteMeta = {
|
||||
description?: string,
|
||||
tags?: string[],
|
||||
|
@ -1,10 +1,24 @@
|
||||
import TOML from 'smol-toml';
|
||||
import { CONFIG_PATH } from '@blog/config';
|
||||
|
||||
export async function getSiteConfig() {
|
||||
export type SiteConfig = {
|
||||
title: string;
|
||||
owner: {
|
||||
name: string;
|
||||
email: string;
|
||||
};
|
||||
site: {
|
||||
description: string;
|
||||
url: string;
|
||||
repo: string;
|
||||
language: string;
|
||||
copyright: string;
|
||||
}
|
||||
}
|
||||
|
||||
export async function getSiteConfig(): Promise<SiteConfig> {
|
||||
const siteConfig = CONFIG_PATH + '/site.toml';
|
||||
const file = Bun.file(siteConfig);
|
||||
const data = await file.text();
|
||||
|
||||
return TOML.parse(data);
|
||||
return TOML.parse(data) as SiteConfig;
|
||||
}
|
||||
|
@ -1,14 +1,10 @@
|
||||
// generate the feed
|
||||
//
|
||||
|
||||
import { Feed, FeedOptions } from 'feed';
|
||||
import { getSiteConfig } from '@blog/services/config';
|
||||
|
||||
export async function feedFactory(): Feed {
|
||||
|
||||
}
|
||||
|
||||
export async function generateFeed(posts: PostService, feed: Feed): Feed {
|
||||
const feed = new Feed({});
|
||||
|
||||
return feed;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user