diff --git a/apps/blog/src/layouts/Layout.astro b/apps/blog/src/layouts/Layout.astro
new file mode 100644
index 0000000..fdf86d4
--- /dev/null
+++ b/apps/blog/src/layouts/Layout.astro
@@ -0,0 +1,23 @@
+---
+import '../styles/global.css';
+
+interface Props {
+ title: string;
+ showHeader?: boolean;
+ isHome?: boolean;
+}
+
+const { title, showHeader = true, isHome = false } = Astro.props;
+---
+
+
+
{title}
+
+{showHeader && (
+
+)}
+
+
+
diff --git a/apps/blog/src/pages/admin.astro b/apps/blog/src/pages/admin.astro
index 1fed7e9..50bda50 100644
--- a/apps/blog/src/pages/admin.astro
+++ b/apps/blog/src/pages/admin.astro
@@ -4,7 +4,7 @@ export const prerender = false;
import { getSession } from 'auth-astro/server';
import { getPendingEntries, type GuestbookEntry } from '../lib/db';
import { isAdmin } from '../lib/auth';
-import '../styles/global.css';
+import Layout from '../layouts/Layout.astro';
let session;
try {
@@ -35,10 +35,8 @@ function formatDate(date: Date): string {
return `${d}/${m}/${y}`;
}
---
-
-
-admin - guestbook
-
+
+
guestbook admin
logged in as {session.user?.name} sign out
@@ -92,5 +90,4 @@ function formatDate(date: Date): string {
});
});
-
-
+
diff --git a/apps/blog/src/pages/blog/[slug].astro b/apps/blog/src/pages/blog/[slug].astro
index 730c303..ff9be4f 100644
--- a/apps/blog/src/pages/blog/[slug].astro
+++ b/apps/blog/src/pages/blog/[slug].astro
@@ -1,6 +1,6 @@
---
import { getCollection, render } from 'astro:content';
-import '../../styles/global.css';
+import Layout from '../../layouts/Layout.astro';
export async function getStaticPaths() {
const posts = await getCollection('posts');
@@ -13,17 +13,10 @@ export async function getStaticPaths() {
const { post } = Astro.props;
const { Content } = await render(post);
---
-
-
-{post.data.title} - lewis m.w.
-
-
+
{post.data.title}
-
-
+
diff --git a/apps/blog/src/pages/blog/index.astro b/apps/blog/src/pages/blog/index.astro
index 140f0a8..935a021 100644
--- a/apps/blog/src/pages/blog/index.astro
+++ b/apps/blog/src/pages/blog/index.astro
@@ -1,6 +1,6 @@
---
import { getCollection } from 'astro:content';
-import '../../styles/global.css';
+import Layout from '../../layouts/Layout.astro';
const posts = await getCollection('posts');
const sorted = posts.sort((a, b) => {
@@ -16,17 +16,10 @@ function formatDate(date: Date): string {
return `${d}/${m}/${y}`;
}
---
-
-
-blog - lewis m.w.
-
-
+
blog
`${formatDate(post.data.date)} ${post.data.title}${post.data.pinned ? ' [pinned]' : ''}`).join('\n')} />
-
-
+
diff --git a/apps/blog/src/pages/bookmarks/index.astro b/apps/blog/src/pages/bookmarks/index.astro
index 63a04d4..177a9b8 100644
--- a/apps/blog/src/pages/bookmarks/index.astro
+++ b/apps/blog/src/pages/bookmarks/index.astro
@@ -1,5 +1,5 @@
---
-import '../../styles/global.css';
+import Layout from '../../layouts/Layout.astro';
import yaml from 'js-yaml';
import bookmarksRaw from '../../data/bookmarks.yaml?raw';
@@ -33,17 +33,10 @@ function extractDomain(url: string): string {
}
}
---
-
-
-bookmarks - lewis m.w.
-
-
+
bookmarks
`${formatBookmarkDate(b.date)} ${b.title} (${extractDomain(b.url)})`).join('\n')} />
-
-
+
diff --git a/apps/blog/src/pages/guestbook/index.astro b/apps/blog/src/pages/guestbook/index.astro
index a86e6da..e5c1c62 100644
--- a/apps/blog/src/pages/guestbook/index.astro
+++ b/apps/blog/src/pages/guestbook/index.astro
@@ -1,5 +1,5 @@
---
-import '../../styles/global.css';
+import Layout from '../../layouts/Layout.astro';
import { getApprovedEntries, type GuestbookEntry } from '../../lib/db';
let guestbookEntries: GuestbookEntry[] = [];
@@ -16,13 +16,7 @@ function formatDate(date: Date): string {
return `${d}/${m}/${y}`;
}
---
-
-
-guestbook - lewis m.w.
-
-
+
guestbook
@@ -70,5 +64,4 @@ function formatDate(date: Date): string {
}
});
-
-
+
diff --git a/apps/blog/src/pages/index.astro b/apps/blog/src/pages/index.astro
index 74337ea..cd98b44 100644
--- a/apps/blog/src/pages/index.astro
+++ b/apps/blog/src/pages/index.astro
@@ -1,6 +1,6 @@
---
import { getCollection } from 'astro:content';
-import '../styles/global.css';
+import Layout from '../layouts/Layout.astro';
import yaml from 'js-yaml';
import bookmarksRaw from '../data/bookmarks.yaml?raw';
import fs from 'node:fs';
@@ -68,13 +68,7 @@ function extractDomain(url: string): string {
}
}
---
-
-
-lewis m.w.
-
-
+
blog
@@ -146,5 +140,4 @@ function extractDomain(url: string): string {
}
});
-
-
+
diff --git a/apps/blog/src/pages/txt/index.astro b/apps/blog/src/pages/txt/index.astro
index 5c23fa8..ba97ee1 100644
--- a/apps/blog/src/pages/txt/index.astro
+++ b/apps/blog/src/pages/txt/index.astro
@@ -1,5 +1,5 @@
---
-import '../../styles/global.css';
+import Layout from '../../layouts/Layout.astro';
import fs from 'node:fs';
import path from 'node:path';
@@ -26,17 +26,10 @@ function formatDate(date: Date): string {
return `${d}/${m}/${y}`;
}
---
-
-
-txt - lewis m.w.
-
-
+
txt
`${formatDate(f.mtime)} ${f.name}`).join('\n')} />
-
-
+