Datenausfuhr in den Lese-Liste-Einstellungen: alles als JSON (Artikel mit
Text, Status, Tags, Notiz und Markierungen in Lesereihenfolge) oder nur
die Adressen als .txt, die jeder Import wieder liest. Entsteht im Gerät,
ohne Server-Aufruf. Löst die Zusage aus Art. 20 DSGVO direkt ein — bisher
nur auf Anfrage.
Erster Start: statt eines EmptyState mit nur „Bookmarklet einrichten“
drei Wege (Link einfügen, Liste mitbringen, aus dem Browser). Der
Plus-Knopf hängt an der Leiste, die erst mit Artikeln erscheint — bei
leerer Liste gab es keinen direkten Weg zum ersten Link. Ohne Konto
steht gleich oben, dass Speichern ein mana-Konto braucht.
/lese-liste/add zeigt bei 401 eine Anmelde-Aufforderung mit Rückweg zum
selben Link statt „…/extract/preview → 401 {"error":…}“.
Manifest: share_target auf /lese-liste/add. Die Einstellungen beschrieben
das Teilen-Menü längst, das Manifest hatte es nie.
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
53 lines
2 KiB
TypeScript
53 lines
2 KiB
TypeScript
import { sveltekit } from '@sveltejs/kit/vite';
|
|
import tailwindcss from '@tailwindcss/vite';
|
|
import { defineConfig } from 'vite';
|
|
import { SvelteKitPWA } from '@vite-pwa/sveltekit';
|
|
import { createPWAConfig, themeBridge } from '@mana/shared-pwa';
|
|
|
|
export default defineConfig({
|
|
plugins: [
|
|
tailwindcss(),
|
|
sveltekit(),
|
|
SvelteKitPWA(
|
|
createPWAConfig({
|
|
name: 'Pageta',
|
|
shortName: 'Pageta',
|
|
// Feed und Recherche ruhen seit 2026-06-01 (docs/FEED.md) und
|
|
// leiten weiter. Sie standen hier trotzdem noch als Beschreibung
|
|
// und als Verknüpfung — ein installiertes Symbol führte damit
|
|
// ins Leere.
|
|
description: 'Reader-App des Vereins mana — Lese-Liste mit Markierungen.',
|
|
...themeBridge('paper'),
|
|
// autoUpdate statt 'prompt': ein neuer SW aktiviert sofort
|
|
// (skipWaiting + clientsClaim) und die Seite lädt automatisch
|
|
// neu. Sonst schlägt nach jedem Deploy beim ERSTEN Laden noch
|
|
// der alte App-Shell durch (z.B. `/` als Feed statt Redirect
|
|
// auf /lese-liste) und erst der Reload zeigt den neuen Stand.
|
|
registerType: 'autoUpdate',
|
|
// Teilen-Ziel: installiert taucht Pageta im Teilen-Menü auf
|
|
// (Android/Chromium). /lese-liste/add liest `url` und, weil
|
|
// viele Apps den Link nur in `text` schicken, auch die erste
|
|
// Adresse aus `text`.
|
|
// 🔴 Fehlte bis 2026-09-29 — die Einstellungen beschrieben das
|
|
// Teilen-Menü längst, das Manifest hatte kein share_target.
|
|
shareTarget: {
|
|
action: '/lese-liste/add',
|
|
method: 'GET',
|
|
params: { title: 'title', text: 'text', url: 'url' },
|
|
},
|
|
shortcuts: [
|
|
{ name: 'Lese-Liste', short_name: 'Lesen', url: '/lese-liste' },
|
|
{ name: 'Markierungen', short_name: 'Marker', url: '/markierungen' },
|
|
{ name: 'Artikel speichern', short_name: 'Speichern', url: '/lese-liste/add' },
|
|
],
|
|
}),
|
|
),
|
|
],
|
|
server: {
|
|
port: Number(process.env.PAGETA_WEB_PORT ?? 3100),
|
|
host: true,
|
|
},
|
|
ssr: {
|
|
noExternal: [/^@mana\//],
|
|
},
|
|
});
|