Wikipedia:Technik/Baustellen/Shortcut-Tooltip

aus Wikipedia, der freien Enzyklopädie
Zur Navigation springen Zur Suche springen

Idee für ein neues Gadget.

Wenn auf Seite ein registrierter Shortcut dargestellt wird, soll per Tooltip die Weiterleitungsauflösung angezeigt werden können.

Lösungsansatz[Quelltext bearbeiten]

Wenn auf einer Seite

  • Spezialseite: Contributions oder Diff oder Watchlist (wegen BK)
  • Namensraum > 0 und action aus view|history|submit
  • benutzerdefiniert zusätzlich auch für ANR (gelegentlich QS-Boxen; lohnt aber weniger)

Links vorkommen mit der class="mw-redirect", dann soll für jede der URL geprüft werden:

  • Kommt ein Doppelpunkt nach /wiki/ vor?
  • Wenn ja, würde zwischen /wiki/ und Doppelpunkt eine Namensraum-Nummer interpretiert werden können?
  • Stünde die gerundet kleinere gerade Nummer des Namensraums auf der Liste der Namensräume, die als Shortcut verwendet werden, also [4, 12, 100] bei uns?
  • Wenn also ein typischer Namensraum und eine Weiterleitung, dann durchsuche Liste aller Shortcut-Zuordnungen.
  • Wenn gefunden, dann ändere den title der Verlinkung in den Seitennamen der zugeordneten Seite.

Die Liste der Zuordnungen sollte im localStorage als JSON abgelegt werden, mit den Elementen

  • expire: ISO-Datum,
  • 4: { map },
  • 12: { map },
  • 100: { map }

Dabei wäre { map } etwa für 4:

{ "A":    [4, "Administratoren"],
  "AA":   [4, "Administratoren/Anfragen"],
  ...
  "MOVE": [12, "Seite verschieben"],
  ...
}

War die ursprünglich ermittelte Namensraum-Nummer ungerade, so ist jetzt wieder 1 zur Namensraum-Nummer der Zielseite zu addieren; mit Nummer und Seitentitel kann der title gebildet werden.

Die Bildung der Zuordnung ist zwar nicht schwierig, weil das Quelltext-Format der Lua-Untermodule sich recht einfach splitten oder mit regulären Ausdrücken durchsuchen lässt, aber allein der content-Abruf kostet Zeit und Netzwerkkapazität beim Darstellen jeder Seite. Es müssen auch alle Lua-Untermodule analysiert werden, weil der Namensraum des Shortcuts nicht identisch sein muss mit dem der Zielseite; nach letzteren sind aber die Untermodule organisiert. Deshalb sollte das JSON-Objekt auf Vorrat gebildet werden, wenn das Verfallsdatum erreicht wurde oder noch nicht vorhanden ist, ggf. aufgeräumt worden war. Haltbarkeit könnte standardmäßig eine Woche, benutzerkonfiguriert eine abweichende Zahl von Tagen sein.