Anfuehrungszeichen: drei Loecher in meiner eigenen Wache

Die zweite Sitzung hat in den Praesentationen des Vaults 83 Stellen
gefunden — und damit auf Loecher in MEINER Wache gezeigt. Ich habe
sie nachgemessen, alle drei waren echt.

LOCH 1 — SIE SAH NUR `server/workspace-*.js`

Also ausgerechnet nicht `workspace.js`, die groesste Datei des
Hauses. Der weitere Filter fand dort sofort drei Stellen:

    workspace.js:3404  Kanal „Chat-Moderation"     (Protokoll)
    workspace.js:3422  „${titel}" -> ${haus}       (Protokoll)
    workspace.js:3304  „${… || "ohne Titel"}"      (siehe Loch 3)

Das ist heute der DRITTE Fall von „die Wache kennt nur die halbe
Menge" — nach pruef-struktur (sah nur die Pruefdateien, nicht die
Anwendung) und pruef-fingermass (sah keine variable Breite).

LOCH 2 — IHR AUSDRUCK GILT JE ZEILE

Ein `„`, das erst in der naechsten Zeile mit einem geraden `"`
schliesst, fiel durch. Gemessen: drei echte Faelle, zwei davon
sichtbarer Seitentext.

    workspace/leistung.html       „nicht / zugeordnet"
    workspace/leistung.html       „Backstage-Tabelle / einfuegen"
    workspace/assets/js/ampel.js  „noch ' + 'verbessern"

Beim letzten laeuft das Zitat ueber eine Zeichenketten-Verkettung.

Neue Regel ohne Fehlalarme: erst alle RICHTIG geschlossenen Paare
entfernen (auch mehrzeilig), dann die einzeilig falschen (die meldet
die alte Regel). Was danach noch ein `„` hat und binnen drei Zeilen
ein gerades `"`, ist ein Fund. Ausgenommen bleibt das Zeichen ALS
WERT — in `content: "„";` und in den Sprachtabellen ist das `„` der
Inhalt und das `"` die Begrenzung.

LOCH 3 — EINE AUSNAHME, DIE EINEN FUND VERSCHLUCKT HAT

Gefunden durch die ZAHL, nicht durch den Blick: Der weitere Filter
liess die Ausnahmen von 12 auf 13 steigen. Die dreizehnte war

    `… „${zeile[titelSpalte] || "ohne Titel"}"`

Der Ausdruck blieb am `"` von `"ohne Titel"` haengen; als Inhalt kam
`${zeile[titelSpalte] || ` heraus, das endet auf ein Leerzeichen,
und damit galt „der Satz geht in der naechsten Zeile weiter". Das
echte Schlusszeichen stand hinter dem `}` und war gerade.

Dass die Ausnahmen gezaehlt UND genannt werden, hat ihn gefunden.
Genau dafuer steht die Zeile dort.

Behoben an der Wurzel: Anfuehrungszeichen innerhalb einer Einsetzung
`${…}` werden vorher durch X ersetzt, bei gleicher Laenge und
gleichen Zeilenumbruechen. Das nimmt einer ganzen Sorte
Fehlklassifizierung die Grundlage — die Ausnahmen fielen danach von
13 auf 11.

UND EIN VIERTES, BEIM MESSEN AUFGEFALLEN

`„Van-Van”` in assets/js/data-modis.js schliesst mit U+201D, dem
ENGLISCHEN Zeichen. Zweimal, beide Male in einer DEUTSCHEN Zeile
(`de:` und `"de-CH":`) — nicht einmal eine Uebersetzung, in der es
richtig waere. Eigene Regel dafuer, die keine Ausnahme braucht: Wer
mit `„` oeffnet, schliesst deutsch; in fremdsprachigen Zeilen steht
gar kein `„` am Anfang.

DIE AUSNAHMEZAHL IST JETZT STRENG. Sie stand auf „hoechstens 12" —
damit waere der Anstieg auf 13 nicht aufgefallen. Jetzt genau 11,
wie bei den Grundlinien in pruef-fingermass.

GEPRUEFT: pruef-struktur 68 -> 75 Pruefungen, 0 Fehler. Dazu
leistung-optik 59/0, ampel 47/0, treff 85/0, modi-verborgen 87/0 —
die Seiten, deren Text ich angefasst habe. Steuerzeichen: 830
Dateien, keines. Beide Stempel gesetzt.

Sechs echte Stellen berichtigt, vier neue Gegenproben.

Co-Authored-By: Claude Opus 5 <[email protected]>
This commit is contained in:
2026-10-01 19:28:38 +02:00
co-authored by Claude Opus 5
parent 2b3f140112
commit 1afb38258c
99 changed files with 1392 additions and 1210 deletions
+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=202610010152" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/wdverwalt-32.png?v=202610011927" />
<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=202610010152" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/wdverwalt-180.png?v=202610011927" />
<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=202610010152" />
<link rel="stylesheet" href="/assets/css/webdesign.css?v=202610010152" />
<link rel="stylesheet" href="/assets/css/main.css?v=202610011927" />
<link rel="stylesheet" href="/assets/css/webdesign.css?v=202610011927" />
<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=202610010152");
--vw-motiv-klein: url("/assets/img/cryo-wappen-klein.webp?v=202610010152");
--vw-motiv: url("/assets/img/cryo-wappen.webp?v=202610011927");
--vw-motiv-klein: url("/assets/img/cryo-wappen-klein.webp?v=202610011927");
--vw-farbe: var(--wd-blau-rgb);
--vw-blick: center top;
}
[data-vw-bereich="uebersicht"] {
--vw-motiv: url("/assets/img/cryo-wappen.webp?v=202610010152");
--vw-motiv-klein: url("/assets/img/cryo-wappen-klein.webp?v=202610010152");
--vw-motiv: url("/assets/img/cryo-wappen.webp?v=202610011927");
--vw-motiv-klein: url("/assets/img/cryo-wappen-klein.webp?v=202610011927");
--vw-farbe: var(--wd-blau-rgb);
--vw-blick: 76% 52%;
}
[data-vw-bereich="anfragen"] {
--vw-motiv: url("/assets/img/cryo-ring.webp?v=202610010152");
--vw-motiv-klein: url("/assets/img/cryo-ring-klein.webp?v=202610010152");
--vw-motiv: url("/assets/img/cryo-ring.webp?v=202610011927");
--vw-motiv-klein: url("/assets/img/cryo-ring-klein.webp?v=202610011927");
--vw-farbe: var(--wd-aqua-rgb);
--vw-blick: 72% 46%;
}
[data-vw-bereich="projekte"] {
--vw-motiv: url("/assets/img/cryo-monolith.webp?v=202610010152");
--vw-motiv-klein: url("/assets/img/cryo-monolith-klein.webp?v=202610010152");
--vw-motiv: url("/assets/img/cryo-monolith.webp?v=202610011927");
--vw-motiv-klein: url("/assets/img/cryo-monolith-klein.webp?v=202610011927");
--vw-farbe: var(--wd-lila-rgb);
--vw-blick: 80% 46%;
}
[data-vw-bereich="kunden"] {
--vw-motiv: url("/assets/img/cryo-thron.webp?v=202610010152");
--vw-motiv-klein: url("/assets/img/cryo-thron-klein.webp?v=202610010152");
--vw-motiv: url("/assets/img/cryo-thron.webp?v=202610011927");
--vw-motiv-klein: url("/assets/img/cryo-thron-klein.webp?v=202610011927");
/* 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=202610010152");
--vw-motiv-klein: url("/assets/img/cryo-kristall-klein.webp?v=202610010152");
--vw-motiv: url("/assets/img/cryo-kristall.webp?v=202610011927");
--vw-motiv-klein: url("/assets/img/cryo-kristall-klein.webp?v=202610011927");
--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=202610010152");
--vw-motiv-klein: url("/assets/img/cryo-ring-klein.webp?v=202610010152");
--vw-motiv: url("/assets/img/cryo-ring.webp?v=202610011927");
--vw-motiv-klein: url("/assets/img/cryo-ring-klein.webp?v=202610011927");
--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=202610010152"))
background: var(--vw-motiv, url("/assets/img/cryo-wappen.webp?v=202610011927"))
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=202610010152"));
background-image: var(--vw-motiv-klein, url("/assets/img/cryo-wappen-klein.webp?v=202610011927"));
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=202610010152"); }
.vw-login.wd-motiv::before { background-image: url("/assets/img/cryo-wappen-klein.webp?v=202610011927"); }
}
/* ---------- Kopfleiste ---------- */
@@ -2395,7 +2395,7 @@
<div class="vw-detail-blatt" id="vw-detail-blatt"></div>
</div>
<script src="/assets/js/wd-core.js?v=202610010152"></script>
<script src="/assets/js/wd-core.js?v=202610011927"></script>
<script>
/* =====================================================================
Verwaltung: Anfragen ansehen, Status ändern, Notizen, Archivieren.