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
+6 -6
View File
@@ -11,15 +11,15 @@
<title>Ablauf — Dogfather Webdesign</title>
<meta name="description" content="Von der Anfrage bis zur Übergabe: sieben Schritte, jeweils mit dem, was du machst, was ich mache und was am Ende dabei herauskommt." />
<meta name="robots" content="noindex, nofollow, noarchive" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/webdesign-32.png?v=202609301254" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/webdesign-32.png?v=202610010152" />
<meta name="theme-color" content="#564e95" />
<link rel="manifest" href="/webdesign/app.webmanifest" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/webdesign-180.png?v=202609301254" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/webdesign-180.png?v=202610010152" />
<meta name="apple-mobile-web-app-capable" content="yes" />
<meta name="apple-mobile-web-app-status-bar-style" content="black-translucent" />
<meta name="apple-mobile-web-app-title" content="Dogfather Webdesign" />
<link rel="stylesheet" href="/assets/css/main.css?v=202609301254" />
<link rel="stylesheet" href="/assets/css/webdesign.css?v=202609301254" />
<link rel="stylesheet" href="/assets/css/main.css?v=202610010152" />
<link rel="stylesheet" href="/assets/css/webdesign.css?v=202610010152" />
<style>
/* Zeitstrahl: die Linie verbindet die Nummernkreise. Sie liegt hinter
den Kreisen (z-index) und endet beim letzten Schritt, damit sie nicht
@@ -188,7 +188,7 @@
<div id="wd-fuss"></div>
<script src="/assets/js/i18n-wd-ablauf.js?v=202609301254"></script>
<script src="/assets/js/wd-core.js?v=202609301254"></script>
<script src="/assets/js/i18n-wd-ablauf.js?v=202610010152"></script>
<script src="/assets/js/wd-core.js?v=202610010152"></script>
</body>
</html>
+7 -7
View File
@@ -11,15 +11,15 @@
<title>Projekt anfragen — Dogfather Webdesign</title>
<meta name="description" content="Vier kurze Schritte zu deiner unverbindlichen Projektanfrage. Kostenlos, ohne Vertrag, mit Zusammenfassung vor dem Absenden." />
<meta name="robots" content="noindex, nofollow, noarchive" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/webdesign-32.png?v=202609301254" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/webdesign-32.png?v=202610010152" />
<meta name="theme-color" content="#564e95" />
<link rel="manifest" href="/webdesign/app.webmanifest" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/webdesign-180.png?v=202609301254" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/webdesign-180.png?v=202610010152" />
<meta name="apple-mobile-web-app-capable" content="yes" />
<meta name="apple-mobile-web-app-status-bar-style" content="black-translucent" />
<meta name="apple-mobile-web-app-title" content="Dogfather Webdesign" />
<link rel="stylesheet" href="/assets/css/main.css?v=202609301254" />
<link rel="stylesheet" href="/assets/css/webdesign.css?v=202609301254" />
<link rel="stylesheet" href="/assets/css/main.css?v=202610010152" />
<link rel="stylesheet" href="/assets/css/webdesign.css?v=202610010152" />
<style>
/* ---------- Schrittanzeige ----------
Zeigt alle vier Schritte gleichzeitig statt nur "3 von 4". Man sieht
@@ -423,8 +423,8 @@
<div id="wd-fuss"></div>
<script src="/assets/js/i18n-wd-anfrage.js?v=202609301254"></script>
<script src="/assets/js/wd-core.js?v=202609301254"></script>
<script src="/assets/js/wd-anfrage.js?v=202609301254"></script>
<script src="/assets/js/i18n-wd-anfrage.js?v=202610010152"></script>
<script src="/assets/js/wd-core.js?v=202610010152"></script>
<script src="/assets/js/wd-anfrage.js?v=202610010152"></script>
</body>
</html>
+2 -2
View File
@@ -1,8 +1,8 @@
<!DOCTYPE html>
<html lang="de">
<head>
<link rel="icon" type="image/png" href="/assets/img/app-symbole/webdesign-32.png?v=202609301254" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/webdesign-180.png?v=202609301254" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/webdesign-32.png?v=202610010152" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/webdesign-180.png?v=202610010152" />
<meta charset="UTF-8" />
<!-- viewport-fit=cover ist die Voraussetzung dafuer, dass env(safe-area-inset-*)
ueberhaupt einen Wert liefert. Ohne diese Angabe gibt jedes env() null zurueck
+6 -6
View File
@@ -11,15 +11,15 @@
<title>Häufige Fragen — Dogfather Webdesign</title>
<meta name="description" content="Preise, Dauer, Inhalte, Änderungen, Hosting, Rechte, Zahlung und Veröffentlichung — offen beantwortet." />
<meta name="robots" content="noindex, nofollow, noarchive" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/webdesign-32.png?v=202609301254" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/webdesign-32.png?v=202610010152" />
<meta name="theme-color" content="#564e95" />
<link rel="manifest" href="/webdesign/app.webmanifest" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/webdesign-180.png?v=202609301254" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/webdesign-180.png?v=202610010152" />
<meta name="apple-mobile-web-app-capable" content="yes" />
<meta name="apple-mobile-web-app-status-bar-style" content="black-translucent" />
<meta name="apple-mobile-web-app-title" content="Dogfather Webdesign" />
<link rel="stylesheet" href="/assets/css/main.css?v=202609301254" />
<link rel="stylesheet" href="/assets/css/webdesign.css?v=202609301254" />
<link rel="stylesheet" href="/assets/css/main.css?v=202610010152" />
<link rel="stylesheet" href="/assets/css/webdesign.css?v=202610010152" />
<style>
.fq-thema { scroll-margin-top: 90px; }
.fq-thema + .fq-thema { margin-top: clamp(2rem, 4vw, 3rem); }
@@ -200,7 +200,7 @@
<div id="wd-fuss"></div>
<script src="/assets/js/i18n-wd-faq.js?v=202609301254"></script>
<script src="/assets/js/wd-core.js?v=202609301254"></script>
<script src="/assets/js/i18n-wd-faq.js?v=202610010152"></script>
<script src="/assets/js/wd-core.js?v=202610010152"></script>
</body>
</html>
+10 -10
View File
@@ -11,18 +11,18 @@
<title>Dogfather Webdesign — individuelle Webseiten, persönlich umgesetzt</title>
<meta name="description" content="Individuell gebaute Webseiten statt Baukasten: Onepager ab 300 €, professionelle Websites ab 500 €, Shops ab 1.000 €. Klare Preise, klare Zeitrahmen, eine feste Ansprechperson." />
<meta name="robots" content="noindex, nofollow, noarchive" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/webdesign-32.png?v=202609301254" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/webdesign-32.png?v=202610010152" />
<meta name="theme-color" content="#564e95" />
<!-- Als App installierbar auf Handy und Computer. iOS ignoriert das
Manifest für das Startbildschirm-Symbol vollständig und nimmt NUR
apple-touch-icon — deshalb beides. -->
<link rel="manifest" href="/webdesign/app.webmanifest" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/webdesign-180.png?v=202609301254" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/webdesign-180.png?v=202610010152" />
<meta name="apple-mobile-web-app-capable" content="yes" />
<meta name="apple-mobile-web-app-status-bar-style" content="black-translucent" />
<meta name="apple-mobile-web-app-title" content="Dogfather Webdesign" />
<link rel="stylesheet" href="/assets/css/main.css?v=202609301254" />
<link rel="stylesheet" href="/assets/css/webdesign.css?v=202609301254" />
<link rel="stylesheet" href="/assets/css/main.css?v=202610010152" />
<link rel="stylesheet" href="/assets/css/webdesign.css?v=202610010152" />
<style>
/* ---------- Nur auf der Startseite gebraucht ---------- */
@@ -115,7 +115,7 @@
Das Skript ganz unten blendet es nur ein, wenn man in dieser
Browser-Sitzung gerade erst durch die Zugangswand gekommen ist. -->
<div class="wd-intro" id="wd-intro" hidden>
<img class="wd-intro-logo" src="/assets/img/logo-dogfather-transparent.png?v=202609301254" alt="" width="472" height="476" />
<img class="wd-intro-logo" src="/assets/img/logo-dogfather-transparent.png?v=202610010152" alt="" width="472" height="476" />
<p class="wd-intro-gruss" id="wd-intro-gruss">Willkommen</p>
<p class="wd-intro-unter" data-i18n="intro_unter">Dogfather Webdesign — Vorabversion</p>
<button type="button" class="wd-intro-skip" id="wd-intro-skip" data-i18n="intro_ueberspringen">Überspringen</button>
@@ -263,7 +263,7 @@
<div class="wd-grid wd-grid--2" style="margin-top:2.2rem">
<article class="wd-karte wd-projekt wd-auf">
<img class="wd-projekt-bild" src="/assets/img/wd-projekt-universe.jpg?v=202609301254"
<img class="wd-projekt-bild" src="/assets/img/wd-projekt-universe.jpg?v=202610010152"
alt="Startseite von dogfather-universe.com" width="1200" height="750" loading="lazy" decoding="async"
data-i18n-attr="alt:pf_universe_alt" />
<div class="wd-projekt-text">
@@ -289,7 +289,7 @@
Hinweisbalken ganz oben wurde bewusst weggeschnitten — er
gehört nicht in ein Portfolio. -->
<article class="wd-karte wd-karte--lila wd-projekt wd-auf">
<img class="wd-projekt-bild" src="/assets/img/wd-projekt-vandiy.jpg?v=202609301254"
<img class="wd-projekt-bild" src="/assets/img/wd-projekt-vandiy.jpg?v=202610010152"
alt="Startseite von vans-diy-bastelbedarf.com" width="1200" height="696" loading="lazy" decoding="async"
data-i18n-attr="alt:pf_shop_alt" />
<div class="wd-projekt-text">
@@ -357,7 +357,7 @@
<section class="wd-abschnitt wd-abschnitt--gehoben">
<div class="wd-container">
<div class="wd-portrait-grid">
<img class="wd-portrait wd-auf" src="/assets/img/wd-dogfather-portrait.jpg?v=202609301254"
<img class="wd-portrait wd-auf" src="/assets/img/wd-dogfather-portrait.jpg?v=202610010152"
alt="Dogfather" width="900" height="1125" loading="lazy" decoding="async"
data-i18n-attr="alt:wd_foto_alt" />
<div>
@@ -426,8 +426,8 @@
<div id="wd-fuss"></div>
<script src="/assets/js/i18n-wd-index.js?v=202609301254"></script>
<script src="/assets/js/wd-core.js?v=202609301254"></script>
<script src="/assets/js/i18n-wd-index.js?v=202610010152"></script>
<script src="/assets/js/wd-core.js?v=202610010152"></script>
<script>
/* ---------------------------------------------------------------------
Marken-Intro (Masterplan S.3, Schritt 02: "Nach erfolgreichem Code
+6 -6
View File
@@ -11,15 +11,15 @@
<title>Leistungen — Dogfather Webdesign</title>
<meta name="description" content="Onepager, professionelle Website, Shop und Verwaltungsseiten: was jeweils enthalten ist, was extra kostet und wo die Grenze verläuft." />
<meta name="robots" content="noindex, nofollow, noarchive" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/webdesign-32.png?v=202609301254" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/webdesign-32.png?v=202610010152" />
<meta name="theme-color" content="#564e95" />
<link rel="manifest" href="/webdesign/app.webmanifest" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/webdesign-180.png?v=202609301254" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/webdesign-180.png?v=202610010152" />
<meta name="apple-mobile-web-app-capable" content="yes" />
<meta name="apple-mobile-web-app-status-bar-style" content="black-translucent" />
<meta name="apple-mobile-web-app-title" content="Dogfather Webdesign" />
<link rel="stylesheet" href="/assets/css/main.css?v=202609301254" />
<link rel="stylesheet" href="/assets/css/webdesign.css?v=202609301254" />
<link rel="stylesheet" href="/assets/css/main.css?v=202610010152" />
<link rel="stylesheet" href="/assets/css/webdesign.css?v=202610010152" />
<style>
/* Sprungmarken.
Frueher eine waagerecht wischbare Leiste. Rueckmeldung 22.08.2026:
@@ -416,7 +416,7 @@
<div id="wd-fuss"></div>
<script src="/assets/js/i18n-wd-leistungen.js?v=202609301254"></script>
<script src="/assets/js/wd-core.js?v=202609301254"></script>
<script src="/assets/js/i18n-wd-leistungen.js?v=202610010152"></script>
<script src="/assets/js/wd-core.js?v=202610010152"></script>
</body>
</html>
+7 -7
View File
@@ -10,15 +10,15 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0, viewport-fit=cover" />
<title>Kundenportal — Dogfather Webdesign</title>
<meta name="robots" content="noindex, nofollow, noarchive" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/portal-32.png?v=202609301254" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/portal-32.png?v=202610010152" />
<meta name="theme-color" content="#924985" />
<link rel="manifest" href="/webdesign/portal.webmanifest" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/portal-180.png?v=202609301254" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/portal-180.png?v=202610010152" />
<meta name="apple-mobile-web-app-capable" content="yes" />
<meta name="apple-mobile-web-app-status-bar-style" content="black-translucent" />
<meta name="apple-mobile-web-app-title" content="Dogfather Webdesign" />
<link rel="stylesheet" href="/assets/css/main.css?v=202609301254" />
<link rel="stylesheet" href="/assets/css/webdesign.css?v=202609301254" />
<link rel="stylesheet" href="/assets/css/main.css?v=202610010152" />
<link rel="stylesheet" href="/assets/css/webdesign.css?v=202610010152" />
<style>
.po-login { max-width: 440px; margin: clamp(1.5rem,6vh,4rem) auto; }
@@ -199,8 +199,8 @@
<div id="wd-fuss"></div>
<script src="/assets/js/i18n-wd-portal.js?v=202609301254"></script>
<script src="/assets/js/wd-core.js?v=202609301254"></script>
<script src="/assets/js/wd-portal.js?v=202609301254"></script>
<script src="/assets/js/i18n-wd-portal.js?v=202610010152"></script>
<script src="/assets/js/wd-core.js?v=202610010152"></script>
<script src="/assets/js/wd-portal.js?v=202610010152"></script>
</body>
</html>
+12 -12
View File
@@ -11,15 +11,15 @@
<title>Portfolio — Dogfather Webdesign</title>
<meta name="description" content="Echte Projekte statt erfundener Beispiele: Website, Onlineshop, Spieleseite, Buchhaltung, Auswertung und eine Rechtsplattform — jeweils mit Ausgangslage, Lösung und Ergebnis." />
<meta name="robots" content="noindex, nofollow, noarchive" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/webdesign-32.png?v=202609301254" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/webdesign-32.png?v=202610010152" />
<meta name="theme-color" content="#564e95" />
<link rel="manifest" href="/webdesign/app.webmanifest" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/webdesign-180.png?v=202609301254" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/webdesign-180.png?v=202610010152" />
<meta name="apple-mobile-web-app-capable" content="yes" />
<meta name="apple-mobile-web-app-status-bar-style" content="black-translucent" />
<meta name="apple-mobile-web-app-title" content="Dogfather Webdesign" />
<link rel="stylesheet" href="/assets/css/main.css?v=202609301254" />
<link rel="stylesheet" href="/assets/css/webdesign.css?v=202609301254" />
<link rel="stylesheet" href="/assets/css/main.css?v=202610010152" />
<link rel="stylesheet" href="/assets/css/webdesign.css?v=202610010152" />
<style>
/* GENAU zwei Projekte nebeneinander.
@@ -160,7 +160,7 @@
dazukommt. -->
<div class="pfo-raster">
<article class="wd-karte pfo-projekt wd-auf">
<img class="pfo-bild" src="/assets/img/wd-projekt-universe.jpg?v=202609301254"
<img class="pfo-bild" src="/assets/img/wd-projekt-universe.jpg?v=202610010152"
alt="Startseite von dogfather-universe.com" width="1200" height="750" loading="lazy" decoding="async"
data-i18n-attr="alt:p1_alt" />
<div class="pfo-inhalt">
@@ -211,7 +211,7 @@
<!-- ---------------- Projekt 2 ---------------- -->
<article class="wd-karte wd-karte--lila pfo-projekt wd-auf">
<img class="pfo-bild" src="/assets/img/wd-projekt-vandiy.jpg?v=202609301254"
<img class="pfo-bild" src="/assets/img/wd-projekt-vandiy.jpg?v=202610010152"
alt="Startseite von vans-diy-bastelbedarf.com" width="1200" height="696" loading="lazy" decoding="async"
data-i18n-attr="alt:p2_alt" />
<div class="pfo-inhalt">
@@ -261,7 +261,7 @@
<!-- ---------------- Projekt 3 ---------------- -->
<article class="wd-karte wd-karte--aqua pfo-projekt wd-auf">
<img class="pfo-bild" src="/assets/img/wd-projekt-zockeranstalt.jpg?v=202609301254"
<img class="pfo-bild" src="/assets/img/wd-projekt-zockeranstalt.jpg?v=202610010152"
alt="Startseite von zockeranstalt.dogfather-universe.com" width="1200" height="750" loading="lazy" decoding="async"
data-i18n-attr="alt:p3_alt" />
<div class="pfo-inhalt">
@@ -311,7 +311,7 @@
<!-- ---------------- Projekt 4 ---------------- -->
<article class="wd-karte wd-karte--vip pfo-projekt wd-auf">
<img class="pfo-bild" src="/assets/img/wd-projekt-buchhaltung.jpg?v=202609301254"
<img class="pfo-bild" src="/assets/img/wd-projekt-buchhaltung.jpg?v=202610010152"
alt="Anmeldeseite von buchhaltung.vans-diy-bastelbedarf.com" width="1200" height="750" loading="lazy" decoding="async"
data-i18n-attr="alt:p4_alt" />
<div class="pfo-inhalt">
@@ -362,7 +362,7 @@
<!-- ---------------- Projekt 5 ---------------- -->
<article class="wd-karte wd-karte--premium pfo-projekt wd-auf">
<img class="pfo-bild" src="/assets/img/wd-projekt-analyse.jpg?v=202609301254"
<img class="pfo-bild" src="/assets/img/wd-projekt-analyse.jpg?v=202610010152"
alt="Startseite von analyse.dogfather-universe.com, die Gesichter sind zum Schutz der Beteiligten unkenntlich gemacht" width="1200" height="750" loading="lazy" decoding="async"
data-i18n-attr="alt:p5_alt" />
<div class="pfo-inhalt">
@@ -416,7 +416,7 @@
<!-- ---------------- Projekt 6 ---------------- -->
<article class="wd-karte wd-karte--premium pfo-projekt wd-auf">
<img class="pfo-bild" src="/assets/img/wd-projekt-safeaddress.jpg?v=202609301254"
<img class="pfo-bild" src="/assets/img/wd-projekt-safeaddress.jpg?v=202610010152"
alt="Zugangswand von safeaddress.dogfather-universe.com, die Gesichter sind zum Schutz der Beteiligten unkenntlich gemacht" width="1200" height="750" loading="lazy" decoding="async"
data-i18n-attr="alt:p6_alt" />
<div class="pfo-inhalt">
@@ -495,7 +495,7 @@
<div id="wd-fuss"></div>
<script src="/assets/js/i18n-wd-portfolio.js?v=202609301254"></script>
<script src="/assets/js/wd-core.js?v=202609301254"></script>
<script src="/assets/js/i18n-wd-portfolio.js?v=202610010152"></script>
<script src="/assets/js/wd-core.js?v=202610010152"></script>
</body>
</html>
+6 -6
View File
@@ -10,12 +10,12 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0, viewport-fit=cover" />
<title>Impressum, AGB &amp; Datenschutz — Dogfather Webdesign</title>
<meta name="description" content="Impressum, Allgemeine Geschäftsbedingungen, Widerrufsbelehrung und Datenschutzerklärung für Dogfather Webdesign." />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/webdesign-32.png?v=202609301254" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/webdesign-180.png?v=202609301254" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/webdesign-32.png?v=202610010152" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/webdesign-180.png?v=202610010152" />
<link rel="manifest" href="/webdesign/app.webmanifest" />
<meta name="theme-color" content="#564e95" />
<link rel="stylesheet" href="/assets/css/main.css?v=202609301254" />
<link rel="stylesheet" href="/assets/css/webdesign.css?v=202609301254" />
<link rel="stylesheet" href="/assets/css/main.css?v=202610010152" />
<link rel="stylesheet" href="/assets/css/webdesign.css?v=202610010152" />
</head>
<body class="wd">
<div id="wd-kopf"></div>
@@ -409,7 +409,7 @@
<!-- Das Woerterbuch MUSS vor wd-core geladen werden: Der Kern liest
window.I18N_WD beim Uebersetzen, und was noch nicht da ist, kann er
nicht einsetzen. -->
<script src="/assets/js/i18n-wd-rechtliches.js?v=202609301254"></script>
<script src="/assets/js/wd-core.js?v=202609301254"></script>
<script src="/assets/js/i18n-wd-rechtliches.js?v=202610010152"></script>
<script src="/assets/js/wd-core.js?v=202610010152"></script>
</body>
</html>
+1 -1
View File
@@ -34,7 +34,7 @@
Start alle alten Zwischenspeicher weg. Muss bei jeder Änderung an den
Dateien unten hochgezählt werden, sonst hängen Nutzer auf einem alten
Stand fest. */
const CACHE_NAME = "dogfather-webdesign-202609301254";
const CACHE_NAME = "dogfather-webdesign-202610010152";
/* Bausteine, die die Oberfläche zum Anzeigen braucht. Bewusst KEINE
HTML-Datei in dieser Liste. */
+7 -7
View File
@@ -11,15 +11,15 @@
<title>Über Dogfather — Dogfather Webdesign</title>
<meta name="description" content="Keine Agentur, keine Ticketnummer: wer hier baut, wie gearbeitet wird und woran das gelernt wurde." />
<meta name="robots" content="noindex, nofollow, noarchive" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/webdesign-32.png?v=202609301254" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/webdesign-32.png?v=202610010152" />
<meta name="theme-color" content="#564e95" />
<link rel="manifest" href="/webdesign/app.webmanifest" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/webdesign-180.png?v=202609301254" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/webdesign-180.png?v=202610010152" />
<meta name="apple-mobile-web-app-capable" content="yes" />
<meta name="apple-mobile-web-app-status-bar-style" content="black-translucent" />
<meta name="apple-mobile-web-app-title" content="Dogfather Webdesign" />
<link rel="stylesheet" href="/assets/css/main.css?v=202609301254" />
<link rel="stylesheet" href="/assets/css/webdesign.css?v=202609301254" />
<link rel="stylesheet" href="/assets/css/main.css?v=202610010152" />
<link rel="stylesheet" href="/assets/css/webdesign.css?v=202610010152" />
<style>
.ue-kopf { display: grid; grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr); gap: clamp(1.5rem, 4vw, 3rem); align-items: center; }
/* Auf dem Handy zuerst der Text, dann das Bild: sonst schiebt ein
@@ -48,7 +48,7 @@
<div class="wd-container">
<div class="ue-kopf">
<div class="ue-kopf-bild">
<img class="ue-portrait wd-auf" src="/assets/img/wd-dogfather-portrait.jpg?v=202609301254"
<img class="ue-portrait wd-auf" src="/assets/img/wd-dogfather-portrait.jpg?v=202610010152"
alt="Dogfather" width="900" height="1125" fetchpriority="high" decoding="async"
data-i18n-attr="alt:ue_foto_alt" />
</div>
@@ -146,7 +146,7 @@
<div id="wd-fuss"></div>
<script src="/assets/js/i18n-wd-ueber.js?v=202609301254"></script>
<script src="/assets/js/wd-core.js?v=202609301254"></script>
<script src="/assets/js/i18n-wd-ueber.js?v=202610010152"></script>
<script src="/assets/js/wd-core.js?v=202610010152"></script>
</body>
</html>
+22 -22
View File
@@ -10,7 +10,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0, viewport-fit=cover" />
<title>Verwaltung — Dogfather Webdesign</title>
<meta name="robots" content="noindex, nofollow, noarchive" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/wdverwalt-32.png?v=202609301254" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/wdverwalt-32.png?v=202610010152" />
<meta name="theme-color" content="#b44f5e" />
<!-- EIGENES Manifest, nicht das des Webdesign-Bereichs (26.08.2026).
@@ -34,11 +34,11 @@
Nachgemessen, nicht vermutet: verwaltung.html antwortet ohne
Ausweis mit 302 auf zugang.html. -->
<link rel="manifest" href="/webdesign/verwaltung.webmanifest" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/wdverwalt-180.png?v=202609301254" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/wdverwalt-180.png?v=202610010152" />
<meta name="apple-mobile-web-app-capable" content="yes" />
<meta name="apple-mobile-web-app-title" content="DF Verwaltung" />
<link rel="stylesheet" href="/assets/css/main.css?v=202609301254" />
<link rel="stylesheet" href="/assets/css/webdesign.css?v=202609301254" />
<link rel="stylesheet" href="/assets/css/main.css?v=202610010152" />
<link rel="stylesheet" href="/assets/css/webdesign.css?v=202610010152" />
<style>
/* =====================================================================
Verwaltungsbereich — bewusst NUR AUF DEUTSCH.
@@ -106,32 +106,32 @@
:root {
/* Rueckfall, falls das Kennzeichen mal fehlt: Dann sieht es aus wie
die Uebersicht, statt gar nicht. */
--vw-motiv: url("/assets/img/cryo-wappen.webp?v=202609301254");
--vw-motiv-klein: url("/assets/img/cryo-wappen-klein.webp?v=202609301254");
--vw-motiv: url("/assets/img/cryo-wappen.webp?v=202610010152");
--vw-motiv-klein: url("/assets/img/cryo-wappen-klein.webp?v=202610010152");
--vw-farbe: var(--wd-blau-rgb);
--vw-blick: center top;
}
[data-vw-bereich="uebersicht"] {
--vw-motiv: url("/assets/img/cryo-wappen.webp?v=202609301254");
--vw-motiv-klein: url("/assets/img/cryo-wappen-klein.webp?v=202609301254");
--vw-motiv: url("/assets/img/cryo-wappen.webp?v=202610010152");
--vw-motiv-klein: url("/assets/img/cryo-wappen-klein.webp?v=202610010152");
--vw-farbe: var(--wd-blau-rgb);
--vw-blick: 76% 52%;
}
[data-vw-bereich="anfragen"] {
--vw-motiv: url("/assets/img/cryo-ring.webp?v=202609301254");
--vw-motiv-klein: url("/assets/img/cryo-ring-klein.webp?v=202609301254");
--vw-motiv: url("/assets/img/cryo-ring.webp?v=202610010152");
--vw-motiv-klein: url("/assets/img/cryo-ring-klein.webp?v=202610010152");
--vw-farbe: var(--wd-aqua-rgb);
--vw-blick: 72% 46%;
}
[data-vw-bereich="projekte"] {
--vw-motiv: url("/assets/img/cryo-monolith.webp?v=202609301254");
--vw-motiv-klein: url("/assets/img/cryo-monolith-klein.webp?v=202609301254");
--vw-motiv: url("/assets/img/cryo-monolith.webp?v=202610010152");
--vw-motiv-klein: url("/assets/img/cryo-monolith-klein.webp?v=202610010152");
--vw-farbe: var(--wd-lila-rgb);
--vw-blick: 80% 46%;
}
[data-vw-bereich="kunden"] {
--vw-motiv: url("/assets/img/cryo-thron.webp?v=202609301254");
--vw-motiv-klein: url("/assets/img/cryo-thron-klein.webp?v=202609301254");
--vw-motiv: url("/assets/img/cryo-thron.webp?v=202610010152");
--vw-motiv-klein: url("/assets/img/cryo-thron-klein.webp?v=202610010152");
/* Prism Indigo -- hier unbedenklich, weil es NUR Flaeche und Kante
faerbt. Als Schriftfarbe faellt es durch (3,25:1), deshalb steht
weiter unten ausdruecklich, dass die Schrift davon unberuehrt
@@ -140,8 +140,8 @@
--vw-blick: 84% 52%;
}
[data-vw-bereich="zahlungen"] {
--vw-motiv: url("/assets/img/cryo-kristall.webp?v=202609301254");
--vw-motiv-klein: url("/assets/img/cryo-kristall-klein.webp?v=202609301254");
--vw-motiv: url("/assets/img/cryo-kristall.webp?v=202610010152");
--vw-motiv-klein: url("/assets/img/cryo-kristall-klein.webp?v=202610010152");
--vw-farbe: var(--wd-gold-rgb);
/* Oberer Streifen: zeigt die geschwungenen Kristallbänder statt der
flachen Mitte -- siehe die .vw-buehne-Ausnahme weiter unten, die
@@ -149,8 +149,8 @@
--vw-blick: center 15%;
}
[data-vw-bereich="postfach"] {
--vw-motiv: url("/assets/img/cryo-ring.webp?v=202609301254");
--vw-motiv-klein: url("/assets/img/cryo-ring-klein.webp?v=202609301254");
--vw-motiv: url("/assets/img/cryo-ring.webp?v=202610010152");
--vw-motiv-klein: url("/assets/img/cryo-ring-klein.webp?v=202610010152");
--vw-farbe: var(--wd-ion-rgb);
/* Bewusst der andere Bildrand als bei "Anfragen": gleiches Bild,
voellig anderer Ausschnitt. */
@@ -190,7 +190,7 @@
inset: 0;
z-index: 0;
pointer-events: none;
background: var(--vw-motiv, url("/assets/img/cryo-wappen.webp?v=202609301254"))
background: var(--vw-motiv, url("/assets/img/cryo-wappen.webp?v=202610010152"))
center center / cover no-repeat;
/* Kein Zoom: "cover" zeigt bei einem 16:9-Motiv auf einem
ueblichen Bildschirm praktisch das ganze Bild. */
@@ -298,7 +298,7 @@
deshalb hier der Bildmittelpunkt, wo bei allen Motiven das
Hauptgeschehen sitzt. */
.vw-buehne {
background-image: var(--vw-motiv-klein, url("/assets/img/cryo-wappen-klein.webp?v=202609301254"));
background-image: var(--vw-motiv-klein, url("/assets/img/cryo-wappen-klein.webp?v=202610010152"));
background-position: center center;
}
/* Auf kleinen Schirmen liegt mehr Inhalt uebereinander, also etwas
@@ -942,7 +942,7 @@
rgb(3 8 16 / .92) 100%);
}
@media (max-width: 900px) {
.vw-login.wd-motiv::before { background-image: url("/assets/img/cryo-wappen-klein.webp?v=202609301254"); }
.vw-login.wd-motiv::before { background-image: url("/assets/img/cryo-wappen-klein.webp?v=202610010152"); }
}
/* ---------- Kopfleiste ---------- */
@@ -2395,7 +2395,7 @@
<div class="vw-detail-blatt" id="vw-detail-blatt"></div>
</div>
<script src="/assets/js/wd-core.js?v=202609301254"></script>
<script src="/assets/js/wd-core.js?v=202610010152"></script>
<script>
/* =====================================================================
Verwaltung: Anfragen ansehen, Status ändern, Notizen, Archivieren.
+7 -7
View File
@@ -11,12 +11,12 @@
<title>Vertrag widerrufen — Dogfather Webdesign</title>
<meta name="description" content="Elektronische Widerrufsfunktion nach § 356a BGB — Vertrag online widerrufen, mit sofortiger Eingangsbestätigung." />
<meta name="robots" content="noindex, follow" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/webdesign-32.png?v=202609301254" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/webdesign-180.png?v=202609301254" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/webdesign-32.png?v=202610010152" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/webdesign-180.png?v=202610010152" />
<link rel="manifest" href="/webdesign/app.webmanifest" />
<meta name="theme-color" content="#564e95" />
<link rel="stylesheet" href="/assets/css/main.css?v=202609301254" />
<link rel="stylesheet" href="/assets/css/webdesign.css?v=202609301254" />
<link rel="stylesheet" href="/assets/css/main.css?v=202610010152" />
<link rel="stylesheet" href="/assets/css/webdesign.css?v=202610010152" />
</head>
<body class="wd">
<div id="wd-kopf"></div>
@@ -143,8 +143,8 @@
<div id="wd-fuss"></div>
<script src="/assets/js/i18n-wd-widerruf.js?v=202609301254"></script>
<script src="/assets/js/wd-core.js?v=202609301254"></script>
<script src="/assets/js/wd-widerruf.js?v=202609301254"></script>
<script src="/assets/js/i18n-wd-widerruf.js?v=202610010152"></script>
<script src="/assets/js/wd-core.js?v=202610010152"></script>
<script src="/assets/js/wd-widerruf.js?v=202610010152"></script>
</body>
</html>
+9 -9
View File
@@ -14,7 +14,7 @@
nicht ausgeliefert wird; dieses meta wirkt auch dann, wenn die Datei
einmal ohne den Server geöffnet wird. -->
<meta name="robots" content="noindex, nofollow, noarchive" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/webdesign-32.png?v=202609301254" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/webdesign-32.png?v=202610010152" />
<meta name="theme-color" content="#564e95" />
<!-- Auch hier Manifest und Symbol: die Zugangswand ist der ERSTE
Bildschirm überhaupt, also auch der, von dem aus installiert wird.
@@ -22,12 +22,12 @@
und führte dazu, dass eine Installation nur eine nackte Verknüpfung
ohne Symbol ergab. -->
<link rel="manifest" href="/webdesign/app.webmanifest" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/webdesign-180.png?v=202609301254" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/webdesign-180.png?v=202610010152" />
<meta name="apple-mobile-web-app-capable" content="yes" />
<meta name="apple-mobile-web-app-status-bar-style" content="black-translucent" />
<meta name="apple-mobile-web-app-title" content="Dogfather Webdesign" />
<link rel="stylesheet" href="/assets/css/main.css?v=202609301254" />
<link rel="stylesheet" href="/assets/css/webdesign.css?v=202609301254" />
<link rel="stylesheet" href="/assets/css/main.css?v=202610010152" />
<link rel="stylesheet" href="/assets/css/webdesign.css?v=202610010152" />
<style>
/* =====================================================================
Zugangswand — nur hier gebraucht, deshalb bewusst NICHT in
@@ -115,7 +115,7 @@
<div class="zg-mitte">
<div class="zg-logo">
<img src="/assets/img/logo-dogfather-transparent.png?v=202609301254" alt="" width="472" height="476" />
<img src="/assets/img/logo-dogfather-transparent.png?v=202610010152" alt="" width="472" height="476" />
</div>
<span class="wd-eyebrow" data-i18n="zg_eyebrow">Nicht öffentlich bis zur Freigabe</span>
@@ -127,7 +127,7 @@
<!-- Karte 1: Dogfather -->
<form class="wd-karte wd-karte--kappe zg-karte zg-karte--dogfather" id="zg-form-dogfather" novalidate>
<div class="zg-karte-kopf">
<img class="zg-foto" src="/assets/img/wd-dogfather-karte.jpg?v=202609301254" alt="" width="76" height="76" />
<img class="zg-foto" src="/assets/img/wd-dogfather-karte.jpg?v=202610010152" alt="" width="76" height="76" />
<div>
<h2 class="zg-name" data-i18n="zg_dogfather">Dogfather</h2>
<p class="zg-rolle" data-i18n="zg_rolle">Volladministrator</p>
@@ -152,7 +152,7 @@
<!-- Karte 2: VanVan — gleiche Struktur, gleiche Rechte, eigene Farbwelt -->
<form class="wd-karte wd-karte--lila wd-karte--kappe zg-karte zg-karte--vanvan" id="zg-form-vanvan" novalidate>
<div class="zg-karte-kopf">
<img class="zg-foto" src="/assets/img/wd-vanvan-karte.jpg?v=202609301254" alt="" width="76" height="76" />
<img class="zg-foto" src="/assets/img/wd-vanvan-karte.jpg?v=202610010152" alt="" width="76" height="76" />
<div>
<h2 class="zg-name" data-i18n="zg_vanvan">VanVan</h2>
<p class="zg-rolle" data-i18n="zg_rolle">Volladministrator</p>
@@ -182,8 +182,8 @@
</div>
</main>
<script src="/assets/js/i18n-wd-zugang.js?v=202609301254"></script>
<script src="/assets/js/wd-core.js?v=202609301254"></script>
<script src="/assets/js/i18n-wd-zugang.js?v=202610010152"></script>
<script src="/assets/js/wd-core.js?v=202610010152"></script>
<script>
(function () {
"use strict";