joerglohrerde/app
Jörg Lohrer ec9d361a13 spa(task 7 polish): scoped marked-instance, ssr-guard, erweiterte xss-tests
- Eigene `new Marked({...})`-Instanz statt globaler `marked.use()`-Mutation
  — schützt andere Module vor Konfigurationsleckage, schärft Spec §3
  ("lokale Ersetzbarkeit").
- SSR-Guard: `renderMarkdown` wirft in Non-DOM-Umgebungen eine
  Fehlermeldung statt stumm unsicher durchzulaufen. SPA hat `ssr=false`,
  Vitest läuft in jsdom — Guard ist Early-Fail für versehentliche
  Node-Aufrufe.
- `ADD_ATTR: ['target', 'rel']` entfernt — war ein No-Op, weil Marked
  diese Attribute nicht einfügt. Link-Attribut-Hardening kommt später,
  wenn externe Links tatsächlich `target="_blank"` bekommen sollen.
- Code-Block-Test prüft zusätzlich `class="hljs"` (Regression-Anker
  für Custom-Renderer).
- Erweiterte XSS-Matrix: onerror, onclick, iframe, data:text/html,
  vbscript:, svg+script — relevant für spätere Reply-Darstellung.

14/14 Tests grün.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-15 16:06:51 +02:00
..
.vscode spa(task 1): sveltekit-skeleton mit adapter-static initialisiert 2026-04-15 15:03:15 +02:00
src spa(task 7 polish): scoped marked-instance, ssr-guard, erweiterte xss-tests 2026-04-15 16:06:51 +02:00
static spa: deploy-script und htaccess für svelte.joerg-lohrer.de 2026-04-15 15:59:46 +02:00
tests/unit spa(task 7 polish): scoped marked-instance, ssr-guard, erweiterte xss-tests 2026-04-15 16:06:51 +02:00
.gitignore spa(task 1): sveltekit-skeleton mit adapter-static initialisiert 2026-04-15 15:03:15 +02:00
.npmrc spa(task 1): sveltekit-skeleton mit adapter-static initialisiert 2026-04-15 15:03:15 +02:00
README.md spa(task 1): sveltekit-skeleton mit adapter-static initialisiert 2026-04-15 15:03:15 +02:00
package.json spa(task 2): runtime- und dev-dependencies installiert 2026-04-15 15:09:10 +02:00
svelte.config.js spa(task 1): sveltekit-skeleton mit adapter-static initialisiert 2026-04-15 15:03:15 +02:00
tsconfig.json spa(task 1): sveltekit-skeleton mit adapter-static initialisiert 2026-04-15 15:03:15 +02:00
vite.config.ts spa(task 2): runtime- und dev-dependencies installiert 2026-04-15 15:09:10 +02:00

README.md

sv

Everything you need to build a Svelte project, powered by sv.

Creating a project

If you're seeing this, you've probably already done this step. Congrats!

# create a new project
npx sv create my-app

To recreate this project with the same configuration:

# recreate this project
npx sv@0.15.1 create --template minimal --types ts --install npm .

Developing

Once you've created a project and installed dependencies with npm install (or pnpm install or yarn), start a development server:

npm run dev

# or start the server and open the app in a new browser tab
npm run dev -- --open

Building

To create a production version of your app:

npm run build

You can preview the production build with npm run preview.

To deploy your app, you may need to install an adapter for your target environment.