Files
mcg-website/README.md
T
luxick a58ed0e805 Remove migration tooling and documentation
The import is verified and content/ is now the source of truth, so the
one-shot WordPress importer under tools/ and MIGRATION.md are no longer
needed. Also drops the remaining references to the old site from the
README, config comments and data-file headers.

Build is unchanged: 38 pages, 718 internal links, none broken.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-07-28 19:31:02 +02:00

117 lines
3.1 KiB
Markdown

# motorradclub-giebelwald.de
Static website of the Motorradclub Giebelwald e.V., built with [Hugo](https://gohugo.io).
- Development: <https://mcg.luxick.de>
- Production: <https://motorradclub-giebelwald.de>
## Requirements
Hugo **0.164.0**. The *non-extended* build is sufficient: the site uses plain CSS,
no Sass.
## Local development
```sh
hugo server -D # http://localhost:1313
hugo --gc --minify # production build into public/
```
## Editing content
Everything lives in Markdown under `content/`, edited via git (locally or in
Gitea's web editor).
### Add a news post
Create `content/aktuelles/<slug>/index.md`:
```markdown
---
title: "30. O-Fahrt 2027"
date: 2027-01-15T10:00:00Z
tags: ["O-Fahrt"]
featured: "titelbild.jpg"
---
Text …
{{< gallery "bild1.jpg" "bild2.jpg" >}}
```
Drop the images into the same folder. `featured` picks the teaser image; without
it the first image in the folder is used.
### Add or change a Termin
Edit `data/termine.yaml`. The newest year is shown expanded, older years collapse:
```yaml
"2027":
- date: "06.02.2027\n18:30"
description: "Jahreshauptversammlung\nSängerheim Niederndorf"
```
### Members / In Erinnerung
`data/members.yaml` and `data/memoriam.yaml`. Images go in `assets/img/`.
### Downloads
Put the PDF in `static/dokumente/` and link it from `content/downloads.md`:
```markdown
{{< pdf "satzung.pdf" "Unsere Satzung" >}}
```
## Shortcodes
| Shortcode | Purpose |
|---|---|
| `{{< gallery "a.jpg" "b.jpg" >}}` | Thumbnail grid; no arguments = all images in the bundle |
| `{{< figure "bild.jpg" "Bildunterschrift" >}}` | Single image with caption |
| `{{< pdf "datei.pdf" "Titel" >}}` | Download link with file size |
## Site structure
```
content/
_index.md Startseite
aktuelles/ News section (RSS enabled)
archiv/ Rückblicke auf frühere Fahrten
termine.md uses layouts/termine.html + data/termine.yaml
downloads.md
impressum.md
data/ termine, members, memoriam
assets/ css/main.css, img/ (logo, banner, portraits)
static/dokumente/ PDFs
layouts/ baseof, home, list, page, termine
_partials/ _shortcodes/ _markup/
```
## Deployment
`.gitea/workflows/deploy.yml` builds with Hugo and rsyncs `public/` over SSH.
- Push to `main` → deploys to **mcg.luxick.de**
- Manual *Run workflow* with `environment: production` → deploys to
**motorradclub-giebelwald.de**
- Pull requests are built but never published
### Required secrets
Set these in the Gitea repository settings:
| Secret | Example |
|---|---|
| `SSH_PRIVATE_KEY` | Deploy key with write access to the webroot |
| `SSH_KNOWN_HOSTS` | Output of `ssh-keyscan <host>` |
| `DEPLOY_HOST` | `server.example.de` |
| `DEPLOY_USER` | `www-deploy` |
| `DEPLOY_PATH_DEV` | `/var/www/mcg-dev` |
| `DEPLOY_PATH_PROD` | `/var/www/mcg` |
rsync runs with `--delete`, so each `DEPLOY_PATH_*` must point at a directory
owned solely by this site. The workflow refuses to deploy if the path is unset,
too shallow, or if the build produced no `index.html`.