Initial Hugo site structure

This commit is contained in:
Claude Code 2026-02-11 15:01:42 +00:00
commit 0fdec621e7
13 changed files with 199 additions and 0 deletions

3
.gitignore vendored Normal file
View file

@ -0,0 +1,3 @@
public/
resources/
.hugo_build.lock

8
Dockerfile Normal file
View file

@ -0,0 +1,8 @@
FROM hugomods/hugo:latest AS builder
WORKDIR /src
COPY . .
RUN hugo --minify
FROM nginx:alpine
COPY --from=builder /src/public /usr/share/nginx/html
EXPOSE 80

13
config.toml Normal file
View file

@ -0,0 +1,13 @@
baseURL = "https://hgv.brunk-garten.de/"
languageCode = "de"
title = "HGV - Heimat- und Gartenverein"
theme = ""
[markup]
[markup.goldmark]
[markup.goldmark.renderer]
unsafe = true
[params]
description = "Heimat- und Gartenverein Brunkgarten"
author = "HGV Brunkgarten"

5
content/_index.md Normal file
View file

@ -0,0 +1,5 @@
---
title: "Willkommen beim HGV"
---
Willkommen auf der Website des Heimat- und Gartenvereins Brunkgarten.

View file

@ -0,0 +1,8 @@
---
title: "Mitglieder"
menu: "main"
weight: 2
layout: "members"
---
Unsere Mitglieder im Überblick.

7
content/verein/_index.md Normal file
View file

@ -0,0 +1,7 @@
---
title: "Der Verein"
menu: "main"
weight: 1
---
Informationen zum Verein.

12
data/members.json Normal file
View file

@ -0,0 +1,12 @@
[
{
"name": "Max Mustermann",
"rolle": "Vorsitzender",
"seit": "2020"
},
{
"name": "Erika Muster",
"rolle": "Stellvertreterin",
"seit": "2021"
}
]

View file

@ -0,0 +1,27 @@
<!DOCTYPE html>
<html lang="de">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>{{ .Title }} | {{ .Site.Title }}</title>
<link rel="stylesheet" href="/css/style.css">
</head>
<body>
<header>
<nav>
<a href="/" class="logo">{{ .Site.Title }}</a>
<ul>
{{ range .Site.Menus.main }}
<li><a href="{{ .URL }}">{{ .Name }}</a></li>
{{ end }}
</ul>
</nav>
</header>
<main>
{{ block "main" . }}{{ end }}
</main>
<footer>
<p>&copy; {{ now.Year }} {{ .Site.Title }}</p>
</footer>
</body>
</html>

View file

@ -0,0 +1,12 @@
{{ define "main" }}
<section>
<h1>{{ .Title }}</h1>
{{ .Content }}
{{ range .Pages }}
<article>
<h2><a href="{{ .RelPermalink }}">{{ .Title }}</a></h2>
{{ .Summary }}
</article>
{{ end }}
</section>
{{ end }}

View file

@ -0,0 +1,6 @@
{{ define "main" }}
<article>
<h1>{{ .Title }}</h1>
{{ .Content }}
</article>
{{ end }}

6
layouts/index.html Normal file
View file

@ -0,0 +1,6 @@
{{ define "main" }}
<section class="hero">
<h1>{{ .Title }}</h1>
{{ .Content }}
</section>
{{ end }}

View file

@ -0,0 +1,24 @@
{{ define "main" }}
<section>
<h1>{{ .Title }}</h1>
{{ .Content }}
<table>
<thead>
<tr>
<th>Name</th>
<th>Rolle</th>
<th>Mitglied seit</th>
</tr>
</thead>
<tbody>
{{ range .Site.Data.members }}
<tr>
<td>{{ .name }}</td>
<td>{{ .rolle }}</td>
<td>{{ .seit }}</td>
</tr>
{{ end }}
</tbody>
</table>
</section>
{{ end }}

68
static/css/style.css Normal file
View file

@ -0,0 +1,68 @@
* { margin: 0; padding: 0; box-sizing: border-box; }
body {
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
line-height: 1.6;
color: #333;
max-width: 960px;
margin: 0 auto;
padding: 0 1rem;
}
header nav {
display: flex;
align-items: center;
justify-content: space-between;
padding: 1.5rem 0;
border-bottom: 1px solid #eee;
}
header .logo {
font-weight: 700;
font-size: 1.2rem;
text-decoration: none;
color: #2d6a4f;
}
header ul {
list-style: none;
display: flex;
gap: 1.5rem;
}
header a {
text-decoration: none;
color: #555;
}
header a:hover { color: #2d6a4f; }
main {
padding: 2rem 0;
min-height: 60vh;
}
h1 { margin-bottom: 1rem; color: #1b4332; }
h2 { margin: 1.5rem 0 0.5rem; }
table {
width: 100%;
border-collapse: collapse;
margin-top: 1rem;
}
th, td {
text-align: left;
padding: 0.75rem;
border-bottom: 1px solid #eee;
}
th { background: #f8f9fa; font-weight: 600; }
footer {
padding: 2rem 0;
border-top: 1px solid #eee;
text-align: center;
color: #888;
font-size: 0.9rem;
}