Geviertstriche aus Text, Kommentaren und Doku entfernen

467 Stellen. Nicht durch einen anderen Strich ersetzt, sondern durch das
Satzzeichen, das an der jeweiligen Stelle richtig ist: Doppelpunkt, wo eine
Erlaeuterung folgt; Komma, wo der Satz weiterlaeuft; Punkt, wo zwei
Hauptsaetze aneinanderstiessen. Ein Halbgeviertstrich waere nur derselbe
Griff mit kuerzerem Strich gewesen.

Regelbasiert ersetzt und danach nachgeprueft, weil eine Regel allein nicht
reicht. Gefunden und einzeln korrigiert:

- Eingeschobene Saetze mit Strichpaar. Nur der oeffnende Strich passte ins
  Muster, der schliessende blieb als "—," stehen. Drei Stellen, jetzt mit
  Klammern oder als eigener Satz.

- Doppelte Doppelpunkte, wo beide Striche eines Paars zu Doppelpunkten wurden
  ("Globale Regeln: Schrift, Groessen, Abstaende: kommen aus HiveGrid").
  Sieben Stellen in Doku und Oberflaeche, jetzt in Klammern.

- Pfade, denen ein Komma statt eines Doppelpunkts folgte.

- Ausgerichtete Kommentartabellen, in denen der Strich eine Spalte war.

Nicht angefasst: drei Geviertstriche, die keine Prosa sind, sondern
Tabellenplatzhalter fuer "kein Wert" (Trichter, Auftraege, Kunden). Dort ist
der Strich die Angabe selbst; ihn zu entfernen liesse leere Zellen zurueck.

tsc, lint, build, verify:carbon und verify:layout laufen sauber.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01QPeZNwSeU7qG3RRCwaxEZX
This commit is contained in:
dejanandClaude Opus 5 committed 2026-08-31 20:51:19 +02:00
1 parent e998231fed
commit 6a0b36ddcc
75 files changed
+471 -471

No files matched your search

+5 -5
View File
@@ -48,7 +48,7 @@ if (!palette) {
} else {
palette.forEach((farbe, i) => {
if (farbe !== soll[i]) {
fehler.push(`Palette Position ${i + 1}: ${farbe} — Carbon: ${soll[i]}`);
fehler.push(`Palette Position ${i + 1}: ${farbe}: Carbon: ${soll[i]}`);
}
});
}
@@ -68,7 +68,7 @@ for (const [feld, refName] of Object.entries(neutraleZuordnung)) {
if (ist === null) fehler.push(`CHART.${feld} nicht gefunden`);
else if (ist !== sollWert) {
fehler.push(
`CHART.${feld} = ${ist} — Carbon ${referenz.neutraleWerte[refName].token}: ${sollWert}`
`CHART.${feld} = ${ist}: Carbon ${referenz.neutraleWerte[refName].token}: ${sollWert}`
);
}
}
@@ -79,11 +79,11 @@ const tooltipBg = hexFeld("CHART", "tooltipBg");
const tooltipFg = hexFeld("CHART", "tooltipFg");
if (tooltipBg !== referenz.tooltip.hintergrund.wert.toLowerCase()) {
fehler.push(
`CHART.tooltipBg = ${tooltipBg} — Carbon ${referenz.tooltip.hintergrund.token}: ${referenz.tooltip.hintergrund.wert}`
`CHART.tooltipBg = ${tooltipBg}: Carbon ${referenz.tooltip.hintergrund.token}: ${referenz.tooltip.hintergrund.wert}`
);
}
if (tooltipFg !== referenz.tooltip.text.wert.toLowerCase()) {
fehler.push(`CHART.tooltipFg = ${tooltipFg} — Carbon: ${referenz.tooltip.text.wert}`);
fehler.push(`CHART.tooltipFg = ${tooltipFg}: Carbon: ${referenz.tooltip.text.wert}`);
}
/* ------------------------------------------------- Achsen-Tickanzahl */
@@ -91,7 +91,7 @@ if (tooltipFg !== referenz.tooltip.text.wert.toLowerCase()) {
const raster = theme.match(/nettesRaster\(\s*\n?\s*max: number,\s*\n?\s*maxIntervalle = (\d+)/);
if (raster && Number(raster[1]) !== referenz.achsen.ticksYAchse) {
fehler.push(
`nettesRaster maxIntervalle = ${raster[1]} — Carbon numberOfTicks (y): ${referenz.achsen.ticksYAchse}`
`nettesRaster maxIntervalle = ${raster[1]}: Carbon numberOfTicks (y): ${referenz.achsen.ticksYAchse}`
);
}
+5 -5
View File
@@ -4,7 +4,7 @@
*
* Warum: Textkollisionen treten nur in bestimmten Fensterbreiten auf. Ein
* Screenshot bei 1600 px zeigt sie nicht, bei 1280 px schon. Auge und
* Einzelscreenshot reichen dafür nicht — das muss gemessen werden.
* Einzelscreenshot reichen dafür nicht, das muss gemessen werden.
*
* Gemessen wird auf Textzeilen (Range.getClientRects), nicht auf Elementkästen:
* Sonst melden benachbarte Tabellenzellen mit Innenabstand falsch positiv.
@@ -49,7 +49,7 @@ const messen = (MIN) => {
if (st.visibility === "hidden" || st.opacity === "0") continue;
// Absichtlich bündige Flächen (Segment-Control) ausnehmen
if (el.closest("[data-buendig]")) continue;
// Nächster Blockcontainer — Wörter innerhalb eines Satzes sind keine Kollision
// Nächster Blockcontainer: Wörter innerhalb eines Satzes sind keine Kollision
let block = el;
while (block && block !== document.body && getComputedStyle(block).display.startsWith("inline")) {
block = block.parentElement;
@@ -92,7 +92,7 @@ const messen = (MIN) => {
}
}
// Die Seite selbst darf nie seitlich scrollen — ein waagerechter
// Die Seite selbst darf nie seitlich scrollen, ein waagerechter
// Scrollbalken auf Dokumentebene ist immer ein Fehler, kein Kompromiss.
const doc = document.documentElement;
const seitenUeberlauf = doc.scrollWidth > doc.clientWidth + 1 ? doc.scrollWidth - doc.clientWidth : 0;
@@ -119,7 +119,7 @@ for (const breite of BREITEN) {
for (const pfad of SEITEN) {
const antwort = await seite.goto(BASIS + pfad, { waitUntil: "networkidle" });
if (!antwort || antwort.status() >= 400) {
console.error(`✗ ${pfad} antwortet mit ${antwort?.status() ?? "keiner Antwort"} — Route existiert nicht.`);
console.error(`✗ ${pfad} antwortet mit ${antwort?.status() ?? "keiner Antwort"}: Route existiert nicht.`);
process.exit(1);
}
await seite.waitForTimeout(500);
@@ -170,4 +170,4 @@ if (liste.length) {
console.error(`\n✗ ${liste.length} Layoutfehler. Mindestabstand ist ${MIN_ABSTAND} px (Carbon $spacing-03).`);
process.exit(1);
}
console.log(`✓ Kein kollidierender Text, kein Überlauf — ${SEITEN.length} Seiten × ${BREITEN.length} Breiten (${BREITEN[0]}–${BREITEN.at(-1)} px).`);
console.log(`✓ Kein kollidierender Text, kein Überlauf: ${SEITEN.length} Seiten × ${BREITEN.length} Breiten (${BREITEN[0]}–${BREITEN.at(-1)} px).`);