Anfuehrungszeichen: 199 falsche Schlusszeichen im sichtbaren Text
Deutsch oeffnet mit „ und schliesst mit “. An 199 Stellen, die ein
Mensch liest, stand als Schlusszeichen ein GERADES " -- „Nächstes"
statt „Nächstes“. Auf sechzehn oeffentlichen Seiten, in vierzig
Dateien des Workspace und in zwoelf Servermodulen, die Texte
verschicken.
Auf dem Bildschirm sieht man den Unterschied sofort. Beim Schreiben
nicht: Das gerade " liegt auf der Tastatur, die anderen nicht.
WARUM EIN ERSTER ANLAUF ZURUECKGENOMMEN WURDE
Ein gerades " ist an vielen Stellen SYNTAX und kein Schriftzeichen --
Grenze einer Zeichenkette, Grenze eines HTML-Attributs, Zeichen in
einem regulaeren Ausdruck. Wer stumpf ersetzt, macht aus
„<a href="https://… ein kaputtes Attribut
/^["'„»\s]+|["'“«.\s]+$/ einen kaputten Ausdruck
"… nichts „mal " + "eben …" eine kaputte Zeichenkette
DIE UNTERSCHEIDUNG LAEUFT AN MERKMALEN, NICHT AN EINER LISTE
< > = dazwischen -> HTML-Marke oder Attribut
endet auf Leerzeichen -> die Zeichenkette hoert hier auf, der
Satz geht in der naechsten Zeile weiter.
Ein deutsches Schlusszeichen steht NIE
hinter einem Leerzeichen.
Rueckstrich mittendrin -> regulaerer Ausdruck
${ ohne } -> mitten in einem Ausdruck
Eine Liste erlaubter Ausnahmen waere die naechste, die niemand
pflegt. Zwoelf Stellen bleiben dadurch stehen, alle zwoelf einzeln
angesehen und alle zwoelf zu Recht -- dort steht das richtige
Schlusszeichen ohnehin weiter unten im Satz.
Fuenf davon waren allerdings ECHTE Fehler HINTER dem Link
(`…>HasiDog</a>".`) -- die erste Regel hatte nur das Attribut
gesehen, nicht den Satz danach. Gezielt nachgezogen.
Ein maskiertes `\"` in workspace-vorlagen.js (28 Hooks) wird zu “ --
ohne Rueckstrich, denn “ begrenzt nichts.
KOMMENTARE BLEIBEN, WIE SIE SIND. Dort liest es niemand ausser mir;
eine Wache, die auch Kosmetik anmahnt, wird weggeklickt. Beim ersten
Messen fielen ausserdem acht Stellen aus buehne.html faelschlich an,
weil `/* */` in HTML (in <style> und <script>) nicht ausgeblendet
war -- jetzt schon.
DIE WACHE DAZU
pruef-struktur prueft es ab sofort mit derselben Regel: 322 Dateien
mit sichtbarem Text, 0 Funde, und die zwoelf bewussten Ausnahmen
werden GEZAEHLT und genannt (erlaubt: 12). Eine Ausnahme, die niemand
sieht, waechst -- und irgendwann steht der echte Fall darin.
GEPRUEFT
pruef-struktur 59 -> 68 Pruefungen, 0 Fehler
node --check auf allen geaenderten JS-Dateien
nachgemessen: 199 geaendert, 12 mit Grund stehen geblieben
gruen geblieben: bewerbung-aufgaben 163, nachwuchs 262,
reaktion 421, support 63, content 45, terminregel 35, treff 85
Und nachgesehen, ob eine Pruefung noch die alte Schreibweise
ERWARTET: 13 Fundstellen, alle dreizehn nur Text in ihrer eigenen
Ausgabe, keine einzige ein Vergleich mit dem Seitentext.
GEGENPROBE: In reaktion.html ein Schlusszeichen zurueckgedreht ->
„workspace/reaktion.html:546 „Nächstes"", mit Datei und Zeile. Und
die Erkennung einzeln gegen HTML-Attribut, fortgesetzte
Zeichenkette, regulaeren Ausdruck und eingesetzten Wert geprueft.
Stempel gesetzt: workspace 670 Verweise in 45 Dateien, oeffentlich
554 in 48 Seiten.
Co-Authored-By: Claude Opus 5 <[email protected]>
This commit is contained in:
+19
-19
@@ -6,7 +6,7 @@
|
||||
<meta name="robots" content="noindex, nofollow" />
|
||||
<title>Verwaltung — DOGFATHER UNIVERSE</title>
|
||||
<meta name="description" content="Interne Verwaltung — DogiCrew-Supporter, Prämien und Kollektionen. Nur mit Zugangscode." />
|
||||
<link rel="icon" type="image/png" href="/assets/img/app-symbole/verwaltung-32.png?v=202609301254" />
|
||||
<link rel="icon" type="image/png" href="/assets/img/app-symbole/verwaltung-32.png?v=202610010152" />
|
||||
<!-- Eigene, separat installierbare App (20.08.2026, Nutzer-Wunsch: "die
|
||||
Verwaltungsseite auch herunterladen können, getrennt von der Website
|
||||
installiert") — eigenes Manifest mit eigener "id"/eigenem "scope"
|
||||
@@ -16,13 +16,13 @@
|
||||
und deckt damit auch diese Seite automatisch mit ab — kein zweiter
|
||||
Service Worker nötig, nur ein zweites Manifest. -->
|
||||
<link rel="manifest" href="/manifest-verwaltung.json" />
|
||||
<link rel="apple-touch-icon" href="/assets/img/app-symbole/verwaltung-180.png?v=202609301254" />
|
||||
<link rel="apple-touch-icon" href="/assets/img/app-symbole/verwaltung-180.png?v=202610010152" />
|
||||
<meta name="apple-mobile-web-app-title" content="DogiCrew-Verwaltung" />
|
||||
<meta name="theme-color" content="#8d4125" />
|
||||
<link rel="stylesheet" href="assets/css/main.css?v=202609301254" />
|
||||
<link rel="stylesheet" href="assets/css/theme-dogfather.css?v=202609301254" />
|
||||
<link rel="stylesheet" href="assets/css/theme-hasidog.css?v=202609301254" />
|
||||
<link rel="stylesheet" href="assets/css/theme-spicymedia.css?v=202609301254" />
|
||||
<link rel="stylesheet" href="assets/css/main.css?v=202610010152" />
|
||||
<link rel="stylesheet" href="assets/css/theme-dogfather.css?v=202610010152" />
|
||||
<link rel="stylesheet" href="assets/css/theme-hasidog.css?v=202610010152" />
|
||||
<link rel="stylesheet" href="assets/css/theme-spicymedia.css?v=202610010152" />
|
||||
<style>
|
||||
/* =====================================================================
|
||||
verwaltung.html — Dogis privater Command-Center-Bereich.
|
||||
@@ -173,7 +173,7 @@
|
||||
.vw-logo-emblem {
|
||||
position: absolute; top: 50%; left: 50%; width: min(1200px, 150vw); height: min(1200px, 150vw);
|
||||
transform: translate(-50%, -50%);
|
||||
background-image: url('assets/img/logo-dogfather-transparent.png?v=202609301254');
|
||||
background-image: url('assets/img/logo-dogfather-transparent.png?v=202610010152');
|
||||
background-size: contain; background-repeat: no-repeat; background-position: center;
|
||||
opacity: .05;
|
||||
filter: drop-shadow(0 0 120px rgba(56,189,248,.55)) drop-shadow(0 0 60px rgba(139,92,246,.25));
|
||||
@@ -187,7 +187,7 @@
|
||||
}
|
||||
.vw-logo-tile {
|
||||
position: absolute; inset: -25%;
|
||||
background-image: url('assets/img/logo-dogfather-transparent.png?v=202609301254');
|
||||
background-image: url('assets/img/logo-dogfather-transparent.png?v=202610010152');
|
||||
background-size: 150px 150px; background-repeat: repeat;
|
||||
opacity: .02; transform: rotate(-14deg);
|
||||
}
|
||||
@@ -295,7 +295,7 @@
|
||||
.vw-gate-schloss {
|
||||
width: 72px; height: 72px; margin: 0 auto 1rem; border-radius: 50%;
|
||||
background: radial-gradient(circle at 32% 28%, rgba(125,211,252,.35), rgba(56,189,248,.08) 70%),
|
||||
url('assets/img/gate-siegel-hasidog.jpg?v=202609301254') center / cover no-repeat;
|
||||
url('assets/img/gate-siegel-hasidog.jpg?v=202610010152') center / cover no-repeat;
|
||||
border: 2px solid rgba(56,189,248,.6);
|
||||
box-shadow: 0 0 26px rgba(56,189,248,.4), inset 0 0 12px rgba(255,255,255,.08);
|
||||
animation: vw-schloss-puls 2.6s ease-in-out infinite;
|
||||
@@ -325,8 +325,8 @@
|
||||
box-shadow: 0 0 20px rgba(56,189,248,.4), inset 0 0 10px rgba(255,255,255,.08);
|
||||
animation: vw-schloss-puls 2.6s ease-in-out infinite;
|
||||
}
|
||||
.vw-gate-card-icon--dogi { background-image: url('assets/img/vw-gate-dogi.jpg?v=202609301254'); }
|
||||
.vw-gate-card-icon--vanvan { background-image: url('assets/img/vw-gate-vanvan.jpg?v=202609301254'); }
|
||||
.vw-gate-card-icon--dogi { background-image: url('assets/img/vw-gate-dogi.jpg?v=202610010152'); }
|
||||
.vw-gate-card-icon--vanvan { background-image: url('assets/img/vw-gate-vanvan.jpg?v=202610010152'); }
|
||||
@keyframes vw-schloss-puls-rose {
|
||||
0%, 100% { box-shadow: 0 0 20px rgba(255,143,198,.35), inset 0 0 10px rgba(255,255,255,.06); }
|
||||
50% { box-shadow: 0 0 36px rgba(255,143,198,.65), inset 0 0 14px rgba(255,255,255,.12); }
|
||||
@@ -380,7 +380,7 @@
|
||||
width: 116px; height: 116px; margin: 0 auto 1.2rem; border-radius: 50%;
|
||||
background:
|
||||
radial-gradient(circle at 32% 26%, rgba(125,211,252,.25), rgba(56,189,248,.08) 72%),
|
||||
url('assets/img/hasidog-kopf-siegel.jpg?v=202609301254') center / cover no-repeat;
|
||||
url('assets/img/hasidog-kopf-siegel.jpg?v=202610010152') center / cover no-repeat;
|
||||
border: 2.5px solid rgba(56,189,248,.6);
|
||||
box-shadow: 0 0 34px rgba(56,189,248,.4), inset 0 0 18px rgba(0,0,0,.35), inset 0 0 0 3px rgba(10,12,16,.5);
|
||||
animation: vw-schloss-puls 3.4s ease-in-out infinite;
|
||||
@@ -1285,17 +1285,17 @@
|
||||
<!-- 21.08.2026: für den "Bestehende Mitglieder importieren"-Knopf in der
|
||||
Team-Verwaltung -- liest die von Hand gepflegten Profile aus diesen
|
||||
Dateien aus und bietet an, sie 1:1 in die Datenbank zu übernehmen. -->
|
||||
<script src="assets/js/data-modis.js?v=202609301254"></script>
|
||||
<script src="assets/js/data-scouts.js?v=202609301254"></script>
|
||||
<script src="assets/js/data-creator.js?v=202609301254"></script>
|
||||
<script src="assets/js/data-manager.js?v=202609301254"></script>
|
||||
<script src="assets/js/data-stimmen-avatare.js?v=202609301254"></script>
|
||||
<script src="assets/js/main.js?v=202609301254"></script>
|
||||
<script src="assets/js/data-modis.js?v=202610010152"></script>
|
||||
<script src="assets/js/data-scouts.js?v=202610010152"></script>
|
||||
<script src="assets/js/data-creator.js?v=202610010152"></script>
|
||||
<script src="assets/js/data-manager.js?v=202610010152"></script>
|
||||
<script src="assets/js/data-stimmen-avatare.js?v=202610010152"></script>
|
||||
<script src="assets/js/main.js?v=202610010152"></script>
|
||||
<!-- Versionsnummer bewusst hochgesetzt (27.08.2026): Caddy liefert Assets mit
|
||||
max-age=14400, ein Browser hätte die alte Anmelde-Logik sonst bis zu vier
|
||||
Stunden weiterbenutzt und Dogi wäre trotz Umstellung weiter ohne Code
|
||||
drin gewesen. Neue Adresse = sofort neue Datei. -->
|
||||
<script src="assets/js/admin-auth.js?v=202609301254"></script>
|
||||
<script src="assets/js/admin-auth.js?v=202610010152"></script>
|
||||
<script>
|
||||
(function () {
|
||||
const API_BASE_URL = "https://postfach.dogfather-universe.com";
|
||||
|
||||
Reference in New Issue
Block a user