Menü aufrufen
Toggle preferences menu
Persönliches Menü aufrufen
Nicht angemeldet
Ihre IP-Adresse wird öffentlich sichtbar sein, wenn Sie Änderungen vornehmen.

Benutzer Diskussion:Rene: Unterschied zwischen den Versionen

Diskussionsseite von Benutzer:Rene
Neuen Abschnitt erstellt Noch ein Bug im SGPack
Zeile 204: Zeile 204:


Die #recursiv-Funktion hat einen kleinen Bug, der dazu führt, dass Zeichenketten, die ohne Leerzeichen o.ä. unmittelbar nach den ignorierten Links übergeben werden, auch zu Kürzeln verarbeitet werden. Das betrifft insbesondere Fälle wie <code><nowiki>[[Olesianer]]in</nowiki></code> ({{Rechts}}{{Kürzel|Nationalität|[[Olesianer]]in|w}}), hier wird der Link ignoriert aber das <code>in</code> ungewollt als Kürzel interpretiert (und damit zu {{Kürzel|Nationalität|in|w}}). Ich wüsste keinen Fall, wo dieses Verhalten gewollt ist, deshalb sollte es reichen, als Fix dafür in SGPack_body.php Z. 735 das Regex-Suchmuster entsprechend ergänzen zu <code>(\[\[.*?\]\][a-zA-ZäöüßÄÖÜ]*|\(.*?\))</code>. --{{Benutzer:Col. o'neill/sig}} 16:58, 24. Apr. 2020 (CEST)
Die #recursiv-Funktion hat einen kleinen Bug, der dazu führt, dass Zeichenketten, die ohne Leerzeichen o.ä. unmittelbar nach den ignorierten Links übergeben werden, auch zu Kürzeln verarbeitet werden. Das betrifft insbesondere Fälle wie <code><nowiki>[[Olesianer]]in</nowiki></code> ({{Rechts}}{{Kürzel|Nationalität|[[Olesianer]]in|w}}), hier wird der Link ignoriert aber das <code>in</code> ungewollt als Kürzel interpretiert (und damit zu {{Kürzel|Nationalität|in|w}}). Ich wüsste keinen Fall, wo dieses Verhalten gewollt ist, deshalb sollte es reichen, als Fix dafür in SGPack_body.php Z. 735 das Regex-Suchmuster entsprechend ergänzen zu <code>(\[\[.*?\]\][a-zA-ZäöüßÄÖÜ]*|\(.*?\))</code>. --{{Benutzer:Col. o'neill/sig}} 16:58, 24. Apr. 2020 (CEST)
== Noch ein Bug im SGPack ==
Wieder mal die recursiv-Funktion (thx [[Benutzer:D5B|D5B]] fürs [http://stargate-wiki.de/w/index.php?title=Pat_Meyers&diff=344489&oldid=343241 entdecken], in dem speziellen Fall hat der Bug die ganze Infobox drumrum gleich mit zerhackt). Hier bin ich selbst nicht sicher, wo genau der Ursprung des Problems liegt. Irgendwie scheinen Links im übergebenen Text unter bestimmten Bedingungen zu einer falschen Aufteilung und Verarbeitung des Textes zu führen.
Aufgefallen dadurch, dass die recursiv-Erweiterung es anscheinend nicht verträgt, wenn die [[Vorlage:Ep]] im übergebenen Text ist und gleichzeitig ein Zusatzparameter existiert:
<code><nowiki>{{Kürzel|Rang|text {{Ep|SGA|2x02}} text|k}}}}</nowiki></code>
wird statt <code>text {{Ep|SGA|2x02}} text</code> zu:
{{Ep|SGA|2x02}}
{{Kasten|1={{Kürzel|Rang|text {{Ep|SGA|2x02}} text|k}}}}
Man sieht, dass hier anscheinend an den Grenzen der beiden durch die Ep-Vorlage ausgegebenen Links gesplittet wird und so fünf Fragmente entstehen, unterwegs werden aber eben auch Parameter falsch verarbeitet, das "k" taucht im Klartext auf und der erste Text ebenso wie das öffnende span-tag verschwinden komplett. Dabei ist auch egal, ob der Zusatzparameter für die Zielvorlage definiert ist oder nicht - Hauptsache es wird an der Stelle noch etwas übergeben. In diesem Beispiel ist das Problem nicht mehr zu sehen, wenn kein Zusatzparameter (oben das k) mehr übergeben wird. Ebenso kann man den durch die Ep-Vorlage erzeugten Code (<code><nowiki><span style="display:none">SGA_02x02</span>[[Stargate Atlantis|SGA]]<span> </span>2x02<span style="white-space:nowrap">[[Der Eindringling]]</span></nowiki></code>) direkt einsetzen oder, wie in D5Bs verlinktem Edit, stattdessen einen Link in eine [[Vorlage:Anmerkung|Anmerkung]] packen und das Ergebnis schaut OK aus. Zumindest sichtbar ist der Fehler hier zwar mit der Ep-Vorlage aber nicht mit z.B. der verwandten EpLink oder EpName, die ebenso die carray-Erweiterung benutzen aber nur einen statt mehrere Links erzeugen:
<code><nowiki>{{Kürzel|Rang|text {{EpLink|SGA|2x02}} text|k}}}}</nowiki></code>
wird wie erwartet zu:
{{Kasten|1={{Kürzel|Rang|text {{EpLink|SGA|2x02}} text|k}}}}
Es ist aber auch nicht auf die Kürzelvorlage beschränkt, z.B. mit [[Vorlage:Review]] manuell in #recursiv eingesetzt wird die falsche Aufteilung in fünf Fragmente nochmal deutlicher und hier ist das Problem auch ohne Zusatzparameter zu sehen:
<code><nowiki>{{#recursiv:Review|text {{Ep|SGA|2x02}} text|}}</nowiki></code>
wird statt "nur" dem kaputten Link <code>[[StargateWiki:Review#text {{Ep|SGA|2x02}} text|text {{Ep|SGA|2x02}} text]]</code> zu:
{{Kasten|1={{#recursiv:Review|text {{Ep|SGA|2x02}} text|}}}}
Auch mit anderen Zielvorlagen wird nochmal deutlicher, dass die übergebene Vorlage im Text allgemein fälschlicherweise zu oft aufgerufen wird, wenn irgendeine Vorlage mit Links in der Ausgabe übergeben wird. Auch mit einem, ohne den Umweg über eine Vorlage direkt eingefügten Link im Text wird wieder gesplittet in den Teil vor dem Link, innerhalb des Links, und nach dem Link:
<code><nowiki>{{#recursiv:--|text [[Bild:Smile.gif]] text|}}</nowiki></code>
wird statt der einfachen, einzelnen Trennlinie mangels weiteren definierten Parametern zu:
{{Kasten|1={{#recursiv:--|text [[Bild:Smile.gif]] text|}}}}
Hingegen mit einer seltenen Vorlage ohne Link in der Ausgabe:
<code><nowiki>{{#recursiv:--|text {{Kürzel/Rang|usmc-pvt}} text|}}</nowiki></code>
wird wie erwartet zu:
{{Kasten|1={{#recursiv:--|text {{Kürzel/Rang|usmc-pvt}} text|}}}}
Mit etwas Glück geht das Verhalten über Umwege auf das oben schon angesprochene Problem mit der Linkbehandlung zurück. Mit etwas Pech und mit Blick darauf, dass nicht nur überhaupt an den Links gesplittet wird sondern auch der Input allgemein falsch verarbeitet wird, einzelne Teile verschwinden usw, ist es ein zusätzliches Problem.
--{{Benutzer:Col. o'neill/sig}} 19:15, 17. Nov. 2022 (CET)