Scaffold basic page layout and site generation

Set up the basic layout of the site and greybox its content based on
statically generated pages.  Content pages uses general base layouts
defined centrally to avoid duplicating code.
This commit is contained in:
Hornwitser 2025-01-22 04:54:03 +01:00
parent 51b458103b
commit 8fb809fa95
10 changed files with 268 additions and 21 deletions

34
content/index.tsx Normal file
View file

@ -0,0 +1,34 @@
import { BasePage } from "./bases.js";
import { projects } from "./projects.js"
import { updates } from "./updates.js"
const title = "Hornwitser's Site";
export const index = {
title,
ref: "index.html",
content: <BasePage title={title}>
<main>
<div class="hero" />
<div class="author">
<div style="width: 4em; height: 4em; background-color: grey" />
<hgroup>
<h1>Hi, I'm Hornwitser!</h1>
<p>
Grown up, he/him, aro, gray ace
</p>
</hgroup>
</div>
<p>
I'm a red dragon that mostly dabble in hobby programming and the occasional artwork.
</p>
<h2>Latest <a href="./updates.html">Updates</a></h2>
<ul>
{ updates.map(update => <li><a href={"./" + update.ref}>{update.title}</a></li>)}
</ul>
<h2>Projects</h2>
<ul>
{ projects.map(project => <li><a href={"./" + project.ref}>{project.title}</a></li>)}
</ul>
</main>
</BasePage>,
};