Go to file
Jörg Lohrer 10e455a078 spa: startseite + archiv + impressum + menü + assets für cutover
Startseite (+page.svelte) komplett überarbeitet:
  - Hero mit lokalem Profilbild (WebP aus static/, schneller als
    kind:0-roundtrip), Begrüßung "Hi Willkommen auf meinem Blog 🤗",
    About/Website aus kind:0
  - Social-Icons-Leiste (Nostr/Mastodon/Bluesky/LinkedIn/ORCID/Mail)
    als inline-SVG, monochrom via currentColor, hover färbt blau
  - Nostr-Icon von satscoffee/nostr_icons (outline, CC0), die anderen
    stilisiert als vereinfachte Brand-Icons
  - Neueste 5 Posts + Archiv-Link

Archiv-Route (/archiv/): alle Posts, nach Jahr gruppiert.

Impressum (/impressum/): static-page, rendert content/impressum.md
(via vite ?raw-import), bleibt aus nostr-feeds draußen. Frontmatter-
parser toleriert trailing-spaces auf --- zeilen.

Menü im Layout: sticky header mit brand + 3 links (Home, Archiv,
Impressum), aktiv-state via akzent-farbe. Footer mit © + Impressum
+ "Nostr-basiert"-hinweis.

Assets: profilbild und favicons aus dem hugo-static (repo-root) nach
app/static/ übernommen, favicon-links in app.html ergänzt.

NIP-05: .well-known/nostr.json in app/static angelegt mit CORS-header
via .htaccess, damit "joerglohrer@joerg-lohrer.de" nach cutover
verifizierbar bleibt.

E2E-Tests angepasst an neue hero/navigation-struktur, 29/29 unit + 4/4
e2e grün.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-18 15:35:05 +02:00
.claude docs: handoff-pakette für pause + spätere fortsetzung 2026-04-15 18:34:15 +02:00
.github/workflows publish(task 22): github-actions-workflow für auto-publish 2026-04-18 06:52:08 +02:00
app spa: startseite + archiv + impressum + menü + assets für cutover 2026-04-18 15:35:05 +02:00
content content: strukturierte bild-metadaten für alle 18 posts 2026-04-16 15:13:47 +02:00
docs docs: handoff/status aktualisiert — delete-event erledigt, design-todos offen 2026-04-18 14:30:37 +02:00
preview/spa-mini spike(spa-mini): legacy-hugo-urls auf kurze form normalisieren 2026-04-15 14:44:25 +02:00
publish publish(task 21): date-string-coercion + force-all migration erfolgreich 2026-04-18 06:48:27 +02:00
scripts spa/deploy: dynamische site-url via __SITE_URL__-platzhalter, staging + prod als deploy-targets 2026-04-18 10:01:08 +02:00
static comment integration ohne styling 2025-02-12 19:43:36 +01:00
.gitignore spike(spa-mini): vanilla-html viewer für einen einzelnen nostr-post 2026-04-15 13:53:16 +02:00
LICENSE Initial commit 2024-11-06 15:55:54 +01:00
README.md docs: handoff-pakette für pause + spätere fortsetzung 2026-04-15 18:34:15 +02:00

README.md

joerg-lohrer.de

Persönliche Webseite. In Transition von einer Hugo-basierten, statischen Seite hin zu einer SvelteKit-SPA, die Blog-Posts live aus signierten Nostr-Events (NIP-23, kind:30023) rendert.

Aktueller Stand

  • https://joerg-lohrer.de/ — Hugo-Seite, läuft noch.
  • https://spa.joerg-lohrer.de/ — Vanilla-HTML-Mini-Spike (Proof of Concept).
  • https://svelte.joerg-lohrer.de/ — produktive SvelteKit-SPA (Ziel).

Detailliert in docs/STATUS.md.

Navigation

Branches

  • main — kanonisch (Content, Specs, Pläne, Deploy-Scripts, Skill).
  • spa — aktueller Arbeitszweig mit allen SvelteKit-Commits. Wird beim Cutover nach main gemerged.
  • hugo-archive — eingefrorener Hugo-Zustand als Orphan-Branch. Rollback über git checkout hugo-archive && hugo build.

Repo-Struktur

content/posts/                  Markdown-Posts (Quelle für Nostr-Events)
app/                            SvelteKit-SPA (Ziel-Implementation)
preview/spa-mini/               Vanilla-HTML-Mini-Spike (Referenz)
scripts/deploy-svelte.sh        FTPS-Deploy nach svelte.joerg-lohrer.de
static/                         Site-Assets (Favicons, Profilbild)
docs/                           Specs, Pläne, Status, Handoff
.claude/                        Claude-Code-Sessions (transparenz) + Skills

Lizenz

Siehe LICENSE.