Variablen ausserhalb des Projektordners

Variablen für sämtliche Projekte können mithilfe zweier Ant-Befehle weiterhin ausserhalb des Projektverzeichnisses abgelegt werden.

Gleiche Variablen in allen Projekten

Einige Angaben und Bilder werden in sämtlichen Projekten immer in gleicher Weise genutzt. Sie werden an zentraler Stelle gepflegt und als Variablen in die Topics eingefügt. Wenn sich eine Variable ändern soll, soll das in allen Projekten geschehen.


Variablen
Abbildung 1. Grün eingerahmte Variablen

So ist die E-Mailadresse und die Internetadresse in sämtlichen Petersilienbüchern gleich. Gleichwohl möchte ich nicht auf die Möglichkeit verzichten, sie schnell auf einem Schlag ändern zu können. Speziell die E-Mail-Adresse möchte ich bei zu hohem Spamaufkommen ändern können.

Variablen erstellen im gemeinsamen Verzeichnis

Es liegt in innerhalb meines Petersilienbuch-Projektes folgende Verzeichnisstruktur vor:

includes
petersilienbuch-1
petersilienbuch-2

Im Ordner includes sind sämtliche Gemeinsamkeiten der Petersilienbücher enthalten. So auch eine keyref.ditamap mit den Angaben für E-Mail und Internetadresse. Hier das Beispiel für die oben im Bild grün eingerahmte E-Mailadresse.

<map>
<!-- Impressum-Mail -->
<keydef keys="petersell-mail-allgemein">
<topicmeta><keywords><keyword>Emailadresse@beispieldomain.de</keyword></keywords>
</topicmeta>
</keydef>
</map>

Variablen-Maps im Projektverzeichnis

In jedem Ordner für ein Petersilienbuch befindet sich eine keyref-Ditamap mit sämtlichen lokalen Variablen wie z.B. Download-URL oder Erscheinungsdatum. Und natürlich eine Haupt-Ditamap für jedes Petersilienbuch. Darin befinden sich zuoberst die Links zur globalen, danach die der lokalen keyref-ditamap-Datei.

<!-- Globale Variablen -->
<mapref href="../includes/maps/keyref.ditamap"/>
<!-- Lokale Variablen -->
<mapref href="maps/keyref-petersell-1.ditamap"/>

Topic mit eingefügter Variable

Die im Bild oben dargestellte Seite ist die Impressums-Seite eines jeden Petersilienbuchs. Um den Platzhalter für die E-Mailadress-Variable zu füllen, steht in der Concept-Datei für das Impressum folgende Notation:

<p><keyword keyref="petersell-mail-allgemein"/></p>

Ant-Befehle für die build-Datei

Bis zum Einsatz des DITA-OTs 1.5.3 funktionierte die Auslagerung der globalen Variablen ausserhalb der Projektordner fehlerfrei. Mit Einsatz des DITA-OTs 1.6.3 war dies nicht mehr möglich. Die globale, ausserhalb des Buchprojekts liegende keyref.ditamap wurde nicht verarbeitet.

[keyref] [DOTJ047I][INFO] Unable to find key definition for keyref=”petersell-mail-allgemein”, href may be used as fallback if it exists.

Bis ich bei Eliot Kimbers DITA for Practitioners [1] fündig wurde. Es fehlten 2 Zeilen in meiner build-Datei für das jeweilige Target (EPUB und PDF):

<property name= "generate.copy.outer" value="2"/>
<property name= "onlytopic.in.map" value="true"/>

Links zur Seite

  • [1] Eliot Kimber, DITA for Practitioners Vol. 1, zum Link