mirror of
https://github.com/skoelle/28k8-moonweb-org.git
synced 2026-09-17 18:30:24 +00:00
README.md
This commit is contained in:
@@ -1,35 +1,35 @@
|
|||||||
# 28k8.moonweb.org - tHE tEMPLE bBS Retro Hub (v2)
|
# 🖥️ 28k8.moonweb.org - tHE tEMPLE bBS Retro Hub (v2)
|
||||||
|
|
||||||
A 90s BBS/demoscene retro hub, built with Astro + React Islands, deployed
|
A 90s BBS/demoscene retro hub, built with Astro + React Islands, deployed
|
||||||
on Cloudflare Pages. No backend, no PHP, no database, no tracking.
|
on Cloudflare Pages. No backend, no PHP, no database, no tracking. 🚫
|
||||||
|
|
||||||
## v2 highlights
|
## ✨ v2 highlights
|
||||||
- The colored TEMPLE ANSI banner now actually renders on the main menu.
|
- 🎨 The colored TEMPLE ANSI banner now actually renders on the main menu.
|
||||||
- Disconnect works correctly (clears state, returns to the intro screen).
|
- 🔌 Disconnect works correctly (clears state, returns to the intro screen).
|
||||||
- SkyLINE has a visible blue accent + a real generated header image.
|
- 🔵 SkyLINE has a visible blue accent + a real generated header image.
|
||||||
- 10 full ASCII banners with color gradients across every page, an 8-item
|
- 🎭 10 full ASCII banners with color gradients across every page, an 8-item
|
||||||
ANSI-art gallery, and real net-list content from the original screenshots.
|
ANSI-art gallery, and real net-list content from the original screenshots.
|
||||||
- Lots more content: Tropic DREAMs (all 4 real releases), SkyLINE (+3),
|
- 📚 Lots more content: Tropic DREAMs (all 4 real releases), SkyLINE (+3),
|
||||||
Kosmos Design (7, new), ESPRIT (4, new), MOD Files tracklist.
|
Kosmos Design (7, new), ESPRIT (4, new), MOD Files tracklist.
|
||||||
|
|
||||||
## Start here
|
## 🗺️ Start here
|
||||||
1. PRD.md - requirements + v1.4 changelog
|
1. 📋 PRD.md - requirements + v1.4 changelog
|
||||||
2. SPEC.md - technical spec, what changed and why
|
2. 📐 SPEC.md - technical spec, what changed and why
|
||||||
3. PLAN.md - phase-by-phase remaining work
|
3. 📅 PLAN.md - phase-by-phase remaining work
|
||||||
|
|
||||||
## Quick start
|
## 🚀 Quick start
|
||||||
```
|
```bash
|
||||||
npm install
|
npm install
|
||||||
npm run dev # http://localhost:4321
|
npm run dev # http://localhost:4321
|
||||||
npm run build # -> dist/
|
npm run build # -> dist/
|
||||||
npm run preview # serve the production build locally
|
npm run preview # serve the production build locally
|
||||||
```
|
```
|
||||||
|
|
||||||
## Deployment
|
## ☁️ Deployment
|
||||||
Cloudflare Pages, connected directly to this repo. Build command
|
Cloudflare Pages, connected directly to this repo. Build command
|
||||||
`npm run build`, output directory `dist`.
|
`npm run build`, output directory `dist`.
|
||||||
|
|
||||||
## Pre-Build System
|
## 🔄 Pre-Build System
|
||||||
|
|
||||||
Das Pre-Build-System lädt vor jedem Build externe Daten (JSON) und schreibt
|
Das Pre-Build-System lädt vor jedem Build externe Daten (JSON) und schreibt
|
||||||
sie nach `src/data/`. Die JSON wird committed, sodass der Build nicht von
|
sie nach `src/data/`. Die JSON wird committed, sodass der Build nicht von
|
||||||
@@ -51,17 +51,17 @@ Aktive Stages:
|
|||||||
| `mods` | `tools/fetch_mods.py` | `src/data/mods.json` | MOD-Metadaten von moonweb.org |
|
| `mods` | `tools/fetch_mods.py` | `src/data/mods.json` | MOD-Metadaten von moonweb.org |
|
||||||
|
|
||||||
Neuen Stage hinzufügen:
|
Neuen Stage hinzufügen:
|
||||||
1. `tools/fetch_<name>.py` erstellen (Output: `src/data/<name>.json`)
|
1. 🐍 `tools/fetch_<name>.py` erstellen (Output: `src/data/<name>.json`)
|
||||||
2. Case-Block in `prebuild.sh` ergänzen
|
2. 🔧 Case-Block in `prebuild.sh` ergänzen
|
||||||
3. `npm run build` ruft automatisch `prebuild.sh` auf
|
3. 🏗️ `npm run build` ruft automatisch `prebuild.sh` auf
|
||||||
|
|
||||||
## WelcomeBanner (Startseite)
|
## 🎬 WelcomeBanner (Startseite)
|
||||||
|
|
||||||
Das "THE TEMPLE BBS"-Logo auf der Startseite wird als CP437-Text mit
|
Das "THE TEMPLE BBS"-Logo auf der Startseite wird als CP437-Text mit
|
||||||
Typewriter-Animation dargestellt. Der Text kommt aus einer echten
|
Typewriter-Animation dargestellt. Der Text kommt aus einer echten
|
||||||
CP437-Datei und wird mit einem IBM-VGA-Webfont gerendert.
|
CP437-Datei und wird mit einem IBM-VGA-Webfont gerendert.
|
||||||
|
|
||||||
### Dateien
|
### 📁 Dateien
|
||||||
|
|
||||||
| Datei | Zweck |
|
| Datei | Zweck |
|
||||||
|---|---|
|
|---|---|
|
||||||
@@ -72,7 +72,7 @@ CP437-Datei und wird mit einem IBM-VGA-Webfont gerendert.
|
|||||||
| `public/fonts/Px437_IBM_VGA_8x16.ttf` | Font als Fallback |
|
| `public/fonts/Px437_IBM_VGA_8x16.ttf` | Font als Fallback |
|
||||||
| `src/styles/global.css:2` | `@font-face`-Definition |
|
| `src/styles/global.css:2` | `@font-face`-Definition |
|
||||||
|
|
||||||
### Warum zwei Textdateien?
|
### 🤔 Warum zwei Textdateien?
|
||||||
|
|
||||||
Node.js unterstützt `cp437` nicht in `TextDecoder`. Die Original-Datei
|
Node.js unterstützt `cp437` nicht in `TextDecoder`. Die Original-Datei
|
||||||
wird daher per Python in UTF-8 konvertiert und die `.txt`-Datei mit
|
wird daher per Python in UTF-8 konvertiert und die `.txt`-Datei mit
|
||||||
@@ -86,7 +86,7 @@ with open('source-assets/welcome-utf8.txt','w',encoding='utf-8') as f: f.write(d
|
|||||||
"
|
"
|
||||||
```
|
```
|
||||||
|
|
||||||
### Animation anpassen
|
### ⏱️ Animation anpassen
|
||||||
|
|
||||||
In `src/components/WelcomeBanner.astro`, Zeile 24-26:
|
In `src/components/WelcomeBanner.astro`, Zeile 24-26:
|
||||||
|
|
||||||
@@ -102,7 +102,7 @@ const HARD_PAUSES: [number, number][] = [[34, 400], [98, 350]];
|
|||||||
Position 34 ≈ Mitte der 1. Zeile, Position 98 ≈ Mitte der 2. Zeile.
|
Position 34 ≈ Mitte der 1. Zeile, Position 98 ≈ Mitte der 2. Zeile.
|
||||||
Werte an Text anpassen wenn sich die Zeilenlängen ändern.
|
Werte an Text anpassen wenn sich die Zeilenlängen ändern.
|
||||||
|
|
||||||
### Font
|
### 🔤 Font
|
||||||
|
|
||||||
`Px437 IBM VGA 8x16` von int10h.org (Oldschool PC Font Pack v2.2,
|
`Px437 IBM VGA 8x16` von int10h.org (Oldschool PC Font Pack v2.2,
|
||||||
CC BY-SA 4.0). Enthält 288 Glyphs inkl. aller CP437-Block-Zeichen
|
CC BY-SA 4.0). Enthält 288 Glyphs inkl. aller CP437-Block-Zeichen
|
||||||
|
|||||||
@@ -18,6 +18,16 @@ Stand: 15.08.2026 | Referenz: PLAN.md, SPEC.md, PRD.md
|
|||||||
- [ ] BANNER_KOSMOS — pc/kosmos-design.astro
|
- [ ] BANNER_KOSMOS — pc/kosmos-design.astro
|
||||||
- [ ] BANNER_ANSI — Header auf ansi-art.astro selbst
|
- [ ] BANNER_ANSI — Header auf ansi-art.astro selbst
|
||||||
|
|
||||||
|
### Dependency Updates (Renovate)
|
||||||
|
- [x] chiptune3 → 0.8.8 (15.08.2026)
|
||||||
|
- [x] actions/checkout → v7 (15.08.2026)
|
||||||
|
- [x] actions/setup-node → v7 (15.08.2026)
|
||||||
|
- [ ] React → v19 (erst prüfen ob `@astrojs/react` kompatibel ist)
|
||||||
|
- [ ] Astro monorepo → v5 (Major, ausführlich testen)
|
||||||
|
- [ ] Node.js → v24 (Major, nach lokalem Test)
|
||||||
|
- [ ] TypeScript → v7 (Major, nach `npm run build` Test)
|
||||||
|
- [ ] GitHub Artifact Actions → Major (CI manuell prüfen)
|
||||||
|
|
||||||
### Sonstiges
|
### Sonstiges
|
||||||
- [x] sitemap.xml — `/bbs/fido/cds/` Eintrag korrigiert (15.08.2026)
|
- [x] sitemap.xml — `/bbs/fido/cds/` Eintrag korrigiert (15.08.2026)
|
||||||
- [x] `skyline-header.png` — wieder eingebaut in skyline.astro (15.08.2026)
|
- [x] `skyline-header.png` — wieder eingebaut in skyline.astro (15.08.2026)
|
||||||
|
|||||||
Reference in New Issue
Block a user