Adds a self-service editor at admin.larpaso.de so texts, images, links, Impressum/Datenschutz, fonts, font sizes and colors can be changed without a developer. All homepage/legal content moves into content/site.json and a new content/theme.json drives every CSS color/font/size token; the Astro pages read from these at build time. The admin/ service (Node/Express) provides bcrypt+session login with rate limiting, a schema-driven form UI (including a hex/RGB/alpha color picker), image upload, and a publish action that runs the Astro build and republishes into a volume shared with the nginx website container - so edits go live without redeploying that container. See DEPLOYMENT_ADMIN.md for the server-side setup steps.
35 lines
1.1 KiB
HTML
35 lines
1.1 KiB
HTML
<!doctype html>
|
|
<html lang="de">
|
|
<head>
|
|
<meta charset="utf-8" />
|
|
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
<meta name="robots" content="noindex, nofollow" />
|
|
<title>larpaso · Editor</title>
|
|
<link rel="stylesheet" href="/admin/style.css" />
|
|
</head>
|
|
<body>
|
|
<header class="topbar">
|
|
<h1>larpaso · Editor</h1>
|
|
<div class="topbar-actions">
|
|
<span id="status" class="status" aria-live="polite"></span>
|
|
<button id="save-btn" type="button">Speichern</button>
|
|
<button id="publish-btn" type="button" class="btn-accent">Speichern & veröffentlichen</button>
|
|
<form method="POST" action="/admin/logout"><button type="submit" class="btn-ghost">Abmelden</button></form>
|
|
</div>
|
|
</header>
|
|
|
|
<nav id="section-nav" class="section-nav" aria-label="Abschnitte"></nav>
|
|
|
|
<main id="sections"></main>
|
|
|
|
<div id="log" class="build-log" hidden>
|
|
<div class="build-log-header">
|
|
<span>Build-Ausgabe</span>
|
|
<button id="log-close" type="button" class="btn-ghost">Schließen</button>
|
|
</div>
|
|
<pre id="log-output"></pre>
|
|
</div>
|
|
|
|
<script src="/admin/app.js"></script>
|
|
</body>
|
|
</html>
|