Files
landingpage-haus-schleusingen/README.md

176 lines
4.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Landingpage Haus Schleusingen
Statische Landingpage für **Haus Schleusingen**.
Das Projekt basiert auf reinem HTML, CSS und JavaScript und wird über einen Nginx-Container ausgeliefert.
---
## Inhaltsübersicht
```
├── bilder/ # Bildressourcen
├── css/
│ └── haus-schleusingen.css # Hauptstylesheet
├── fonts/
│ └── fonts.css # Schriftart-Einbindungen
├── js/
│ ├── haus-schleusingen.js # Haupt-JavaScript
│ └── masonry.pkgd.min.js # Masonry-Layout-Bibliothek
├── haus-schleusingen.html # Einstiegsseite
├── nginx.conf # Nginx-Konfiguration
├── Dockerfile # Docker-Image (nginx:alpine)
├── eslint.config.js # ESLint-Konfiguration
├── .stylelintrc.json # Stylelint-Konfiguration
├── .htmlhintrc # HTMLHint-Konfiguration
├── .prettierrc # Prettier-Konfiguration
├── .husky/pre-commit # Husky Git-Hook (lint-staged)
└── package.json # Projekt-Metadaten & Skripte
```
---
## Voraussetzungen
| Werkzeug | Version |
| -------- | --------------- |
| Node.js | ≥ 18 |
| npm | ≥ 9 |
| Docker | optional (≥ 20) |
---
## Installation
```bash
# Repository klonen
git clone https://git.home.kies-media.de/greggy/landingpage-haus-schleusingen.git
cd landingpage-haus-schleusingen
# Abhängigkeiten installieren
npm install
```
---
## Entwicklung
### Lokaler Dateiserver
Für die Entwicklung empfiehlt sich ein lokaler Server, z. B.:
```bash
npx serve .
```
Oder mit der in VS Code integrierten _Live Server_-Erweiterung.
---
## Deployment mit Docker
Das Projekt enthält ein vorkonfiguriertes Nginx-Image.
```bash
# Image bauen
docker build -t landingpage-haus-schleusingen .
# Container starten (Website-Dateien per Volume einbinden)
docker run -d \
-p 8080:80 \
-v $(pwd):/usr/share/nginx/html:ro \
landingpage-haus-schleusingen
```
Die Seite ist danach unter **http://localhost:8080** erreichbar.
---
## Code-Qualität & Linting
Das Projekt nutzt eine Kombination aus mehreren Linting- und Formatierungswerkzeugen, um eine einheitliche Code-Qualität sicherzustellen:
| Werkzeug | Zweck | Konfigurationsdatei |
| --------------- | ---------------------------------- | ------------------- |
| **ESLint** | JavaScript-Linting | `eslint.config.js` |
| **Stylelint** | CSS-Linting | `.stylelintrc.json` |
| **HTMLHint** | HTML-Linting | `.htmlhintrc` |
| **Prettier** | Code-Formatierung | `.prettierrc` |
| **Husky** | Git Hooks (Pre-Commit) | `.husky/pre-commit` |
| **lint-staged** | Linting nur für gesteuerte Dateien | `package.json` |
### Befehle
#### Alle Linter auf einmal ausführen
```bash
npm run lint
```
Dadurch werden nacheinander `lint:html`, `lint:css` und `lint:js` ausgeführt.
#### HTML linten
```bash
npm run lint:html
```
Prüft alle `.html`-Dateien mit **HTMLHint**.
Regeln (`.htmlhintrc`):
- Tag-Paarung (`tag-pair`)
- Kleinschreibung von Tags & Attributen (`tagname-lowercase`, `attr-lowercase`)
- Doctype zuerst (`doctype-first`)
- Eindeutige IDs (`id-unique`)
- `alt`-Attribut bei Bildern (`alt-require`)
- Titel erforderlich (`title-require`)
#### CSS linten
```bash
npm run lint:css
```
Prüft alle CSS-Dateien in `css/` und `fonts/` mit **Stylelint** (basiert auf `stylelint-config-standard`).
#### JavaScript linten
```bash
npm run lint:js
```
Prüft alle `.js`-Dateien in `js/` mit **ESLint** (minimierte Dateien werden ignoriert).
Regeln (`eslint.config.js`):
- `no-unused-vars` → Warnung
- `no-undef` → Warnung
- Prettier-Integration (`prettier/prettier` → Fehler)
#### Code formatieren
```bash
npm run format
```
Formatiert alle `html`, `css`, `js`, `json` und `md`-Dateien mit **Prettier** (in-place).
#### Formatierung prüfen (ohne Änderungen)
```bash
npm run format:check
```
Prüft, ob alle Dateien den Prettier-Vorgaben entsprechen, ohne sie zu verändern.
#### Husky Pre-Commit Hook
Bei jedem `git commit` werden automatisch **lint-staged**-Prüfungen ausgeführt:
| Dateityp | Aktionen |
| -------------- | ------------------------------ |
| `*.html` | HTMLHint + Prettier |
| `*.css` | Stylelint (`--fix`) + Prettier |
| `*.js` | ESLint (`--fix`) + Prettier |
| `*.json, *.md` | Prettier |