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:
2026-10-01 01:56:15 +02:00
co-authored by Claude Opus 5
parent 7dc5356c80
commit 95c4599baa
138 changed files with 1510 additions and 1390 deletions
+14 -14
View File
@@ -5,8 +5,8 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Wer ist DogFather? — DOGFATHER UNIVERSE</title>
<meta name="description" content="Die persönliche Geschichte hinter DogFather — Filipe, Streamer, Manager bei Spicy Media und Hundepapa von Husky Casper." />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/universe-32.png?v=202609301254" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/universe-180.png?v=202609301254" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/universe-32.png?v=202610010152" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/universe-180.png?v=202610010152" />
<link rel="manifest" href="/manifest.json" />
<meta name="theme-color" content="#065f76" />
<meta property="og:type" content="website" />
@@ -20,17 +20,17 @@
<meta name="twitter:description" content="Die persönliche Geschichte hinter DogFather — Filipe, Streamer, Manager bei Spicy Media und Hundepapa von Husky Casper." />
<meta name="twitter:image" content="https://dogfather-universe.com/assets/img/og-cover.jpg" />
<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" />
</head>
<body class="mit-hintergrund" style="--page-bg:url('/assets/img/bg-streamer.jpg?v=202609301254');--page-bg-mobile:url('/assets/img/bg-streamer-mobile.jpg?v=202609301254');">
<body class="mit-hintergrund" style="--page-bg:url('/assets/img/bg-streamer.jpg?v=202610010152');--page-bg-mobile:url('/assets/img/bg-streamer-mobile.jpg?v=202610010152');">
<div id="site-header"></div>
<main>
<section class="hero page-bg">
<div class="hero-banner"><img src="/assets/img/bg-streamer.jpg?v=202609301254" alt="" loading="eager" /></div>
<div class="hero-banner"><img src="/assets/img/bg-streamer.jpg?v=202610010152" alt="" loading="eager" /></div>
<div class="container">
<span class="eyebrow" data-i18n="str_eyebrow">Welt 1 — DogFather</span>
<h1 data-i18n="str_h1">Wer ist DogFather? – Mehr als nur ein Name 🩵</h1>
@@ -55,7 +55,7 @@
<p class="quote" data-i18n="str_intro_quote" style="margin-top:1.4rem;">Doch DogFather ist nicht einfach nur ein Name im Internet. DogFather ist ein Teil von mir.</p>
</div>
<div class="collage-photo frame-gold" style="aspect-ratio:2/3;border-radius:var(--radius);">
<img src="assets/img/streamer-filipe-portrait.jpg?v=202609301254" alt="Filipe alias DogFather" style="width:100%;height:100%;object-fit:cover;object-position:center top;" />
<img src="assets/img/streamer-filipe-portrait.jpg?v=202610010152" alt="Filipe alias DogFather" style="width:100%;height:100%;object-fit:cover;object-position:center top;" />
</div>
</div>
</section>
@@ -100,7 +100,7 @@
(siehe .collage-photo-kompakt in main.css, jetzt 720px statt 460px), der
sich an der typischen Höhe der Textspalte in diesem Abschnitt orientiert. -->
<div class="collage-photo collage-photo-kompakt frame-lila" style="border-radius:var(--radius);">
<img src="assets/img/streamer-mascot.jpg?v=202609301254" alt="DogFather Maskottchen" />
<img src="assets/img/streamer-mascot.jpg?v=202610010152" alt="DogFather Maskottchen" />
</div>
<div>
<h2 data-i18n="str_casper_h2">🐺 Casper – mein treuer Begleiter</h2>
@@ -161,7 +161,7 @@
<p class="quote" data-i18n="str_ausmacht_quote2" style="margin-top:1.4rem;">Ein Mensch, der gerne lacht, andere unterhält und manchmal vollkommen verrückte Dinge macht – aber niemals vergisst, wie wichtig Menschlichkeit, Respekt und Zusammenhalt sind.</p>
</div>
<div class="collage-photo frame-lila" style="aspect-ratio:auto;border-radius:var(--radius);">
<img src="assets/img/streamer-highlight.jpg?v=202609301254" alt="DogFather" style="width:100%;height:auto;display:block;" />
<img src="assets/img/streamer-highlight.jpg?v=202610010152" alt="DogFather" style="width:100%;height:auto;display:block;" />
</div>
</div>
</section>
@@ -199,7 +199,7 @@
<a class="btn-spicy-mini" href="team-scouts.html" style="padding:.85rem 1.7rem;font-size:1.05rem;gap:.5rem;"><span data-i18n="str_scoutmanager_btn">🌶️ Scout-Manager</span></a>
</div>
<div class="collage-photo frame-rot" style="aspect-ratio:1/1;border-radius:var(--radius);background:#000;">
<img src="assets/img/spicy-media-logo.jpg?v=202609301254" alt="Spicy Media Agency Logo"
<img src="assets/img/spicy-media-logo.jpg?v=202610010152" alt="Spicy Media Agency Logo"
style="width:100%;height:100%;object-fit:contain;padding:1.6rem;" />
</div>
</div>
@@ -218,7 +218,7 @@
</main>
<div id="site-footer"></div>
<script src="assets/js/i18n-streamer.js?v=202609301254"></script>
<script src="assets/js/main.js?v=202609301254"></script>
<script src="assets/js/i18n-streamer.js?v=202610010152"></script>
<script src="assets/js/main.js?v=202610010152"></script>
</body>
</html>