# MetaManipulator

## Überblick

Der `MetaManipulator` extrahiert Metadaten aus `<meta>`-Tags und macht sie für Templates verfügbar.

## Funktionsweise

- Findet alle `<meta name="x" content="y">`-Tags im DOM
- Fügt deren Werte dem RenderContext hinzu (falls noch nicht vorhanden)
- Ermöglicht Zugriff auf Metadaten über `{{ metaName }}` in Templates

## Syntax

```html
<meta name="variableName" content="variableValue">
```

## Beispiel

**Meta-Tags im HTML:**
```html
<head>
    <meta name="description" content="Eine tolle Webseite">
    <meta name="keywords" content="php, html, templates">
</head>
```

**Zugriff im Template:**
```html
<h1>{{ title }}</h1>
<p>{{ description }}</p>
```

## Implementierung

Der Prozessor verwendet `querySelectorAll('meta[name][content]')`, um alle Meta-Tags mit den erforderlichen Attributen zu finden. Die Werte werden nur dann dem RenderContext hinzugefügt, wenn sie dort noch nicht existieren, um vorhandene Werte nicht zu überschreiben.

## Verwendungszwecke

- SEO-Metadaten im gesamten Template verfügbar machen
- Seitentitel und Beschreibungen zentral definieren
- Dynamische Meta-Tags für Social Media (OpenGraph, Twitter Cards)

## Priorität

Bereits im RenderContext vorhandene Werte haben Vorrang vor den Werten aus Meta-Tags. Dies ermöglicht das Überschreiben von Standard-Metadaten mit dynamischen Werten.

## Tipps

- Verwenden Sie diesen Prozessor, um gemeinsame Metadaten an einer zentralen Stelle zu definieren
- Kombinieren Sie ihn mit dem LayoutTagProcessor, um seitenspezifische Meta-Tags in übergeordnete Layouts zu integrieren
- Nützlich für dynamische Titel und Beschreibungen in sozialen Medien
