# LayoutTagProcessor

## Überblick

Der `LayoutTagProcessor` implementiert ein Layout-System mit übergeordneten Templates, das die Strukturierung und Wiederverwendung von Seitenlayouts ermöglicht.

## Funktionsweise

- Findet `<layout>`-Tags im DOM
- Lädt das angegebene Layout aus dem Verzeichnis `/src/Framework/View/templates/layouts/`
- Platziert den Inhalt des aktuellen Templates im `<main>`-Tag des Layouts
- Das Layout wird die übergeordnete Struktur für das gesamte Dokument

## Syntax

```html
<layout src="layout-name"></layout>
```

## Beispiel

**layout.view.php:**
```html
<!DOCTYPE html>
<html>
<head>
    <title>Meine Webseite</title>
</head>
<body>
    <header>...</header>
    <main><!-- Hier wird der Inhalt eingefügt --></main>
    <footer>...</footer>
</body>
</html>
```

**template.view.php:**
```html
<layout src="layout">
    <h1>Mein Inhalt</h1>
    <p>Wird in das main-Element des Layouts eingefügt</p>
</layout>
```

## Implementierung

Der Prozessor verwendet den `PathProvider` und `TemplateLoader`, um das Layout zu laden. Es sucht nach einem `<main>`-Element im Layout und ersetzt dessen Inhalt mit dem Inhalt des aktuellen Templates. Anschließend wird das gesamte DOM durch das neue Layout-DOM ersetzt.

## Besonderheiten

- Layouts müssen ein `<main>`-Element enthalten, um den Seiteninhalt aufzunehmen
- Es wird nur der erste `<layout>`-Tag im Dokument verarbeitet
- Die Layouts werden aus einem festen Verzeichnis geladen: `/src/Framework/View/templates/layouts/`

## Tipps

- Layouts können verschachtelt werden
- Dies ist ideal für die Erstellung einer konsistenten Seitenstruktur in der gesamten Anwendung
- Kombiniert gut mit dem `IncludeProcessor` für modulare Teile innerhalb des Layouts
