Skip to content

Commit 3800d85

Browse files
committed
Vorspann ueber die volle Seitenbreite; Felder und Blaetter alphabetisch sortiert
1 parent 9eb7300 commit 3800d85

3 files changed

Lines changed: 25 additions & 2 deletions

File tree

index.html

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@
7474
h1 { font-family:var(--f-fest); font-weight:700; font-size:clamp(24px,4.2vw,40px);
7575
line-height:1.06; letter-spacing:-.03em; margin:0; text-wrap:balance; }
7676
h1 span { color:var(--g1); }
77-
.vorspann { max-width:72ch; color:var(--leise); margin:0; }
77+
.vorspann { color:var(--leise); margin:0; }
7878
.vorspann b { color:var(--tinte); font-weight:600; }
7979

8080
h2 { font-family:var(--f-fest); font-size:11px; letter-spacing:.18em; text-transform:uppercase;
@@ -410,6 +410,15 @@ <h3>Ehrliches README</h3>
410410
]}
411411
];
412412

413+
/* Ordnung ohne Pflegeaufwand: Felder alphabetisch, und innerhalb jedes Feldes
414+
die Blätter ebenso. Sortiert wird hier und nicht in der Liste oben — dann
415+
landet ein neuer Eintrag auch dann am richtigen Platz, wenn er unten
416+
angehängt wird. Verglichen wird nach deutscher Sortierung, damit Ä neben A
417+
steht und nicht hinter Z. */
418+
const wieDeutsch = new Intl.Collator("de-AT", { sensitivity: "base" });
419+
FELDER.sort((a, b) => wieDeutsch.compare(a.name, b.name));
420+
for (const f of FELDER) if (f.blaetter) f.blaetter.sort((a, b) => wieDeutsch.compare(a.titel, b.titel));
421+
413422
const ALLE = FELDER.filter((f) => !f.offen)
414423
.flatMap((f) => f.blaetter.map((b) => ({ ...b, farbe: f.farbe })));
415424

werkzeug/pflege.mjs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,11 @@ function vorspannLinks(text) {
6868
neu = neu.replace(/\s*text-align:\s*center\s*;?/g, "");
6969
neu = neu.replace(/margin:\s*0\s+auto\s*;/g, "margin:0;");
7070
neu = neu.replace(/margin:\s*0\s+auto\b/g, "margin:0");
71+
/* Seit 25.08.2026 keine eigene Breitenbremse mehr: linksbündig **und** auf
72+
70 Zeichen gedeckelt hieß, dass der Vorspann die halbe Seite leer stehen
73+
ließ, während Leiste und Kästen darunter über die volle Breite laufen.
74+
Jetzt reicht er so weit wie alles andere auf der Seite. */
75+
neu = neu.replace(/\s*max-width:\s*[^;]+;?/g, "");
7176
if (neu === b.inhalt) return { text, geaendert: false, name };
7277
return { text: text.slice(0, b.auf + 1) + neu + text.slice(b.zu), geaendert: true, name };
7378
}

werkzeug/pruefblick.mjs

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -80,9 +80,15 @@ const MESSUNG = `(() => {
8080
8181
const vorspann = document.querySelector(".vorspann, .lead, .anriss, .standfirst");
8282
const h1 = document.querySelector("h1");
83+
/* Der Vorspann soll so weit reichen wie der Rest der Seite. Gemessen wird
84+
gegen die Überschrift daneben: die ist ein Blockelement im selben Kasten
85+
und damit genau so breit wie der Inhaltsbereich — anders als der Kasten
86+
selbst, dessen Rahmenmass die Polsterung mitzählt. */
87+
const kasten = h1 ? h1.getBoundingClientRect() : null;
8388
const ausrichtung = vorspann && h1 ? {
8489
aus: getComputedStyle(vorspann).textAlign,
8590
versatz: Math.round(vorspann.getBoundingClientRect().left - h1.getBoundingClientRect().left),
91+
fehlbreite: Math.round(kasten.width - vorspann.getBoundingClientRect().width),
8692
} : null;
8793
8894
const sichtbar = (e) => e.offsetParent !== null && e.getBoundingClientRect().height > 0;
@@ -121,9 +127,11 @@ for (const seite of seiten) {
121127

122128
if (!hell.ausrichtung) klage(seite, "kein Vorspann oder keine Überschrift gefunden");
123129
else {
124-
const { aus, versatz } = hell.ausrichtung;
130+
const { aus, versatz, fehlbreite } = hell.ausrichtung;
125131
if (!["start", "left"].includes(aus) || Math.abs(versatz) > 1)
126132
klage(seite, `Vorspann nicht linksbündig (${aus}, ${versatz} px versetzt)`);
133+
if (fehlbreite > 2)
134+
klage(seite, `Vorspann ${fehlbreite} px schmäler als die Seite — Breitenbremse noch drin`);
127135
}
128136
for (const k of hell.kontraste) if (k.wert < 4.5) klage(seite, `Kontrast hell ${k.wert}:1 bei ${k.sel}`);
129137
if (hell.knopf !== null && hell.knopf < 32) klage(seite, `Knopf nur ${hell.knopf} px hoch`);
@@ -157,6 +165,7 @@ for (const seite of seiten) {
157165

158166
const kleinster = Math.min(...hell.kontraste.map((k) => k.wert), ...schmal.kontraste.map((k) => k.wert));
159167
console.log(`Querlauf ${String(schmal.ueberlauf).padStart(3)} px · ` +
168+
`Vorspann ${String(hell.ausrichtung ? hell.ausrichtung.fehlbreite : "?").padStart(3)} px schmäler · ` +
160169
`Kontrast ab ${kleinster.toFixed(2)}:1 · Knopf ${String(hell.knopf ?? "—").padStart(3)} px · Bilder ${bilder}`);
161170
}
162171
await browser.close();

0 commit comments

Comments
 (0)