From cf2caf58d34f068ae8388ed0204161bb7e1ea7f2 Mon Sep 17 00:00:00 2001 From: Rich Harris Date: Sat, 20 Sep 2025 13:36:17 -0400 Subject: [PATCH 01/22] start porting to remote functions --- apps/svelte.dev/package.json | 4 +- apps/svelte.dev/src/routes/+layout.server.ts | 67 --------- apps/svelte.dev/src/routes/+layout.svelte | 10 +- .../src/routes/blog/+page.server.js | 17 --- apps/svelte.dev/src/routes/blog/+page.svelte | 10 +- .../src/routes/blog/[slug]/+page.svelte | 10 +- .../+page.server.js => data.remote.ts} | 22 ++- apps/svelte.dev/src/routes/data.remote.ts | 53 +++++++ .../docs/[topic]/[...path]/+layout.server.ts | 20 --- .../docs/[topic]/[...path]/+layout.svelte | 5 +- .../docs/[topic]/[...path]/+page.server.js | 18 --- .../docs/[topic]/[...path]/+page.svelte | 40 ++--- .../docs/[topic]/[...path]/data.remote.ts | 40 +++++ apps/svelte.dev/svelte.config.js | 10 ++ .../site-kit/src/lib/components/Shell.svelte | 2 +- pnpm-lock.yaml | 140 +++++++++++++----- 16 files changed, 269 insertions(+), 199 deletions(-) delete mode 100644 apps/svelte.dev/src/routes/blog/+page.server.js rename apps/svelte.dev/src/routes/blog/{[slug]/+page.server.js => data.remote.ts} (52%) create mode 100644 apps/svelte.dev/src/routes/data.remote.ts delete mode 100644 apps/svelte.dev/src/routes/docs/[topic]/[...path]/+layout.server.ts delete mode 100644 apps/svelte.dev/src/routes/docs/[topic]/[...path]/+page.server.js create mode 100644 apps/svelte.dev/src/routes/docs/[topic]/[...path]/data.remote.ts diff --git a/apps/svelte.dev/package.json b/apps/svelte.dev/package.json index e6bc3a452f..e20d74a83c 100644 --- a/apps/svelte.dev/package.json +++ b/apps/svelte.dev/package.json @@ -52,7 +52,7 @@ "@supabase/supabase-js": "^2.43.4", "@sveltejs/adapter-vercel": "^5.10.2", "@sveltejs/enhanced-img": "^0.8.1", - "@sveltejs/kit": "^2.42.0", + "@sveltejs/kit": "https://pkg.pr.new/@sveltejs/kit@14447", "@sveltejs/site-kit": "workspace:*", "@sveltejs/vite-plugin-svelte": "^6.1.3", "@types/cookie": "^0.6.0", @@ -72,7 +72,7 @@ "satori": "^0.10.13", "satori-html": "^0.3.2", "sv": "^0.9.2", - "svelte": "^5.38.2", + "svelte": "^5.39.3", "svelte-check": "^4.3.1", "svelte-preprocess": "^6.0.3", "tiny-glob": "^0.2.9", diff --git a/apps/svelte.dev/src/routes/+layout.server.ts b/apps/svelte.dev/src/routes/+layout.server.ts index 4fb653d821..80ac30d6bd 100644 --- a/apps/svelte.dev/src/routes/+layout.server.ts +++ b/apps/svelte.dev/src/routes/+layout.server.ts @@ -1,71 +1,4 @@ import { PRERENDER } from '$env/static/private'; -import { docs, index } from '$lib/server/content'; -import type { BannerData, NavigationLink } from '@sveltejs/site-kit'; // by default, all pages are prerendered export const prerender = PRERENDER !== 'false'; - -const nav_links: NavigationLink[] = [ - { - title: 'Docs', - slug: 'docs', - sections: [docs.topics['docs/svelte'], docs.topics['docs/kit'], docs.topics['docs/cli']].map( - (topic) => ({ - title: topic.metadata.title, - path: '/' + topic.slug, // this will make the UI show a flyout menu for the docs nav entry - sections: topic.children.map((section) => ({ - title: section.metadata.title, - sections: section.children.map((page) => ({ - title: page.metadata.title, - path: '/' + page.slug - })) - })) - }) - ) - }, - { - title: 'Tutorial', - slug: 'tutorial', - sections: index.tutorial.children.map((topic) => ({ - title: topic.metadata.title, - sections: topic.children.map((section) => ({ - title: section.metadata.title, - sections: section.children.map((page) => ({ - title: page.metadata.title, - path: - '/tutorial/' + - (page.slug.includes('sveltekit/') ? 'kit' : 'svelte') + - '/' + - page.slug.split('/').pop() - })) - })) - })) - }, - { - title: 'Playground', - slug: 'playground' - }, - { - title: 'Blog', - slug: 'blog' - } -]; - -const banner: BannerData = { - id: 'barcelona-2025-tickets', - start: new Date('21 April, 2025 00:00:00 UTC'), - end: new Date('6 May, 2025 23:59:59 UTC'), - arrow: true, - content: { - lg: 'Svelte Summit Barcelona and online, May 8-9: Last few days to get tickets!', - sm: 'Svelte Summit May 8-9' - }, - href: 'https://www.sveltesummit.com/' -}; - -export const load = async () => { - return { - nav_links, - banner - }; -}; diff --git a/apps/svelte.dev/src/routes/+layout.svelte b/apps/svelte.dev/src/routes/+layout.svelte index dd1021147d..6e38dd90ed 100644 --- a/apps/svelte.dev/src/routes/+layout.svelte +++ b/apps/svelte.dev/src/routes/+layout.svelte @@ -8,6 +8,7 @@ import { injectSpeedInsights } from '@vercel/speed-insights/sveltekit'; import { inject } from '@vercel/analytics'; import { beforeNavigate } from '$app/navigation'; + import { get_banner, get_nav_links } from './data.remote.js'; injectSpeedInsights(); inject({ mode: dev ? 'development' : 'production' }); @@ -36,6 +37,8 @@ tutorial: 'Tutorial', search: 'Search' }; + + const banner_data = await get_banner(); @@ -48,7 +51,8 @@ {#snippet top_nav()} -