website

Personal website
git clone https://github.com/michaelneuper/website.git
README | Files | Log | Refs

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:
MREADME.md | 24+++++++++++++++++-------
Msrc/pages/giscus/[theme].css.js | 4++--
Msrc/scripts/home/gitlog.js | 3++-
Msrc/scripts/tags.js | 3++-
Msrc/styles/home/hero.css | 3+--
Msrc/styles/home/projects.css | 4++--
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;