commit 1d8aa56a6889eba3c4fd4a35cdae794b63dc7985
parent 193e26326c97f0b1ca1643eb6e6dc86cdb0279b8
Author: Michael Neuper <michael@michaelneuper.com>
Date: Wed, 21 Oct 2026 21:13:22 +0200
update outdated readme and comments
Diffstat:
6 files changed, 26 insertions(+), 15 deletions(-)
diff --git a/README.md b/README.md
@@ -24,11 +24,12 @@ npm run preview # serves dist/ at http://localhost:4321
|----------------------------|-------------------------------------------------------------------------------|
| `src/pages/` | the pages: home, `posts/[slug]` for every post, 404, the RSS feeds and the giscus themes |
| `src/layouts/Base.astro` | the frame every page shares |
-| `src/components/frame/` | the Emacs around each page: top line, modeline, `*Help*`, footer, and `Buffer`, a section with its winbar |
-| `src/components/home/` | the home page's sections: hero, about, projects, posts, contact, and the coffee |
+| `src/components/frame/` | the Emacs around each page: top line, modeline, `*Help*`, and `Buffer`, a section with its winbar |
+| `src/components/home/` | the home page's sections: hero (on a circuit board routed from the chip's pins), about, projects, posts, contact, and the coffee |
| `src/components/post/` | a post as an Org buffer: keywords, text, the `*Ilist*` outline, comments |
+| `src/components/missing/` | the 404 page: its status code in binary, and the `*dungeon*` text adventure |
| `src/content/posts/` | the posts, in Markdown |
-| `src/content/projects/` | the projects in the memory map, one Markdown file each |
+| `src/content/projects/` | the projects on the wheel, one Markdown file each |
| `src/data/pins.js` | the pins on the MN-2026 chip |
| `src/scripts/emacs/` | M-x, the minibuffer, which-key, the modeline and load-theme |
| `src/scripts/home/`, `post/`, `demos/` | what each component and demo does in the browser |
@@ -40,9 +41,12 @@ markup, CSS and JavaScript are named after it in `components/`, `styles/` and `s
## Adding a project
-Add `src/content/projects/<name>.md`. The front matter has its place in the list
-(`order`), colour (`cat`), one-line `summary` (its size in the memory map),
-and optionally a `demo` from `src/scripts/demos/`; the text is the write-up.
+Add `src/content/projects/<name>.md`. The front matter has the slug shown on its
+card (`name`), the heading (`title`), its place in the list (`order`), colour
+(`cat`), one-line `summary`, and optionally a `demo` from
+`src/scripts/demos/` with a `demoNote` on how the demo differs from the project;
+the text is the write-up. The drawing on its card comes from
+`src/components/home/ProjectThumb.astro`, picked by `demo`.
## Writing a post
@@ -63,4 +67,10 @@ Maths goes between `$...$` or `$$...$$` and is rendered with KaTeX when the site
## Deploying
-Netlify builds the site with the settings in `netlify.toml`: it runs `npm run build` and publishes `dist/`.
+The site is static: `npm run build` writes it to `dist/`.
+
+- **Cloudflare**: build command `npm run build`, deploy command `npx wrangler deploy`. `wrangler.jsonc` serves `dist/`, and its `name` has to match the Worker's name in the dashboard.
+- **Netlify**: `netlify.toml` runs the build and publishes `dist/`.
+
+Both read the response headers from `public/_headers`. The `/giscus/*` and `/fonts/*` headers there let the comments load their theme, so keep them on any host.
+
diff --git a/src/pages/giscus/[theme].css.js b/src/pages/giscus/[theme].css.js
@@ -1,8 +1,8 @@
// giscus themes made from the site's own colours: /giscus/<theme>.css for each
// Emacs theme, so the comments under a post match whichever one is loaded.
-// The colours are read from themes.css, so a theme only has to be defined there.
+// The colours are read from themes.css, so a new theme needs nothing added here.
// giscus loads this (and the fonts it names) from inside its own frame, so
-// netlify.toml allows giscus.app to fetch both.
+// public/_headers allows giscus.app to fetch both.
import styles from "../../styles/themes.css?raw";
import { THEMES, DEFAULT_THEME } from "../../scripts/themes.js";
diff --git a/src/scripts/home/gitlog.js b/src/scripts/home/gitlog.js
@@ -2,7 +2,8 @@
// <date> - (refs) <subject> <author>
// with the date standing in for the hash and the company as the author.
//
-// The rows are plain text in src/pages/index.astro, so they read fine without JavaScript.
+// The rows are plain text in src/components/home/About.astro, so they read
+// fine without JavaScript.
// This colours the graph by branch (data-lanes), colours the date, refs and
// author, and turns subjects that have a .gl-desc into buttons that expand it.
// Lanes: m main, u undergrad, t teaching-assistant, b bbd-software, i mwr-internship.
diff --git a/src/scripts/tags.js b/src/scripts/tags.js
@@ -1,5 +1,6 @@
// One colour per post tag, like org-tag-faces. The posts list on the home page
-// (org.js) and the post pages both use it. Add an entry when you add a tag.
+// (src/scripts/home/posts.js) and the post pages both use it. Add an entry
+// when you add a tag.
export const TAG_COLORS = {
emacs: "var(--magenta)",
org: "var(--green)",
diff --git a/src/styles/home/hero.css b/src/styles/home/hero.css
@@ -77,8 +77,7 @@
color: var(--dim);
}
-.legend li::before,
-.features li::before {
+.legend li::before {
content: "";
display: inline-block;
width: 7px;
diff --git a/src/styles/home/projects.css b/src/styles/home/projects.css
@@ -360,8 +360,8 @@
}
/* the demo, under a header line of its own: *demo*, a rule, then a note on what
- it is. Without room beside the write-up, it comes between the facts and the
- write-up, with space either side. */
+ it is. Without room beside the write-up, the demo comes under it, with space
+ either side. */
.pj-demo {
margin: 36px 0;
font-size: 12px;