Word-Vorlagen
Vorlagen-Variablen
Jeder Befehl sieht diese Variablen.
Übersicht
| Variable | Inhalt |
|---|---|
$o | Das aktuelle Objekt. Bei Vorlagen mit einem Dokument je Objekt das Objekt, für das gerade gerendert wird; bei Vorlagen mit einem Dokument für alle das erste |
objects | Array aller geladenen Objekte, in der Filter- und Sortierreihenfolge der Ansicht |
f | Felddefinitionen, nach Feldname: f[`Gewicht`] liefert die Definition samt Konfiguration |
p | Projektdaten |
$f | Dateien des aktuellen Objekts |
files | Alle Dateien, nach Objektkennung gruppiert |
$m | Feld-Anmerkungen des aktuellen Objekts (Farbe, Kommentar, Quelle) |
$e | Die Ereignisse des aktuellen Objekts |
$l | Die Verknüpfungen des aktuellen Objekts, nach Verknüpfungsart |
$fmt | Die formatierten Feldwerte des aktuellen Objekts (Ausgabe-Formatter) |
ui | Ansichtseinstellungen des exportierenden Benutzers (nur lesen) |
objects, f, files und p sind für alle Objekte eines Exportlaufs dieselben. Auch in einer Vorlage
mit einem Dokument je Objekt ist objects vollständig: {#objects.length#} gibt dort die Zahl aller
exportierten Objekte aus.
$o: das aktuelle Objekt
{#$o[`RegNr`] ?? ``#} {#$o[`Originaltitel`] ?? ``#} {#$o.object_id#}
Felder werden über ihren Feldnamen angesprochen, in Backticks. Der Rückfall mit ?? und leerer
Zeichenkette ist Standardstil. Der Wert ist immer der Rohwert, wie er gespeichert ist: Zahlen als
Zeichenkette, Daten als JJJJ-MM-TT. Lesbare Formen liefern imask, fdate, fcheck und ffmt.
Unterfelder: beide Schreibweisen
Adress-, Objekt- und Geopositionsfelder liefern Unterfelder. Moliri stellt sie verschachtelt bereit und behält den Originalschlüssel. Beide Formen funktionieren:
{#$o[`Leihgeber`]?.address_designation ?? ``#} verschachtelt {#$o[`Leihgeber~address_designation`] ?? ``#} wörtlich
Beim verschachtelten Zugriff immer ?. statt .: fehlt das Feld im Projekt oder ist es leer, ist $o[`Leihgeber`] undefiniert. Mit . bricht der Ausdruck ab, mit ?. greift der Rückfall.
Schalterfelder
Schalterfelder liefern den gespeicherten Wert, meist 1 für Ja. Die Zeichenkette '0' gilt in JavaScript
als wahr. Eine reine Wahrheitsprüfung wie $o[`Kurierbegleitung`] ? … ist deshalb falsch. Entweder
ausdrücklich vergleichen oder fcheck nehmen, das
auch eigene Speicherwerte richtig liest:
Kurierbegleitung: {#($o[`Kurierbegleitung`] == 1) ? `Ja` : `Nein`#} Kurierbegleitung: {#fcheck($o[`Kurierbegleitung`], `Ja`, `Nein`)#}
objects: alle Objekte
{# FOR obj IN objects #} {# INS $obj[`RegNr`] ?? `` #} {# END-FOR obj #}
Sobald eine FOR-Schleife über objects läuft, entsteht ein Dokument für alle Objekte. Siehe Vorlagen-Syntax .
f: Felddefinitionen
Enthält die Definition jedes Feldes samt Konfiguration. Vor allem für imask():
{# INS imask($o[`Breite`], f[`Breite`]) #}
Damit übernimmt die Ausgabe die Zahlenmaske aus der Feldkonfiguration .
p: Projektdaten
| Eigenschaft | Inhalt |
|---|---|
p.project_id | Kennung |
p.name | Name |
p.name_en | Englischer Name |
p.start_date | Beginn |
p.end_date | Ende |
p.place | Ort |
p.status | Status |
Projekt: {# INS p.name ?? `` #} Ort: {# INS p.place ?? `` #} Zeitraum: {# INS fdate(p.start_date) #} bis {# INS fdate(p.end_date) #}
$f: Dateien des aktuellen Objekts
Entspricht files[String($o.object_id)] ?? [].
{# FOR file IN $f #} {# IF [`image`, `image_other`, `svg`].includes($file.kind) #} {# IMAGE img($file, { width: 6 }) #} {# END-IF #} {# END-FOR file #}
Eigenschaften eines Dateieintrags
| Eigenschaft | Inhalt |
|---|---|
file_id | Kennung |
name | Gespeicherter Dateiname |
text | Frei wählbarer Text, meist als sprechender Name genutzt |
extension | Endung |
kind | image · image_other · svg · pdf · audio · video · 3D · file |
keywords | Schlagworte, kommagetrennt |
description | Beschreibung |
width, height | Maße in Pixel |
modifier1 bis 3 | Markierungen, Zuschnitt, Texterkennung |
Zusätzlich trägt jeder Eintrag die Kennung als id. Deshalb können Dateiobjekte aus $f direkt an img() gehen.
Nur wenn die Vorlage $f oder files erwähnt, ruft Moliri Dateien überhaupt ab. Und: $f folgt nicht der Laufvariablen einer Objektschleife. Innerhalb von FOR obj IN objects heißt es files[$obj.object_id].
files: alle Dateien nach Objekt
JSfiles = { "10349": [ /* Dateien von Objekt 10349 */ ], "10350": [ /* Dateien von Objekt 10350 */ ] }
{# FOR obj IN objects #} {# INS $obj[`RegNr`] ?? `` #} {# FOR file IN files[$obj.object_id] #} {# IMAGE img($file, { width: 6 }) #} {# END-FOR file #} {# END-FOR obj #}
$m: Feld-Anmerkungen
JS$m = { "RegNr": { color: "red", comment: "…", source: "…" } }
Je Feld Farbmarkierung, Kommentar und Quelle. In Schleifen über objects trägt jedes Objekt seine eigenen
Anmerkungen als $obj.__m. Ausgewertet wird $m von deco() ; lesen lässt es sich auch direkt:
{#$m[`Datierung`]?.comment ?? ``#}
$e: Ereignisse des aktuellen Objekts
Ein Array der Ereignisse , in der am Objekt festgelegten Reihenfolge.
In einer Schleife über objects hat jedes Objekt seine Ereignisse als $obj.__events.
| Eigenschaft | Inhalt |
|---|---|
type, type_label | Schlüssel und Bezeichnung der Ereignisart, etwa ausstellung |
title | Titel des Ereignisses |
is_shared | Ob es ein geteiltes Ereignis ist |
actor_text, actor_label, actor_person_label | Erster Akteur: Freitext, aus den Normdaten, aus dem Adressbuch |
actor_gnd_id, actor_wikidata_id | Kennungen des ersten Akteurs |
actor_role | Rolle des ersten Akteurs |
actors | Alle Akteure, je mit actor_text, actor_label, actor_person_label, actor_gnd_id, actor_wikidata_id, actor_role, actor_attribution |
place_text | Ort als Freitext |
place_label, place_gnd_id, place_wikidata_id | Ort aus den Normdaten |
date_from, date_to | Zeitraum des Ereignisses |
date_text | Anzeigedatierung |
description | Beschreibung |
culture, period_name, method, materials_tech, attribution_qualifier | Weitere Angaben des Ereignisses, etwa bei Herstellung und Zuschreibung |
role | Rolle bzw. Katalognummer dieses Objekts in diesem Ereignis |
date_from_override, date_to_override | Zeitraum nur für dieses Objekt |
note, source, comment, color, hesitant | Angaben der Verknüpfung |
{# FOR ev IN $e #} {# IF $ev.type === `ausstellung` #} {# INS $ev.title #}{# INS combine($ev.role, { pre: ` (Kat. `, post: `)` }) #} {# END-IF #} {# END-FOR ev #}
date_from und date_to sind der Zeitraum des Ereignisses. date_from_override und date_to_override gelten nur für dieses
Objekt, etwa ein abweichender Leihzeitraum.
$l: Verknüpfungen des aktuellen Objekts
Die Verknüpfungen des Objekts mit Normdaten, Adressen, Objekten und
Dateien, nach dem Schlüssel der Verknüpfungsart: $l[`documented_in`] ist die Liste der Nachweise
„dokumentiert in“, in der Reihenfolge des Verknüpfungsbereichs. In einer Schleife über objects steht
dieselbe Liste unter $obj.__links[`object`][`documented_in`], nach Bibliothek und Art.
| Eigenschaft | Inhalt |
|---|---|
target | Das Ziel mit label, seiner Beschriftung. Bei Normdaten zusätzlich uri, gnd_id und wikidata_id. Ohne Leserecht am Ziel ist target leer |
target_id | Die Nummer des Ziels, auch ohne Leserecht |
extra | Die Zusatzfelder der Art, etwa extra.page für die Seite |
type_key, type_label | Schlüssel und Bezeichnung der Art |
library | Die Bibliothek: normdata, address, object oder file |
hesitant, source | Unsicher und Beleg der Verknüpfung |
sort_order | Position im Verknüpfungsbereich |
{# FOR d IN $l[`documented_in`] #} {# INS $d.target?.label ?? `` #}{# INS combine($d.extra?.page, { pre: `, S. ` }) #} {# END-FOR d #}
Arten, die Sie nicht lesen dürfen, fehlen in $l; eine angefragte Art ohne Verknüpfungen ergibt eine leere
Liste. Die Prüfung im Vorlagen-Editor kennt $l: eine Art, die es im Projekt nicht gibt oder die nicht
lesbar ist, steht dort unter Fehlt im Projekt, ist aber kein Fehler.
$fmt: formatierte Feldwerte
Für Felder mit einem Ausgabe-Formatter:
{#$o[`Maße`]#} roh {#$fmt[`Maße`]#} formatiert, etwa 118,5 × 64 × 21 cm {#$fmt[`Maße.Objekt`]#} ein einzelner Eintrag
$fmt gehört zum aktuellen Objekt und ist in Schleifen über objects falsch. Dort ffmt($obj, `Maße`) verwenden. Einzelheiten unter Ausgabe-Formatter in Vorlagen .
Nicht mit $f verwechseln, das sind die Dateien.
ui: Ansichtseinstellungen des Exportierenden
| Schlüssel | Bedeutung | Vorgabe |
|---|---|---|
ui.checkbox_yes, ui.checkbox_no | Darstellung von Schalterfeldern | ✅ / ❌ |
ui.date_format | Datumsformat als Muster (DD.MM.YYYY, D. MMMM YYYY …) oder false für unformatiert | DD.MM.YYYY |
ui.float_format | Zahlenformat: de-DE, en-US, de-CH, fr-FR, en-ISO | de-DE |
ui.null_replacement | Ersatztext für leere Werte | n/a |
Die Vorgaben sind die der Ansichtseinstellungen . Liegt beim Export
keine Einstellung vor, setzt Moliri Ja und Nein für Schalter ein.
Jeder ui-Zugriff macht die Vorlage benutzerabhängig: dasselbe Dokument sieht bei zwei Personen anders
aus. Für Verträge, Leihscheine und alles Archivierte gehören feste Werte in den Befehl.
Weiterlesen
- Vorlagen-Syntax : die Befehle
- Vorlagen-Funktionen : die zehn Hilfen
- Ausgabe-Formatter in Vorlagen :
ffmtund$fmt - Rezepte : kopierbare Muster