diff --git a/AGENTS.md b/AGENTS.md new file mode 100644 index 0000000..58b5ec5 --- /dev/null +++ b/AGENTS.md @@ -0,0 +1,136 @@ +# robbis.space — Arbeitsanweisung + +Hugo-Website. **Deine Aufgabe ist fast immer: Inhalte ändern.** Layout, Theme und +Deployment stehen und sollen nicht angefasst werden. + +## Vorschau starten + +```bash +cd /Users/robertrapp/robbis.space && hugo server -D +``` + +Läuft dann auf http://localhost:1313 und lädt bei jeder Dateiänderung neu. +Zum Beenden Ctrl+C. + +## Wo Inhalte liegen + +Alle Texte sind Markdown-Dateien unter `content/projects/`: + +| Datei | Seite | +|---|---| +| `content/projects/_index.md` | Übersichtsseite /projects/ | +| `content/projects/mindboost.md` | /projects/mindboost/ | +| `content/projects/lichterei.md` | /projects/lichterei/ | +| `content/projects/festivals.md` | /projects/festivals/ | +| `content/projects/gemeinschaft.md` | /projects/gemeinschaft/ | +| `content/projects/kollektivarbeit.md` | /projects/kollektivarbeit/ | + +Der Dateiname bestimmt die URL. Datei umbenennen = URL ändern. + +## Aufbau einer Inhaltsdatei + +Jede Datei beginnt mit einem Frontmatter-Block zwischen `---`, danach kommt +normales Markdown: + +```markdown +--- +title: "Mindboost" +type: page +--- + +Hier steht der Fließtext als Markdown. +``` + +Nur diese Felder sind erlaubt: + +| Feld | Pflicht | Bedeutung | +|---|---|---| +| `title` | ja | Überschrift, immer in Anführungszeichen | +| `type` | ja | **nur `page` oder `lampe`** | +| `date` | nein | Erstelldatum | +| `lastmod` | nein | Datum der letzten Änderung | +| `image` | nein | Vorschaubild, Pfad wie bei Bildern unten | +| `showTableOfContents` | nein | `true` oder `false` | + +`type: lampe` benutzt das Sonderlayout `layouts/lampe/single.html` und wird +aktuell nur von `lichterei.md` verwendet. Im Zweifel `page` nehmen. +Erfinde keine Felder außerhalb dieser Tabelle — sie werden ignoriert. + +## Neue Seite anlegen + +```bash +hugo new content/projects/meineseite.md +``` + +Das erzeugt den Frontmatter-Block bereits fertig mit `type: "page"`. +Nur noch `title` anpassen und den Text darunter schreiben. +Die Seite erscheint automatisch unter /projects/meineseite/. + +Damit sie auch im Hauptmenü auftaucht, muss ein Eintrag in `hugo.toml` +unter `[[menu.main]]` ergänzt werden — nur dann, wenn ausdrücklich gewünscht. + +## Bilder + +Bilder gehören nach `static/`. Was dort liegt, landet unverändert im +fertigen Build. Eine Datei `static/lampen/lampe1.jpg` wird im Markdown so +eingebunden: + +```markdown +![Beschreibung](/lampen/lampe1.jpg) +``` + +Der Pfad beginnt mit `/`, ohne `static` davor. + +## Sonderfall Lichterei + +`content/projects/lichterei.md` ist die Lampengalerie und funktioniert +anders als die übrigen Seiten. Der Text unter dem Frontmatter ist der +Einleitungstext. Die Bilder stehen als Liste `lampen:` im Frontmatter: + +```yaml +lampen: + - bild: /lampen/lampe1.jpg + text: "Die erste, aus einem Weinkarton" + - bild: /lampen/lampe2.jpg + text: "" +``` + +- `bild` ist der Pfad ab `/`, die Datei muss unter `static/lampen/` liegen. +- `text` ist die Bildunterschrift. Bei `""` wird keine angezeigt. + +**Neue Lampe hinzufügen:** Bild nach `static/lampen/` legen, dann einen +Eintrag mit `bild` und `text` an die Liste anhängen. Sonst nichts — die +Galerie zählt die Einträge selbst. + +Fasse dafür **nicht** `layouts/lampe/single.html` an. Bilder und Text +kommen vollständig aus der Markdown-Datei. + +## Nicht anfassen + +- `themes/gokarna/` — Git-Submodule, fremder Code. Änderungen gehen beim + nächsten Update verloren. +- `public/` — wird bei jedem Build neu erzeugt. Änderungen sind sofort weg. +- `kirby/` — trotz des Namens der Deployment-Container (nginx + Hugo). + Nur anfassen, wenn ausdrücklich das Deployment geändert werden soll. +- `layouts/` und `hugo.toml` — nur nach ausdrücklicher Aufforderung. + +## Veröffentlichen + +Push auf `main` genügt: + +```bash +git add -A && git commit -m "Beschreibung" && git push +``` + +Gitea ruft danach `deploy.php` auf dem Server auf. Das Skript macht +`git pull`, aktualisiert die Submodules und baut die Seite mit `hugo` neu. +Es gibt keinen weiteren Schritt und nichts manuell hochzuladen. + +## Vor jedem Commit + +```bash +hugo --quiet +``` + +Läuft das ohne Ausgabe durch, ist der Build in Ordnung. Fehler hier +bedeuten, dass auch das Deployment fehlschlägt. diff --git a/content/projects/lichterei.md b/content/projects/lichterei.md index 6748427..4d1573c 100644 --- a/content/projects/lichterei.md +++ b/content/projects/lichterei.md @@ -1,4 +1,22 @@ --- title: "Lichterei" type: lampe +lampen: + - bild: /lampen/lampe1.jpg + text: "" + - bild: /lampen/lampe2.jpg + text: "" + - bild: /lampen/lampe3.jpg + text: "" + - bild: /lampen/lampe4.jpg + text: "" + - bild: /lampen/lampe5.jpg + text: "" + - bild: /lampen/lampe6.jpg + text: "" + - bild: /lampen/lampe7.jpg + text: "" --- + +Lampen die ich gesammelt, gebastelt und geliebt habe. Jede hat ihre eigene +Geschichte und ihren eigenen Glow. diff --git a/layouts/lampe/single.html b/layouts/lampe/single.html index 717a690..9da58b5 100644 --- a/layouts/lampe/single.html +++ b/layouts/lampe/single.html @@ -11,12 +11,13 @@

{{ .Title }}

-

Lampen die ich gesammelt, gebastelt und geliebt habe. Jede hat ihre eigene Geschichte und ihren eigenen Glow.

+
{{ .Content }}
- {{ range $index, $element := seq 1 7 }} + {{ range $index, $lampe := .Params.lampen }}
- Lampe {{ $element }} + {{ with $lampe.text }}{{ . }}{{ else }}Lampe {{ add $index 1 }}{{ end }} + {{ with $lampe.text }}
{{ . }}
{{ end }}
{{ end }}
diff --git a/static/css/lichterei.css b/static/css/lichterei.css index cb6d58e..d753fe2 100644 --- a/static/css/lichterei.css +++ b/static/css/lichterei.css @@ -9,3 +9,4 @@ body.lampe-type, body.lampe-type main { background:#111!important; color:#eee!im .lampe-card img { width:100%; height:auto; display:block; } @keyframes floatIn { from{opacity:0;transform:translateY(30px)} to{opacity:1;transform:translateY(0)} } @keyframes gentleFloat { 0%,100%{transform:translateY(0)} 50%{transform:translateY(-8px)} } +.lampe-card figcaption { padding:.75rem 1rem; font-size:.95rem; opacity:.8; line-height:1.4; }