# old-computers.com — static site Static rebuild of old-computers.com with [Hugo](https://gohugo.io/) (0.158 or newer, tested with 0.167). The content is recovered from the Wayback Machine by the extraction repository (`../oc`), which generates part of this one. | Path | Origin | |---|---| | `content/{museum,machine-tabs,companies,software,history,magazine,fun}/` | generated, replaced on every `make content` | | `static/media/` | generated (copied images and documents) | | `data/slugs.json` | generated, keeps URLs stable between runs — do not delete | | `content/post/` | written by hand: news posts, see below | | `data/forum.json`, `data/forum_pages.json` | machine → forum thread and news post → forum thread maps, written by the forum import and by `make forum-sync` | | `forum/` | forum extension, local test stack, install notes | | `content/_index.md`, `layouts/`, `assets/`, `hugo.toml`, `tools/` | written by hand | | `themes/terminal/` | the [Terminal](https://github.com/panr/hugo-theme-terminal) theme (MIT), unmodified copy of v4.2.6; adapted by the project's `layouts/` (base, head, header, footer, posts) and `assets/css/museum.css`; palette in `assets/css/terminal.css` if overridden | | `build/`, `public/` | build output (`make build`, `hugo server`), not versioned | Content pages are Markdown with YAML front matter and can be corrected by hand, but a later `make content` overwrites them: lasting fixes belong in the extraction repository. ## Posts make post NAME=my-title creates `content/post/-my-title.md` (any `.md` file in `content/post/` is a post). The date comes from the file name unless `date:` is set; `author:` is optional; the name links to `/author//`, which lists all posts by that author. For a banner, put an image under `static/media/` and set `banner: /media/....jpg` (`image:` works too). Write the text in Markdown and remove `draft: true` to publish. The most recent posts (`homePosts` in `hugo.toml`, 5 by default) appear on the home page with their banner, date, author and summary (`summary:` in the front matter, or the text before ``, or the first lines); all posts are listed under News and on each author's page, `listPosts` per page (20 by default). Posts are never touched by `make content`. With a forum, each published post gets a comment discussion, shown under the post. The discussion is created by `make forum-sync`, which `make deploy` runs first: it lists the posts, has the forum create the missing discussions and records them in `data/forum_pages.json`. ## Search Search runs in the visitor's browser on an index generated by [Pagefind](https://pagefind.app/) at the end of `make build` (fetched by `npx`, so Node.js is needed to build). The header box sends to `/search/`, where results can be filtered by section. Content pages are indexed (`data-pagefind-body` on `
` in `layouts/baseof.html`); lists, taxonomy pages and the visitor comments are not. `hugo server` has no index: use `make build` and serve `build/` to try the search locally. ## Forum and comments A [Flarum](https://flarum.org/) forum can run next to the site and serve as its comment system: with `params.forum.url` set in `hugo.toml`, the menu gets a Forum entry and every page of a machine ends with that machine's forum thread (archived comments first, new replies after). With the url empty the site has no forum and shows the archived comments as static text. Everything about the forum is in [`forum/README.md`](forum/README.md). ## Usage make content # regenerate from ../oc (OC=path to use another location) make build # build into build/, with the search index make check # build + verify every internal link and image make serve # preview on http://localhost:1313 make deploy # build and copy to the test server (share must be mounted; see DEPLOY_DIR/DEPLOY_URL) The site uses relative URLs, so `public/` can be served from any directory of a web server.