Macro Expansion Template Attribute Language
# Macro Expansion Template Attribute Language

Die Macro Expansion Template Attribute Language (METAL, englisch für Makrosprache für attributbasierte Schablonenverarbeitung) erlaubt die Definition von Makros zur Wiederverwendung von Code in anderen Vorlagen. In der Regel wird sie im Zusammenhang mit der Template Attribute Language verwendet, ist aber nicht darauf beschränkt; siehe dort.

Die METAL entstand im Rahmen des Web-Anwendungsservers Zope; siehe auch Zope Page Templates.

## Überblick

METAL ergänzt Template Attribute Language (TAL) durch die Möglichkeit, Code wiederzuverwenden. Hierzu können Makros definiert werden, die ihrerseits sogenannte Slots haben können; bei Verwendung eines Makros kann, über die Auswertung von TAL-Variablen hinaus, der Inhalt der Slots überschrieben werden.

Wenn XML-Dokumente generiert werden sollen, ist es wichtig, den XML-Namensraum einzutragen (xmlns:tal="http://xml.zope.org/namespaces/metal").

## Attribute

Es werden folgende Attribute erkannt, denen im Normalfall das Präfix „metal:“ vorangestellt werden muss:

### define-macro

    erzeugt ein Makro

### define-slot

    erzeugt einen Slot innerhalb eines Makros

### use-macro

    verwendet ein Makro (das üblicherweise durch einen TALES-Pfadausdruck angegeben wird)

### fill-slot

    ersetzt bei Verwendung eines Makros den angegebenen Slot

### extend-macro

    seit METAL 1.1 (Zope 3): erweitert ein Makro, vergleichbar einer Objekthierarchie, durch Redefinition vorhandener Slots

## Verwendung

TAL/TALES/METAL werden von folgenden Projekten verwendet:

* Zope (Webanwendungsserver)
* Roundup (Bugtracker)
