Wikipedia Diskussion:Lua/Modul/TemplatePar

aus Wikipedia, der freien Enzyklopädie
(Weitergeleitet von Wikipedia Diskussion:Lua/Modul/TemplatePar/en)
Letzter Kommentar: vor 1 Jahr von PerfektesChaos in Abschnitt Modul erzeugt Lintfehler
Zur Navigation springen Zur Suche springen
Vorlagenprogrammierung Diskussionen Lua Test Unterseiten
Modul Deutsch English

Modul: Dokumentation

Leerzeichen vor Fehlermeldung[Quelltext bearbeiten]

Ich fände ein Leerzeichen vor Fehlermeldungen schön. Kann das von TemplatePar so ausgegeben werden? In Vorlage:HLS hatte ich ursprünglich eingebaut, musste es aber wegen Darstellungsproblemen in Artikeln ohne Fehler (Beispiel) entfernen. --Leyo 14:32, 11. Sep. 2013 (CEST)Beantworten

Da steht ganz bewusst keines.
Der nächste möchte sich die Fehlermeldung in Klammern setzen und bejammert dann das Leerzeichen. Sie könnten auch fatal sein, wenn zuvor ein Zeilenumbruch stünde.
Aber du hat es doch sowieso an den Schluss des generierten Textes gesetzt; da brauchst du nur die ohnehin schon zahlreich vorhandenen   zu kopieren und zwischen die Elemente zu setzen. Gibt es keinen Fehler, dann wären dort nur einfache Leerzeichen am Schluss einer Zeile, die der Browser ignoriert; oder zwei einfache Leerzeichen vor der zweiten Fehlermeldung, woraus der Browser einen einfachen Abstand macht.
Für ausgefeilte Fehlerdarstellungen müsstest du eine Untervorlage kreieren und die beiden Resultate als Parameter übergeben; dann kannst du sie auch noch als Aufzählung formatieren, wenn zwei, oder sonst einen Zeilenumbruch zwischenschalten, wenn nur eine.
LG --PerfektesChaos 20:19, 11. Sep. 2013 (CEST)Beantworten

Nutzung von "Check"[Quelltext bearbeiten]

Hallo, zur Wartung der BibRecord-Datensätze habe ich die sehr nützliche Lua-Funktion "check" in Vorlage:BibRecord eingebaut. Ziel ist es das Datensätze mit leeren oder nichtvorhandenen Pflichtparametern sowie nicht unterstützten Parametern zu identifizieren. Das funktioniert soweit auch ganz gut, aber leider werden leere Pflichtparameter nicht als Fehler erkannt, beispielsweise der leere Parameter "Typ" in Vorlage:BibISBN/3792102668. Kann die Funktion leere Pflichtparameter nicht erkennen und ich müsste eine andere Funktion nutzen oder ist dies ein Fehler? --Cepheiden (Diskussion) 10:41, 23. Mär. 2014 (CET)Beantworten

Mhh, irgendwas hat sich gerade geändert (Cache?), leider funktioniert es nun zu gut und auch die Durchreichungen werden als leer erkannt (was sie ja auch sind). Das Problem ist also etwas spezielle. Kann mir jemand bei dem Problem weiterhelfen? Ich entschärfe derweilen mal die Prüfung. --Cepheiden (Diskussion) 10:50, 23. Mär. 2014 (CET)Beantworten
Cache nicht direkt; aber es hat wohl eine Weile gedauert, bis entsprechend viele Seiten neu aufgebaut wurden.
Pflichtparameter können mit der Funktion valid geprüft werden.
Wenn du nur wissen möchtest, ob alle Pflichtparameter gesetzt und mit gültigen Werten belegt sind, kannst du entsprechend viele valid-Aufrufe reinsetzen. Das würde dazu reichen.
check macht eher das Gegenteil: Es soll prüfen, ob unbekannte (falsch geschriebene) Parameter vorhanden sind; ansonsten ist es check relativ egal, wie der Wert aussieht. In einer Infobox gibt es eine Reihe von Parametern; sie dürfen erstmal auch leer sein. Es kommt also bei check nur auf die Namen an.
Abschließend bitte die {{Lua-Vorlage}} zwecks backlink reinsetzen.
Schönen Sonntag --PerfektesChaos 12:03, 23. Mär. 2014 (CET)Beantworten
Hallo, danke für die schnelle Antwort. {{Lua-Vorlage}} ist schon gesetzt. Die Frage ist aber wie prüft man bei solchen Datensätzen durchgereichte Parameter im Stil von "| Typ = {{{Typ|}}}"? Denn im Datensatz selbst sind nur die Platzhalter, die in der Regel leere Parameter zurückgeben, denn sie wedern ja höchstens bei einer Einbindung im Artikel gefüllt. Sind die Platzhalter aber nicht im Datensatz eingebaut, dann fehlt diese Erweiterungs-Funktion im Artikel. Evtl. gibt es ja auch noch elegantere Lösungen für das Durchreichen, die bisher einfach nur nicht genutzt wurden. --Cepheiden (Diskussion) 12:14, 23. Mär. 2014 (CET)Beantworten
  • | Typ = {{{Typ|}}} würde einer Logik bedürfen, mit {{#if: und so.
  • Dazu fällt mir auf, dass Wikipedia:Lua/Modul/URIutil auch noch diverse isDOI und isISBN bietet.
  • Eine ganz andere Frage mit Blick auf den Parametersatz: Warum nicht Modul:Vorlage:BibRecord mit Aufruf von Modul:Zitation? Wobei ISBNistFormalFalsch hier ebenfalls nicht logisch sein sollte.
BG --PerfektesChaos 12:28, 23. Mär. 2014 (CET)Beantworten
  • Wie soll das funktionieren? Eine solche Durchreichung eines Parameters von Vorlage:BibISBN/3792102668 an Vorlage:BibRecord ist in Vorlage:BibRecord einfach nur leer oder nicht? Wie soll man da unterscheiden?
  • Nein, es geht nicht um eine inhaltliche/formale Prüfung der Werte.
  • Gegen "Modul:Vorlage:BibRecord" spricht prinzipiell nichts. Ich habe aber auch da keine Idee, wie ich einen solchen Fall dort prüfen lassen kann. Des Weiteren sollten wir zunächst Modul:Zitation in die de-Wiki bringen, bevor weitere Projekte angegangen werden.
Grüße. --Cepheiden (Diskussion) 12:39, 23. Mär. 2014 (CET)Beantworten
  • Modul:Zitation erst fertigstellen und dann weitere angehen ist okay. Ich habe genügend offene Baustellen und gebe immer jeder mal einen halben Tag vom Wochenende. Deshalb würde ich BibRecord erstmal ruhen lassen.
  • Wie das geht? Ganz simpel, so wie immer. Das Modul:Vorlage:Literatur wäre eine Ausgangsbasis, um ganz analog das Modul:Zitation einzubinden.
  • Die Parameter sind in der konkreten Situation bereits belegt und ausgewertet. {{{Typ|}}} ist entweder wl oder eine leere Zeichenkette. Die Klammern und das Schlüsselwort Typ sind vom aufgerufenen Modul nicht zu sehen.
  • Was mit derzeitigem Stand von Lua nicht geht, ist das Durchreichen vom Durchreichen einfacher zu gestalten. Vorlage:BibISBN/3792102668 würde insofern unverändert bleiben; die Seitenzahlen lassen sich bislang nicht aus der Einbindung der Einbindung auslesen.
LG --PerfektesChaos 13:07, 23. Mär. 2014 (CET)Beantworten
Hallo, ja das ist schon alles klar. Es geht aber wie gesagt nicht um einer Prüfung ob Typ nun wl enthält oder nicht, sondern es geht darum in Vorlage:BibRecord zu prüfen ob in beispielsweise Vorlage:BibISBN/3792102668 die Durchleitung "| Typ = {{{Typ|}}}" überhaupt vorhanden ist. --Cepheiden (Diskussion) 13:48, 23. Mär. 2014 (CET)Beantworten

Witzigerweise ginge sogar das mit Lua; allerdings etwas ressourcenfressend und nur einmal jährlich als Aufräumaktion scharfgeschaltet.

  • Lua kennt die Parameter; weiß also aus dem Vorhandensein einer ISBN, dass BibRecord in der entsprechenden Vorlage:BibISBN/... stehen muss.
  • Dann kann der Quelltext dieser Seite gesucht werden.
  • Wird diese Seite nicht gefunden, ist was verkehrt. Wartungskat.
  • Wenn sie gefunden wird, kann der Quelltext geprüft werden, ob die DOI zur DOI im Seitennamen passt, die ISBN mit dem Seitennamen harmoniert. Außerdem kann der Quelltext nach beliebigen Regeln analysiert werden, etwa ob auch brav alle Durchreichungsparameter vorhanden sind. Und die Vorlage:Bib* soll keine anderen Texte enthalten außer BibRecord; die beginnenden und schließenden Klammern müssen also an Anfang und Ende stehen, und innere Einbindungen müssen in sich geschlossen sein. Geht; habe ich woanders schon gemacht.

Ich empfehle Kopieren dieses Abschnitts nach BibRecord.

Schönen Sonntag --PerfektesChaos 15:05, 23. Mär. 2014 (CET)Beantworten

Parameter noError[Quelltext bearbeiten]

Wenn ich die Doku richtig verstanden habe, soll das Einfügen von

  • | noError = 1

dazu führen, dass in den Artikeln, in die eine Vorlage fehlerhaft eingebunden ist, keine Fehlermeldung angezeigt wird. Das kann ich so nicht nachvollziehen, siehe Vorlage:PubChem und die geworfene Fehlerkat mit fehlerhaften Artikeln und dicker roter Meldung. Wo ist der Fehler?--Mabschaaf 14:14, 31. Okt. 2014 (CET)Beantworten

ping @PerfektesChaos: ?? --Mabschaaf 19:52, 6. Nov. 2014 (CET)Beantworten
Ich gucke auf zwei Aufrufe von TemplatePar; einer mit noError=1 und einer ohne. Es wäre spannend zu wissen, welcher von beiden die Fehlermeldung geworfen hat. Gefühlsmäßig würde ich meinen, ??? sei keine natürliche Zahl N>0.
Zwar beobachte ich diese Disku, aber meine Beo säuft ab und zu ab.
LG --PerfektesChaos 21:12, 6. Nov. 2014 (CET)Beantworten
Kommen sich evtl. die beiden Aufrufe in die Quere? Das Problem liegt auf alle Fälle beim Aufruf, der auf N>0 prüft, die Pflichtparameter sind korrekt.--Mabschaaf 22:15, 6. Nov. 2014 (CET)Beantworten
Da kommt sich nichts in die Quere.
Die beiden Aufrufe sind völlig unabhängig voneinander, kennen sich überhaupt nicht.
Wenn du beim ersten Aufruf N>0 keine Fehlermeldung sehen willst, müsstest du dort schon noError=1 in die Parameterliste schreiben.
Nebenbei bemerkt würde ich immer als erstes die Gesamtliste prüfen, danach die Gültigkeit einzelner Parameter; also die Reihenfolge der beiden Blöcke tauschen. Das aber nur aus philosophischen Gründen, die die Verständlichkeit der Programmierung erhöhen.
LG --PerfektesChaos 22:34, 6. Nov. 2014 (CET)Beantworten
Seufz. Danke. Du darfst mir die goldene Tomate (auf den Augen) verleihen. Boah ist das peinlich...--Mabschaaf 23:20, 6. Nov. 2014 (CET)Beantworten

Anzeige im Vorschaumodus auch für Nicht-Sichter[Quelltext bearbeiten]

Aktuell werden ja die Fehlermeldungen normalerweise mittels <span class="editoronly" style="display:none;"> vor Lesern verborgen. IMO würde es Sinn machen, die Fehlermeldungen im Vorschaumodus auch Nicht-Sichern (also allen) anzuzeigen. Ist dazu ein Konstrukt wie Vorlage:Infobox Fußballklub/TemplatePar notwendig oder geht es auch „schlanker“? --Leyo 13:24, 13. Jan. 2015 (CET)Beantworten

@Cepheiden: Gerade für vom „breiten Publikum“ benutze Vorlagen wie Vorlage:Cite journal fände ich dies sinnvoll. --Leyo 02:00, 14. Jan. 2015 (CET)Beantworten
Die künftigen vereinheitlichten Zitationsvorlagen benutzen TemplatePar nicht und können das gern so handhaben.
Dies hier (TemplatePar) ist aber eine allgemeine Bibliothek und muss allen möglichen und divergierenden Wünschen der Anwender gerecht werden.
  • Das bedeutet, dass das zwar auch hier möglich wäre, aber mit immer komplexeren Konfigurationsmöglichkeiten verbunden wäre.
  • Vorlage:LCCN macht das so, aber in Eigenregie und ist eine spezifische Vorlage, keine allgemeine Bibliothek.
LG --PerfektesChaos 10:25, 14. Jan. 2015 (CET)Beantworten
Aktuell wird TemplatePar genutzt. Es geht mir ja nicht um eine Änderung des Moduls, sondern um dessen Einbindung. Hier ergänzen könnte man allenfalls die Dokumentation. --Leyo 13:00, 14. Jan. 2015 (CET)Beantworten
Das gäbe ein Gewurstel, Gemansche und Gepansche.
Es macht keinen Gebrauch vom neuen Parameter format (nur wenn es auch einen Fehler gibt).
Der muss für den Fall preview ergänzt werden.
LG --PerfektesChaos 14:01, 14. Jan. 2015 (CET)Beantworten
Ich verstehe nicht, was du meinst, sorry. --Leyo 14:06, 14. Jan. 2015 (CET)Beantworten
Schau mal in eure einschlägigen Chemie-Vorlagen, da habe ich das bereits so eingebaut. Wer soll denn da schlank und rank wissen, ob Vorschau-Modus, wenn nicht das Modul? LG --PerfektesChaos 15:20, 14. Jan. 2015 (CET)Beantworten
Wenn ich mich auslogge und bei einem Chemie-Artikel Parameterfehler einbaue und auf „Vorschau“ klicke, wird mir kein Fehler angezeigt. Wenn ich hingegen ausgeloggt bei einem Artikel in Kategorie:Wikipedia:Vorlagen-Parameterfehler/Infobox Fußballklub auf „Vorschau“ klicke, wird mir die Fehlermeldung angezeigt.
Irgendwie reden wir aneinander vorbei … Daher frage ich mal konkret: Auf welche Weise würde deiner Ansicht nach am besten erreicht, dass Parameterfehler z.B. bei Vorlage:Cite journal in der Artikelvorschau auch IP-Benutzern angezeigt würden? --Leyo 22:20, 14. Jan. 2015 (CET)Beantworten
Weil es mit dem zukünftigen Modul-eigenen Parameter preview in Verbindung mit dem neuen format deutlich kürzer und übersichtlicher wird.
Effizient ist es im Output auch, weil die bisherigen Modelle ein ausgeblendetes Nichts in das HTML-Dokument schreiben, während mit format HTML-Code erst dann eingespeist wiird, wenn es auch was zu meckern gibt.
Da du den Wunsch erst heute geäußert hast, ist es bislang nur auf meiner Festplatte programmiert, aber noch nicht getestet, und auch noch nicht in die echte WP mit ihren 309257 Einbindungen eingespeist.
LG --PerfektesChaos 22:34, 14. Jan. 2015 (CET)Beantworten
Dein Vorschlag tönt sinnvoll bzw. sauberer. Speziell eilen tut es jedoch nicht.
Wir wollen ja die Nur-Leser nicht mit Fehlermeldungen „beglücken“. Alle anderen sollen diese zu Gesicht bekommen. --Leyo 22:46, 14. Jan. 2015 (CET)Beantworten

LG --PerfektesChaos 12:41, 17. Jan. 2015 (CET)Beantworten

Vielen Dank für die Ergänzung des Moduls. Ich habe Vorlage:Cite journal entsprechend angepasst.
Möglicherweise wäre es sinnvoll, zu diskutieren, wo die Vorschau-Fehleranzeige für unangemeldete Benutzer Sinn macht. Bei relativ einfachen „Massenvorlagen“ bestimmt, aber bei „Spezialvorlagen“ ist es vielleicht sinnvoller, dass die wenigen Fehler durch erfahrene Benutzer korrigiert werden, statt Newbies zu unangebrachten Reaktionen (löschen der Vorlage, unsinnige Parameterwerte, …) zu verleiten. Wo wäre allenfalls der Ort, um dies breiter zu diskutieren? Die Frage richtet sich auch an Mabschaaf und Cepheiden. --Leyo 15:05, 17. Jan. 2015 (CET)Beantworten

@PerfektesChaos: Ich habe gerade bemerkt, dass da noch etwas nicht ganz stimmt: Die Vorlagenfehler werden angemeldeten Benutzern nun auch nur im Vorschaumodus angezeigt. Was ist natürlich nicht die Idee … Die Fehler sollen einzig vor unangemeldeten Benutzern im Lesemodus versteckt werden. In allen anderen Fällen sollen sie angezeigt werden. --Leyo 15:42, 17. Jan. 2015 (CET)Beantworten

Warst du denn auch brav und artig und hast gemäß Vorlage:Internetquelle #Wartung die Klasse Zitationswartung sichtbar gemacht, um des Volkszornes auf Vorlage Diskussion:Internetquelle #Fehler in Vorlage? nicht zu reizen? --PerfektesChaos 16:07, 17. Jan. 2015 (CET)Beantworten
Ein Opt-in kommt nicht in Frage, jedenfalls sobald die häufigen Fehler korrigiert sind. Der Sinn ist ja gerade der, dass die Fehlerkorrekturarbeit auf viele Schultern verteilt werden kann und neue Fehler erst gar nicht gemacht werden. Benutzer, die solche Fehler nicht sehen wollen, müssen diese halt ausblenden. --Leyo 16:15, 17. Jan. 2015 (CET)Beantworten
Das ist nichts, was die Funktion dieses Moduls berührt.
Soweit ich das überblicken kann, arbeitet es ordnungsgemäß und macht genau das, was man ihm sagt.
Was die Handhabung der Zitationsvorlagen angeht, so sind jetzt erstmal die Bots an der Reihe, um den über mehr als ein halbes Jahrzehnt aufgelaufenen Schlendrian zu säubern. Bis die durch sind, ist der große Alarm nur wegen einer folgenlos überflüssigen Pipe fehl am Platz; bis vor drei Tagen gab es null Fehlerinformation, jetzt immerhin über 5000 Seiten in der Wartungskat und Infos in der Vorschau sowie für Interessierte. Das ist deutlich größere Chance zur Reparatur als in den fünf Jahren zuvor. Nachdem die Bot-fähigen Fixe weg sind, kann man schaun, was übrigbleibt.
Schönes Wochenende --PerfektesChaos 17:12, 17. Jan. 2015 (CET)Beantworten
Hallo, das sehe ich auch so TemplatePar arbeitet zuverlässig. Für Vorlagen wie Vorlage Diskussion:Internetquelle ist am Anfang die Opt-in-Variante okay. Aber wenn die typischen Fehler behoben wurden, wird das wieder entfernt und alle sehen mögliche Fehleinbindungen. --Cepheiden (Diskussion) 18:51, 17. Jan. 2015 (CET)Beantworten
Wie lässt man die Fehler im Lesemodus am besten in roter Schrift darstellen (wie es früher war)? --Leyo 14:16, 24. Jan. 2015 (CET)Beantworten
Grundsätzlich per: <span class="error">
Gründe:
  • Es geht nicht nur um rote Schrift, sondern ggf. auch um Schriftgröße, Fettschrift und deren individuelle Einstellbarkeit.
  • Außerdem lässt sich das per #iferror detektieren.
  • Vor allem ließe sich im Vorschau-Modus neben dem [Speichern] ein Warnzeichen platzieren, dass es noch unbearbeitete Fehlermeldungen auf der Seite gibt.
LG --PerfektesChaos 16:37, 24. Jan. 2015 (CET)Beantworten
Beispielsweise in Vorlage:SIKART geht's ohne dort explizit enthaltenes <span class="error"> (Beispiel). IMO ist dies die gewünschte Formatierung. Wie kriege ich das beispielsweise in Vorlage:Cite journal so hin?
|format=<span class="editoronly" style="display:none;"><span class="error">@@@</span></span>
ginge zwar, ist wohl aber ziemlich unschön. Aus Wikipedia:Lua/Modul/TemplatePar#Handhabung von Fehlern werde ich leider nicht ganz schlau. --Leyo 02:35, 25. Jan. 2015 (CET)Beantworten
  • Was im momentanen Vorlage:SIKART ausgelöst wird, ist die intern als <span class="error">@@@</span> dekorierte Meldung.
  • Wenn diese Meldung nach außen gebracht wird, ist sie undekoriert und der blanke Text, damit Anwender volle Gestaltungsfreiheit haben.
  • |format=<span class="error editoronly" style="display:none;">@@@</span>
  • Siehe Vorlage:Internetquelle für ein vergleichbares Anwendungsbeispiel.
LG --PerfektesChaos 13:22, 25. Jan. 2015 (CET)Beantworten

Commons und en-WP[Quelltext bearbeiten]

Sollte die Version bei Commons analog angepasst werden?
Spricht etwas dagegen, TemplatePar in der en-WP 1:1 von hier zu importieren und zu verwenden? Eine engl. Dokuseite existiert ja bereits. --Leyo 19:43, 2. Feb. 2015 (CET)Beantworten

Absolut nichts.
Es gibt nicht nur eine englischsprachige Doku, sondern auch die Fehlermeldungen fallen automatisch auf die Projektsprache zurück, notfalls englisch.
Das ganze System wurde 2013 von vornherein auf Interwiki-Zusammenarbeit ausgelegt.
Aus diesem Grund steht auch das Datum der letzten Änderung explizit im Code; das erleichtert die Aktualisierung gegenüber bloßer Versionsgeschichte.
Die nutzenden Systeme sollten hinsichtlich der Doku per soft redirect oder vergleichbar hierher verweisen; hier ist upstream.
LG --PerfektesChaos 22:30, 2. Feb. 2015 (CET)Beantworten
OK, Update auf Commons sowie Import in der en-WP sind erfolgt.
Bei en:Module:TemplatePar ist die Darstellung nicht wie normalerweise für Module. Auch die Dokuseite wird dort nicht eingebunden. Auch ein Nulledit nützt nichts … --Leyo 23:27, 2. Feb. 2015 (CET)Beantworten
Keine Ahnung; vielleicht hängt an der soft redirect was dran, was die Darstellung stört, oder sie ist inkomplett.
In der enWP wird aber auch mit Leidenschaft an Formaten und CSS gebastelt – ich hab die längst aufgegeben.
LG --PerfektesChaos 00:07, 3. Feb. 2015 (CET)Beantworten
Module mit und ohne Dokuseite sehen sonst anders aus. Ob es am Import liegen könnte? --Leyo 09:07, 3. Feb. 2015 (CET)Beantworten
Es wird an dem en:Template:Soft redirect liegen.
Nimm halt eine andere, freie Form des Weiterleitungstextes.
Viel Spaß --PerfektesChaos 11:05, 3. Feb. 2015 (CET)Beantworten
Hm, da ich zuerst das Modul importiert hatte und schon da die Darstellung komisch war, erscheint mir diese Theorie nicht so naheliegend. --Leyo 17:22, 3. Feb. 2015 (CET)Beantworten
Siehe phabricator:T47750. --Leyo 11:03, 4. Feb. 2015 (CET)Beantworten

Aha. Na, dass das schon beim Import seltsam aussah, war für mich nicht erkennbar.

Abhilfe (leicht möglich, da du bei beiden Admin bist):

  1. Seite löschen
  2. Neu anlegen und per C&P mit frischester Verson befüllen.
  3. Wiederherstellen der älteren Versionen; sollte unblutig gehen.
    • Du kannst mich auf die eine Version 2013-09-07T19:51:35‎ reduzieren.
    • Über die Upstream-Info unten wäre aber auch das nicht erforderlich.

Siehe: Hilfe:Artikel importieren #Bug bei codierten Seiten

Außerdem würde ich anregen, ein Pengdang zu Template:UpstreamUpdate zu kreieren und an die Doku zu hängen.

Die Upstream-Kaskade sieht im Fall dieses Moduls wie folgt aus:

  1. meine Festplatte
  2. dewiki@beta
  3. dewiki@WMF
  4. enwiki commons

Jede Codeänderung downstream wird unbemerkt und rücksichtslos von upstream überschrieben.

  • Deshalb steht da auch ein Datum im Quellcode, damit sich die Versionen auf den Stufen zuordnen lassen. Die Versionsgeschichte ist nur was für ungetestete Einzel-Wiki-Implementierungen und genügt moderner komplexer Software-Entwicklung nicht mehr.

In den betroffenen Modulen und JS-Codes hierzuwiki plane ich demnächst, diese Mitteilung zentral per Editnotice einzupflegen.

LG --PerfektesChaos 12:14, 4. Feb. 2015 (CET)Beantworten

Die Punkte 1 und 2 hatte bereits vor deinem Posting ein anderer Admin vorgenommen. Punkt 3 verstehe ich nicht so ganz.
Statt einer „chinesischen“ Pendant-Vorlage habe ich eine Hinweisbox platziert. --Leyo 01:18, 5. Feb. 2015 (CET)Beantworten
Da die Autoren ja in der VG stehen, ist sowieso alles okay; nur eine einzige Version und der Upstream-Hinweis hätten es auch getan.
A popo Upstream: Dieser linkfix brachte es nicht; es ist der dritte Punkt auf der BKS Upstream und nicht der erste.
LG --PerfektesChaos 11:54, 5. Feb. 2015 (CET)Beantworten
Das habe ich auch dann gesehen, aber IMHO muss das Lemma von Upstream (Informatik) geändert werden. In der en-WP ist die Benennung mit en:Upstream (networking) bzw. en:Upstream (software development) logischer. --Leyo 12:17, 5. Feb. 2015 (CET)Beantworten
Ja; Wiedervorlage irgendwann. LG --PerfektesChaos 12:28, 5. Feb. 2015 (CET)Beantworten
es gibt jetzt Upstream (Softwareentwicklung), falls das hilft. --Aeroid (Diskussion) 19:26, 16. Sep. 2019 (CEST)Beantworten
@Aeroid: Ah, schönen Dank, für die Info und den Artikel.
Ich werde nach und nach Gebrauch davon machen. Wir leben ja nicht mehr wie früher auf einer isolierten dewiki, sondern sind gerade mit Modulen eingebunden in eine Infrastruktur aus anderen Wikis, die uns Software zuliefern.
LG --PerfektesChaos 20:40, 16. Sep. 2019 (CEST)Beantworten

Setting check parameters adds a "0" to the result (en)[Quelltext bearbeiten]

(Verzeihung fur die Sprache. Mein Deutsch reicht nicht in diesem Fäll).

1. My basic intention, works fine: I have a template that simply returns an optional input parameter. I #invoked en:module:TemplatePar |check to detect unknown parameters used, and categorize the page. TemplatePar parameters used: |opt= pC |template= |cat=. Reconstructed outcome here:

Returns with good param 'pC=CCC' →
Result:_CCC_end-of-result.
Returns with bad parameter 'pZ=ZZZ' →
Result:_CCC_end-of-result.Error in template * unknown parameter name (Chem/sandbox): 'pZ'
So far, all is OK. The category is added.

2. Next intention, strange result: I added settings |format=0 |preview=1. Expected: Error message visible in Preview (Vorschau). Errormessage suppressed in saved page (Speichert). Page is categorized. This is currently live code in pages en:Template:Chem/sandbox, en:Template:Chem/testcases. Actual result with bad parameter (=error situation):

Result:_CCC_end-of-result.0
The final "0" does not belong there. Also, the expected "error message visible in Preview" does not appear. Any clarifying remarks? (en:User talk:DePiep) -DePiep (Diskussion) 20:05, 14. Feb. 2015 (CET)Beantworten
  • I have no explanation for the moment.
  • You understood the documentation correctly, and your sandbox programming looks pretty.
  • The features on preview and format suppression are a couple of weeks old, and the module code on enWP has already supersed.
  • I just figured out the preview=1 problem which has been damaged by a recent change. Next I will chase the zero which is a leftover from format=0 to be suppressed for the same reason.
Soon an update will be deployed; thanks for your help and sorry for confusion. Greetings --PerfektesChaos 21:06, 14. Feb. 2015 (CET)Beantworten
  • That lonesome zero has been eliminated, too.
  • I am not sure whether I should start the upstream deployment process right now, or include one further feature in the same context, which I have already in the pipeline.
  • Since the module is transluded here about 407,020 times, we avoid to change the productive code too often, causing at least server work load, risking also damaging many pages since not yet fully tested.
  • While enwiki has only 117 transclusions, you might grab a preliminary/intermediate version at http://de.wikipedia.beta.wmflabs.org/wiki/Modul:TemplatePar and continue testing and first steps (apparently all belonging to your chemistry). Or wait for official deployment.
Have a nice weekend --PerfektesChaos 23:00, 14. Feb. 2015 (CET)Beantworten
Thankx. For me no hurry at all, I can wait til Summer. Enough other things to do. btw, did you look at the (missing) preview-only showing? -DePiep (Diskussion) 23:17, 14. Feb. 2015 (CET)Beantworten
Yes, both are fixed and under testing: preview-only showing and forgotten zero from format=0. Best wishes --PerfektesChaos 23:27, 14. Feb. 2015 (CET)Beantworten
Just to note: I plan too set up this: in mainspace (ns=0), then message-in-preview + categorize; in other ns's: permanent message only, no cat. (keeping the maintenance category articles only, and keep article page clean). -DePiep (Diskussion) 23:40, 14. Feb. 2015 (CET)Beantworten
Just for your info: The most recent http://de.wikipedia.beta.wmflabs.org/wiki/Modul:TemplatePar will support exactly this. Provide |errNS=0 and categories will be thrown at ns=0 only. Messaging is not affected by errNS – the feature is just 10 minutes old and will be documented officially after deployment (space separated list of namespace numbers to limit cats). Enjoy --PerfektesChaos 23:53, 14. Feb. 2015 (CET)Beantworten
Brilliant idea you had, especially since I had that one too ;-). (I was testing |cat={{main other|...|...}} ns detector; seemed to work but glad I won't need that). Pulling it out of development would give me a headache, I prefer waiting for the live version. I said Summer, could be Summer 2016 too -- take your pace not mine. Have a nice edit. -DePiep (Diskussion) 09:25, 15. Feb. 2015 (CET)Beantworten
  • I have a "bug"-like experience with the current version. This is my description (ns=10 is template space, so we can test):
"When I have |errNS=10 set, parameter options |format=...|preview=... are under that setting too". (That is, they do not effect outside of errNS=10. Or, in other words, |errNS=10 blocks parameters |format=...|preview=... too, not just the |cat adding).
Before I build a bug report (I can do that quite easily), please say if that is needed at all. This is relevant, as far: I would like to have ns=0 function differently from ns=/=0 (now not possible). However, this is minor. I will apply current version anyway. -DePiep (Diskussion) 23:29, 27. Feb. 2015 (CET)Beantworten
Your observation is correct.
I changed course during introduction of this feature, and did not notify myself. Sorry for confusion, but I fooled me, too.
In the implementation I dropped the entire error handling for other namespaces and deployed. When I updated the documentation some weeks later to announce the new capabilities, it was obvious to me that just the category should be suppressed. In other namespaces, users still might be informed about the error or just illustrate an example, but without receiving central maintenance.
These details are not subject to the test suite yet, since that one is located in project namespace only and deals with more trivial situations. However, I will add an example showing an error message but refusing to categorize; that needs creation of two more dummy templates.
Next release will behave as described in current documentation. Since you are the only reader of the english version, we might abandon to insert a temporary note.
As the code is transcluded in several 100,000 pages, and millions on Commons, distribution of the next revision might wait for a more drastic change.
Have a nice weekend --PerfektesChaos 12:30, 28. Feb. 2015 (CET)Beantworten
All clear to me. I can handle each version, anytime. Go as you think good. -DePiep (Diskussion) 16:04, 28. Feb. 2015 (CET)Beantworten

Documentation clarifications[Quelltext bearbeiten]

These are some stumble pebbles I met when using the English documentation page here. I suggest not to discuss them here, but -- when my note is helpful indeed -- to simply improve the page.

  • In #Common_error_handling: "Lua modules yield false if no problem detected, else error message". This is placed as a lost remark at the end. I don't know how to use this, or in which situation it matters. I guess it is not meant for someone like me who just uses an #invoke: setup (and no futher internal Lua shortcuts)?
  • The value of |template= is only used as a textual output, not a page call. So one is free to write, including: "|template=The template [[:Template Information|Information]]". This might be noted.
  • In |cat=, the pagename should not include namespace (":category:").
  • In this example, I had changed the order of params and that resulted in an error (sequence can matter in Lua, but does not in markup template). "|template=" can not be this early:
{{#invoke:TemplatePar
         |check
         |template=Information
         |all= description= source= author=
         |opt= date= permission= other_versions= other_fields=
         }}

-DePiep (Diskussion) 14:51, 23. Feb. 2015 (CET)Beantworten

(I got the impression in my modules that Lua functions only "know" the functions above them in the module page, not those below). -DePiep (Diskussion) 23:06, 23. Feb. 2015 (CET)Beantworten
Several good news:
  • Documentation extent: There are two levels of documentation, one for template programmers and one for Lua programmers.
  • Your notes on documentation – thank you for feedbck.
    • The “lost remark” vanished now; has been addressed to Lua programmers.
    • The value of template might show up in category as well, if you place @@@ into cat.
    • Well, it reads: “Title of a maintenance category.” A page name would be category:KitKat but the page title is KitKat only. However, I added a remark.
    • Strange behaviour when changing parameter sequence: I am astonished, and will need a couple of days to investigate. I need to reproduce it and have no explanation yet.
  • Unknown functions in Lua: Yes, your observation is correct.
    • Definitions of variables and functions are unknown until processed in file.
    • However, you might declare the symbols within the first lines:
      local funny, furious
      and fill them with executable code later:
      funny = function () and so on; they remember the former declaration.
      This avoids a deadlock if funny may call furious and furious also calls funny.
      Note that the major execution entry points should be anchored in the last lines of the page, looking upwards and knowing all execution code.
Regards --PerfektesChaos 00:08, 24. Feb. 2015 (CET)Beantworten
wrt presumed bug “parameter sequence”:
  • I tried to reproduce your example, but it was always fine.
  • From the code I got no clue whether sequence should matter. As a first step, all parameter names are checked, then workflow continues with the parameter set. Ordering has no influence on the set.
    • Yes, Lua might guess the parameter sequence in transclusion, but there is no warranty.
  • Perhaps there was another mistake. What is the exact text of the error message?
Best wishes --PerfektesChaos 00:43, 25. Feb. 2015 (CET)Beantworten
About parameter sequence: I can not reproduce my bug report. I propose we consider this non-existing (no bug to solve). Sorry having taken your time with this. -DePiep (Diskussion) 22:40, 26. Feb. 2015 (CET)Beantworten
  • I get this (double) message in red, I triggered by a bad paramater:
"Error in template * unknown parameter name (Template:Infobox_drug/sandbox): 'no_param_name'"
I don't see the use of the first half. A repetition? -DePiep (Diskussion) 00:13, 28. Feb. 2015 (CET)Beantworten
The recurrent part “Error in template *” is dedicated to innocent readers of the page.
Imagine a change in template programming, causing error messages triggered on thousands of pages now.
Especially if no template= is given or does not tell much, the reader will find somewhere in the text some red unknown parameter name 'no_param_name' – even if template name is provided, the reason might be buried some levels below if that template is transcluded by another template.
Greetings --PerfektesChaos 13:00, 28. Feb. 2015 (CET)Beantworten

In nested templates[Quelltext bearbeiten]

Found a nice new issue ;-)

Before we spend time on this, I say we take this approach: pre-consider who researches what. For example, I can produce a thorough bug-report with demos, but only when that is useful.

  • The situation. It is live now, so we test in en:mainspace.
en:Template:Chembox Pharmacology has TemplatePar.
en:Category:Chemical articles with unknown parameter in Chembox is the error-cat (now 17 P).
Used in demo page: en:Chlorquinaldol
So far, so good. There is this special situation:
{{chembox
| IUPACName = 5,7-dichloro-2-methyl-8-quinolinol
| Section1 = {{Chembox Identifiers
| CASNo = 72-80-0
  }}
| Section2 = {{Chembox Pharmacology<!-- this sub-template is TemplatePar tested -->
| ProteinBound = 
| Bioavail = 
| Excretion = 
| AdminRoutes = 
| Dependency_liability = 
| nonsens_param_this = 
  }}
}}

Note the |Section2= {{...}} construct. It happens that:

  • a A true param error in the subtemplate is not noticed (not categorised) by TemplatePar.
  • b An all-empty subtemplate (as the code exampla here is) produces a "1" error message by TemplatePar.
How shall we proceed? Have a nice weekend. -DePiep (Diskussion) 02:50, 1. Mär. 2015 (CET)Beantworten
Just for my understanding: In which namespace are you running your nonsens_param_this example?
Regarding general techniques:
  • TemplatePar takes the parameter values from the closest transclusion environment of the invocation.
  • The regularly expanded text is enriched by error messages and [[Category:]] source code.
  • A sub-template needs to be transcluded in the active part.
    • In your example, {{{Section2|}}} is an active and unconditional transclusion in Template:Chembox.
WRT “all-empty”:
  • Where can I read the example?
  • A superfluous | triggers an unexpected 1= message. This might indicate a syntax problem, unescaped part of an URL or forgotten equal sign.
Thanks for your feedback --PerfektesChaos 10:08, 1. Mär. 2015 (CET)Beantworten
Will do some testing first. -DePiep (Diskussion) 17:55, 2. Mär. 2015 (CET)Beantworten
  • All works fine now. One experience: the messaging does not seem to work right away, esp in testing. For example create a new article page (with a bad parameter) and preview: message did not show. However, when deployed after some time messaging and categorizing works as expected.
Consider answered. -DePiep (Diskussion) 21:03, 2. Mär. 2015 (CET)Beantworten
  • Regarding messaging and preview: Sounds strange.
  • With categorizing, this is a well known issue. At the bottom of the page, the category should appear immediately, also in preview mode (classic source code editing). However, it might take hours and sometimes days until the page list of the category has been refreshed.
You’re welcome --PerfektesChaos 22:36, 2. Mär. 2015 (CET)Beantworten
re categorization: indeed. It's not about pages appearing in a category (can take days). It is previewing a page, to check a (very recent) TemplatePar addition. I will not research this further, because it is already complicated for other topics (eg getting the parameter list right for 500 params). With a bit of tweaking, it's working well. FYI, applied in en:Template:Chembox, en:Template:Infobox drug (planned). That's 10k+6k transc's. -DePiep (Diskussion) 08:19, 4. Mär. 2015 (CET)Beantworten

To catch all possible parameters appearing in a template, you might use tools generating TemplateData. They evaluate the source code and prepare a list of all parameters found. Several are in use at enWP, and there is at least jsonXMLutils which provides a plain list of parameters first, while both en:Module:TemplateDataGenerator and en:User:Salix alba/TDSkell create TemplateData format only (which might be interesting, too). Enjoy --PerfektesChaos 10:44, 4. Mär. 2015 (CET)Beantworten

Kategorie:Wikipedia:Seite mit mehrfachem Parameter in Vorlageneinbindung[Quelltext bearbeiten]

Commons category equivalent to Kategorie:Wikipedia:Seite mit mehrfachem Parameter in Vorlageneinbindung is c:Category:Pages using duplicate arguments in template calls with frequently flactuating number of pages ranging from 30k to 80k. Some of those duplicate parameters are very hard to find especially if issues are with some sub-templates or if multiple alternative parameter names link to the same template parameter. Tool that adds the category does not display which parameter or template causes the issue (although that might be fixed in the future), but I was thinking that may be I can use Module:TemplatePar for that task since most Commons infobox templates use Module:TemplatePar. Is there a way to do that with the current version of the module? And if not than can we add it? --Jarekt (Diskussion) 17:41, 23. Mär. 2015 (CET)Beantworten


  • Bad news first:
    • No module nor template transclusion is able to detect this problem.
    • The parameter set is unique; the last assignment of a parameter value overwrites any previous definition for the same name.
    • That is the reason why this category has been introduced; transclusions cannot detect this problem.
    • There is no way than analyzing the source code itself.
  • Good news. There are two tools available:
    1. http://tools_mfb.pancakeapps.com/templatepars.html waits for source text dropped into the form, telling you repeated names.
    2. WikiSyntaxTextMod will analyze the source code automatically when a page is edited.
      • Name of template(s), repeated parameter name(s) and value are reported in a message box, if detected.
      • Even more, they will be cleaned up in unambiguous cases:
        • Both values same content.
        • First value empty, second value some assignment.
      • That detailed analysis requires a specific configuration. By default it is off for performance reasons, since we cleaned some 10.000 pages with strong support from this tool, and there are only a few articles per day expected now.
      • It might be necessary to configure it for more namespaces, e.g. files, since by default it is set on main namespace.
      • It will do other syntax polishing, which shouldn’t have any visible effect.
      • It has a capability to correct misspelled template parameter names, e.g. kept local translations in {{information}} (on special request).
        • That’s already performed locally, changing any invalid genehmigung|lizenz(ierung)?|license|rights|permission into German Genehmigung.
      • It has an API, may run offline (no browser, no web) and might be driven by a bot or automatism which crawls once through all pages in category. Thus eliminating all easy cases, the remaining pages need manual editing, but could be supported by the messages of the tool as you asked.
      • The current English translation of the manual is incomplete, but I might fill some gaps where needed. The tool itself is a native English speaker, then German translation added. Rillke will read German; Leyo also.
Greetings --PerfektesChaos 10:20, 24. Mär. 2015 (CET)Beantworten
Thanks for your reply. You are right of course about templates and modules not beeing able to detect this issue. As for tools to detect the issue, they have one major draw back: it is really hard to detect which sub-template causes the issue especially if "duplicate arguments" is detected only when the subtemplate is called with some set of parameters, but not with others. So far the only way to detect it is to copy the text of the template some where and keep on deleting parts of the template until the category dissappears. Then you look for templates in the deleted text and repeat the process with those. --Jarekt (Diskussion) 13:45, 24. Mär. 2015 (CET)Beantworten
Yes, if the problem is below the carpet, you will need en:bisection method in a sandbox preview to identify the bad guy.
However, if you fix one template, you will hopefully get rid of hundrerds of entries.
The first tool mentioned above might be helpful to identify the sequence.
We made this experience with bad template programming a couple of times when we fixed them all last fall.
However, if you notice (with kind help of the tools mentioned above) that there is no error in the top page, just put them back. Forward this queue to experts, if you are not in the uncomfortable position to be the expert yourself. Perhaps add a maintenance category. Rather fast you will see from the small set of mysteriously triggered pages that they have something in common, same thematic field, a common template involved, which makes detective work much easier.
Best to start with the obvious cases where the problem is within top page, then begin to work with remainders, e.g. following alphabetical order.
Successful hunting --PerfektesChaos 15:27, 24. Mär. 2015 (CET)Beantworten
Thanks for advice, with "duplicate arguments" files our first priority was to do all the templates, creator templates and institution templates and we are close. At some point I wrote a litle modube in AutoWikiBrouwser to highlight double arguments and got a lot done quickly, now we are stuck with hard cases and highly fluctuating number of files. But it is a little of a back burner project for me as I mostly work on meta:File metadata cleanup drive. I was hoping that https://phabricator.wikimedia.org/T85352 will get fixed before I dive back into "duplicate arguments" pages. --Jarekt (Diskussion) 04:44, 25. Mär. 2015 (CET)Beantworten

In enwiki, there is a js script made by en:User:Frietjes: en:User:Frietjes/findargdups. It can report offending parameters. I don't know how to translate that into dewiki. (just found that the category ios empty for dewiki ...). -DePiep (Diskussion) 22:35, 14. Jul. 2015 (CEST)Beantworten

Thank you.
  • Since a couple of weeks there is a MediaWiki feature active, which tells you at page preview something like: “Template:XY is transcluded with more than one value for parameter YZ.”
    • Therefore external tools are less important now, but WSTM tells you the parameter value if transclusion is present within this source code. Template:XY might occur several times, or never directly.
  • We got rid of this nuisance half a year ago.
    • enwiki still has some 35,000 pages to overcome.
Greetings --PerfektesChaos 22:53, 14. Jul. 2015 (CEST)Beantworten

Not detected error[Quelltext bearbeiten]

On enwiki, I have installed the module in en:Template:Chembox Property and its parent en:Template:Chembox. It worked fine to clean up some 2000 bad temapltes. However, en:Barium carbonate was supposed to fail but was not categorised and tests do not show the warning (the error was stumbled upon manually). Is there any knowlkledge on such 'spontaneous' malfunction?

I'm doubting this: would it matter if the very last parameter in the |opt= parameter list does/doesn't have a final "="? Could whitespace (like newlines, "= " space?) matter in this list? -DePiep (Diskussion) 22:43, 14. Jul. 2015 (CEST)Beantworten

Found this: when in a subtemplate, TemplatePar does not report errors. Any option to change that? -DePiep (Diskussion) 22:51, 14. Jul. 2015 (CEST)Beantworten
Not really. Those are supposed to occur within the same source page.
TemplatePar has knowledge of the parameters only from the direct call (transclusion). No idea what is going on within a subtemplate, if not equipping the subtemplate with TemplatePar, too.
Best wishes --PerfektesChaos 22:58, 14. Jul. 2015 (CEST)Beantworten
The subtemplate is en:Template:Chembox Properties and is called like this in article page code:
{{Chembox
|image = someimage.jpg
|Section1={{Chembox Properties
 |MeltingPtC = 100
 |SomeBadParam = 987
 }}
}}
Both templates have their own complete TemplatePar call (invoke). In this situation, a bad parameter in the subtempalte is not reported at all. When I remove the outer template (as a test), the subtemplate is not sub any more, and the error is reported as expected. I have not experimented with settings (like |preview=...).
Any tests or demo's I could prepare to help this forward? -DePiep (Diskussion) 01:04, 15. Jul. 2015 (CEST)Beantworten


  • Obviously that subtemplate terminates the output with a |- indicating a new table row.
  • Anything further occurring in this line which is not well known formatting syntax is supposed to be ignored.
  • Example:
{|
! colspan=2 style="background:#f8eaba; text-align:center;" | Properties
|-
| Melting point || 100 °C (212 °F; 373 K)
|- Some important message [[Category:Wikipedia:Some important category]]
| And now something completely different.
|}
will be rendered as
Properties
Melting point 100 °C (212 °F; 373 K)
And now something completely different.
and does not trigger any category, as see.
  • Solution:
    • Put the TemplatePar business on top of the subtemplate, before anything else.
    • The subtemplate is supposed to start with a new template cell, give’em one to limit table breakage as much as possible.
    • Use the format parameter and fiddle around, like
|format=<!-- -->
!class="error"{{!}}Parameter error|
  • However, the category list is the last item in the line. Therefore I don’t know any reasonable solution which terminates the message with a new innocent table row. Some terminating garbage colspan=2 style="background:#f8eaba; text-align:center;" will go after the error announcement. The two-column table layout won’t be disturbed, since happily the colspan=2 attribute is not longer in effect. First column is the error message, second column the headline text.
  • There is a sophisticated way to avoid both garbage and error message for regular users which requires experts for templates and CSS, but still changes table appearance; Leyo might help:
|format=<!-- -->
!class="error chembox-maintenance" style="display:none"{{!}}Parameter error|
  • Since the category shall be triggered always, not only in preview, the preview=1 option cannot be used. Otherwise the table will be detoriated but for no visible reason, or never ever a category comes into effect.
  • After initial cleaning up the problem should not occur frequently any more.
  • The headline would be more precise: The error is detected, but the message has been swallowed. Do not drown the messsenger.

Much success --PerfektesChaos 10:06, 15. Jul. 2015 (CEST)Beantworten

OK, thanks. Good analysis! Will study this. -DePiep (Diskussion) 02:53, 16. Jul. 2015 (CEST)Beantworten
Should be: Good analysis!!!!!!! I'm astonished. I got some work to do. :-) -DePiep (Diskussion) 03:12, 16. Jul. 2015 (CEST)Beantworten

Error message phrasing[Quelltext bearbeiten]

The error message now has the pattern:

Fehler bei Vorlage * Parametername unbekannt (Hilfe:Lua): ‘unverhofft’

Wouldn't it be more natural to read:

Fehler bei Vorlage Hilfe:Lua, Parametername unbekannt: ‘unverhofft’

-DePiep (Diskussion) 15:15, 29. Okt. 2015 (CET)Beantworten

Well; this structure is due to limited capabilities of that module to express itself to any kind of reader in any language.
The composition is made of the following parts:
  1. Introduction
    Fehler bei Vorlage
    Error in template
    Dear reader; we are sorry but in our wonderful template system an error occurred. We apologize.
  2. Pause
    *
  3. First movement
    Parametername unbekannt
    unknown parameter name
    Which kind of error?
  4. Second movement
    (Vorlage:xyz)
    (template:xyz)
    Only for those who paid; for those authors who explained which template is used, and who paid attention to their audience.
    Otherwise: Silence.
  5. Finale
    ‘unverhofft’
    ‘unhoped-for’
I hope this made message generation a bit more clear. I am not free to juggle with building blocks since this scheme goes for all situations in any language for each invocation.
Anyway, I appreciated your suggestion --PerfektesChaos 16:00, 29. Okt. 2015 (CET)Beantworten

Export / Import[Quelltext bearbeiten]

Derzeit versuche ich, die Vorlage {{Information}} von hier zu exportieren, um sie in einer anderen MediaWiki-Installation zu importieren. Dabei stoße ich bei der Verwendung der Vorlage im anderen Wiki auf die Fehlermeldung „Skriptfehler: Ein solches Modul „TemplatePar“ ist nicht vorhanden.“ Was fehlt mir beim Export/Import? Bei Spezial:Exportieren habe ich die Seite „Wikipedia:Lua/Modul/TemplatePar“ angegeben. Was ist bei Spezial:Importieren als Namensraum bzw. unter „Als Unterseiten der folgenden Seite importieren“ anzugeben? --Hasenläufer (Diskussion) 18:24, 25. Mai 2016 (CEST)Beantworten

TemplatePar prüft nur auf korrekt benannte Parameter und ausgefüllte Pflichtparameter. Du kannst den Abschnitt
{{#invoke:TemplatePar|check
|opt= Beschreibung= Quelle= Urheber= Datum= Genehmigung= Andere Versionen= Anmerkungen=
|cat= Wikipedia:Dateiüberprüfung/Informationsmängel
|template= Vorlage:Information
}}
im Zielwiki aus der Vorlage:Information entfernen und hast kein Problem, aber auch keine Parameterprüfung mehr.--Mabschaaf 18:45, 25. Mai 2016 (CEST)Beantworten
Prima, das tut’s! Danke für die prompte Unterstützung! Auf eine Parameterprüfung kann ich verzichten. Gruß, --Hasenläufer (Diskussion) 18:57, 25. Mai 2016 (CEST)Beantworten

Performance issue reported[Quelltext bearbeiten]

See en: ... #Preview-only_template_warnings_using_REVISIONID_magic_word topic on the enwiki village pump. Don't know how much it relates to this module. -DePiep (Diskussion) 11:05, 17. Jun. 2016 (CEST)Beantworten

Answered there.
The entire issue is not really an issue. Performance problems would arrive only if there is an error, but we don’t make errors and if any they will be remedied quite soon. Therefore only a few pages may be affected temporarily, and not severely hurt.
Greetings --PerfektesChaos 13:37, 17. Jun. 2016 (CEST)Beantworten
Yes, nice to see that you (and eg Johnuniq) had it solved before it even existed. The wm developers will sleep better now. ;-) -DePiep (Diskussion) 19:57, 19. Jun. 2016 (CEST)Beantworten

errNS[Quelltext bearbeiten]

Von meiner Benutzerdisk. hierher verschoben. --Leyo 23:20, 13. Nov. 2017 (CET)Beantworten
Der Parameter "errNS" macht nicht das, was in der Dokumentation steht. Er unterdrückt nicht nur Kategorieeinträge, sondern die gesamte Ausgabe von Parameterfehlern in den angegebenen Namensräumen. --PM3 20:19, 13. Nov. 2017 (CET)Beantworten

Das ist schlicht falsch. --PerfektesChaos 10:23, 14. Nov. 2017 (CET)Beantworten
Ergibt auch vom Parametername her Sinn. Wenn nur die Kategorie ausgeblendet wird, sollte es errCatNS heißen.
--PM3 12:06, 14. Nov. 2017 (CET)Beantworten
Du hast ja auch format= nicht mehr dazu angeben.
Du wurschtelst seit Tagen eigenmächtig und absolut unabgesprochen projektweit in Dutzenden von Vorlagen rum und schreibst die Parameteranalyse mittels einer komplexen Technik um, deren Funktionsprinzip du noch nicht einmal ansatzweise begriffen hast. Jetzt sieh gefällig selbst zu, wie du mit dem Trümmerhaufen klarkommst, den du angerichtet hast.
Im Übrigen hast du bei deiner privaten Wurschtelaktion mit Sicherheit keine Stunden abgewartet, ob in den Kategorien Eintragungen der Projekt- oder Benutzerseiten aus dem Altbestand erscheinen, bei denen es deine Pflicht gewesen wäre, sie erst zu reparieren, bevor du die Fehlermeldungen sichtbar machst. (Allerdings ist das Modul intelligenter als du und zeigt sie dann ggf. erstmal nicht: errNS.) Wenn jemand da aus Versehen in seine Vorlageneinbindung GaGaX=Blubb reingeschrieben hatte, dann ist das zwar nicht sinnvoll, aber stört die Darstellung auf deser Seite nicht. Das hat denjenigen, der die Vorlage eingebunden hatte, auch nicht gestört, und er hat genau die Darstellung erhalten, die er wollte. Wenn du jetzt daherkommst und meinst, nachträglich bei Dutzenden von Vorlagen im Altbestand an allen Stellen Fehlermeldungen unvermutet aufpoppen zu lassen, dann musst du auch für jede Vorlage einzeln zuerst alle Fehler reparieren, bevor du ohne Wissen der Seitenbetreuer in den Bestandseinbindungen deren Fehlerdarstellung ändern darfst.
EOD
--PerfektesChaos 16:35, 14. Nov. 2017 (CET)Beantworten
Der format-Paramter ist optional. Wenn er weggelassen wird, sollte die Fehlermeldung per Dokumentation mit class="error" formatiert erzeugt werden. Also der Bug liegt hier darin, dass bei Angabe von errNS der Defaultfall für format nicht funktioniert. Es hilft auch nichts, wenn ich in Benutzer:PM3/TestA1 |format=* hinzufüge – die Fehlermeldung wird weiter unterdrückt. Irgendwo ist hier ein Bug, aber wo genau das verstehe ich auch noch nicht.
Die Änderungen habe ich zunächst in einer Vorlage gemacht und dann zwei Tage abgewartet und die Wartungskategorie beobachtet. Dann habe ich eine zweite Vorlage geändert, einige Stunden abgewartet und dabei die Wartungskategorie beobachtet. Dann habe ich über zwei Tage hinweg die übrigen Vorlagen angepasst. Jede einzelne Änderung wurde vorher und nachher getestet.
PerfektesChaos, ich wundere mich sehr über deine Reaktion hier. Dass eine Anzeige von Vorlagen-Parameterfehlern bei Artikelentwürfen im BNR hilfreich ist steht außer Zweifel. Und dass Bugs korrigiert werden sollten ebenfalls. Kann es sein, dass du überlastet bist mit der Wartung diverser Vorlagen und daher pauschal genervt bist, wenn Bugreports oder Verbesserungsvorschläge kommen? Das sollte nicht sein, denn die Verbesserungern können auch Andere umsetzen; es muss nicht alles an dir hängenbleiben. --PM3 16:51, 14. Nov. 2017 (CET)Beantworten

Fehlermeldungen besser nutzbar machen[Quelltext bearbeiten]

Das Tool Benutzer:PerfektesChaos/js/remindErrorMessages funktioniert bislang nicht mit der Vorlage TemplatePar in der Artikelansicht. Die Fehlermeldungen werden hier wohl vollständig unterdrückt und sind nicht einblendbar. Spricht etwas dagegen, das zu ändern?

Sinnvoll fände ich auch eine permanente Einblendung der Fehlermeldungen im BNR, siehe WP:WVW#Vorlagenfehler immer anzeigen. --PM3 12:51, 14. Nov. 2017 (CET)Beantworten


Das ist dummes Zeug. Das Skript würde sehr wohl eine Fehlermeldung darstellen, wenn du geruht hättest, eine zu erzeugen. Siehe eins drüber. --PerfektesChaos 16:35, 14. Nov. 2017 (CET)Beantworten
Das ist kein "dummes Zeug" und unabhängig von dem Abschnitt eins drüber. Bei Communauté de communes Comté de Grimont, Poligny in der aktuellen Version wird z.B. per TemplatePar in der Vorschauansicht ein Fehler in den Einzelnachweisen angezeigt, der in der Artikelansicht komplett unterdrückt wird und somit auch von Benutzer:PerfektesChaos/js/remindErrorMessages nicht angezeigt wird. --PM3 16:59, 14. Nov. 2017 (CET)Beantworten

Paramterformat ID[Quelltext bearbeiten]

Das Parameterformat "ID" akzeptiert – anders als vorgesehen – auch Parameter, die mit einer Ziffer beginnen. Das liegt daran, dass das "[A-Za-z]?" zu Beginn ist optional ist; der Parameterwert wird also alternativ nur gegen den zweiten Satz "[A-Za-z_0-9]*" gematcht.

Als Regex würde ich stattdessen "^([A-Za-z][A-Za-z_0-9]*)?$" verwenden. Weiß nicht, ob das mit Lua funktioniert. --PM3 23:31, 23. Jan. 2018 (CET)Beantworten

Eigenes Pattern angeben[Quelltext bearbeiten]

Laut Dokumentation soll man für die Parameter-Validierung auch direkt ein Lua-Pattern anstatt eines der vordefinierten Schlüsselwörter angeben können. Bei Vorlage:Patent ist mir das nicht gelungen - für V-Nr wollte ich dort das Pattern "^[0-9A-Z]+$" angeben, aber das wurde weder mit noch ohne Anführungszeichen akzeptiert. Was habe ich falsch gemacht? --PM3 23:33, 23. Jan. 2018 (CET)Beantworten

Ohne es genauer analysiert zu haben, vermute ich dass der nachstehende Satz umseitig deiner Aufmerksamkeit entging:
  • Eingeschlossen in Schrägstriche, um sie von einem Schlüsselwort unterscheiden zu können und ggf. führende und schließende Leerzeichen bei Werten unbenannter Vorlagenparameter zu identifizieren.
In Schrägstriche einzuschließen ist in Cirrus, WP:JS und vielen anderen Anwendungen übliche Praxis zur Notation von RegExp.
VG --PerfektesChaos 10:23, 24. Jan. 2018 (CET)Beantworten
Genau daran lag es, danke. --PM3 15:31, 24. Jan. 2018 (CET)Beantworten

ref[Quelltext bearbeiten]

Hi, Du hattest vor einiger Zeit eine Prüfung auf valid|ref ergänzt. War es tatsächlich so intendiert, dass die Prüfung positiv endet, egal ob außerhalb der <ref>...</ref>-Klammer noch anderer Text im Parameter steht? Zumindest ist dies nicht wirklich dokumentiert.--Mabschaaf 20:20, 16. Sep. 2018 (CEST)Beantworten

Dokumentiert ist es als
  • <ref> enthalten – Citation needed
Das sagt nur, dass es mindestens einen Beleg durch <ref> gibt; es sagt nichts darüber, ob es durchaus mehrere <ref> geben könne oder sonstige Zusätze.
Das wäre zulässig im Sinne der Forderung, und mehrere Beleg-Konstrukte sind auch ohne Weiteres vorstellbar.
Außerdem soll ja der belegte Wert ein definiertes Format haben, etwa nur ein Zahlenwert oder Datum, was syntaktisch geprüft werden kann, und der abgespaltene Extraparameter für den geforderten Beleg ist dann ein Ausweg für notwendig werdende Hinweise.
Da steht „enthalten“ und nicht „ist genau“.
Ergo: Ja.
LG --PerfektesChaos 20:49, 16. Sep. 2018 (CEST)Beantworten
Sorry, my fault, überlesen.
Nachdenken könnte man aber über die Ergänzung einer alternativen Prüfung, die tatsächlich nur einen oder mehrere <ref>s zulässt - ohne jeglichen Zusatz.--Mabschaaf 22:16, 16. Sep. 2018 (CEST)Beantworten

Aliases und Pflichtangaben[Quelltext bearbeiten]

Wie muss man das bei check definieren, damit alle Angaben [aA]bruf / Abrufdatum / [zZ]ugriff akzeptiert werden ohne einen Fehler auszulösen? Also konkret wie sage ich dem all= dass sowohl Zugriff als auch Abruf als „oder“ akzeptiert werden sollen, aber nicht beide zugleich vorhanden sein sollten? --Liebe Grüße, Lómelinde Diskussion 06:54, 23. Sep. 2019 (CEST)Beantworten

  • Hier sind alle Alias-Varianten als optional zu definieren.
  • Durch eine individuelle Abfrage muss das dann selbst eine Kat auslösen.
    • {{#if: {{{neuPar|}}} | {{#if: {{{alias1|}}}{{{alias2|}}}{{{alias3|}}} | Zeter Mordio
  • Die derzeitige TemplatePar-Methodik ist schon ausgereizt und lässt keine komplexeren Syntaxkonstrukte mehr zu.
  • Du könntest eine zentrale Sammelkat Kategorie:Wikipedia:Vorlagenfehler/Parameter:Abrufdatum anlegen, für alle Vorlagen.
  • Unklar ist aber, was dann zur Beseitigung passieren soll. Welches Datum soll gelten, das neuere oder das ältere? Braucht eigentlich einen inhaltlichen Abgleich und eine komplett neue Zuweisung von heute.
    • Dussligerweise sind unsere schlauen WP:ZR und WP:WEB sehr schweigsam in der Begründung, wozu überhaupt ein Abrufdatum registriert wird. Das hat zwei Gründe: Der Inhalt der Webseite ändert sich permanent oder erwartbar, oder es ist eine wenig bekannte Domain und ein Wegrotten ist in den nächsten Jahren zu erwarten; die Archivsuche soll erleichtert werden. Daraus ergeben sich zwei Schlussfolgerungen: Wenn der Inhalt statisch ist, etwa eine elektronische Aufbereitung eines gedruckten Werks, dann ist ein Abrufdatum kaum nötig, und wenn die Website zigtausendfach verlinkt ist, dann gehen vielleicht alle Weblinks auf einen Schlag kaputt, aber kaum einzelne Seiten, und dann wär eh groß Drama. Und bei Google&Co. sind Abrufdaten sinnfrei, weil jeder Besucher etwas anderes zu sehen bekommt, je nach seinem bei Google erzeugten Profil, und nach mehreren Besuchen am selben Tag wieder was anderes.
  • Dieselbe Frage hatten wir zur IQ kürzlich schon einmal.
LG --PerfektesChaos 13:03, 23. Sep. 2019 (CEST)Beantworten
Echt habe ich das schon gefragt. Ich vergesse so schnell wieder. Gut, dann muss ich es also anders lösen. --Liebe Grüße, Lómelinde Diskussion 13:23, 23. Sep. 2019 (CEST)Beantworten

Verwendung in Modul[Quelltext bearbeiten]

Ich habe die Parameterprüfung gestern für den Kern der Chartvorlagen ({{Charttabelle}}, {{Charteintrag}} und {{Chartauswertung}}) eingebaut, funktioniert soweit ganz gut! Allerdings scheitert sie verständlicherweise an direkten Aufrufen des Moduls ohne Vorlagenumgebung wie in einigen Testfällen hier. Ich könnte für die Fälle natürlich die Fehlermeldungen unterdrücken (oder ganz auf derlei Testfälle verzichten, waren eigentlich nur damals bei allgemeiner Lua-Umstellung interessant), aber gibt es vielleicht eine einfache Lösung, TemplatePar auch Parameter aus einem invoke-Ausruf zu übergeben? Ich komm leider nicht drauf. Gruß--XanonymusX (Diskussion) 22:59, 24. Jan. 2020 (CET)Beantworten

Nein, wie du schon ganz richtig feststellst, ist das nicht die Aufgabe und kann auch nicht funktionieren.
Alle Parameter der umgebenden Vorlageneinbindung müssen die Regeln auf #insource erfüllen. Irgendeine Anwendung auf die Parameter von #insource wäre nicht von den Regeln auf #insource selbst unterscheidbar, weil dann die Regeln ihrerseits unbekannte Parameter wären.
Zu deiner Problematik verwende ich auf solch einer längeren Unterseite /Test spezifische Dummy-Vorlagen auf /Test/!f oder so ähnlich. Damit lassen sich auch sauber Fehlersituationen durchspielen, und /Test/!f ist wie die Normalvorlage, aber mit anderen Fehlerbehandlungsparametern.
LG --PerfektesChaos 12:48, 25. Jan. 2020 (CET)Beantworten
Bzw. es gibt einen versteckten undokumentierten DEMO-Modus; heißt, im Modul ist eingebaut, dass es immer sichtbare Fehlermeldungen aber keine Wartungskat geben soll, falls DEMO=1 vorgefunden wird.
LG --PerfektesChaos 12:53, 25. Jan. 2020 (CET)Beantworten

Erweiterungswunsch für "check"[Quelltext bearbeiten]

Ich halte es für wünschenswert, neben all= und opt= noch etwas wie dep= für "deprecated" Parameter zur Verfügung zu haben, mit eigens definiertem Fehlerverhalten (also beispielsweise keine fette Meldung im Artikeltext, abweichende Kat).--Mabschaaf 11:34, 1. Mär. 2020 (CET)Beantworten

Das mag so sein, dass ein solcher Wunsch besteht.
Auf absehbare Zeit gibt es jedoch keinerlei Ressourcen, an diesem Modul etwas zu verändern und dies zu erproben und danach global auf ewige Zeiten zu unterstützen.
Seit fünf Jahren plane ich immer konkreter eine Weiterentwicklung, die auf dem JSON des TemplateData aufbauen soll.
  • Dabei würden auch komplexe Anforderungen an Parameterwerte zu fordern sein.
Das hätte aber definitiv nichts mit dem Begehren zu tun, Parameter als nicht Pflicht aber doch zu gestalten.
Grundsätzlich ist es immer ein Anzeichen für ein schlechtes Design einer Programmeinheit, wäre es Wiki oder irgendeine Programmierspache, wenn ein Parameter als Pflicht- aber irgendwie doch nicht gelten soll.
  • Ein Parameter ist entweder ein Pflichtparameter, dann ist das Fehlen immer ein Fehler, oder es ist keiner, dann darf er grundsätzlich weggelassen werden, auch wenn das in manchen Situationen nicht sinnvoll ist.
  • Auch TemplateData kennt bei required nur true oder false. Ende Gelände.
  • Das ist bei jeder anderen Programmierspache genauso.
Wenn du Regeln aufstellen willst, dass unter bestimmten Bedingungen (in der 2. Auflage ist die Bandnummer erforderlich, die 1. Auflage erschien in einem Band und hatte keine Bandnummer), dann muss und kann dies außerhalb dieses Moduls durch eigene Auswertungen erfolgen. Das gilt erst recht, wenn dies auch noch abweichende Kategorien auslösen soll; eine Syntax die auch noch mit mehreren Kategorien jonglieren soll, wird völlig unbedienbar. Schon die derzeitig angebotenen Möglichkeiten für Namensraum, eine einzelne Kategorie, Benutzergruppen, Fehlermeldung sind sehr anspruchsvoll.
  • Das hat aber nichts mit der Begrifflichkeit „Pflichtparameter“ zu tun.
  • Ein Pflichtparameter ist einer, der niemals weggelassen werden darf. Gibt es auch Stuationen, wo er nicht benötigt würde, dann ist es kein Pflichtparameter. Punkt Ende.
  • Sehr oft ist es sinnvoll, dass andere Parameter bedingen, ob ein anderer eine Pflichtangabe wäre oder nicht.
    • Gebe ich die letzte Seitenzahl an, dann wird es Pflicht, dass auch die erste Seitenzahl angegeben wird. Oder ich lasse die letzte Seitenzahl oder auch alle beide weg.
    • Das sind aber interne Regeln, die nicht auf der Ebene von Pflichtparametern entschieden werden können.
    • Außerdem muss die letzte Seitenzahl größer oder gleich der ersten sein.
Ich habe eine Reihe verunglückter Vorlagenprogrammierungen gesehen, bei denen ohne Not mehrere Verwendungszwecke in dieselbe Vorlage gesteckt wurden, wodurch sie unbedienbar wurden.
  • Dabei kommt es auch regelmäßig zu genau dem, was dich anscheinend zu diesem Abschnitt geführt hat.
  • Der wildeste und undokumentierbare Kandidat, der mir spontan einfiele, sind die Salzburger Nachrichten, die eine reine Internetquelle und eine rein gedruckte Ausgabe mit möglichem Digitalisat plus einer Suchfunktion verquirlen, wodurch man noch nicht einmal in der Lage ist, alle möglichen Parameter aufzuzählen.
VG --PerfektesChaos 13:40, 1. Mär. 2020 (CET)Beantworten
Hintergrund ist Vorlage:Übersetzung. Dort hast Du und TMg 2012/2013 mal ein Update durchgeführt und zwei Parameter als "veraltet" deklariert. Was - natürlich - mindestens an dem damaligen Einbindungsbestand nichts geändert hat.
Gestern habe ich nun den check zunächst ohne die deprecated eingebaut mit der Folge, dass >4000 Seiten in der Wartungskat aufschlagen. Daraufhin habe ich die beiden als optional nachgeschoben.
Ich stimme Dir absolut zu, dass der derzeitige Zustand der Vorlage eine Katastrophe ist, weil sie letztlich mit beiden Welten, der aktuellen und der veralteten, nach wie vor umzugehen versucht. (Mal ganz abgesehen davon, dass wir sowieso inzwischen einen Versionsimport bevorzugen und folglich diese Vorlage keine Neuverwendung mehr erfahren sollte!)
Für die von mir angestrebte Migrationsphase wäre der gewünschte Parameter sinnvoll, natürlich nicht als Dauerzustand. Lösen lässt sich das natürlich auch anders, aber eben nicht komfortabel.
Solltest Du tatsächlich das Modul mal überarbeiten (auf welcher Basis auch immer) kann das ja mal auf dem Wunschzettel stehen bleiben.--Mabschaaf 14:03, 1. Mär. 2020 (CET)Beantworten

Seite mit nicht-numerischem formatnum-Argument[Quelltext bearbeiten]

Wie kann man so etwas Spezial:Diff/204811816 abfangen {{In2mm|xxx|3|1}} Kategorie:Wikipedia:Seite mit nicht-numerischem formatnum-Argument ich tue mich noch immer schwer diese Anleitung hier zu verstehen. Eigentlich muss es nur etwas wie istZahl tun, da beide Argumente numerisch sein müssen, um eine Berechnung durchführen zu können. Das wird sicher mehr als nur diese eine Vorlage betreffen. Das fragliche {{formatnum:}} ist in Vorlage:Konvert und die ist zigtausendmal eingebunden. Ich habe eben wirklich lange suchen müssen, um den Auslöser zu finden. Und es wäre natürlich an besten, wenn das zentral in Konvert abgefangen würde und nicht in jeder der einbindenden 86 Vorlagen. --Liebe Grüße, Lómelinde Diskussion 17:42, 23. Okt. 2020 (CEST)Beantworten

Bitte nicht.
Das sollen die Deppen richten, die es seit einem Jahrzehnt vermurkst haben.
Da steckt ein Riesen-Wust aus Wikidata, Metadaten-Vorlagen und Infoboxen dahinter.
Deine Anfrage würde mich auf Monate nur damit beschäftigen. Du musst nicht alles polieren, was es in zweieinhalb Millionen Artikeln und 80.000 Vorlagen an Unsinn gibt.
Ignoriere es einfach; du hast ja bisher auch keinen Schaden genommen.
Die wirkliche Ursache steckt nicht in Vorlage:Konvert sondern wiederum in denjenigen Vorlagen, die diese mit Daten versorgen, und diese Daten müssten korrigiert oder strukturiert werden.
Der fragliche Benutzer ist kürzlich verstorben und die Seite war sowieso ein Entwurf in seinem ANR. Dort darf man das.
LG --PerfektesChaos 17:17, 24. Okt. 2020 (CEST)Beantworten
Klar darf man das, aber genau aus dem Grunde war ich ja dort, weil er die Fehler nicht mehr selbst beheben kann. Service eben. --Liebe Grüße, Lómelinde Diskussion 17:42, 24. Okt. 2020 (CEST)Beantworten

Modul erzeugt Lintfehler[Quelltext bearbeiten]

Die Testseite erzeugt einen Lint-Fehler mit folgendem Code:

Erwartet: Fehler bei Vorlage * Parametername unbekannt ([[Hilfe:Lua]]): ‘4’

  • {{Testvorlage|eins|zwei|pA=Pflicht A|pB=Pflicht B|=Parameternamen vergessen}}

Ich vermute mal, dass hier die '' im eigentlichen Sinne als einfache Anführungszeichen verwendet werden sollen und der Parametername leer ist. Durch den leeren Parameternamen macht Mediawiki daraus Kursiv-Tags. --darkking3 Թ 10:42, 10. Mär. 2023 (CET)Beantworten

Danke für den Hinweis.
War hier schon mal aufgefallen.
Braucht spezifische Behandlung im Modul; wurde während der Programmierung in Lua nicht als Sonderfall abgefangen, sondern ergab sich hinterher in der Testseite zufällig (lange vor LINT).
Ist inzwischen auf meiner Festplatte im Modul umgeschrieben.
Im Lauf der kommenden Woche wohl.
VG --PerfektesChaos 17:43, 10. Mär. 2023 (CET)Beantworten