Lichterei-Inhalte aus dem Template in die Markdown-Datei holen
Einleitungstext und Bildliste standen fest verdrahtet in layouts/lampe/single.html, die Galerie lief ueber ein hartes "range seq 1 7". Inhaltliche Aenderungen erforderten damit Eingriffe ins Template. Der Text steht jetzt als Fliesstext in lichterei.md und wird ueber .Content gerendert, die Bilder als Liste "lampen" im Frontmatter mit optionaler Bildunterschrift. Das Template iteriert ueber die Liste, statt auf sieben Eintraege festgelegt zu sein. Leerer text-Wert unterdrueckt die figcaption und laesst den alt-Text auf "Lampe N" zurueckfallen - die Seite rendert damit unveraendert. Ausserdem: AGENTS.md als Arbeitsanweisung fuer die lokale LLM-gestuetzte Bearbeitung, CSS-Regel fuer figcaption ergaenzt. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
136
AGENTS.md
Normal file
136
AGENTS.md
Normal file
@@ -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
|
||||

|
||||
```
|
||||
|
||||
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.
|
||||
@@ -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.
|
||||
|
||||
@@ -11,12 +11,13 @@
|
||||
<main id="content">
|
||||
<section class="lichterei-hero">
|
||||
<h1>{{ .Title }}</h1>
|
||||
<p class="intro">Lampen die ich gesammelt, gebastelt und geliebt habe. Jede hat ihre eigene Geschichte und ihren eigenen Glow.</p>
|
||||
<div class="intro">{{ .Content }}</div>
|
||||
</section>
|
||||
<section class="lampen-grid">
|
||||
{{ range $index, $element := seq 1 7 }}
|
||||
{{ range $index, $lampe := .Params.lampen }}
|
||||
<figure class="lampe-card" style="animation-delay: {{ div $index 10 }}s">
|
||||
<img src="/lampen/lampe{{ $element }}.jpg" alt="Lampe {{ $element }}" loading="lazy">
|
||||
<img src="{{ $lampe.bild }}" alt="{{ with $lampe.text }}{{ . }}{{ else }}Lampe {{ add $index 1 }}{{ end }}" loading="lazy">
|
||||
{{ with $lampe.text }}<figcaption>{{ . }}</figcaption>{{ end }}
|
||||
</figure>
|
||||
{{ end }}
|
||||
</section>
|
||||
|
||||
@@ -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; }
|
||||
|
||||
Reference in New Issue
Block a user