Initial commit: Harheimer TC Website

- Vue 3 + Nuxt 3 Framework
- Tailwind CSS Styling
- Responsive Design mit schwarz-roten Vereinsfarben
- Dynamische Galerie mit Lightbox
- Event-Management über CSV-Dateien
- Mannschaftsübersicht mit dynamischen Seiten
- SMTP-Kontaktformular
- Google Maps Integration
- Mobile-optimierte Navigation mit Submenus
- Trainer-Übersicht
- Vereinsmeisterschaften, Spielsysteme, TT-Regeln
- Impressum mit Datenschutzerklärung
This commit is contained in:
Torsten Schulz (local)
2025-10-21 00:41:12 +02:00
commit 737c3064bd
61 changed files with 25816 additions and 0 deletions

41
server/api/galerie.get.js Normal file
View File

@@ -0,0 +1,41 @@
import { promises as fs } from 'fs'
import path from 'path'
export default defineEventHandler(async (event) => {
try {
const galerieDir = path.join(process.cwd(), 'public', 'galerie')
// Prüfe, ob das Verzeichnis existiert
try {
await fs.access(galerieDir)
} catch {
return []
}
// Lese alle Dateien im Verzeichnis
const dateien = await fs.readdir(galerieDir)
// Filtere nur Bilddateien
const erlaubteExtensions = ['.jpg', '.jpeg', '.png', '.gif', '.webp', '.svg']
const bilder = dateien.filter(datei => {
const ext = path.extname(datei).toLowerCase()
return erlaubteExtensions.includes(ext)
})
// Erstelle Bildobjekte mit Titel basierend auf Dateiname
return bilder.map(filename => {
const nameWithoutExt = path.parse(filename).name
const title = nameWithoutExt
.replace(/[-_]/g, ' ')
.replace(/\b\w/g, l => l.toUpperCase())
return {
filename,
title
}
})
} catch (error) {
console.error('Fehler beim Lesen der Galerie:', error)
return []
}
})