<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet href="/pool/xslt_ht.xslt" type="application/xml"?>
<xsl:stylesheet
  xmlns:xsl = "http://www.w3.org/1999/XSL/Transform"
  xmlns:is = "http://herbaer.de/xmlns/20080705/imgshow"
  xmlns:d = "http://herbaer.de/xmlns/20051201/doc"
  version = "1.0"
>
<d:info xmlns="http://herbaer.de/xmlns/20051201/doc">
  <title>imgshow_montage.xslt</title>
  <subtitle>Vorschau-Leisten zu einer "Bildergeschichte" im Web</subtitle>
  <date>2013-06-13</date>
  <author>
    <personname>
      <firstname>Herbert</firstname>
      <surname>Schiemann</surname>
    </personname>
    <email>h.schiemann@herbaer.de</email>
  </author>
</d:info>

<d:para xmlns="http://herbaer.de/xmlns/20051201/doc" role="stylesheet">
Diese Transformation erstellt aus einer Bildergeschichte
(XML-Namensraum <tag class="namespace">http://herbaer.de/xmlns/20080705/imgshow</tag>)
die Befehle, die die Vorschaubilderleisten der Abschnitte
im Unterverzeichnis <filename class="directory">montage</filename>
erzeugen.
Das aktuelle Verzeichnis für die erzeugten Befehle ist das
(Web-)Verzeichnis der Bildergeschichte.
Die Vorschaubilderleisten werden aus den Bilddateien im Unterverzeichnis
<filename class="directory">images</filename> erzeugt.
</d:para>

<d:para>
Vorlagen zum Ersetzen von Text
</d:para>
<xsl:include href="/pool/txt.xslt"/>

<d:para>Der Befehl zur Bild-Montage mit den Platzhaltern ${sid} und ${images}</d:para>
<xsl:param name="p_montage_cmd">
  <xsl:text>check_outfiles montage/${sid}.jpg </xsl:text>
  <xsl:text>&amp;&amp; </xsl:text>
  <xsl:text>montage -tile 1 -geometry 96x96\&gt;+0+2 </xsl:text>
  <xsl:text>${images} montage/${sid}.jpg</xsl:text>
</xsl:param>

<d:para>
Vorlage für den relativen Pfad einer Bilddatei (Quelle) mit dem Platzhalter ${imgid}
</d:para>
<xsl:param name="p_image_file" select="'images/${imgid}.jpg'"/>

<xsl:output method="text" encoding="utf-8"/>

<xsl:template match="/">
  <xsl:apply-templates select="is:document"/>
</xsl:template>

<xsl:template match="is:document">
  <xsl:apply-templates select="is:section"/>
</xsl:template>

<d:para>
Die Vorschau-Bilder zu einem Abschnitt.
</d:para>
<xsl:template match="is:section">
  <xsl:call-template name="txt.replacelist">
    <xsl:with-param name="txt" select="$p_montage_cmd"/>
    <xsl:with-param name="list">
      <xsl:text>${sid},</xsl:text>
      <xsl:value-of select="concat ('s', count (preceding::is:section) + 1, ',')"/>
      <xsl:text>${images},</xsl:text>
      <xsl:choose>
        <xsl:when test=".//is:jpg">
          <xsl:apply-templates select=".//is:jpg"/>
        </xsl:when>
        <xsl:otherwise>
          <xsl:apply-templates select="//is:section/descendant::is:jpg[1]"/>
        </xsl:otherwise>
      </xsl:choose>
    </xsl:with-param>
  </xsl:call-template>
  <xsl:text>;
</xsl:text>
</xsl:template>

<d:para>Vorschau-Bild</d:para>
<xsl:template match="is:jpg">
  <xsl:text> </xsl:text>
  <xsl:call-template name="txt.replacelist">
    <xsl:with-param name="txt" select="$p_image_file"/>
    <xsl:with-param name="list" select="concat ('${imgid},', @src)"/>
  </xsl:call-template>
</xsl:template>

</xsl:stylesheet>
