Plugin für die Bildunterschrift erstellen

Im Standard-DITA-OT ist die Bildunterschrift immer oberhalb des Bild mit der Ausschrift Abbildung 1 usw. Sie soll unterhalb des Bildes erscheinen.

Bildunterschrift in der Onlineausgabe

Zudem soll sie etwas kleiner als die Absatzschriftart sein und lediglich die Abkürzung Abb. 1 als Präfix ausgeben.

Den etwas kleineren Schriftgrad ereichen Sie durch folgenden Eintrag in Ihrer CSS-Datei.

.figcap {font-size: 80%;}

Nachtrag: ich konnte keine Verkleinerung erkennen. Auch allgemeinere Werte wie smaller brachten keine Änderung. Aber vielleicht haben Sie mehr Glück.

Die Abkürzung Abb. erreichen Sie durch das Editieren der Datei string-de-de.xml im Ordner DITA-OT/xsl/common.

<str name="Figure">Abb.</str>

Override-Stylesheet-Datei erstellen

Erstellen Sie analog der Datei dita2htmlImpl.xsl eine neue XSL-Datei bzw. das Gerüst einer solchen. In den Kopf und Fuß der neuen Datei, die ein Template des Toolkits außer Kraft setzten soll, müssen die Standardeinträge:

<?xml version="1.0" encoding="UTF-8" ?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:dita-ot="http://dita-ot.sourceforge.net/ns/201007/dita-ot"
xmlns:dita2html="http://dita-ot.sourceforge.net/ns/200801/dita2html"
xmlns:ditamsg="http://dita-ot.sourceforge.net/ns/200704/ditamsg"
xmlns:exsl="http://exslt.org/common"
xmlns:java="org.dita.dost.util.ImgUtils"
xmlns:url="org.dita.dost.util.URLUtils"
exclude-result-prefixes="dita-ot dita2html ditamsg exsl java url">

<!— Hier kommt Ihr angepaßtes Stylesheet hinein.—>

</xsl:stylesheet>

Zu änderndes Stylesheet in Override-Datei kopieren

Kopieren Sie aus der Datei DITA-OT\xsl\xslhtml\dita2htmlImpl.xsl das Template in die soeben neu erstellte Override-Stylesheet-Datei, welches Sie ändern möchten. Suchen Sie nach dem Template mit seinem class-Attribut topic/fig:

<xsl:template match="*[contains(@class, 'topic/fig')]"

Das Template sieht in Gänze folgendermaßen aus. Sie müssen darin den Eintrag <xsl:call-template name=”place-fig-lbl”/> nach unten verschieben: fügen Sie es vor der Zeile <xsl:value-of select=”$newline”/> wieder ein.

<xsl:template match="*[contains(@class,' topic/fig ')]" mode="fig-fmt">
  <xsl:variable name="default-fig-class">
    <xsl:apply-templates select="." mode="dita2html:get-default-fig-class"/>
  </xsl:variable>
  <xsl:variable name="flagrules">
    <xsl:call-template name="getrules"/>
  </xsl:variable>
  <xsl:call-template name="start-flags-and-rev">
  <xsl:with-param name="flagrules" select="$flagrules"/></xsl:call-template>
 <div>
   <xsl:if test="$default-fig-class!=''">
     <xsl:attribute name="class"><xsl:value-of select="$default-fig-class"/></xsl:attribute>
   </xsl:if>
   <xsl:call-template name="commonattributes">
     <xsl:with-param name="default-output-class" select="$default-fig-class"/>
   </xsl:call-template>
   <xsl:call-template name="gen-style">
     <xsl:with-param name="flagrules" select="$flagrules"></xsl:with-param>
   </xsl:call-template>
  <xsl:call-template name="setscale"/>
  <xsl:call-template name="setidaname"/>
  <!-- hier war der alte Eintrag, jetzt 3. Zeile von unten -->
  <xsl:apply-templates
  select="*[not(contains(@class,' topic/title '))][not(contains(@class,' topic/desc '))] |text()|comment()|processing-instruction()"/>
 </div>
  <xsl:call-template name="end-flags-and-rev"><xsl:with-param name="flagrules" select="$flagrules"/></xsl:call-template>
  <xsl:call-template name="place-fig-lbl"/>
<xsl:value-of select="$newline"/>
</xsl:template>

Wenn Sie das Stylesheet kopiert und geändert haben, speichern Sie die Override-Stylesheet-Datei (figcap.xsl) ab.

Plugin-Verzeichnis erstellen

  1. Erstellen Sie einen neuen Ordner im Verzeichnis DITA-OT\plugins\IhrName.html.override.figcap.
  2. Erstellen Sie im neu erstellten Ordner einen neuen Ordner \xsl.
  3. Kopieren Sie die neue Override-Stylesheet-Datei figcap.xsl in den Ordner \xsl.
  4. Erstellen Sie eine neu XML-Datei namens plugin.xml:
    <?xml version="1.0" encoding="UTF-8"?>
    <plugin id="IhrName.html.override.figcap">
    <feature extension="dita.xsl.xhtml" value="xsl/figcap.xsl" type="file"/>
    </plugin>
    

    und kopieren diese in den Ordner \plugins\IhrName.html.override.figcap.

Bitte vergessen Sie nicht, IhrName zu ersetzen. Bei mir heißen die Plugins nach meiner Domain com.petersell.html.override.usw-usf. Wie Sie die Plugins benennen, ist letztendlich egal. Wichtig ist nur der gleichlautende Name des Plugin-Verzeichnisses und dessen Erwähnung in der plugin.xml-Datei.

Plugin integrieren

Doppelklicken Sie die startcmd.bat, um ein DITA-Kommandofenster zu öffnen und führen Sie folgenden Befehl aus:

ant -f integrator.xml

Im Ergebnis sollte in der Datei DITA-OT\xsl\dita2xhtml.xsl die figcap.xsl über ein <xsl:import> referenziert werden. Natürlich sind nun die Bildunterschriften ab sofort unterhalb des Bildes.

HTML-Overrides

Bestimmt wird es nicht bei einer Änderung der HTML-Ausgabe bleiben. Ich habe dieses Plugin später umbenannt in IhrName.html.overrides. Darin fanden sämtliche geänderte Templates für die Petersilienbücher unter petersell.com ihren Platz.