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