Community: die echte Sicht messbar machen -- und die Sternchen weg
Filipe: "perfektioniere jede einzelne kategorie der community."
ERST MESSEN. tools/community-blick.mjs meldet sich als GAST an und
fotografiert alle sieben Bretter. Das war noetig, weil als DogFather
auf jedem Brett Knoepfe und Felder stehen, die ein Mitglied nie sieht
-- wer so beurteilt, beurteilt eine Seite, die es fuer die Community
nicht gibt.
Der Weg dorthin war laenger als gedacht, und jeder Umweg steht als
Kommentar im Werkzeug:
- Die Community hat eine EIGENE Anmeldeseite (crew-index.html); auf
der anderen gibt es die Rolle "gast" gar nicht.
- Wer sich zum ersten Mal anmeldet, muss sein Alter bestaetigen
(400 "alter_offen"), sonst kommt er nicht hinein.
- Ueber die echte Adresse schickt der Server HSTS, woraufhin
Chromium alle Unterdateien auf https umbiegt -- der Testserver
spricht nur http. Ergebnis: eine nackte Seite ohne Stil und ohne
Skripte, auf der kein Knopf etwas tat. Die Kopfzeile ist richtig
so und bleibt; stattdessen wird jetzt ueber die Kopfzeile
angemeldet und das Sitzungsplaetzchen in den Browser gelegt.
Ohne diese drei Punkte fotografiert man die Anmeldeseite und haelt
"0 Karten, kein Schreibfeld" fuer einen Befund ueber die Bretter.
ERSTER BEFUND, BEHOBEN: An zehn Stellen stand **Fettschrift** als
Sternchen im Text. Auf "Regeln & Hilfe" hiess es woertlich "Drei
Stufen: **Hinweis** ..., **Pause** ..., **Ausschluss**" -- ausgerechnet
die drei Stufen, um die es geht, sahen aus wie ein Tippfehler.
KEIN innerHTML: Gebaut wird aus einzelnen Knoten. Was nicht zwischen
zwei Sternchenpaaren steht, wird Text und kann nichts anderes werden.
Ein einzelnes Sternchen bleibt ein Sternchen -- "3 * 4" ist keine
Hervorhebung.
Co-Authored-By: Claude Opus 5 <[email protected]>
This commit is contained in:
@@ -544,7 +544,11 @@
|
||||
k.append(zeile);
|
||||
}
|
||||
|
||||
if (e.text) k.append(el('p', 'eintrag-text', e.text));
|
||||
if (e.text) {
|
||||
const t = el('p', 'eintrag-text');
|
||||
t.append(mitFett(e.text));
|
||||
k.append(t);
|
||||
}
|
||||
|
||||
if (stand) {
|
||||
for (const [feld, name] of [['event_aufgaben', 'Aufgaben'], ['event_regeln', 'Regeln']]) {
|
||||
@@ -1045,6 +1049,46 @@
|
||||
} catch { /* dann gilt die alte Regel, siehe darfEintragen */ }
|
||||
}
|
||||
|
||||
/* ---- FETTSCHRIFT IM TEXT (18.09.2026) --------------------------
|
||||
|
||||
Im Startkatalog steht an zehn Stellen `**Hinweis**`, `**Pause**`,
|
||||
`**DogFather**` -- gemeint als Hervorhebung, angezeigt als
|
||||
Sternchen. Auf „Regeln & Hilfe" stand damit woertlich:
|
||||
|
||||
Drei Stufen: **Hinweis** (jemand aus dem Team sagt dir, was
|
||||
nicht ging), **Pause** ..., **Ausschluss**.
|
||||
|
||||
Das sind ausgerechnet die drei Stufen, um die es geht -- und sie
|
||||
sahen aus wie ein Tippfehler.
|
||||
|
||||
KEIN innerHTML, AUCH NICHT HIER. Der Text kommt aus der Datenbank,
|
||||
und dort schreiben Menschen hinein. Gebaut wird deshalb aus
|
||||
einzelnen Knoten: Was nicht zwischen zwei Sternchenpaaren steht,
|
||||
wird Text und kann nichts anderes werden. Ein `<img onerror=…>`
|
||||
bleibt ein Wort.
|
||||
|
||||
Ein einzelnes Sternchen bleibt ein Sternchen: `3 * 4` ist keine
|
||||
Hervorhebung, und wer das anders faende, haette eine Regel, die
|
||||
beim Rechnen zuschlaegt. */
|
||||
function mitFett(text) {
|
||||
const stueck = document.createDocumentFragment();
|
||||
const teile = String(text).split(/\*\*(.+?)\*\*/s);
|
||||
/* split mit einer Gruppe liefert abwechselnd: normal, fett,
|
||||
normal, fett … Der ungerade Platz ist immer der Inhalt der
|
||||
Klammern. */
|
||||
teile.forEach((t, i) => {
|
||||
if (!t) return;
|
||||
if (i % 2 === 1) {
|
||||
const b = document.createElement('strong');
|
||||
b.textContent = t;
|
||||
stueck.append(b);
|
||||
} else {
|
||||
stueck.append(document.createTextNode(t));
|
||||
}
|
||||
});
|
||||
return stueck;
|
||||
}
|
||||
|
||||
function filterBauen(eintraege = []) {
|
||||
const ziel = $('filter');
|
||||
ziel.textContent = '';
|
||||
@@ -1262,7 +1306,14 @@
|
||||
const k = el('div', 'startkatalog__karte');
|
||||
k.append(el('span', 'marke-art', einstellung?.arten?.[v.art] || v.art));
|
||||
k.append(el('h3', 'startkatalog__name', v.titel));
|
||||
if (v.text) k.append(el('p', 'startkatalog__text', v.text));
|
||||
if (v.text) {
|
||||
/* Auch hier -- sonst sieht das Team im Vorschlag Sternchen und
|
||||
auf dem Brett danach Fettschrift. Zwei Darstellungen
|
||||
desselben Textes sind eine zu viel. */
|
||||
const vt = el('p', 'startkatalog__text');
|
||||
vt.append(mitFett(v.text));
|
||||
k.append(vt);
|
||||
}
|
||||
const b = el('button', 'schritt', 'Übernehmen');
|
||||
b.type = 'button';
|
||||
b.addEventListener('click', async () => {
|
||||
|
||||
Reference in New Issue
Block a user