feat: add availability page and fix legal text width #21

Merged
ComputerCrack merged 6 commits from dev into main 2026-10-06 17:16:59 +00:00

Zusammenfassung

Neue Seite /verfuegbarkeit mit wöchentlicher Verfügbarkeit, dazu eine Korrektur der Textbreite auf den Rechtsseiten.

src/
├── lib/data/schedule.ts           # weeklySchedule: Belegungen pro Wochentag (Uhrzeit oder Doppelstunde), validFrom/validUntil
├── lib/utils/availability.ts      # buildOccupiedByDay: Belegungen -> Intervalle pro Wochentag, Raster-Helfer (07:00-20:00)
└── routes/verfuegbarkeit/
    ├── +page.ts                   # load: schedule + occupiedByDay
    └── +page.svelte               # rendert das Wochenraster
 navLinks
   Startseite
+  Verfügbarkeit (/verfuegbarkeit)
   Projekte
 sitemap pages
-  '', about, cv, projects
+  '', about, cv, projects, verfuegbarkeit
 .prose-legal
-  (section) mx-auto max-w-3xl px-(--page-margin)   # 768px inkl. Padding
+  max-width: calc(65ch + 2 * var(--page-margin))   # Padding zusätzlich zu 65ch
+  margin-inline: auto
+  padding-inline: var(--page-margin)

Außerdem: .gitignore ignoriert lokales AI-Tooling.

Nachweis

Vorher: /verfuegbarkeit existiert nicht. Die Textspalte der Rechtsseiten beträgt 768px - 2 * clamp(2rem, 5vw, 9rem), auf großen Bildschirmen also etwa 512px.
Nachher: Die Seite zeigt den Plan für das Wintersemester 2026/27. Die Textspalte der Rechtsseiten ist 65ch breit (bei 16px Basisschrift etwa 624px), solange der Viewport es zulässt.

Nicht im Browser und nicht per Test geprüft. Die Breiten sind aus dem CSS berechnet.

Merge-Risiko

Door: two-way

Nur statischer Inhalt und CSS, keine Datenmigration. Ein Revert stellt den alten Stand wieder her.

Blast Radius: Navigation, Sitemap, Rechtsseiten

Die Navigation bekommt einen neuen Eintrag (Desktop und Mobil), bei knapper Nav kann sich das Layout verschieben. schedule.ts wird von Hand gepflegt und gilt bis 2027-03-31, danach zeigt die Seite veraltete Daten.

## Zusammenfassung Neue Seite `/verfuegbarkeit` mit wöchentlicher Verfügbarkeit, dazu eine Korrektur der Textbreite auf den Rechtsseiten. ```text src/ ├── lib/data/schedule.ts # weeklySchedule: Belegungen pro Wochentag (Uhrzeit oder Doppelstunde), validFrom/validUntil ├── lib/utils/availability.ts # buildOccupiedByDay: Belegungen -> Intervalle pro Wochentag, Raster-Helfer (07:00-20:00) └── routes/verfuegbarkeit/ ├── +page.ts # load: schedule + occupiedByDay └── +page.svelte # rendert das Wochenraster ``` ```diff navLinks Startseite + Verfügbarkeit (/verfuegbarkeit) Projekte sitemap pages - '', about, cv, projects + '', about, cv, projects, verfuegbarkeit ``` ```diff .prose-legal - (section) mx-auto max-w-3xl px-(--page-margin) # 768px inkl. Padding + max-width: calc(65ch + 2 * var(--page-margin)) # Padding zusätzlich zu 65ch + margin-inline: auto + padding-inline: var(--page-margin) ``` Außerdem: `.gitignore` ignoriert lokales AI-Tooling. ## Nachweis **Vorher:** `/verfuegbarkeit` existiert nicht. Die Textspalte der Rechtsseiten beträgt `768px - 2 * clamp(2rem, 5vw, 9rem)`, auf großen Bildschirmen also etwa 512px. **Nachher:** Die Seite zeigt den Plan für das Wintersemester 2026/27. Die Textspalte der Rechtsseiten ist 65ch breit (bei 16px Basisschrift etwa 624px), solange der Viewport es zulässt. Nicht im Browser und nicht per Test geprüft. Die Breiten sind aus dem CSS berechnet. ## Merge-Risiko **Door:** two-way Nur statischer Inhalt und CSS, keine Datenmigration. Ein Revert stellt den alten Stand wieder her. **Blast Radius:** Navigation, Sitemap, Rechtsseiten Die Navigation bekommt einen neuen Eintrag (Desktop und Mobil), bei knapper Nav kann sich das Layout verschieben. `schedule.ts` wird von Hand gepflegt und gilt bis 2027-03-31, danach zeigt die Seite veraltete Daten.
Merge pull request 'Merge main into dev' (#20) from main into dev
All checks were successful
CI / build (push) Successful in 2m14s
c8f6f3c934
chore(gitignore): ignore local AI tooling
Some checks are pending
CI / build (push) Has started running
c25ca97dbd
Signed-off-by: Jonathan Schmidt <kontakt@jonathan-schmidt.de>
Weekly schedule as typed data in schedule.ts, entries by time or TU Dresden double period. Times are rounded to quarter hours and intervals closer than 60 min are merged. Build fails for entries outside the 7-20 grid. Linked in nav and sitemap.

Signed-off-by: Jonathan Schmidt <kontakt@jonathan-schmidt.de>
Signed-off-by: Jonathan Schmidt <kontakt@jonathan-schmidt.de>
Signed-off-by: Jonathan Schmidt <kontakt@jonathan-schmidt.de>
Merge branches 'feat/legal' and 'feat/verfuegbarkeit' into dev
All checks were successful
CI / build (push) Successful in 2m2s
0564c51217
Signed-off-by: Jonathan Schmidt <kontakt@jonathan-schmidt.de>
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
ComputerCrack/Portfolio!21
No description provided.