mirror of
https://github.com/skoelle/moonweb-site.git
synced 2026-09-17 17:00:25 +00:00
Remove all em-dashes from website content and documentation
Replace ' — ' with ', ' across 40 files. Hyphens (-) untouched. timecapsule, stefankoelle, LICENSE, CSS comments left as-is.
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
# moonweb.org — Specification
|
||||
# moonweb.org, Specification
|
||||
|
||||
Status: Migration complete. All sites live under `www.moonweb.org` as subdirectories, deployed via IONOS SFTP.
|
||||
|
||||
@@ -36,9 +36,9 @@ Old subdomain redirects (via Cloudflare):
|
||||
|---|---|---|---|
|
||||
| hub | `/` | Gateway, links to everything, one-line description per destination | Minimal |
|
||||
| infra | `/infra/` | Shallow, structured overview of the stack: Proxmox, Synology, VLANs, Docker hosting, dev environment | Reference, high-level only |
|
||||
| smarthome | `/smarthome/` | Why the homelab exists — sensors, automation, calendar/contacts sync, dashboards, media | Project storytelling |
|
||||
| code | `/code/` | Curated, sorted GitHub catalog — overview only, always linking out to GitHub | Portfolio |
|
||||
| retro | `/retro/` | Physical retro hardware collection (not software/demos — that's 28k8's domain) | Simple, factual |
|
||||
| smarthome | `/smarthome/` | Why the homelab exists, sensors, automation, calendar/contacts sync, dashboards, media | Project storytelling |
|
||||
| code | `/code/` | Curated, sorted GitHub catalog, overview only, always linking out to GitHub | Portfolio |
|
||||
| retro | `/retro/` | Physical retro hardware collection (not software/demos, that's 28k8's domain) | Simple, factual |
|
||||
| timecapsule | `/timecapsule/` | Original www.moonweb.org content from 2001, preserved as-is | Retro 2001 design |
|
||||
|
||||
## 4. Design system
|
||||
@@ -49,7 +49,7 @@ Old subdomain redirects (via Cloudflare):
|
||||
- **Overview (index) pages** use a shared card-grid layout (clean card-grid with banner header, grouped card sections, sans-serif, generous whitespace, light theme only, no heavy JS).
|
||||
- **Detail/sub-pages** keep the same header but may use a freer layout below it.
|
||||
|
||||
Note: stefankoelle.de uses its own independent design — it does not follow this header-consistent principle.
|
||||
Note: stefankoelle.de uses its own independent design, it does not follow this header-consistent principle.
|
||||
|
||||
### 4.2 Accent colors per domain
|
||||
|
||||
@@ -63,31 +63,31 @@ Note: stefankoelle.de uses its own independent design — it does not follow thi
|
||||
|
||||
### 4.3 URL convention
|
||||
|
||||
`/section/slug/` — lowercase, hyphenated, trailing slash. All sites share a single Eleventy build with computed `pathPrefix` per section.
|
||||
`/section/slug/`, lowercase, hyphenated, trailing slash. All sites share a single Eleventy build with computed `pathPrefix` per section.
|
||||
|
||||
## 5. Content depth rules (per domain)
|
||||
|
||||
| Domain | Detail pages? | Rule |
|
||||
|---|---|---|
|
||||
| smarthome | Yes, when there's enough content | Index shows how the smart home is structured; a topic gets a detail page immediately if enough data exists — otherwise it's mentioned in the overview only, no placeholder required |
|
||||
| smarthome | Yes, when there's enough content | Index shows how the smart home is structured; a topic gets a detail page immediately if enough data exists, otherwise it's mentioned in the overview only, no placeholder required |
|
||||
| code | Never | Overview cards + link to GitHub only. No duplicating README content. |
|
||||
| infra | Rarely | Deliberately shallow — most of the raw material is sensitive (see §6) |
|
||||
| infra | Rarely | Deliberately shallow, most of the raw material is sensitive (see §6) |
|
||||
| retro | Yes, but minimal | Topic is still immature; create only a rudimentary overview, don't over-invest time |
|
||||
|
||||
General rule across all domains: **if content is too thin for a good detail page, skip the detail page — don't create a placeholder.**
|
||||
General rule across all domains: **if content is too thin for a good detail page, skip the detail page, don't create a placeholder.**
|
||||
|
||||
## 6. Infra content redaction rule
|
||||
|
||||
Because infra must stay shallow and public-safe:
|
||||
|
||||
- **Allowed:** architecture level — Proxmox + Synology + Docker host, VLAN concept without concrete internal IP plans, which service types run, which tools are used.
|
||||
- **Allowed:** architecture level, Proxmox + Synology + Docker host, VLAN concept without concrete internal IP plans, which service types run, which tools are used.
|
||||
- **Not allowed:** concrete IP addresses, WireGuard keys/preshared keys, passwords, internal hostnames that allow inference, backup targets with credentials.
|
||||
|
||||
This rule applies to any domain but is most relevant for infra, since the source documents currently contain real IPs and keys that must be actively stripped during migration.
|
||||
|
||||
## 7. Language
|
||||
|
||||
All sites in the monorepo are written **entirely in English**. Existing German source documents are translated once during migration via a single AI-assisted pass — not a recurring process. New `.moonweb.yml` metadata and generated content are authored in English from the start.
|
||||
All sites in the monorepo are written **entirely in English**. Existing German source documents are translated once during migration via a single AI-assisted pass, not a recurring process. New `.moonweb.yml` metadata and generated content are authored in English from the start.
|
||||
|
||||
## 8. GitHub automation (www.moonweb.org/code/)
|
||||
|
||||
@@ -104,13 +104,13 @@ summary: "Compact MVG/S-Bahn departure monitor with configurable stations."
|
||||
repo_url: "https://github.com/skoelle/mvg-departures"
|
||||
```
|
||||
|
||||
A local aggregator script reads `.moonweb.yml` from all repos via the GitHub API, and the result is committed into `_data/repos.json` inside the monorepo. This runs manually, on demand — no scheduled automation for now.
|
||||
A local aggregator script reads `.moonweb.yml` from all repos via the GitHub API, and the result is committed into `_data/repos.json` inside the monorepo. This runs manually, on demand, no scheduled automation for now.
|
||||
|
||||
## 9. Content maintenance
|
||||
|
||||
- infra, smarthome, retro, stefankoelle: **fully manual**, edited in vim, committed via git push. No automation.
|
||||
- code: the only automated piece is the GitHub aggregator described in §8.
|
||||
- No "last updated" timestamps are shown anywhere — the goal is that content is simply kept current, not that staleness is displayed.
|
||||
- No "last updated" timestamps are shown anywhere, the goal is that content is simply kept current, not that staleness is displayed.
|
||||
- No analytics/tracking of any kind on any site.
|
||||
- Images/assets live versioned directly in the monorepo (no external asset host).
|
||||
|
||||
@@ -159,19 +159,19 @@ moonweb-site/
|
||||
|
||||
## 11. Technical stack
|
||||
|
||||
- **Static site generator:** Eleventy (11ty) v3.1.6 — single config at root, computed `pathPrefix` per section, per-section collections.
|
||||
- **Static site generator (timecapsule):** Eleventy v2.0.1 — separate config, preserves original 2001 design.
|
||||
- **Templates:** Nunjucks (.njk) — shared `base.njk` layout, `card-grid.njk` for index pages, `sitemap.njk` for central sitemap.
|
||||
- **Static site generator:** Eleventy (11ty) v3.1.6, single config at root, computed `pathPrefix` per section, per-section collections.
|
||||
- **Static site generator (timecapsule):** Eleventy v2.0.1, separate config, preserves original 2001 design.
|
||||
- **Templates:** Nunjucks (.njk), shared `base.njk` layout, `card-grid.njk` for index pages, `sitemap.njk` for central sitemap.
|
||||
- **Styling:** Custom CSS (`base.css`) with accent colors inlined as `<style>` in `base.njk`. No per-site theme CSS files.
|
||||
- **Build:** entirely in GitHub Actions.
|
||||
- **Deploy:** IONOS SFTP — all sites deployed to `/websites/moonweb/`, stefankoelle.de to `/websites/stefankoelle/`.
|
||||
- **DNS:** Cloudflare — DNS management + redirects from old subdomains (hub.moonweb.org, etc.).
|
||||
- **Deploy:** IONOS SFTP, all sites deployed to `/websites/moonweb/`, stefankoelle.de to `/websites/stefankoelle/`.
|
||||
- **DNS:** Cloudflare, DNS management + redirects from old subdomains (hub.moonweb.org, etc.).
|
||||
- **Runtime:** fully static, no server-side code, no containers for the website itself.
|
||||
- **Local preview:** Eleventy's built-in dev server with live reload (`npm run dev` for all moonweb sites, `npm run dev:stefankoelle`, `npm run dev:timecapsule`).
|
||||
|
||||
## 12. Explicitly out of scope
|
||||
|
||||
- Migrating 28k8.moonweb.org into the monorepo — undecided, revisit later, likely never.
|
||||
- Any Perplexity-backchannel mechanism — deferred.
|
||||
- Migrating 28k8.moonweb.org into the monorepo, undecided, revisit later, likely never.
|
||||
- Any Perplexity-backchannel mechanism, deferred.
|
||||
- Analytics of any kind.
|
||||
- Automated content generation/translation pipelines beyond the one-time GitHub aggregator for code.
|
||||
|
||||
Reference in New Issue
Block a user