desktop_mkhlp.xslt Hilfe zur Dektop-Darstellung einer Bildergeschichte vorbereiten 2015-07-14 Herbert Schiemann h.schiemann@herbaer.de Ohne Bilder keine Bildergeschichte. Wie sollen die nötigen Bilder mit der Hilfe verknüpft werden? Die Hilfe-Vorlage desktop_help.xhtml.de enthält span-Elemente mit dem Attribut class = imglink, genau wie die XHTML-Darstellung einer Bildergeschichte, aber ohne Verweis auf ein Bild. Diese Transformation übernimmt die Verweise aus einer wirklichen "Bildergeschichte". Vorlagen für einfachen Text Vorlagen für Listen Relative URL der "Bildergeschichte". Die Verweise auf Bilder werden in die Hilfe übernommen. Wurzel-Element dieses Stylesheets Wurzel-Element der Bildergeschichte Die Abschnitte der Bildergeschichte
Zuordnung von Bildern zu Bildverweisen (i) Die Abschnitte der Hilfe-Vorlage und der Bildergeschichte werden nach der Anzahl der enthaltenen Bildverweise absteigend geordnet und dann paarweise zugeordnet. Nach der Zuordnung von Abschnitten kann es sein, dass Bildverweisen in der Hilfe-Vorlage kein Bild aus dem zugeordneten Abschnitt der Bildergeschichte zugeordnet ist. NH sei die Anzahl der "freien" Bildverweise in der Hilfe-Vorlage. Die freien Bildverweise bleiben in der "Dokument-Reihenfolge". (ii) Zunächst wird versucht, die freien Bildverweise mit freien Bildern aus Textabschnitten der Bildergeschichte zu belegen (Anzahl NSTF). Wenn NH <= NSTF, ist die Zuordnung klar. (iii) Andernfalls werden freie Bilder aus Bildlisten-Abschnitten der Bildergeschichte hinzugenommen, aber aus jedem Abschnitt nicht mehr als die maximale Zahl freie Bilder in einem Textabschnitt. Es seien NSMF die maximale Zahl freier Bilder in einem Textabschnitt und NSKF die Anzahl der hinzukommenden freien Bilder aus Bildlisten-Abschnitten. Wenn NH <= NSTF + NSKF, dann können alle Bildverweise zugeordnet werden. Die zuzuordnenden Bilder werden nach der Position unter den freien Bildern des Abschnitts und der Position des Abschnitts sortiert. (iv) Andernfalls werden alle Bilder der Textabschnitte hinzugenommen. Es sei NST ihre Anzahl. Wenn NH <= NSTF + NSKF + NST, erfolgt die Zuordnung: die Bilder der Textabschnitte werden nach der Position im Abschnitt und der Position des Abschnitts sortiert und an die Liste der freien Bilder angehängt. (v) Andernfalls werden alle Bilder der Bildergeschichte hinzugenommen, falls nötig, mehrfach. Ihre Anzahl sei NS. Sie werden nach der Position der Bilder im Abschnitt und der Position des Abschnitts sortiert. MI sei die kleinste nicht negative Zahl derart, dass NH <= NSTF + NSKF + MI * NS.
Listen Hier werden mehrere Listen verwendet. Die Trennzeichenfolge ist ein einfaches Leerzeichen. Die Listeneinträge haben die Form ([key]value)+[. Die verwendeten Schlüssel (key) sind: SS Position eines Abschnitts der "Bildergeschichte", beginnend mit 1. SN Anzahl der Bildverweise in einem Abschnitt der Bildergeschichte. SB Anzahl der Bildverweise vor einem Abschnitt der Bildergeschichte. ST Art eines Abschnitts der Bildergeschichte: 0 bedeutet, dass der Abschnitt Text enthält, 1 kennzeichnet reine Bilder-Listen. SI Position eines Bildes innerhalb des Abschnitts der Bildergeschichte, beginnend mit 1. IK Kennung eines Bildes: is:jpg/@src. HS Position eines Abschnitts (ht:body/ht:div) der Hilfe-Vorlage, beginnend mit 1. HN Anzahl der Bildverweise (ht:span[@class = 'imglink']) in einem Abschnitt der Hilfe-Vorlage. HB Anzahl der Bildverweise (ht:span[@class = 'imglink']) vor einem Abschnitt der Hilfe-Vorlage. HL Position eines Bildverweises (ht:span[@class = 'imglink']) in der Hilfe-Vorlage, beginnend mit 1. Z Anzahl der durch die Abschnitt-Zuordnung zugeordneten Bildverweise in einem Abschnitt: min (HN, SN) Die Listen sind: g_ls_help Die Abschnitte der Hilfe-Vorlage g_ls_story Die Abschnitte der Bildergeschichte g_ls_zipped Die zusammengeführte Liste der Abschnitte g_li_help Die Bildverweise in der Hilfe-Vorlage g_li_base Die Bilder der Bildergeschichte, die gemäß den Regeln (i) bis (iii) einem Bildverweis zugeordnet sind g_li_fill Die Bilder der Bildergeschichte, die gemäß den Regeln (iv) und (v) einem Bildverweis zugeordnet werden g_li_match Die Liste g_li_fill wird evtl. mehrfach (MI mal) an die Liste g_li_base angehängt. Die zusammengesetzte Liste wird mit der Liste g_li_help elementweise ("reißverschlussartig") zusammengefügt. Die resultierende Liste g_li_match ordnet Bildverweisen in der Hilfe-Vorlage, bezeichnet durch HL, die Kennung IK eines Bildes zu.
Diese Liste enthält einen Eintrag zu jedem Abschnitt der Bildergeschichte, der einen Bildverweis enthält. Die Schlüssel in den Listeneinträgen sind SS, SN, SB und ST. Die Einträge sind nach ST und SN (fallend) sortiert. 0 1 Diese Liste enthält zu fast jedem Abschnitt der Hilfe-Vorlage einen Eintrag mit den Schlüsseln HS, HN und HB. Die Liste ist nach HN absteigend sortiert. Ausgenommen ist nur der erste Abschnitt, der keinen Bildverweis enthält. Die zusammengeführte Liste der Abschnitte Dieser "Zipper" führt Abschnitte der Bildergeschichte und der Hilfe-Vorlage zusammen. Anzahl der "freien" Bildverweise in der Hilfe-Vorlage Listen-Akkumulator: ermittelt aus der Liste der Abschnitte der Hilfe-Vorlage die Anzahl der freien Bildverweise in der Vorlage. 0 Anzahl der freien Bilder in Textabschnitten der Bildergeschichte Listen-Akkumulator: ermittelt aus der Liste der Abschnitte der Bildergeschichte die Anzahl der freien Bilder in Textabschnitten der Bildergeschichte. 0 Die maximale Zahl freier Bilder in einem Textabschnitt Listen-Akkumulator: ermittelt aus der Liste der Abschnitte der Bildergeschichte die maximale Anzahl der freien Bilder in einem Textabschnitt der Bildergeschichte. 0 Anzahl der hinzukommenden freien Bilder in Bildlisten-Abschnitten der Bildergeschichte Listen-Akkumulator: ermittelt aus der Liste der Abschnitte der Bildergeschichte die Anzahl der hinzukommenden freien Bilder in Bildlisten-Abschnitten 0 Anzahl aller Bilder in Textabschnitten der Bildergeschichte Anzahl aller Bilder der Bildergeschichte, falls nötig. Listen-Akkumulator: ermittelt aus der Liste der Abschnitte der Bildergeschichte die Anzahl der Bilder, abhängig von param nur in Textabschnitten oder nur in Bilderlisten-Abschnitten oder in allen Abschnitten. 0 Liste aller Bildverweise in der Hilfevorlage. Jeder Listeneintrag enthält die Schlüssel HS, HB, HL und Z. Die Liste ist sortiert: Am Anfang stehen Bildverweise, denen über den Abschnitt ein Bild zugeordnet ist, dann folgen die "freien" Bildverweise sortiert nach HL 0 Vergleicher für die Sortierung der Liste g_li_help: Die durch die Abschnittszuordung zugeordneten Bildverweise stehen vor den "freien" Bildverweisen, nachrangig sind die Verweise nach der Position in der Hilfe-Vorlage geordnet. 1 0 1 0 1 -1 1 -1 0 Liste der Bilder der Bildergeschichte mit den Schlüsseln SS, ST, SI, HS, Z und IK 0 1 0 Die "Basisliste" der Bilder der Bildergeschichte: Bilder, die gemäß den Regeln (i) bis (iii) Verweisen zugeordnet sind. Der "Mapper" wählt die Bilder aus, die gemäß den Regeln (i) bis (iii) zugeordnet sind. Vergleicher für die Sortierung der Liste g_li_base: Die durch die Abschnittszuordung zugeordneten Bilder stehen vor den "freien" Bildern und sind nach dem Abschnitt der Hilfe-Vorlage und der Position im Abschnitt der Bildergeschichte sortiert. Die "freien" Bilder sind vorrangig nach der Position im Abschnitt der Bildergeschichte und nach der Position des Abschnitts der Bildergeschichte sortiert. 0 1 0 1 1 -1 1 -1 1 -1 0 1 -1 1 -1 0 Bilder, die gemäß den Regeln (iv) und (v) zugeordnet werden Dieser "Mapper" wählt aus jedem Eintrag die Felder SS, SI und IK aus, und wählt, falls möglich, nur die Bilder aus Textabschnitten aus. Vergleicher für die Sortierung der Liste g_li_fill: Die Bilder werden nach ihrer Position im Abschnitt der Bildergeschichte und der Position des Abschnitts der Bildergeschichte sortiert. 1 -1 1 -1 0 Die Zuordnungsliste. Die Einträge enthalten die Schlüssel HS, HB, HL und IK. "Zipper" fügt einen Bildverweis in der Hilfe-Vorlage und eine Bildkennung aus der Bildergeschichte zusammen. Bild-ID zu einem Bildverweis Verweis auf ein Vorschaubild in einem Abschnitt Eine Stylesheet-Anweisung wird eingefügt. href="desktop_help.xslt" type="application/xml" Elemente absteigend kopieren Im Kopf wird die Kennung der Bildergeschichte eingefügt Zu Abschnitten ohne Bildverweise werden "leere" Bildverweise eingefügt "Leere" Bildverweise zu einem Hilfe-Abschnitt ohne Bildverweis "Leerer" Bildverweis zu einem Hilfe-Abschnitt ohne Bildverweis Attribute "normalisieren" Text normalisieren