From afe6e2ebe9b694da341268c8fbcde3f5130561de Mon Sep 17 00:00:00 2001 From: Felix Brabetz Date: Sat, 16 May 2026 02:18:39 +0200 Subject: [PATCH] Setup Decap CMS and Content Collection for Biodiversity --- public/admin/config.yml | 28 ++++++++++++ public/admin/index.html | 12 +++++ src/components/Biodiversity.astro | 63 ++++++++------------------- src/content/biodiversity/biotope.json | 27 ++++++++++++ src/content/biodiversity/biotope.md | 20 +++++++++ src/content/config.ts | 20 +++++++++ 6 files changed, 125 insertions(+), 45 deletions(-) create mode 100644 public/admin/config.yml create mode 100644 public/admin/index.html create mode 100644 src/content/biodiversity/biotope.json create mode 100644 src/content/biodiversity/biotope.md create mode 100644 src/content/config.ts diff --git a/public/admin/config.yml b/public/admin/config.yml new file mode 100644 index 0000000..c7738e2 --- /dev/null +++ b/public/admin/config.yml @@ -0,0 +1,28 @@ +backend: + name: gitea # ACHTUNG: Wenn du GitLab nutzt, ändere das in 'gitlab' + repo: fberger/brabetz-homepage + api_root: https://git.brabros.de/api/v1 # Für GitLab: https://git.brabros.de/api/v4 + branch: main + +media_folder: "src/images" +public_folder: "src/images" + +collections: + - name: "pages" + label: "Seiten" + files: + - file: "src/content/biodiversity/biotope.md" + label: "Biotop-Bausteine" + name: "biotope" + fields: + - { label: "Titel", name: "title", widget: "string" } + - { label: "Beschreibung", name: "description", widget: "string" } + - label: "Items" + name: "items" + widget: "list" + fields: + - { label: "Titel", name: "title", widget: "string" } + - { label: "Beschreibung", name: "description", widget: "text" } + - { label: "Technik", name: "technique", widget: "string" } + - { label: "Location", name: "location", widget: "string" } + - { label: "Icon", name: "icon", widget: "string" } diff --git a/public/admin/index.html b/public/admin/index.html new file mode 100644 index 0000000..d6c8d91 --- /dev/null +++ b/public/admin/index.html @@ -0,0 +1,12 @@ + + + + + + Content Manager + + + + + + diff --git a/src/components/Biodiversity.astro b/src/components/Biodiversity.astro index cba1aa5..5e7f994 100644 --- a/src/components/Biodiversity.astro +++ b/src/components/Biodiversity.astro @@ -1,5 +1,9 @@ --- // src/components/Biodiversity.astro +import { getEntry } from 'astro:content'; + +const biotopeEntry = await getEntry('biodiversity', 'biotope'); +const biotope = biotopeEntry.data; ---
@@ -46,55 +50,24 @@
- Konzepte & Techniken -

Biotop-Bausteine für Ihren Garten

+ {biotope.description} +

{biotope.title}

- -
-
-
-

Friesen- & Trockenmauern

-

- Bauen ohne Mörtel: Wir setzen regionales Gestein im zweihäuptigen Verband. Die offenen Fugen bieten Eidechsen und Wildbienen Lebensraum. Ideal für Steingartenpflanzen wie Sedum album (Weiße Fetthenne) und Sempervivum tectorum. -

+ {biotope.items.map((item) => ( +
+
+
+

{item.title}

+

+
+
+ {item.technique} + {item.location} +
-
- Mauerwerk - Taunus-Hänge -
-
- - -
-
-
-

Artenreiche Magerwiese

-

- Wir tauschen humosen Oberboden gegen ein Sand-Kies-Gemisch, um Nährstoffe zu reduzieren. Nur so etablieren sich seltene Wildkräuter wie Salvia pratensis (Wiesensalbei) und Leucanthemum vulgare dauerhaft. -

-
-
- Bodenabmagerung - Rheingau-Sonne -
-
- - -
-
-
-

Sumpf- & Feuchtbiotope

-

- Kombination aus Versickerung und Lebensraum. Mit standortgerechten Sumpfpflanzen wie Iris pseudacorus (Sumpf-Schwertlilie) und Caltha palustris schaffen wir Filterzonen, die Libellen anziehen. -

-
-
- Retentionsmulde - Talauen & Senken -
-
+ ))}
diff --git a/src/content/biodiversity/biotope.json b/src/content/biodiversity/biotope.json new file mode 100644 index 0000000..7fda592 --- /dev/null +++ b/src/content/biodiversity/biotope.json @@ -0,0 +1,27 @@ +{ + "title": "Biotop-Bausteine für Ihren Garten", + "description": "Konzepte & Techniken", + "items": [ + { + "title": "Friesen- & Trockenmauern", + "description": "Bauen ohne Mörtel: Wir setzen regionales Gestein im zweihäuptigen Verband. Die offenen Fugen bieten Eidechsen und Wildbienen Lebensraum. Ideal für Steingartenpflanzen wie Sedum album (Weiße Fetthenne) und Sempervivum tectorum.", + "technique": "Mauerwerk", + "location": "Taunus-Hänge", + "icon": "fa-solid fa-mound" + }, + { + "title": "Artenreiche Magerwiese", + "description": "Wir tauschen humosen Oberboden gegen ein Sand-Kies-Gemisch, um Nährstoffe zu reduzieren. Nur so etablieren sich seltene Wildkräuter wie Salvia pratensis (Wiesensalbei) und Leucanthemum vulgare dauerhaft.", + "technique": "Bodenabmagerung", + "location": "Rheingau-Sonne", + "icon": "fa-solid fa-seedling" + }, + { + "title": "Sumpf- & Feuchtbiotope", + "description": "Kombination aus Versickerung und Lebensraum. Mit standortgerechten Sumpfpflanzen wie Iris pseudacorus (Sumpf-Schwertlilie) und Caltha palustris schaffen wir Filterzonen, die Libellen anziehen.", + "technique": "Retentionsmulde", + "location": "Talauen & Senken", + "icon": "fa-solid fa-droplet" + } + ] +} diff --git a/src/content/biodiversity/biotope.md b/src/content/biodiversity/biotope.md new file mode 100644 index 0000000..113f862 --- /dev/null +++ b/src/content/biodiversity/biotope.md @@ -0,0 +1,20 @@ +--- +title: "Biotop-Bausteine für Ihren Garten" +description: "Konzepte & Techniken" +items: + - title: "Friesen- & Trockenmauern" + description: "Bauen ohne Mörtel: Wir setzen regionales Gestein im zweihäuptigen Verband. Die offenen Fugen bieten Eidechsen und Wildbienen Lebensraum. Ideal für Steingartenpflanzen wie Sedum album (Weiße Fetthenne) und Sempervivum tectorum." + technique: "Mauerwerk" + location: "Taunus-Hänge" + icon: "fa-solid fa-mound" + - title: "Artenreiche Magerwiese" + description: "Wir tauschen humosen Oberboden gegen ein Sand-Kies-Gemisch, um Nährstoffe zu reduzieren. Nur so etablieren sich seltene Wildkräuter wie Salvia pratensis (Wiesensalbei) und Leucanthemum vulgare dauerhaft." + technique: "Bodenabmagerung" + location: "Rheingau-Sonne" + icon: "fa-solid fa-seedling" + - title: "Sumpf- & Feuchtbiotope" + description: "Kombination aus Versickerung und Lebensraum. Mit standortgerechten Sumpfpflanzen wie Iris pseudacorus (Sumpf-Schwertlilie) und Caltha palustris schaffen wir Filterzonen, die Libellen anziehen." + technique: "Retentionsmulde" + location: "Talauen & Senken" + icon: "fa-solid fa-droplet" +--- diff --git a/src/content/config.ts b/src/content/config.ts new file mode 100644 index 0000000..046f883 --- /dev/null +++ b/src/content/config.ts @@ -0,0 +1,20 @@ +import { defineCollection, z } from 'astro:content'; + +const biodiversity = defineCollection({ + type: 'content', + schema: z.object({ + title: z.string(), + description: z.string(), + items: z.array(z.object({ + title: z.string(), + description: z.string(), + technique: z.string(), + location: z.string(), + icon: z.string(), + })), + }), +}); + +export const collections = { + 'biodiversity': biodiversity, +};