Start fleshing out the route of reading a post.

This commit is contained in:
Dave Smith-Hayes 2024-07-02 22:52:56 -04:00
parent 2e7b5da0f9
commit 91b8c267e6
3 changed files with 20 additions and 1 deletions

View File

@ -2,6 +2,7 @@ import { Hono } from 'hono';
import { jsxRenderer, useRequestContext } from 'hono/jsx-renderer'; import { jsxRenderer, useRequestContext } from 'hono/jsx-renderer';
import { Page } from '@blog/templates/Page'; import { Page } from '@blog/templates/Page';
import { Home } from '@blog/templates/Pages/Home'; import { Home } from '@blog/templates/Pages/Home';
import { FourOhFour } from '@blog/templates/Pages/FourOhFour';
import { readdir } from 'node:fs/promises'; import { readdir } from 'node:fs/promises';
const app = new Hono(); const app = new Hono();
@ -28,8 +29,16 @@ app.get('/', async (c) => {
return c.render(<Home posts={posts}/>); return c.render(<Home posts={posts}/>);
}); });
app.get('/posts/:slug', (c) => { app.get('/posts/:slug', async (c) => {
const postSlug: string = c.req.param("slug"); const postSlug: string = c.req.param("slug");
const fileName: string = postSlug + '.md';
const files = await readdir(__dirname + "/../posts");
const postFile = files.find(f => f === fileName);
if (!postFile) {
c.status(404);
return c.render(<FourOhFour />);
}
// render post // render post
// send to Post layout // send to Post layout

View File

@ -0,0 +1,10 @@
import { Page } from '@blog/templates/Page';
export function FourOhFour() {
return (
<>
<h1>404 Error</h1>
<div>Unable to find what you're looking for.</div>
</>
);
}