Benutzer Diskussion:BLueFiSH.as/JS/markup.js

aus Wikipedia, der freien Enzyklopädie
Letzter Kommentar: vor 12 Jahren von BLueFiSH.as in Abschnitt wgTitle
Zur Navigation springen Zur Suche springen

Leerzeichen[Quelltext bearbeiten]

vielleicht einfach so?

 // mehrfache Leerzeichen auf einzelne reduzieren.
 tbvalue = tbvalue.replace(/ +/g, " ");
um
 tbvalue = tbvalue.replace(/     /g, " ");      tbvalue = tbvalue.replace(/    /g, " ");
 tbvalue = tbvalue.replace(/   /g, " ");        tbvalue = tbvalue.replace(/  /g, " ");
 tbvalue = tbvalue.replace(/  /g, " ");         tbvalue = tbvalue.replace(/  /g, " ");
abzukürzen? stand mit RegExp vor kurzem noch auf Kriesgfuß und das hier sind meine ersten Gehversuche. Probiere es mal aus. Danke. --BLueFiSH  (Klick mich!) 04:03, 19. Aug 2006 (CEST) P.S. geht das für "/\n\n\n\n/g" auch?

ja genau, das plus steht für "eins oder mehrere" und sollte das alles erschlagen. geht bei den linefeeds natürlich auch, eleganter aber wäre /\n{3,}/g für mindestens drei -- 04:14, 19. Aug 2006 (CEST)

"/\n\n+/g" wäre dann wohl die zu wählende Form, einer für die Zeile mit Text, ein echter, weitere sind überzählig. das mit " +" funktioniert prima. --BLueFiSH  (Klick mich!) 04:18, 19. Aug 2006 (CEST)

funktioniert, kostet aber etwas mehr CPU als nötig, weil dann überflüssigerweise auch 2 linefeeds durch 2 linefeeds ersetzt werden. im ersten beispiel war mir kurz wichtiger als effizient. -- 04:21, 19. Aug 2006 (CEST)

achja, kennst du das? schön übersichtlich. -- 04:22, 19. Aug 2006 (CEST)

Prima, klappt auch. Link gleich mal abgespeichert, hatte bis jetzt immer nur die Kurzanleitung in SelfHTML angeschaut, das reichte eigentlich aus. Natürlich sind da nicht die Erklärungen so umfangreich, vielleicht waren meine Konstrukte deshalb nicht optimal ;-) --BLueFiSH  (Klick mich!) 11:38, 19. Aug 2006 (CEST)

Mir ist gerade ein etwas ruppiges Verhalten in Vorlagen aufgefallen, daher würde ich vorschlagen,

 tv = tv.replace(/ +/g, " ");

durch

 tv = tv.replace(/ +([^=])/g, " $1");

zu ersetzen. Ist zwar sehr billig, funktioniert aber ganz gut. Es wird auch wenig andere Fälle geben, wo vor Gleichzeichen mehrere Leerzeichen stehen. Gruß, Code·Eis·Poesie 08:57, 16. Mär. 2008 (CET)Beantworten

Hi Bluefish, ich hoffe du hast mich nicht übersehen ;) Code·is·poetry 18:20, 25. Mär. 2008 (CET)Beantworten
"ruppiges Verhalten in Vorlagen"? Du meinst z.b. in Vorlagen wie Vorlage:Infobox Gemeinde in Deutschland? Na wenn dein Vorschlag solche Leerzeichen beibehält solls mir recht sein. --BLueFiSH.as (Hilf mit!) 22:05, 30. Mär. 2008 (CEST)Beantworten
Jep, halt diese Leerzeichen bei den etwas fetteren Infoboxen, um die Parameter auf der gleichen Höhe zu haben. Meine Version behält einfach nur mehrere Leerzeichen bei, wenn als nächstes Zeichen nach den Leerzeichen ein Gleichzeichen kommt. Gruß, Code·is·poetry 18:47, 31. Mär. 2008 (CEST)Beantworten

ein Bug[Quelltext bearbeiten]

Tritt u.a. bei Tennisrekorde#Preisgelder auf. Da wir die Zahl 43.280.489 [[Dollar]] zerstört. Habe noch nicht geschaut woran es liegt. Gruß --Spongo 15:03, 11. Dez. 2006 (CET)Beantworten

Ja ist mir bekannt. .28 ist ein encodetes Klammer-Auf in der URL. Vielleicht mach ich das mal anders, aber es steht eindeutig oben drüber: Verwendung nicht ohne "Änderung zeigen". Auf einige Sachen muss man halt drauf achten. MfG --BLueFiSH  (Langeweile?) 15:21, 11. Dez. 2006 (CET)Beantworten

Hallo nochmal. Man könnte

tbvalue = tbvalue.replace(/\.28/g, "(");
tbvalue = tbvalue.replace(/\.29/g, ")");

zu

tbvalue = tbvalue.replace(/(\D)\.28/g, "$1(");
tbvalue = tbvalue.replace(/(\D)\.29/g, "$1)");

ersetzen. Denn wenn eine Ziffer vor dem Punkt steht, handelt es sich wohl um eine Zahl und keine Klammer. Habe es nicht getestet.. Gruß --Spongo 23:41, 12. Dez. 2006 (CET)Beantworten

Danke für den Tipp, scheint ordnungsgemäß zu funktionieren. Gruß --BLueFiSH  (Langeweile?) 06:25, 13. Dez. 2006 (CET)Beantworten

Könntest du das Skript noch um

tbvalue = tbvalue.replace(/(\[\[[^]|]*?\%3A)/g, "$1");

erweitern? (Ich traue mich selber nicht) Soll also [[WP%3AL]] zu [[WP:L]] machen. --Spongo 00:16, 9. Jan. 2007 (CET)Beantworten

Und führt das dann Ersetzungen nur bei [[WP%3AL]] durch oder generell bei %3AL? markup ist nämlich nicht für != Artikelnamensraum gedacht. --BLueFiSH  (Langeweile?) 06:23, 9. Jan. 2007 (CET)Beantworten

Aufgefallen ist mir das natürlich bei Diskussionsseiten, wo ich einen reingepasteten Link begradigen wollte. Im Artikelnamensraum tritt es natürlich eher (sehr) selten auf. Aber es gäbe noch WP-NR, Portal-NR, Vorlagen-NR wo man das mit Vorsicht anwenden kann. Da der Doppelpunkt nur bei [[Links]] korrigiert wird, kann man ja Schaden ausschließen, solange man es nicht z.B. hier anwendet.
Und es ist mir noch was aufgefallen: tbvalue = tbvalue.replace(/\[\[([^|\]]+)\|\1([^|\]]+)\]\]/g, "[[$1]]$2"); verwandelt z.B. [[MAN|MAN-AG]] und [[Charité|Charité - Universitätsmedizin Berlin]] in [[MAN]]-AG und [[Charité]] - Universitätsmedizin Berlin ersetzt. Das ist aber nicht immer so gedacht. Was hältst du davon "-" und Leerzeichen auszuschließen? Mit:
tbvalue = tbvalue.replace(/\[\[([^|\]]+)\|\1([^\ \-|\]]+)\]\]/g, "[[$1]]$2"); --Spongo 16:47, 9. Jan. 2007 (CET)Beantworten
Genau deshalb sollte man es nicht auf solchen Seiten benutzen. Darum werd ich an der Doppelpunktgeschichte auch nix ändern.
Das Manko im zweiten Vorschlag ist mir auch bekannt, tritt aber sehr selten auf und kann man notfalls auch per Hand korrigieren. Leerzeichen ausschließen da könnt ich dir auch wieder Ausnahmen nennen, wo wieder das Gegenteil passiert, also zuwenig ersetzt wird. --BLueFiSH  (Langeweile?) 16:58, 9. Jan. 2007 (CET)Beantworten

Link-Text[Quelltext bearbeiten]

[[Link-Text]] war gestern, nun steht nach einem Klick auf [[Verweistext]] da, siehe MediaWiki:Link_sample. Das sollte man korrigieren. Gruß --Spongo 14:32, 21. Apr. 2007 (CEST)Beantworten

Ich musste doch tatsächlich dreimal überlegen, um zu verstehen, was gemeint ist. Hätt ich natürlich auch gleich in Quelltext gucken können, dann hätt ichs beim ersten Mal gewusst. Ist hinzugefügt. --BLueFiSH  (Langeweile?) 23:17, 21. Apr. 2007 (CEST)Beantworten
Anscheinend hat sich das wieder erledigt. Kurz nach deiner Korrektur hat man die Leiste wieder auf den alten Text zurückgestellt. --Spongo 10:11, 26. Mai 2007 (CEST)Beantworten

[Quelltext bearbeiten]

Hallo. Da steht:

tv = tv.replace(/\&rarr\;/g, "?");

sollte wohl heißen:

tv = tv.replace(/\&rarr\;/g, "→");

? --Spongo B ¿ 09:35, 19. Aug. 2007 (CEST)Beantworten

Bug bei Selbstlinks[Quelltext bearbeiten]

Hallo. In reg = new RegExp("\\[\\["+wgTitle+"\\]\\]", "ig"); ist ein kleiner Fehler. Die Suche nach einem Selbstlink sollte abhängig von Groß-/Kleinschreibung sein, sonst geht es z.B. hier schief. Mit reg = new RegExp("\\[\\["+wgTitle+"\\]\\]", "g"); sollte der Bug behoben sein. Gruß Euku B ¿ 09:52, 19. Okt. 2007 (CEST)Beantworten

Danke für den Hinweis. --BLueFiSH.as (Langeweile?) 00:08, 20. Okt. 2007 (CEST)Beantworten

Kategorien...[Quelltext bearbeiten]

...sollte das Skript in Ruhe lassen, wenns irgend geht; zum Beispiel wird die Kategorie:Britisches Königshaus (20. Jh.) verändert in die nichtexistente Kategorie:Britisches Königshaus (20. Jahrhundert). Gruß, PDD 18:39, 8. Dez. 2007 (CET)Beantworten

Danke für den Hinweis, habe drei Workarounds eingebaut, Problem für diesen Fall gefixt. Wenn du noch mehr Probleme feststellst, immer her damit. Gruß --BLueFiSH.as (Langeweile?) 01:14, 16. Dez. 2007 (CET)Beantworten

Kategorien II[Quelltext bearbeiten]

Hallo BLueFiSH.as, du hast deine Benutzerseite in die Artikelkategorie Eis eingeordnet, was nach WP-Konventionen unerwünscht ist. Wäre schön, wenn du das ändern könntest. Gruß --Hydro 12:46, 15. Dez. 2007 (CET)Beantworten

Danke für den Hinweis! ist mir noch nie aufgefallen, weil es auf der Seite nicht angezeigt wird; habe es korrigiert. Gruß --BLueFiSH.as (Langeweile?) 01:14, 16. Dez. 2007 (CET)Beantworten

Unschöne Wikilinkformatierungen[Quelltext bearbeiten]

Hi BLueFiSH, das Script wandelt bsw. [[Commerzbank|Commerzbank AG]] in [[Commerzbank]] AG um, das finde ich relativ unschön. Alle weiteren Aktivitäten sind fraglos sinnvoll und müssen nicht einmal kontrolliert werden, aber diese eine Sache ist in vielen Fällen eher eine Entscheidungsfrage und sollte daher nicht automatisch geschehen. Was meinst du? Gruß, Code·Eis·Poesie 10:51, 24. Feb. 2008 (CET)Beantworten

Ja das Problem kenne ich, die Ersetzung ist auch nicht für solche Fälle gedacht, soll also nicht [[Commerzbank|Commerzbank AG]] in [[Commerzbank]] AG umwandeln, sondern [[Schule|Schulen]] in [[Schule]]n. Eine Möglichkeit wäre, den Regexp nur auszuführen, wenn kein Leerzeichen oder Bindestrich in der Klammer vorkommt oder wenn nur ein einzelnes Wort im zweiten Teil steht. Aber da ich mit RegExp lange nicht so fit bin wie der, der mir die Zeile geschrieben hat, kann ich das nicht ausbessern. Ich glaube eine Bots haben ebenfalls so eine kosmetische Linkkorrektur integriert, da könnte man sich das abgucken. Ich werd da aber keine Mühe für investieren. --BLueFiSH.as (Hilf mit!) 02:49, 25. Feb. 2008 (CET)Beantworten

Ich hab mal ein bissel gebastelt. Das Original:

 tv = tv.replace(/\[\[[ \t]*([^\]|]+?)[ \t]*\|[ \t]*([^\]]+?)[ \t]*\]\]/g, "[[$1|$2]]");
 tv = tv.replace(/\[\[([^|\]]+)\|\1([^|\]]+)\]\]/g, "[[$1]]$2");

müsste durch folgendes ersetzt werden:

 tv = tv.replace(/\[\[[ \t]*([^\]|]+?)[ \t]*\|[ \t]*([^\] \t]+?)[ \t]*\]\]/g, "[[$1|$2]]");
 tv = tv.replace(/\[\[([^|\]]+)\|\1([^|\] \t]+)\]\]/g, "[[$1]]$2");

Gruß, Code·Eis·Poesie 10:58, 25. Feb. 2008 (CET)Beantworten

Ersetzt und scheint zu funktionieren. Hab dank! --BLueFiSH.as (Hilf mit!) 02:01, 26. Feb. 2008 (CET)Beantworten

Kleinere Fehlerchen[Quelltext bearbeiten]

Aus Benutzer Diskussion:PDD/monobook.js:

Fixen der "FixQuote" und "Fix-Markup"-Funktionen: Teilweise verändert diese Wikiquelltext in Bildern, Vorlagen, Refs.... Vergleiche Änderungen der Bildlinks, der Weblinks und Änderung der "s einer Ref.

Es handelt sich um die aktuelle Version. lg alkab DAB 21:37, 25. Feb. 2008 (CET)Beantworten

Zu "Änderung der Bildlinks": Erstens ist der Diff so gut wie nicht anguckbar. Man guckt sich keine Megabytegroßen Diffs an. Man macht solche Diffs erst gar nicht. Wenn man nicht sicher ist, ob alles korrekt funktioniert, dann benutzt man die Skripte einzeln. Also erst Jahreszahlen delinken, dann speichern, dann ggf. der Rest. Dann bleibts auch übersichtlich und lesbar. Sollte das Problem darin liegen, dass Bindestriche in den Bildnamen in diese Geviert-Dingensbumens-Striche geändert werden: Not my Problem, sowas ersetze mein Skript nicht. Ich zähl mich nicht zu den Geviert-Dingensbumens-Striche-Fanatikern, sind mir schlicht wurscht.
Zu "Weblinks": Dass das Datum bei Tagesspiegel-Weblinks verändert wird, ist mir bekannt.
Zu Refs: Wenn man, wie es sich gehört, <ref name="bla"> schreiben würde anstatt <ref name= "bla" >, gäbe es dort auch kein Problem. Zudem kann man in diesem Fall name="bla" auch ganz weglassen, es ist überflüssig.
Ich weise zudem darauf hin, dass die Benutzung sämtlicher meiner Skripte auf eigene Verantwortung geschieht. Ich mach die schließlich in erster Linie für mich und nicht für andere. Ich habe sie hier gespeichert, andere binden sie bei sich ein. Wenn jemand Verbesserungsvorschläge hat, nehme ich die gerne mit auf, sehe mich aber teils aus begrenzter Programmierkenntnis und Zeit nicht in der Lage, selbst alles zu korrigieren. Teilweise hab ich auch keine Lust auf das Korrigieren eines (vermeintlichen) Bugs weil ich weiß, dass das eine oder andere nur alle hundert Mal vorkommt (damit meine ich z.B. Tagesspiegel-Links). MfG --BLueFiSH.as (Hilf mit!) 23:08, 25. Feb. 2008 (CET)Beantworten

thumb|right[Quelltext bearbeiten]

Mal wieder was kleines und wohl selten vorkommendes: eigentlich sollte das right ja nur bei thumb entfernt werden, aber hier (ganz unten) wars auch ohne thumb weg und dadurch das komische Zickzack-Layout kaputt. Grüße, PDD 13:24, 7. Apr. 2008 (CEST)Beantworten

kleine Verbesserungen[Quelltext bearbeiten]

Hallo, ich hätte einige kleine Verbesserungsvorschläge:

Die Tabulatoren sind überflüssig, da sie oben schon ersetzt wurden (Sonstiges):

tv = tv.replace(/\[\[[ \t]*([^\]|]+?)[ \t]*\|[ \t]*([^\] \t]+?)[ \t]*\]\]/g, "$2");
tv = tv.replace(/\[\[ *([^\]|]+?) *\| *([^\] ]+?) *\]\]/g, "$2"); 

Die Zeilenumbrpche kann man auch kürtzer ersetzen:

tv = tv.replace(/<\/?br\/?\s?>/gi, "<br />");

Beim Datum könnte man einige Ausdrücke auch sparen:

 /* Wikipedia:Datumskonventionen umsetzen */
tv = tv.replace(/\.0?1\.(\d{4})/g, ". Januar $1");

nach dem Tag kein Abstand:

tv = tv.replace(/((\s|\()\d{1,2}\.)(\w+)\s/g, "$1 $3");

und vielleicht sollte man noch kurze Jahreszahlen durch lange ersetzen:

tv = tv.replace(/((\s|\()\d{1,2}\.\s\w+)\s([6789]\d)/g, "$1 19$3");
tv = tv.replace(/((\s|\()\d{1,2}\.\s\w+)\s(0\d)/g, "$1 20$3");


Danke erstmal. Ich schau mir das bei Gelegenheit mal an. (Bei RegExp brauch ich immer ne Weile, um es zu begreifen - und dann jedes mal neu.) ;-) --BLueFiSH.as (Hilf mit!) 21:52, 7. Jul. 2008 (CEST)Beantworten

Kategorien III[Quelltext bearbeiten]

Die Zeile

tv = tv.replace(/\[\[[ \t]*([^\]|]+?)[ \t]*\|[ \t]*([^\] \t]+?)[ \t]*\]\]/g, "[[$1|$2]]");

sorgt dafür, dass bei Artikeln, die in einer Kategorie durch [[Kategorie:Foo| Foo]] als Haupteintrag einsortiert sind, das Leerzeichen fälschlicherweise entfernt wird. Die Variante, dass das Lemma nach dem Leerzeichen nochmals wiederholt wird, ist extrem selten (und in fast allen Fällen überflüssig), sodass eine Korrektur nicht eilt, aber wenn du mal die Zeit findest, das zu ändern, wäre es natürlich toll. Viele Grüße --Schnark 11:12, 19. Jun. 2010 (CEST)Beantworten

Ich bin total raus aus Regexp (und war noch nie richtig drin), ich hab keine Ahnung mehr, wie ich die Zeile umschreiben müsste... --BLueFiSH.as (Hilf mit!) 14:03, 20. Jan. 2011 (CET)Beantworten
Sowohl FF als auch IE kennen Negative lookahead, sodass folgendes in allen Browsern funktionieren sollte:
tv = tv.replace(/\[\[(?!Kategorie:)[ \t]*([^\]|]+?)[ \t]*\|[ \t]*([^\] \t]+?)[ \t]*\]\]/g, "[[$1|$2]]");
Dann greift der Ausdruck nur noch dort, wo die beiden einleitenden eckigen Klammern nicht von Kategorie: gefolgt werden. Ausprobieren ob das Leerzeichen dann erhalten bleibt kannst du dann an Principal Galaxies Catalogue (wobei das auch ein Beispiel dafür ist, wie man es nicht machen sollte …) --Schnark 09:21, 21. Jan. 2011 (CET)Beantworten
Danke für die Zeile, hab sie grade eingetragen. Testen kann ich es aber erst ab Montag, da offenbar in Chrome die ganzen Monobook-Sachen nicht laufen. Gruß --BLueFiSH.as (Hilf mit!) 14:28, 21. Jan. 2011 (CET)Beantworten
Ein schneller Test von mir sah gerade gut aus. Viele Grüße --Schnark 09:04, 22. Jan. 2011 (CET)Beantworten

wgTitle[Quelltext bearbeiten]

Bei dem Lemma Die drei ??? enthält wgTitle den Wert "Die drei ???". Die folgende Zeile erzeugt damit ein Fehler:

reg = new RegExp("\\[\\["+wgTitle+"\\]\\]", "g");

Das ? wird als Regulärer Ausdruck verstanden. --Fomafix 14:09, 31. Mai 2011 (CEST)Beantworten

Die Lösung ist ganz einfach [1]:
  /* ==================== "proaktiv" [[Wikipedia:Selbstlinks]] vermeiden =================== */
  reg = new RegExp("\\[\\["+wgTitle+"\\]\\]", "g");     // damit lässt sich aber nicht "[[wgTitle|blaaa]]" finden
  // Links werden zu fett umgewandelt, das in vermutlich >80% der Fälle das Lemma nur 1x (am Anfang) in Klammern steht.
  tv = tv.replace(reg, "\'\'\'"+wgTitle+"\'\'\'");
ersetzen durch
  /* ==================== "proaktiv" [[Wikipedia:Selbstlinks]] vermeiden =================== */
  // damit lässt sich aber nicht "[[wgTitle|blaaa]]" finden
  // Links werden zu fett umgewandelt, das in vermutlich >80% der Fälle das Lemma nur 1x (am Anfang) in Klammern steht.
  tv = tv.replace("[["+wgTitle+"]]", "\'\'\'"+wgTitle+"\'\'\'", "g");
--Fomafix 21:55, 15. Jun. 2011 (CEST)Beantworten
Eine Alternative wäre auch escapeRE():
  reg = new RegExp("\\[\\["+$.escapeRE(wgTitle)+"\\]\\]", "g");
--Fomafix 12:37, 16. Jun. 2011 (CEST)Beantworten
Danke für den Hinweis, hab die letzte Form geändert. Die Watchlist guck ich seit einiger Zeit nämlich nicht mehr an. --BLueFiSH.as (Hilf mit!) 14:52, 20. Jun. 2011 (CEST)Beantworten