Filtern nach Eigenschaft

Bestimmte Ausgabeformate haben bestimmte Eigenschaften. Bilden Sie dies in Ihren Filterdateien ab.

Ausgabeformat und Eigenschaft

Viele Jahre hatte ich lediglich zwei Ditaval-Dateien: eine für Print (PDF) und eine restliche für alle Online-Formate, als da wären HTML, CHM und EPUB. Doch gerade letzteres bereitete mir immer wieder Kopfzerbrechen. Obwohl EPUB auf HTML-Dateien basiert, ist es in vielen Dingen eher wie ein Buch.

Bei Webseiten benutze ich eine zentrale Impressumsseite, d.h. ich brauche für den HTML-Output keine eigene Seite dafür. Die EPUB-Dateien benötigen jedoch immer eine eigene Impressumsseite.

Das Plugin Dita4Publishers in seiner EPUB-Generierung kommt mit dem Chunking, dem Ausgeben mehrerer Topics in einer HTML-Seite, nicht klar. Dies ist aber auch nicht schlimm. Jedoch beim HTML-Output ist bei sehr kurzen Topics das Chunking sehr wichtig.

Ich bin also dazu übergegangen, nach Eigenschaften wie Impressum oder Chunking zu filtern. Ich erstelle für jedes Ausgabeformat eine Ditaval-Datei und vermerke darin jede mögiche Eigenschaft, und ob diese möglich sein soll oder nicht.

Beispiel für die EPUB-Filterdatei

Für die EPUB-Ausgabe benötige ich eine Impressumsseite. Das Action-Attribut steht auf include.

<val>
<prop action="include" att="otherprops" val="impressum"/>
</val>

Das Chunking funktioniert im EPUB-Plugin nicht. Die topicrefs in der ditamap-Datei, die für die das chunking vorgesehen sind, werden mit dem otherprops-Attribut chunking-yes belegt. In der Ditaval-Datei wird das Action-Attribut des Wertes chunking-yes auf exclude gesetzt. Da es aber auch parallel die topicrefs ohne chunking geben muss, werden in der ditamap diese Topics mit dem otherprops-Attribut = chunking-no gekennzeichnet. In der Ditaval-Datei wird das Action-Attribut auf include gesetzt.

<val>
<prop action="exclude" att="otherprops" val="chunking-yes"/>
<prop action="include" att="otherprops" val="chunking-no"/>
</val>

Beispiel für die HTML-Filterdatei

Für die HTML-Ausgabe benötige ich keine! Impressumsseite. Das Action-Attribut steht auf exclude.

<val>
<prop action="exclude" att="otherprops" val="impressum"/>
</val>

Das Chunking wird dringend benötigt, so dass das Action-Attribut des Wertes chunking-yes auf include steht.

<val>
<prop action="include" att="otherprops" val="chunking-yes"/>
<prop action="exclude" att="otherprops" val="chunking-no"/>
</val>