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]>
88 lines
4.0 KiB
HTML
88 lines
4.0 KiB
HTML
<!doctype html>
|
|
<html lang="de">
|
|
<head>
|
|
<meta charset="utf-8" />
|
|
<meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover" />
|
|
<title>Willkommen · Team Dogi</title>
|
|
<meta name="robots" content="noindex, nofollow" />
|
|
<!-- app.webmanifest, NICHT crew.webmanifest -- die Adresse biegt es um.
|
|
Der Server ersetzt den Pfad auf crew. an EINER Stelle
|
|
(crew-adresse.js). Wer hier das Crew-Manifest direkt nennt,
|
|
macht daraus eine zweite Stelle, die beim naechsten Umbau
|
|
vergessen wird. -->
|
|
<link rel="manifest" href="/workspace/app.webmanifest" />
|
|
<meta name="theme-color" content="#06090f" />
|
|
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202610010152" />
|
|
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202610010152" />
|
|
<link rel="stylesheet" href="assets/css/gate.css?v=202610010152" />
|
|
<link rel="stylesheet" href="assets/css/start.css?v=202610010152" />
|
|
<link rel="stylesheet" href="assets/css/willkommen.css?v=202610010152" />
|
|
<link rel="stylesheet" href="assets/css/module.css?v=202610010152" />
|
|
<link rel="stylesheet" href="assets/css/haus.css?v=202610010152" />
|
|
</head>
|
|
<!-- KOERPERKLASSE "start", NICHT "gate" (berichtigt 21.09.2026).
|
|
`body.gate` ist die Anmeldewand: `display:flex; align-items:center`,
|
|
gedacht fuer EINE zentrierte Karte. Damit standen Kopfleiste und
|
|
Inhalt NEBENEINANDER -- am Handy blieben dem Text 260 von 390
|
|
Pixeln, am Rechner klebte alles am rechten Rand. Gesehen hat das
|
|
kein gruener Haken, sondern das Bildschirmfoto. -->
|
|
<body class="start" data-ton="34" data-buehne="lounge">
|
|
|
|
<div class="schleier" aria-hidden="true"></div>
|
|
|
|
<header class="kopfleiste">
|
|
<button type="button" class="zurueck-knopf" id="zurueck">
|
|
<svg viewBox="0 0 24 24" aria-hidden="true"><path d="M15 5l-7 7 7 7"/></svg>
|
|
<span class="zurueck-knopf__text">Übersicht</span>
|
|
</button>
|
|
<p class="marke"><span class="marke__text"><a class="zurueck" href="start.html">Team Dogi</a> · Willkommen</span></p>
|
|
<div class="kopfleiste__rechts">
|
|
<span class="wer" id="wer">…</span>
|
|
<button type="button" class="abmelden" id="abmelden">Abmelden</button>
|
|
</div>
|
|
</header>
|
|
|
|
<main class="inhalt" id="haupt" aria-busy="true">
|
|
|
|
<!-- DIE BEGRÜSSUNG.
|
|
|
|
Der Name steht NICHT im HTML, sondern kommt vom Server -- eine
|
|
Seite, die jeder herunterlädt, soll keinen fremden Namen
|
|
enthalten. Bis er da ist, steht hier ein Satz, der auch ohne
|
|
Namen stimmt: "Willkommen!" ist nie falsch. -->
|
|
<section class="w-gruss">
|
|
<h1 class="w-gruss__titel" id="gruss">Willkommen!</h1>
|
|
<p class="w-gruss__rolle" id="rollentext" hidden></p>
|
|
<p class="w-gruss__was" id="einleitung-was"></p>
|
|
<p class="w-gruss__dazu" id="einleitung-dazu"></p>
|
|
</section>
|
|
|
|
<!-- Die Hinweise, die zur Rolle gehören und zu keiner Kachel. -->
|
|
<section class="w-hinweise" id="hinweise" hidden></section>
|
|
|
|
<!-- DIE KACHELN, ERKLÄRT. Sie werden aus derselben Liste gebaut wie
|
|
die Startseite -- deshalb steht hier nur der leere Behälter. -->
|
|
<section class="w-bereiche">
|
|
<h2 class="w-bereiche__titel">Was es hier gibt</h2>
|
|
<p class="w-bereiche__satz" id="bereiche-satz">
|
|
Jede Kachel, die für dich freigeschaltet ist — und wofür sie da ist.
|
|
Tipp eine an, um hinzugehen.
|
|
</p>
|
|
<div id="gruppen"></div>
|
|
</section>
|
|
|
|
<p class="w-laedt" id="laedt">Einen Moment …</p>
|
|
<p class="fehler" id="fehler" hidden></p>
|
|
</main>
|
|
|
|
<script src="assets/js/meldung.js?v=202610010152" defer></script>
|
|
<script src="assets/js/bereiche.js?v=202610010152" defer></script>
|
|
<script src="assets/js/wahl.js?v=202610010152" defer></script>
|
|
<script src="assets/js/nachfrage.js?v=202610010152" defer></script>
|
|
<script src="assets/js/installieren.js?v=202610010152" defer></script>
|
|
<script src="assets/js/kopf.js?v=202610010152" defer></script>
|
|
<script src="assets/js/glocke.js?v=202610010152" defer></script>
|
|
<script src="assets/js/willkommen.js?v=202610010152" defer></script>
|
|
</body>
|
|
</html>
|