Öffentliche /help-Seite — Server-rendered FAQ ohne Login

Apple-Reviewer braucht eine publik erreichbare Support-URL. Die
SPA-Hilfeseite (/#hilfe) ist hinter dem Welcome-Overlay für nicht
angemeldete User versteckt. Neue /help-Route rendert serverseitig:

- Holt aktive FAQ-Artikel aus help_articles (über bestehendes
  TTL-Cache _load_active_help_articles).
- Gruppiert nach Kategorie mit deutschen Labels.
- Native HTML5 <details>/<summary> Akkordeon — kein JS nötig.
- Dark Mode via prefers-color-scheme.
- Direkter mailto support@banyaro.app + Verweis auf die volle
  Hilfe nach Login.

Damit haben wir https://banyaro.app/help als Support-URL für App
Store Connect.
This commit is contained in:
rene 2026-05-30 19:34:12 +02:00
parent d23d696745
commit 2d907f6370
6 changed files with 156 additions and 16 deletions

View file

@ -86,14 +86,14 @@
<title>Ban Yaro</title>
<!-- Theme + theme-color Statusleiste vor CSS setzen -->
<script src="/js/boot-early.js?v=1140"></script>
<script src="/js/boot-early.js?v=1141"></script>
<!-- CSS: Reihenfolge ist wichtig — ?v= zwingt Browser zur Neuladung -->
<link rel="stylesheet" href="/css/design-system.css?v=1140">
<link rel="stylesheet" href="/css/layout.css?v=1140">
<link rel="stylesheet" href="/css/components.css?v=1140">
<link rel="stylesheet" href="/css/utilities.css?v=1140">
<link rel="stylesheet" href="/css/lists.css?v=1140">
<link rel="stylesheet" href="/css/design-system.css?v=1141">
<link rel="stylesheet" href="/css/layout.css?v=1141">
<link rel="stylesheet" href="/css/components.css?v=1141">
<link rel="stylesheet" href="/css/utilities.css?v=1141">
<link rel="stylesheet" href="/css/lists.css?v=1141">
</head>
<body>
@ -617,11 +617,11 @@
<div id="modal-container"></div>
<!-- JS: Reihenfolge ist wichtig — erst Basis, dann Features -->
<script src="/js/api.js?v=1140"></script>
<script src="/js/ui.js?v=1140"></script>
<script src="/js/app.js?v=1140"></script>
<script src="/js/worlds.js?v=1140"></script>
<script src="/js/offline-indicator.js?v=1140"></script>
<script src="/js/api.js?v=1141"></script>
<script src="/js/ui.js?v=1141"></script>
<script src="/js/app.js?v=1141"></script>
<script src="/js/worlds.js?v=1141"></script>
<script src="/js/offline-indicator.js?v=1141"></script>
<!-- Feature-Seiten werden lazy geladen -->
@ -631,7 +631,7 @@
<!-- Boot: Offline-Banner + SW-Registration (extrahiert für CSP) -->
<script src="/js/boot.js?v=1140"></script>
<script src="/js/boot.js?v=1141"></script>
</body>