meta()-Methode

Die meta()-Methode erzeugt ein Element <meta>, welches alle notwendigen übergreifenden Informationen zum entsprechenden Strukturelement beinhaltet. Dies können sowohl Attribute als auch Elemente sein.

Zugriffsschutz protected
Speicher reusable.memory
Datensicht progressive

Parameter

  • language :string
  • taps :string (optional)

Variablen

  • current.xlink :xlink
  • merge :node-set

$current.xlink

Die Variable enthält stets den korrekten XLink auf die Methode unter Berücksichtigung eines eventuellen Kontextes ($taps) inklusive der aktuellen Sprache.

$merge

Die Variable kann durch Implementierung von Templates mit dem Mode "merge" befüllt werden. Verarbeitet werden Elemente der folgenden Struktur:

<target tap="true">onion://data/objects/12345</target>

Das Attribut @tap ist optional.

Die meta-Attribute und -Elemente der Ziel-Objekte, die hier aufgelistet werden, werden mit den Attributen und Elementen des aktuellen Knotens verschmolzen.

Ausgabe/Ergebnis der Methode

<meta id="id" node="{c.xlink($current.xlink, 'node')}" />

Standard

Standardmäßig werden die beiden oben genannten Attribute bezogen auf den aktuellen Knoten an das Element geschrieben. Weitere Attribute und Elemente können durch die Implementierung von Templates mit folgenden Modes projektspezifisch hinzugefügt werden:

  • attributes
  • overrideAttributes
  • element

Der Aufruf der Templates erfolgt in dieser Reihenfolge. Der Mode "overrideAttributes" ist im Standardfall nicht sonderlich interessant. Er kommt erst zum Tragen, wenn mit einem anderen Objekt gemerged werden soll.

Zusätzliche Standard-Attribute

Neben den obligatorischen beiden Attributen, die im Beispiel oben aufgeführt sind, gibt es noch weitere Standard-Attribute, die jedoch projektspezifisch befüllt werden müssen.

Attribut Typ Erklärung
show Boolean

Mit diesem Attribut wird gesteuert, ob ein Struktur-Objekt in der Strukturabstraktion enthalten ist oder nicht.

Es wird empfohlen, das Attribut nur in Ausnahmefällen auf "false" zu setzen. Ansonsten ist im Vorhinein auch keine Vorschau auf das Struktur-Objekt möglich!

href.prototype XLink

Das Attribut sollte den XLink auf die Standard-Rendering-Methode enthalten (i.d.R. ist das die Methode default()).

Als Basis für die Generierung kann die Variable $current.xlink verwendet werden, wobei nur die Methode überschrieben werden muss. Alle notwendigen zusätzlichen Parameter (wie $language und $taps) sind in der Variablen bereits enthalten.

label String

Das Attribut sollte den Wert enthalten, der standardmäßig als "Navigationsname" für dieses Struktur-Objekt verwendet werden soll.

Er kann sich entweder aus dem Namen des Objekts ableiten oder konkret im Inhalt gepflegt sein.

$merge ist befüllt

Für den Fall, dass die Variable $merge ein oder mehrere <target>-Elemente enthält, wird der Standardablauf der "Befüllung" des <meta>-Elements erweitert. Nachdem die eigenen Attribute an das <meta> geschrieben wurden (Aufruf von Templates mit dem Mode "attributes"), wird für jedes Ziel der $merge-Variablen das Ergebnis der entsprechenden meta()-Methode ermittelt. 

Nun werden die meta-Attribute der Ziel-Objekte (außer dem Attribut @node) an das <meta>-Element kopiert. Dies geschieht bei mehreren Ziel-Objekt in der Reihenfolge, in der die <target>-Elemente in der Variablen $merge aufgelistet sind. Häufiger vorkommende Attribute werden somit dahingehend überschrieben, dass das letzte Ziel-Objekt gewinnt.

Will man sicherstellen, dass bestimmte Attribute immer vom aktuellen Strukturobjekt kommen und nicht aus einem Entfernten hinzugefügt werden, sollte man diese Attribute in Templates mit dem Mode "overrideAttributes" erzeugen. Die werden nämlich nach der Zusammenführung aufgerufen.

Das Vorgehen bei den Attributen wiederholt sich nun für Elemente. Diese können allerdings nicht nochmal explizit überschrieben werden!