MediaWiki:Common.js: Unterschied zwischen den Versionen

Aus Westmärker Wiki
Zur Navigation springen Zur Suche springen
(44 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 38: Zeile 38:
 
auf jede Seite oben
 
auf jede Seite oben
  
{{KTB}}
+
{{KTB}} oder eine Vorlage, die dies enthält,
  
 
eingeben.
 
eingeben.
Zeile 44: Zeile 44:
 
*/
 
*/
  
 
+
/* ┌────────────────────────────────────────────────────────┐
// ───────────────────────────────────────────────
+
  │ xxx favicon austauschen GEHT NICHT                    │
 +
  └────────────────────────────────────────────────────────┘ */
 
// xxx shortcut icon/favicon ist im IE nicht dynamisch änderbar,
 
// xxx shortcut icon/favicon ist im IE nicht dynamisch änderbar,
 
// vgl. https://github.com/HenrikJoreteg/favicon-setter!
 
// vgl. https://github.com/HenrikJoreteg/favicon-setter!
Zeile 59: Zeile 60:
 
// 3. Methode: document.body.innerHTML = document.body.innerHTML.replace(/w\/westlogo.ICO/g, "1HP/Tagebuchfragmente/favicon.ico");
 
// 3. Methode: document.body.innerHTML = document.body.innerHTML.replace(/w\/westlogo.ICO/g, "1HP/Tagebuchfragmente/favicon.ico");
  
// ───────────────────────────────────────────────
+
/* ┌────────────────────────────────────────────────────────┐
// xxx Titel erweitern geht leider auch nicht:
+
  │ xxx Wiki oder Seitentitel umbenennen GEHT SO NICHT    │
// document.head.title.replace(/–/, "– Tagebuch-Fragmente aus dem zweiten Weltkrieg –";
+
  └────────────────────────────────────────────────────────┘ */
 +
// 1.) $wgSitename      = "Westmärker Wiki";
 +
// 2.) document.head.title.replace(/–/, "– Tagebuch-Fragmente aus dem zweiten Weltkrieg –";
  
// ───────────────────────────────────────────────
+
/* ┌────────────────────────────────────────────────────────┐
// Link für Logo oben links (Bild wird in [[Tagebuchstyles.css]] gesetzt):
+
  │ Logo mit Link oben links austauschen                  │
 +
  │ Bild wird in [[Tagebuchstyles.css]] gesetzt           │
 +
  └────────────────────────────────────────────────────────┘ */
 
// KTBLINK zur früheren HTML-Homepage war: "https://vexilli.net/1HP/Tagebuchfragmente/index.html";
 
// KTBLINK zur früheren HTML-Homepage war: "https://vexilli.net/1HP/Tagebuchfragmente/index.html";
KTBa     = "Tagebuch-Fragmente<br />aus dem<br />zweiten Weltkrieg";
+
KTB     = "Tagebuch-Fragmente<br />aus dem<br />zweiten Weltkrieg";
KTBi    = KTBa.split("<br />").join;
+
KTBLINK = "/w/" + KTB.split("<br />").join(" ");
KTBLINK = "/w/" + KTBi;
 
 
document.getElementById("p-logo").firstChild.href  = KTBLINK;
 
document.getElementById("p-logo").firstChild.href  = KTBLINK;
document.getElementById("p-logo").firstChild.title = KTBi;
+
document.getElementById("p-logo").firstChild.title = KTB.split("<br />").join("\n");
 
hpdiv = document.createElement("div");
 
hpdiv = document.createElement("div");
 
hpdiv.className  = "zurueck_zur_homepage";
 
hpdiv.className  = "zurueck_zur_homepage";
Zeile 81: Zeile 85:
 
hpa = document.createElement("a");
 
hpa = document.createElement("a");
 
hpa.href      = KTBLINK;
 
hpa.href      = KTBLINK;
hpa.innerHTML = KTBa;
+
hpa.innerHTML = KTB;
 
hpp.appendChild(hpa);
 
hpp.appendChild(hpa);
 
hpdiv.appendChild(hpp);
 
hpdiv.appendChild(hpp);
 
document.getElementById("mw-panel").appendChild(hpdiv);
 
document.getElementById("mw-panel").appendChild(hpdiv);
  
 +
/* ┌────────────────────────────────────────────────────────┐
 +
  │ Beschriftung des Suchfeldes                            │
 +
  └────────────────────────────────────────────────────────┘ */
 +
document.getElementById("searchInput").placeholder = "Tagebuch durchsuchen";
 +
document.getElementById("searchInput").title      = "Tagebuch durchsuchen [alt-shift-f]";
  
 
/* ┌───────────────────────────────────────────────────────────────────────────────────────────────┐
 
/* ┌───────────────────────────────────────────────────────────────────────────────────────────────┐
Zeile 130: Zeile 139:
 
// ───────────────────────────────────────────────
 
// ───────────────────────────────────────────────
 
// Farben für die Galeriebilder (??? VERSTEH' ICH SCHON NICHT MEHR ????)
 
// Farben für die Galeriebilder (??? VERSTEH' ICH SCHON NICHT MEHR ????)
 +
//  Der class-name des <span>-Elements am Anfang der Bildtexte
 +
//  muss dem class-name der umgebenden gallerybox hinzugefügt werden.
 +
//  Zgl. - nur für Ahnenfan sichtbar - eine zusätzliche Textzeile mit Link zum Galeriebild zum Kopieren
 
/*  Farben-classes:
 
/*  Farben-classes:
 
TgbT grün solid  Tagebuch
 
TgbT grün solid  Tagebuch
Zeile 144: Zeile 156:
 
bild[i].className = bild[i].className + " " + bildspan[0].className;
 
bild[i].className = bild[i].className + " " + bildspan[0].className;
  
// nur für mich: zusätzliche Textzeile mit Link zum Galeriebild mittels ID
+
// nur für mich: zusätzliche Textzeile mit Link zum Galeriebild mittels ID zum Kopieren
 
if (ichbins) {  
 
if (ichbins) {  
 
link0 = "https://vexilli.net/w/Tagebuch-Fotos%23";
 
link0 = "https://vexilli.net/w/Tagebuch-Fotos%23";
Zeile 158: Zeile 170:
 
}
 
}
 
}
 
}
 
// ───────────────────────────────────────────────
 
if (document.location.href.indexOf("194") > 0) {
 
  
 
/* ┌────────────────────────────────────────────────────────┐
 
/* ┌────────────────────────────────────────────────────────┐
 
   │ KTB-Kalender-Seiten                                    │
 
   │ KTB-Kalender-Seiten                                    │
 
   └────────────────────────────────────────────────────────┘ */
 
   └────────────────────────────────────────────────────────┘ */
 +
if (document.location.href.indexOf("w/19") > 0 || document.location.href.indexOf("w/Editorial") > 0 || document.location.href.indexOf("w/Anhang") > 0) {
  
 +
// Umbenennung des Seitentitels Jahr/Monat/Tag in Tag. Monat Jahr erfolgt in Vorlage:Kalendernavigation!
 
// Jahr und Monat auch fett wenn nicht automatisch
 
// Jahr und Monat auch fett wenn nicht automatisch
 
kalenderseitenname = document.location.href.split("/"); // 4=J,5=M,6=T
 
kalenderseitenname = document.location.href.split("/"); // 4=J,5=M,6=T
Zeile 180: Zeile 191:
  
 
// "Nächstes Kalenderblatt"
 
// "Nächstes Kalenderblatt"
// per Vorlage versuchen
+
// per Vorlage zu suchen versuchen
 +
// (derzeit Eingabe in den Aufruf der Vorlage:Kalendernaechste nötig)
  
// ───────────────────────────────────────────────
+
// Weiches Trennzeichen (¬ U+00AD, &#x00AD; &#173;),
// Weiches Trennzeichen ¬ (U+00AC) aus den Rohtexten entfernen
+
// vorsichtshalber auch das nicht-Zeichen (­¬ 00AC) aus den Rohtexten entfernen,
document.getElementsByTagName("body")[0].innerHTML = document.getElementsByTagName("body")[0].innerHTML.replace(/\u00AC]/g, "");
+
// weil es blöderweise von WORD mit übergeben wird.
 +
// Formel gem. wiki.selfhtml.org/wiki/JavaScript/Objekte/RegExp
 +
// 3 Zeichen zur Auswahl; ACHTUNG: AN ERSTER STELLE STEHT DAS ECHTE unsichtbare ZEICHEN!
 +
document.body.innerHTML = document.body.innerHTML.replace(/[­¬¬]/g, "").replace(/\u00AD/g, "").replace(/\u00AC/g, "");
  
 
/* ┌────────────────────────────────────────────────────────┐
 
/* ┌────────────────────────────────────────────────────────┐
Zeile 194: Zeile 209:
 
   ║      ENDE: HAUPTBEREICH FÜR TAGEBUCH      ║
 
   ║      ENDE: HAUPTBEREICH FÜR TAGEBUCH      ║
 
   ╚═════════════════════════════════════════════╝ */
 
   ╚═════════════════════════════════════════════╝ */
 +
}
 +
 +
/* ╔═════════════════════════════════════════════╗
 +
  ║      ZÄHLER-Startdatum April 2020 setzen    ║
 +
  ╚═════════════════════════════════════════════╝ */
 +
// Aus unerfindlichen Gründen funktioniert dieses replace hier nicht:
 +
// document.getElementById("footer-info-viewcount").innerText.replace("bisher", "seit April 2020");
 +
// Daher so:
 +
zaehlerTXT  = document.getElementById("footer-info-viewcount").innerText.split("bisher");
 +
zaehlerTXT1 = zaehlerTXT[1].split("mal");
 +
zaehlerTXTn = zaehlerTXT[0] + "seit April 2020 " + zaehlerTXT1[0].trim() + "-mal" + zaehlerTXT1[1];
 +
document.getElementById("footer-info-viewcount").innerText = zaehlerTXTn;
 +
 +
/* ╔═════════════════════════════════════════════╗
 +
  ║      TEASER für Tagebuch-Startseite,        ║
 +
  ║        aber auch sonst brauchbar          ║
 +
  ╚═════════════════════════════════════════════╝ */
 +
// Hier wird das von Vorlage:Teaser vorbereitete Element befüllt.
 +
// "#teaser" ist dabei ein nicht vorhandenes Sprungziel, wodurch der Bildschirm stehenbleibt.
 +
// (Mit "" lädt die Seite neu, mit "#" sprigt sie nach oben, mit einem echten in der Vorlage
 +
// definierten Sprungziel springt dieses an den oberen Rand, aber nur beim obersten Teaser.)
 +
meineteaser = document.getElementsByClassName('teaserclick');
 +
for (i=0; i<meineteaser.length; i++) {
 +
meineteaser[i].innerHTML = "<a style='display: inline' href='#teaser' onclick='javascript:toggleMehr(this)'> → <i>mehr lesen/read more</i> →</a><a style='display: none' href='#teaser' onclick='javascript:toggleWeniger(this)'> ← <i>weniger anzeigen/show less</i> ←</a>";
 +
}
 +
// alte Symbole ► und ◄ zu auffällig, neue Symbole → und ← besser?
 +
 +
// Diese Funktionen blenden Teaser und Links ein/aus:
 +
// (Aufrufe vom vorderen (toggleMehr) und hinteren (toggleWeniger) Button müssen
 +
// getrennt bleiben, da die function sonst fehlerhaft arbeitet, wahrscheinlich
 +
// wegen nicht vorhandenem Objekt nextSibling bzw. previousSibling.)
 +
function toggleMehr(control) {
 +
toggle1(control); // mehr lesen aus
 +
toggle1(control.nextSibling); // weniger lesen an
 +
toggle1(control.parentNode.previousSibling); // Teaser-Volltext an
 +
}
 +
function toggleWeniger(control) {
 +
toggle1(control); // mehr lesen an
 +
toggle1(control.previousSibling); // weniger lesen aus
 +
toggle1(control.parentNode.previousSibling); // Teaser-Volltext aus
 +
}
 +
function toggle1(control1) {
 +
if (control1.style.display == "none") {
 +
control1.style.display = "inline";
 +
} else {
 +
control1.style.display = "none";
 +
}
 
}
 
}
  
Zeile 306: Zeile 368:
 
   ║          Ende: Toolbar Customization        ║
 
   ║          Ende: Toolbar Customization        ║
 
   ╚═════════════════════════════════════════════╝ */
 
   ╚═════════════════════════════════════════════╝ */
 
//[[Kategorie:Tagebuchfragmente]]
 

Version vom 13. Mai 2020, 20:40 Uhr

/* ┌────────────────────────────────────────────────────────┐
   │ Das folgende JavaScript wird für alle Benutzer geladen.│
   ├────────────────────────────────────────────────────────┤
   │  Tabstop zum Kopieren: "	"                           │
   └────────────────────────────────────────────────────────┘ */

/* ┌────────────────────────────────────────────────────────┐
   │ Für normale Nutzer Verwirrendes ausblenden:            │
   ├────────────────────────────────────────────────────────┤
   │ a) mangels Diskussion für alle ausblenden:             │
   └────────────────────────────────────────────────────────┘ */
document.getElementById("left-navigation").style.visibility = "hidden";
/* ┌────────────────────────────────────────────────────────┐
   │ b) ausblenden, aber nicht für mich:                    │
   └────────────────────────────────────────────────────────┘ */
if (document.getElementById("p-personal").innerText.indexOf("Ahnenfan") < 0) { 
	var ichbins = false;
	document.getElementById("p-personal").style.visibility = "hidden"; 
	document.getElementById("p-views"   ).style.visibility = "hidden"; 
	document.getElementById("p-cactions").style.visibility = "hidden"; 
} else {
	var ichbins = true;
} 

KTBok             = false;
Artikelkategorien = mw.config.get( 'wgCategories' );
for (i=0; i<Artikelkategorien.length; i++) {
	if (Artikelkategorien[i] == "Tagebuchfragmente") KTBok = true;
}
if (KTBok) { 
/* ╔═════════════════════════════════════════════╗
   ║                                             ║
   ║          HAUPTBEREICH FÜR TAGEBUCH          ║
   ║                                             ║
   ╚═════════════════════════════════════════════╝
<nowiki>
Zum Aktivieren der Tagebuchstyles.css und automatischen Eintrag der Kategorie 
auf jede Seite oben

{{KTB}} oder eine Vorlage, die dies enthält,

eingeben.
</nowiki>
*/

/* ┌────────────────────────────────────────────────────────┐
   │ xxx favicon austauschen GEHT NICHT                     │
   └────────────────────────────────────────────────────────┘ */
// xxx shortcut icon/favicon ist im IE nicht dynamisch änderbar,
// vgl. https://github.com/HenrikJoreteg/favicon-setter!
// Deshalb klappten alle diese Methoden nicht:
/* 1. Methode: shortcuticon = document.getElementsByTagName("link");
for (i=0; i<shortcuticon.length; i++)
{
	if (shortcuticon[i].href.indexOf("westlogo.ico") > 0) {
		shortcuticon[i].href = "http://vexilli.net/1HP/Tagebuchfragmente/favicon.ico";
	}
} */
// 2. Methode: $wgFavicon = "http://vexilli.net/1HP/Tagebuchfragmente/favicon.ico";
// 3. Methode: document.body.innerHTML = document.body.innerHTML.replace(/w\/westlogo.ICO/g, "1HP/Tagebuchfragmente/favicon.ico");

/* ┌────────────────────────────────────────────────────────┐
   │ xxx Wiki oder Seitentitel umbenennen GEHT SO NICHT     │
   └────────────────────────────────────────────────────────┘ */
// 1.) $wgSitename      = "Westmärker Wiki";
// 2.) document.head.title.replace(/–/, "– Tagebuch-Fragmente aus dem zweiten Weltkrieg –";

/* ┌────────────────────────────────────────────────────────┐
   │ Logo mit Link oben links austauschen                   │
   │ Bild wird in [[Tagebuchstyles.css]] gesetzt            │
   └────────────────────────────────────────────────────────┘ */
// KTBLINK zur früheren HTML-Homepage war: "https://vexilli.net/1HP/Tagebuchfragmente/index.html";
KTB     = "Tagebuch-Fragmente<br />aus dem<br />zweiten Weltkrieg";
KTBLINK = "/w/" + KTB.split("<br />").join(" ");
document.getElementById("p-logo").firstChild.href  = KTBLINK;
document.getElementById("p-logo").firstChild.title = KTB.split("<br />").join("\n");
hpdiv = document.createElement("div");
hpdiv.className   = "zurueck_zur_homepage";
hpdiv.style.width = "160px";
hpp = document.createElement("p");
hpp.style.fontSize   = "12pt";
hpp.style.fontWeight = "bold";
hpp.style.fontFamily = "serif";
hpp.style.textAlign  = "center";
hpa = document.createElement("a");
hpa.href      = KTBLINK;
hpa.innerHTML = KTB;
hpp.appendChild(hpa);
hpdiv.appendChild(hpp);
document.getElementById("mw-panel").appendChild(hpdiv);

/* ┌────────────────────────────────────────────────────────┐
   │ Beschriftung des Suchfeldes                            │
   └────────────────────────────────────────────────────────┘ */
document.getElementById("searchInput").placeholder = "Tagebuch durchsuchen";
document.getElementById("searchInput").title       = "Tagebuch durchsuchen [alt-shift-f]";

/* ┌───────────────────────────────────────────────────────────────────────────────────────────────┐
   │ Wichtig: Formulierung der Links im DOCX:                                                      │
   ├───────────────────────────────────────────────────────────────────────────────────────────────┤
   │ 1. Der Hash muss statt mit # mit %23 codiert werden, damit die Ansteuerung der Anker von der  │
   │    PDF im Netz aus funktioniert!                                                              │
   │ 2. Dann folgt eine ID, die mit der im Artikel übereinstimmen muss.                            │
   │ DER FOLGENDE REST HAT SICH LEIDER ERLEDIGT.                                                   │
   │ 2. Dann folgt der Bildname ohne Extension.                                                    │
   │ 3. Das ] hinter einem Datum muss (in den wenigen vorkommenden Fällen) durch - ersetzt werden, │
   │    weil das auch beim Import der Fotos ins Wiki so passiert ist, es aber noch andere Binde-   │
   │    striche gibt,die nicht ersetzt werden dürfen, was eine Automatik unheimlich schwer macht.  │
   └───────────────────────────────────────────────────────────────────────────────────────────────┘ */
/* xxx aus Bildnamen Anker machen GEHT NICHT, DA ERST DER ARTIKEL GELADEN WIRD UND DIESE ANKER, WENN ÜBERHAUPT, ZU SPÄT ERSCHEINEN, ALSO ALLE VON HAND SETZEN; DANN SIND DIE IDs ABER AUCH BELIEBIG
bild = document.getElementsByClassName("gallerybox");
alert(bild.length);
for (i=0; i<bild.length; i++) {
	bh = bild[i].firstChild.firstChild.firstChild.firstChild.href;
	bi = bh.substring(bh.lastIndexOf(":")+1, bh.lastIndexOf("."));
	// beim Import erfolgte Änderungen rückgängig machen:
	// NEIN, weil der URL durch Wiki immer von leer auf _ gesetzt wird: bi = bi.replace(/_/g, " "); 
	bi = bi.replace(/%C3%84/g, "Ä"); // Quelle: https://www.w3schools.com/tags/ref_urlencode.asp
	bi = bi.replace(/%C3%96/g, "Ö"); // nicht mehr geprüft, ob nötig
	bi = bi.replace(/%C3%9C/g, "Ü");  
	bi = bi.replace(/%C3%9F/g, "ß");  
	bi = bi.replace(/%C3%A4/g, "ä");  
	bi = bi.replace(/%C3%B6/g, "ö");  
	bi = bi.replace(/%C3%BC/g, "ü");  
	bc = bild[i].firstChild.lastChild.firstChild;
	anker = document.createElement("span");
	anker.id = bi;
	bc.appendChild(anker);
}
*/

// ───────────────────────────────────────────────
// Weil ein Sprung vom Dokument zu einem Bild im Fotoalbum auf die Caption unter dem Bild führt
// und das Bild oben verschwindet, muss die Seite um die Bildhöhe nach unten geschoben werden:
if(document.title.indexOf("Foto") > 0) window.scrollBy(0, -340);
// Leider empfängt Wiki keinen referrer von der PDF, daher geht diese genauere Formel nicht: 
//if(document.referrer.indexOf("tagebuch") > 0 && document.referrer.indexOf(".pdf") > 0 && document.title.indexOf("Foto") > 0) window.scrollBy(0, -340);

// ───────────────────────────────────────────────
// Farben für die Galeriebilder (??? VERSTEH' ICH SCHON NICHT MEHR ????)
//   Der class-name des <span>-Elements am Anfang der Bildtexte
//   muss dem class-name der umgebenden gallerybox hinzugefügt werden.
//   Zgl. - nur für Ahnenfan sichtbar - eine zusätzliche Textzeile mit Link zum Galeriebild zum Kopieren
/*   Farben-classes:
TgbT grün solid  Tagebuch
TgbD grün dotted Dokumenten und Objekten
TgbA blau solid  Album des Autors
TgbS blau dotted Sammlung des Autors
TgbZ gelb solid  zusätzliche Erwerbungen des Herausgebers
TgbK gelb dotted Kartenmontagen/-bearbeitungen des Herausgebers */

bild = document.getElementsByClassName("gallerybox");
for (i=0; i<bild.length; i++) {
	bildspan = bild[i].getElementsByTagName("span")
	if (bildspan.length == 1) {
		bild[i].className = bild[i].className + " " + bildspan[0].className;

		// nur für mich: zusätzliche Textzeile mit Link zum Galeriebild mittels ID zum Kopieren
		if (ichbins) { 
			link0 = "https://vexilli.net/w/Tagebuch-Fotos%23";
			hashtag0 = bild[i].getElementsByTagName("span")[0].id;
			linkmitid0 = link0 + hashtag0;
			if (hashtag0 == "") linkmitid0 = "noch ohne ID";
			linkmitid1 = document.createElement("p");
			linkmitid1.style.fontSize = "7pt";
			linkmitid2 = document.createTextNode(linkmitid0);
			linkmitid1.appendChild(linkmitid2);
			bildspan[0].appendChild(linkmitid1);
		}
	}
}

/* ┌────────────────────────────────────────────────────────┐
   │ KTB-Kalender-Seiten                                    │
   └────────────────────────────────────────────────────────┘ */
if (document.location.href.indexOf("w/19") > 0 || document.location.href.indexOf("w/Editorial") > 0 || document.location.href.indexOf("w/Anhang") > 0) {

// Umbenennung des Seitentitels Jahr/Monat/Tag in Tag. Monat Jahr erfolgt in Vorlage:Kalendernavigation!
// Jahr und Monat auch fett wenn nicht automatisch
	kalenderseitenname = document.location.href.split("/"); // 4=J,5=M,6=T
	document.getElementsByClassName(kalenderseitenname[4])[0].style.fontWeight = "bold";
	if (document.getElementsByClassName(kalenderseitenname[4])[1]) {
		document.getElementsByClassName(kalenderseitenname[4])[1].style.fontWeight = "bold";
	}
	if (kalenderseitenname[5]) {
		document.getElementsByClassName(kalenderseitenname[5])[0].style.fontWeight = "bold";
		if (document.getElementsByClassName(kalenderseitenname[5])[1]) {
			document.getElementsByClassName(kalenderseitenname[5])[1].style.fontWeight = "bold";
		}
	}

// "Nächstes Kalenderblatt"
// per Vorlage zu suchen versuchen
// (derzeit Eingabe in den Aufruf der Vorlage:Kalendernaechste nötig)

// Weiches Trennzeichen (¬ U+00AD, &#x00AD; &#173;),
// vorsichtshalber auch das nicht-Zeichen (­¬ 00AC) aus den Rohtexten entfernen,
// weil es blöderweise von WORD mit übergeben wird.
// Formel gem. wiki.selfhtml.org/wiki/JavaScript/Objekte/RegExp
// 3 Zeichen zur Auswahl; ACHTUNG: AN ERSTER STELLE STEHT DAS ECHTE unsichtbare ZEICHEN!
	document.body.innerHTML = document.body.innerHTML.replace(/[­¬¬]/g, "").replace(/\u00AD/g, "").replace(/\u00AC/g, "");

/* ┌────────────────────────────────────────────────────────┐
   │ Ende KTB-Kalender-Seiten                               │
   └────────────────────────────────────────────────────────┘ */
}

/* ╔═════════════════════════════════════════════╗
   ║       ENDE: HAUPTBEREICH FÜR TAGEBUCH       ║
   ╚═════════════════════════════════════════════╝ */
}

/* ╔═════════════════════════════════════════════╗
   ║      ZÄHLER-Startdatum April 2020 setzen    ║
   ╚═════════════════════════════════════════════╝ */
// Aus unerfindlichen Gründen funktioniert dieses replace hier nicht:
// document.getElementById("footer-info-viewcount").innerText.replace("bisher", "seit April 2020");
// Daher so:
zaehlerTXT  = document.getElementById("footer-info-viewcount").innerText.split("bisher");
zaehlerTXT1 = zaehlerTXT[1].split("mal");
zaehlerTXTn = zaehlerTXT[0] + "seit April 2020 " + zaehlerTXT1[0].trim() + "-mal" + zaehlerTXT1[1];
document.getElementById("footer-info-viewcount").innerText = zaehlerTXTn;

/* ╔═════════════════════════════════════════════╗
   ║      TEASER für Tagebuch-Startseite,        ║
   ║         aber auch sonst brauchbar           ║
   ╚═════════════════════════════════════════════╝ */
// Hier wird das von Vorlage:Teaser vorbereitete Element befüllt.
// "#teaser" ist dabei ein nicht vorhandenes Sprungziel, wodurch der Bildschirm stehenbleibt.
// (Mit "" lädt die Seite neu, mit "#" sprigt sie nach oben, mit einem echten in der Vorlage
// definierten Sprungziel springt dieses an den oberen Rand, aber nur beim obersten Teaser.)
meineteaser = document.getElementsByClassName('teaserclick');
for (i=0; i<meineteaser.length; i++) {
	meineteaser[i].innerHTML = "<a style='display: inline' href='#teaser' onclick='javascript:toggleMehr(this)'> → <i>mehr lesen/read more</i> →</a><a style='display: none' href='#teaser' onclick='javascript:toggleWeniger(this)'> ← <i>weniger anzeigen/show less</i> ←</a>";
}
// alte Symbole ► und ◄ zu auffällig, neue Symbole → und ← besser?

// Diese Funktionen blenden Teaser und Links ein/aus:
// (Aufrufe vom vorderen (toggleMehr) und hinteren (toggleWeniger) Button müssen
// getrennt bleiben, da die function sonst fehlerhaft arbeitet, wahrscheinlich
// wegen nicht vorhandenem Objekt nextSibling bzw. previousSibling.)
function toggleMehr(control) {
	toggle1(control); // mehr lesen aus
	toggle1(control.nextSibling); // weniger lesen an
	toggle1(control.parentNode.previousSibling); // Teaser-Volltext an
}
function toggleWeniger(control) {
	toggle1(control); // mehr lesen an
	toggle1(control.previousSibling); // weniger lesen aus
	toggle1(control.parentNode.previousSibling); // Teaser-Volltext aus
}
function toggle1(control1) {
	if (control1.style.display == "none") {
		control1.style.display = "inline";
	} else {
		control1.style.display = "none";
	}
}

/* ╔═════════════════════════════════════════════╗
   ║          Toolbar Customization              ║
   ║ www.mediawiki.org/wiki/Extension:WikiEditor ║
   ╚═════════════════════════════════════════════╝ */
var customizeToolbar = function () {
	/* Your code goes here */
$('#wpTextbox1').wikiEditor('addToToolbar', {
	section: 'main',
	group: 'insert',
	tools: {
		"vorlageklammern": {
			label: 'Vorlage',
			type: 'button',
 			icon: '//upload.wikimedia.org/wikipedia/commons/8/86/Wikieditor-template.png',
			action: {
				type: 'encapsulate',
				options: {
					pre: "{{xxx|",
					post: "}}"
				}
			}
		},
		"WPLink": {
			label: 'Link zur Wikipedia',
			type: 'button',
 			icon: '/w/images/WikiEditorButtons/Wikieditor-template-WP.png',
			action: {
				type: 'encapsulate',
				options: {
					pre: "{{w|",
					post: "}}"
				}
			}
		},
		"KategorieTag": {
			label: '[[Kategorie:]]',
			type: 'button',
 			icon: '/w/images/WikiEditorButtons/Wikieditor-Kategorie.png',
			action: {
				type: 'encapsulate',
				options: {
					pre: "[[Kategorie:",
					post: "]]"
				}
			}
		},
		"KalendernavigationTag": {
			label: '{{Kalendernavigation}}',
			type: 'button',
 			icon: '/w/images/WikiEditorButtons/KalNav.png',
			action: {
				type: 'encapsulate',
				options: {
					pre: "{{Kalendernavigation}}"
				}
			}
		},
		"KalendernaechsteTag": {
			label: '{{Kalendernaechste}}',
			type: 'button',
 			icon: '/w/images/WikiEditorButtons/KalNext.png',
			action: {
				type: 'encapsulate',
				options: {
					pre: "{{Kalendernaechste|}}"
				}
			}
		},
		"refTag": {
			label: '<ref></ref>',
			type: 'button',
 			icon: '/w/images/WikiEditorButtons/Wikieditor-ref.png',
			action: {
				type: 'encapsulate',
				options: {
					pre: "<ref>",
					post: "</ref>"
				}
			}
		},
		"referencesTag": {
			label: '<references />',
			type: 'button',
 			icon: '/w/images/WikiEditorButtons/Wikieditor-references.png',
			action: {
				type: 'encapsulate',
				options: {
					pre: "<references />"
				}
			}
		}
	}
});
	/* My code goes up to here */
};

/* Check if view is in edit mode and that the required modules are available. Then, customize the toolbar … */
if ( [ 'edit', 'submit' ].indexOf( mw.config.get( 'wgAction' ) ) !== -1 ) {
	mw.loader.using( 'user.options' ).then( function () {
		// This can be the string "0" if the user disabled the preference ([[phab:T54542#555387]])
		if ( mw.user.options.get( 'usebetatoolbar' ) == 1 ) {
			$.when(
				mw.loader.using( 'ext.wikiEditor' ), $.ready
			).then( customizeToolbar );
		}
	} );
}
/* ╔═════════════════════════════════════════════╗
   ║          Ende: Toolbar Customization        ║
   ╚═════════════════════════════════════════════╝ */