Files
windwiderstand/src/routes/(embed)/+layout@.svelte
T
Peter Meier 63a9721841
Deploy / verify (push) Successful in 51s
Deploy / deploy (push) Successful in 53s
feat(embed): standalone widget route /widget/<collection>/<slug>
Renders a single CMS entry as a block in isolation — no header, footer, or
preview banner. Lets us share a deep link to a single widget (e.g. the live
strommix gauge) for embedding or quick previews without exposing the rest of
the page.

- New BlockRenderer.svelte: switch over `_type` shared with ContentRows.
- Generic `getEntryBySlug(collection, slug, options)` in cms.ts so any
  collection (live_strommix, deadline_banner, image, ...) is fetchable.
- Route group `(embed)/+layout@.svelte` resets the layout chain so no
  Header/Footer/TopBanner inherit. `x-robots-tag: noindex`.
- Optional `?preview=<token>` for drafts. Cache: short s-maxage for live,
  no-store for preview.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-05 09:37:21 +02:00

22 lines
424 B
Svelte

<script lang="ts">
import '../../app.css';
import '$lib/iconify-offline';
let { children }: { children: import('svelte').Snippet } = $props();
</script>
<div class="embed-root">
{@render children()}
</div>
<style>
:global(html), :global(body) {
margin: 0;
padding: 0;
background: transparent;
}
.embed-root {
min-height: 100vh;
background: var(--color-page-bg, transparent);
}
</style>