Filipe, 27.09.2026: „nimm dann doch die seiten vom community bereich
ne?"
Er hatte recht, und es war derselbe Fehler noch einmal. Beim ersten
Mal stand die Buehne in einer Farbe aus einem fremden Bereich
(#9cde90, die Notizen-Kachel aus dem Team). Beim zweiten Mal stand
sie in EINER Farbe fuer alles -- und jeder Bereich des Treffs hat
seine eigene:
Rudel-Chat #5499ff Wunschliste #abff96
Highlights #f60684 Dogi-Media #918a01
Anschlagbrett #ffabff Mitmachen #577ecc
Was ansteht #2dc9ba Unterstuetzen #e76006
Ein Video ueber Dogi-Media mit violetten Einblendungen sind zwei
Sachen nebeneinander. Mit der Farbe des Bereichs ist es eine.
ABGELESEN, NICHT ABGESCHRIEBEN
Die Buehne fragt nach jedem Seitenwechsel
`getComputedStyle(document.body).--ton` -- genau den Wert, den die
Seite selbst benutzt. Eine Liste hier waere eine zweite Wahrheit, die
irgendwann von der ersten abweicht; tools/treff-farben.mjs liest
dieselben zwei Quellen (workspace.js fuer die Nummer, start.css fuer
den Farbwert), wenn man sie nachsehen will.
AUFGEHELLT, BIS ES LESBAR IST
#918a01 ist als Flaeche schoen und als Schrift auf dunklem Grund
unlesbar (1,9:1). Die Buehne mischt Weiss dazu, bis 4,5:1 erreicht
sind -- dieselbe Rechnung wie bei den Namen im Chat. Balken, Schein
und Vorhang bekommen den rohen Ton, die brauchen keinen Kontrast.
DER ABSPANN BLEIBT MARKE
Er ist in allen vier Videos derselbe und faellt deshalb auf
--violett/--akzent zurueck, egal auf welcher Seite er steht. Wer drei
Videos gesehen hat, soll den vierten am Schluss wiedererkennen.
UND EIN EIGENER FEHLER, GEMESSEN STATT UEBERSEHEN
Das Ablesen stand zuerst in `auf()` -- und `auf()` laeuft vor jeder
Karte, jedem Untertitel und jedem Rollen. Ueber hundert zusaetzliche
Wege in den Browser fuer eine Antwort, die sich nur beim
Seitenwechsel aendern kann. Video 1 wuchs dadurch von 32,9 auf
36,1 s. Jetzt wird beim Seitenwechsel gelesen: 32,0 s.
Alle vier neu gedreht: 24 bis 34 s, 1080x1920.
37 lines
1.4 KiB
JavaScript
37 lines
1.4 KiB
JavaScript
/* Welche Farbe traegt jede Kachel des Community-Bereichs?
|
|
*
|
|
* Gelesen wird aus den zwei Stellen, die es wirklich entscheiden:
|
|
* workspace.js sagt, welche TON-NUMMER eine Kachel hat, start.css
|
|
* sagt, welcher Farbwert hinter der Nummer steht. Abgeschrieben wird
|
|
* nichts -- eine Liste, die niemand pflegt, kann nicht veralten.
|
|
*
|
|
* node tools/treff-farben.mjs
|
|
*/
|
|
import { readFileSync } from "node:fs";
|
|
import { fileURLToPath } from "node:url";
|
|
import { dirname, join } from "node:path";
|
|
|
|
const HIER = dirname(fileURLToPath(import.meta.url));
|
|
const js = readFileSync(join(HIER, "..", "server", "workspace.js"), "utf8");
|
|
const css = readFileSync(join(HIER, "..", "workspace", "assets", "css", "start.css"), "utf8");
|
|
|
|
const hex = new Map();
|
|
for (const m of css.matchAll(/\[data-ton="(\d+)"\]\s*\{\s*--ton:\s*(#[0-9a-fA-F]{6})/g)) {
|
|
hex.set(m[1], m[2]);
|
|
}
|
|
|
|
/* Die Kacheln des Treffs stehen alle mit `...TREFF_GRUPPE` davor --
|
|
daran sind sie erkennbar, ohne sie einzeln aufzuzaehlen. */
|
|
const treffer = [...js.matchAll(
|
|
/\.\.\.TREFF_GRUPPE,\s*name:\s*"([^"]+)"[\s\S]{0,400}?ton:\s*(\d+)/g)];
|
|
|
|
console.log("KACHEL TON FARBE");
|
|
for (const [, name, ton] of treffer) {
|
|
console.log(name.padEnd(20) + String(ton).padEnd(6) + (hex.get(ton) || "?"));
|
|
}
|
|
console.log("\n" + treffer.length + " Kacheln im Community-Bereich gefunden.");
|
|
if (!treffer.length) {
|
|
console.error("KEINE gefunden -- die Erkennung passt nicht mehr zum Quelltext.");
|
|
process.exit(1);
|
|
}
|