Benutzer Diskussion:PerfektesChaos/js/pageLinkHelper

Text nicht selektierbar

Bearbeiten

Moin PerfektesChaos, schön, habs mir in die global.js eingefügt.

Problem ist nur, dass (zwar nicht hier in dewiki, habe hier auch noch andere Diff-Tools) auf meta, enwiki, eswiki usw (wahrscheinlich allen anderen). der Text nicht per Maus auswählbar ist (wird von anderen HTML-Elementen unsichtbar überlagert?), und, insbesondere wenn es sich nicht um eine Unterseite handelt, sich das Element auch optisch in den Permalinktext des rechten Diffs reinragt. Viele Grüße --se4598 / ? 16:20, 18. Dez. 2014 (CET)Beantworten

auswählbar isses anscheinend in der Zwischenzeit. Die Überlagerung/reinragen habe ich noch, z.B. auf en:Special:Diff/615503804/615503846 --se4598 / ? 22:46, 2. Jan. 2015 (CET)Beantworten
Hatte ich hier auch mal in der Experimentalphase; war die Klappbox von Vector. Hatte deshalb extra die Elementstruktur solange umgebaut, bis selektierbar war. Die Box ist eingeklappt, aber trotzdem irgendwie präsent. War in der Form aber eigentlich nicht veröffentlicht??
Bei den fraglichen Wikis ist vermutlich die H1 ausgeblendet.
Das Skript setzt natürlich voraus, dass man mir irgendwo noch etwas Platz lässt, wo ich hinkann. dewiki ist relativ unverfälscht, da geht das. Wer mit privaten monobook-Skins die Seite umräumt, dem kann ich nicht helfen. Wenn obendrein Elemente absolut platziert werden und das normale float mit lauter gekünsteltem CSS-Gedöns zermurkst wird, kann ich nicht sauber andocken.
Außerdem will ich kein großes Geruckel erzeugen und möglichst diskret einfließen.
Ich habe aber extra die Selektoren angegeben zur persönlichen Schriftverkleinerung, Abstandsverringerung oder was immer, wenn jemand auf umgebastelten Wikis unterwegs ist.
Wenn du mir verrätst, wo auf der Seite bei allen Wikis der Welt in allen Skins Platz ist, dann gehe ich gern dahin, zumal ich auch auf schnarkDiff und wikEdDiff Rücksicht nehme.
LG --PerfektesChaos 23:12, 2. Jan. 2015 (CET)Beantworten
stimmt, die Hauptseiten mit ihren ausblendeten Überschriften wieder. Mein Fehler. --se4598 / ? 23:22, 2. Jan. 2015 (CET)Beantworten

1.91 und diff location-rewrite

Bearbeiten

Seit dem neuesten Update auf 1.91 wird unter anderem die URL-Zeile bei diffs umgeschrieben. Mir gefällt das garnicht, zudem läuft dann Schnark's diff-Sktript nicht mehr.

Kannst du bitte dafür wenn nötig ein Schalter einbauen? Lass dir ruhig Zeit. Viele Grüße --se4598 / ? 22:43, 2. Jan. 2015 (CET)Beantworten

Frohes Neues.
War ein ausdrücklicher Benuzerwunsch von Normalos, einen title= zu bekommen. WP:AN und so.
Schalter kommt am Wochenende; du möchtest die URL der Diffpage ohne title völlig unverändert?
Bis dann --PerfektesChaos 22:50, 2. Jan. 2015 (CET)Beantworten
den title= darfst du gerne wieder einfügen, der z.B. beim Redirect der Spezialseite verloren geht. Der ist ja auch bei Versionsvergleichen manchmal dabei. Vielleicht sogar als ersten Parameter wie bei den von Mediawiki generierten Links auch?
Hauptsache ist mir, dass das mit Benutzer:Schnark/js/diff weiter kompatible ist. (Ein bisschen nervig sieht es außerdem für mich auch schon aus, wenn die gesamte Adresszeile während des Ladens so stark umgeschrieben wird.) --se4598 / ? 23:14, 2. Jan. 2015 (CET)Beantworten
Das Format ist so gebaut, dass man auch nachträglich mit drei Klicks aus der URL ein Wikilink machen kann.
Übrigens hatte ich SchnarkDiff und wikEdDiff in der dreitägigen Testphase zu laufen, ging damit anstandslos. Seltsam. --PerfektesChaos 23:18, 2. Jan. 2015 (CET)Beantworten

Nach Drüberschlafen:

  • Bei mir wird erst SchnarkDiff gestartet, ein Weilchen später pageLinkHelper.
    • Conclusio: Standardmäßig eine halbe Sekunde Vorsprung einbauen, dann URL-Änderung auslösen.
    • SchnarkDiff und wikEdDiff erwarten das Spezialseiten-Format nicht, weil der Server zurzeit die Spezialseite in eine reguläre Seiten-URL umwandelt (und dabei den Seitentitel weglässt, s. o.).
      • Alle beide könnten theoretisch das Spezialseiten-Format erlernen, das nicht das gesuchte diff= enthält, und fieserweise auch nicht wgCanonicalSpecialPageName gesetzt hat.
      • Muss mal denken, vielleicht setze ich dafür wgCanonicalSpecialPageName auf Diff.
      • pageLinkHelper akzeptiert zukunftsrobust sowohl wgCanonicalSpecialPageName==="Diff" wie auch diff=.
  • Zurzeit denke ich in Richtung
mw.libs.pageLinkHelper = { diff: { less:     true,
                                   millisec: 0,
                                   selector: "#bodyContent" } };
  • Dabei würde less die URL-Adresszeilenaktivitäten unterdrücken, millisec hingegen im Normalfall die Verzögerung abweichend von 500 justieren und mit selector kannst du dir in der Cayenne-Wikipedia die rechte obere Ecke dorthin tun, wo der Pfeffer wächst.
  • Braucht mindestens das Wochenende zum Weiterdenken, danach Realisierung.

Schönes Wochenende ansonsten --PerfektesChaos 10:21, 3. Jan. 2015 (CET)Beantworten

Neue Version live.
  • Es wird jetzt zwar sofort die URL umgeschrieben, dabei jedoch redundante Dummy-Parameter eingefügt, mit denen andere Skripte sich initialisieren lassen. Nach 200 Millisekunden verschwinden die wieder, und es steht für Normalbenutzer ein kopierbares Link mit dem gewünschten title da, aus dem man aber später auch einfach ein Wikilink machen könnte.
  • Für fortgeschrittene Konfigurierer:
mw.libs.pageLinkHelper = { diff: { link:     true,
                                   selector: "#sonstwo" } };
  • link bewirkt, dass im Inneren des Wikilinks diejenige URL angeboten wird, die sonst in der Adresszeile stünde, welche dafür in Ruhe gelassen wird.
  • Der selector zum Selberbasteln, für verbastelte Wikis.
  • Dokumentiert wird im Januar nix; erstmal abwarten.
Enjoy --PerfektesChaos 01:11, 5. Jan. 2015 (CET)Beantworten

Config & Browser-History

Bearbeiten

Hallo PerfektesChaos, ich bin hier um ein ungewünschtes Verhalten dieses Scriptes zu unterbinden, uzw. ein völliges Blockieren der rückwertigen Browser-History (schon relativ lange, was in den allermeisten Fällen natürlich ziemlich nervig ist) uzw. konkret von der Diff-Ansicht. Des Weiteren scheint mir ein Fehler oder zumindest deutlicher Konflikt in der Doku aufgefallen. Als Mittel zur Ausblendung des Purge wird: mw.libs.pageLinkHelper = false; angegeben, allerdings sieht man nachfolgend, dass alle weiteren (optionalen) Konfigurationen auf dem selben Parameter aufbauen und somit dieser natürlich hinfällig wird!? LG User: Perhelion 12:03, 19. Jun. 2016 (CEST)Beantworten

Hallo
Auch 2× Hallo.
  • Die Form mw.libs.pageLinkHelper = false; in dem fraglichen Abschnitt ist der schlichte Holzhammer.
mw.libs.pageLinkHelper.purge = false;
  • Der Eingriff in die Browser-History ist erklärter Zweck und Nutzen des Skripts.
    • Falls das im Einzelfall zu unbeabsichtigten Effekten führt, müsstest du schon konkret erläutern, auf welchem Browser in genau welcher Situation bei exakt welcher Seite, auf die man auf präzise wie gelangt war, nun welcher spezielle unerwünschte Effekt zu beobachten wäre.
LG --PerfektesChaos 13:29, 19. Jun. 2016 (CEST)Beantworten
Du hast Recht, der Fall tritt tatsächlich sporadisch auf, ich melde mich noch mal. Ich kann leider nur noch FF benutzen, da Chrome(ium) nun (seit 1 Jahr so) eine Art Sicherheits-Update von Windows voraussetzt (wozu ich nicht mehr bereit bin, nachdem was man alles hört...). OT: Das Hallo habe ich gleich für dich an mich von mir stehen lassen. :P (es war ein Fehler einer beta-opt. in meinem signing-Script der nun behoben) LG User: Perhelion 13:44, 19. Jun. 2016 (CEST)Beantworten
Nachdem ich nun das Script nach zwei Monaten wieder eingeschaltet habe, tritt der Fehler wieder auf, eigtl. immer. Ich rufe einfach einen Diff-Link in der Beo auf, sobald ich nun irgendwohin ein Seite weiter gehe gibt es kein Zurück mehr ab dem Diff (der irgendwie ständig neu lädt). Also für mich dann unbenutzbar, da das Serven per History bei mir intus ist. LG User: Perhelion 14:51, 9. Dez. 2016 (CET)Beantworten
Du hast keinen Browser benannt.
  • Aus Erfahrung rate ich Chrome.
  • Ich habe keinen Chrome, und ich werde auch keinen installieren.
Die Technik wird standardgemäß genutzt.
  • Andere (FF) Browser bieten auch die Möglichkeit, eine Stufe in der History zu überspringen und 5 Seiten zurückzugehen, statt nur die nächstälteste.
Das Tool ist wohl seit Jahren aus meiner Erinnerung gestrichen, und ich habe derzeit keinerlei Ressourcen, mich wieder einzulesen.
  • Bei der nächsten großen Überarbeitung würde ich einen Abschalter für diesen standardgemäßen Mechanismus einbauen. Kann aber dauern.
VG --PerfektesChaos 15:45, 9. Dez. 2016 (CET)Beantworten
Achso okay kein Ding. :P Tatsächlich benutze ich (wie zuletzt erwähnet) wieder FF (Chromium noch sporadisch, wenn ich mit Socken unterwegs bin  ). Ich habe etwas herausgefunden, es scheint sich um einen Kompatibilitäts-Konflikt mit dem pa(i)neMarker zu handeln. Nochmal schönen Advent  User: Perhelion 08:35, 11. Dez. 2016 (CET)Beantworten

pageLinkHelper und Versionsblätterer

Bearbeiten

Tach, Perfektes aChso, womöglich kannst Du daran nicht viel ändern, aber Dein Skript kommt leider mit dem Versionsblätterer nicht klar, wenigstens hier mit Firefox. Es wäre meiner Ansicht nach sinnvoll, wenigstens warnend darauf hinzuweisen. — Speravir – 01:21, 2. Mai 2017 (CEST)Beantworten

Wer oder was ist ein „Versionsblätterer? LG --PerfektesChaos 01:32, 2. Mai 2017 (CEST)Beantworten
Das, was meines Erachtens hier in Dewiki unter Spezial:Einstellungen#mw-prefsection-rendering standardmäßig für jeden aktiviert ist – wenn ich Versionen vergleiche, fügt sich zu Seitenbeginn der Versionsblätterer ein. Ich musste jetzt erst einmal suchen, wie das auf Englisch heißt: RevisionSlider, siehe meta:WMDE Technical Wishes/RevisionSlider und mw:Extension:RevisionSlider. Das ist im Prinzip eine Erweiterung des Revisionjumpers vom Hexer, möglicherweise aber nicht vom Skript selbst, sondern nur der Idee. Ich hatte den auch mal in Benutzung, weiß aber nicht mehr, ob der mit Deinem Skript harmoniert. Eventuell hatte ich ihn schon längst deaktiviert, als Ich dein Skript anfing zu nutzen. — Speravir – 03:28, 3. Mai 2017 (CEST)Beantworten
Es gibt seit vielen Jahren diverse Skripte, die auf der Diffpage aktiv sind, und teilweise auch blättern.
  • So auch schnarkdiff, welches massiv in das Seitenlayout eingreift; da du gemäß meta:User:Speravir/global.js Fliegelflagel benutzt und dieses angekreuzt hast, hatte ich überprüft, ob dieser ursächlich sein könnte.
Der WMDE-Versionsblätterer (der bislang einer wirklichen Dokuseite harrt) ist bei mir nicht aktiviert; dementsprechend habe ich sein Fehlen auch nicht bemerkt.
  • Es scheint, dass eines meiner Skripte dem Versionsblätterer irgendwas auf der HTML-Seite wegnimmt; welches und auf welche Weise ist mir bislang aber nicht erklärlich. pageLinkHelper macht in der Seite selbst eigentlich wenig; baut allerdings die im Browser angezeigte URL um.
Solche Recherchen brauchen Zeit, wenn nicht auf Anhieb aufklärbar.
LG --PerfektesChaos 14:54, 5. Mai 2017 (CEST)Beantworten
Das hatte ich befürchtet/mir gedacht, deswegen ja der Vorschlag, (ausschließlich) eine Warnung auf die Skriptseite zu setzen. Im Text zur Erweiterung auf Mediawiki steht etwas von Javascript-Hooks mit zwei Beispielen, die dann eigentlich denselben Hook verwenden. Bei dem Diff der Thanks-Erweiterung ist direkt darüber noch ein zweiter Hook zu sehen, der vom Namen her ebenfalls relevant erscheint. — Speravir – 01:24, 6. Mai 2017 (CEST)Beantworten

Ich habe mir die Angelegenheit übers Wochenende gründlich angesehen.

  • Vorweg: nachdem klar war, um welches Tool es sich handelt, habe ich es aktiviert. Es funktioniert einwandfrei parallel mit allen meinen Skripten.
    • Es ist auch weder hier noch anderswo bei mir etwas zu finden, das jenes Tool behindern, abschalten oder löschen könnte.
    • Der Anfangsverdacht, dass allenfalls die hier veränderte URL etwas bewirken konnte, hat sich auch nicht bewahrheitet, da sie von jenem Tool weder ausgewertet noch sonst zur Steuerung oder zum Start benuttzt wird. Der Server erkennt mittels PHP die Benutzerkonfiguration und die Anforderung einer Diffpage und schickt jenes Tool sich zwangsläufig aktivierend mit; die weiteren Auswertungen erfolgen dann über Ajax und die Präsentation das Startfeldes ist völlig unabhängig von irgendwas. Mindestens das Startfeld muss also vorhanden sein.
    • Meine Skripte werden meist bereits aktiv, noch bevor die MedaWiki-Software sich entfaltet; also früher als bei dir.
  • Woher weißt du so genau, dass dieses und kein anderes Skript „schuld“ sein müsse?
  • Mit Wohlgefallen besuchte ich meta:User:Speravir/global.js und meta:User:Speravir/global.css und las auf beiden Seiten viele mir vertraute Bezeichner.
    • User:TMg/cleanDiff.js wird auf Diffpages aktiv; ich sehe aber nicht, dass in den Seitenkopf eingegriffen würde, gar etwas gelöscht wird.
  • Kurzum: Bislang gibt es keinerlei gesicherte Erkenntnis, dass dieses Skript irgendwas mit der Angelegenheit zu tun haben müsse.
    • Dementsprechend gibt es umseitig auch keine Spekulationen.
    • Ein Hinweis würde ohnehin von niemandem wahrgenommen, geschweige denn verstanden werden, noch könnte jemand daraus Konsequenzen ziehen.
    • Du weißt ja von der Angelegenheit, brauchst also keinen Hinweis; niemand sonst hat sich beschwert, dass etwas fehlen würde, obwohl das Tool schon einige Monate bereitgestellt wird.

LG --PerfektesChaos 20:39, 8. Mai 2017 (CEST)Beantworten

Na, dann belassen wir es dabei, PC: Ich weiß, woran ich bin, und kann an die richtigen Special-Links auf die altbewährte Weise gelangen. Ich kann nur noch mal testen, ob ich selbst etwas herausfinde. Zu Deiner Frage: Wenn es bei dir funktioniert und bei mir nicht, muss es ja an etwas anderem liegen, aber weil die Links nicht angepasst wurden, habe ich dir geschrieben – dass die Diff-Skripte von Schnark und TMg da auch noch reinspielen könnten, war mir zum Beispiel gar nicht klar.
Zu Deinem milden Lob: Danke für die Blumen, aber ich zehre da gewaltig von der Arbeit, die Du und andere in WP:Technik gesteckt haben und stecken, also eher Danke von meiner Seite.
— Speravir – 19:40, 9. Mai 2017 (CEST)Beantworten

Also ich finde das sollte behoben werden. Wenn ein Tool bei Standard-Settings nicht funzt, wäre das schon eine Art Supergau für das Tool. Ich habe im FF und im Chrome mit verschiedenen Acc getestet. Es liegt eindeutig an der Inkompatibilität mit dem MW-Versionsblätterer (der einfach transparent drüberliegt). Bei mir ist das schon seit einem Jahr und ich dachte bei dieser krassen Nichtfunktion wird das schon mal gefixt werden. Um "Niemand beschwert sich" als Argument zu nehmen, müsste man die Benutzerzahlen kennen. (Workaround ist einfach nach mehreren Versuchen den Text irgendwie von oben ansetzend rückwärts zu markieren.) -- User: Perhelion 14:03, 17. Jul. 2018 (CEST)Beantworten

PS Lösung: Der Bug tritt nicht auf wenn die Option "Nur die Unterschiede und nicht die vollständige Seite anzeigen" (unter Aussehen) deaktiviert ist. Allerdings auch nur dann wenn ein Element (div "contentSub") über dem mw-revslider-container liegt, welches auch nur bedingt gefüllt ist. Alternativ kann man den Style-position-Wert des mw-revslider-container auf static setzen womit man das darunterliegende Element auch wieder markieren kann. -- User: Perhelion 16:05, 17. Jul. 2018 (CEST)Beantworten
PPS: Weitere Alternative wäre den pageLinkHelperCorner auf position:relative;z-index:99; zu setzen. LG -- User: Perhelion 16:23, 17. Jul. 2018 (CEST)Beantworten
Ich benutze seitdem diesen CSS-Hack ohne Probleme (abgesehen von einem theoretischen Performance-Verlust). -- User: Perhelion 07:06, 25. Jul. 2018 (CEST)Beantworten