Merge branch 'sites' into feat/ts-in-docs

pull/8452/head
Puru Vijay 3 years ago
commit 07a1d8ef4e

File diff suppressed because it is too large Load Diff

@ -29,30 +29,29 @@
"devDependencies": { "devDependencies": {
"@resvg/resvg-js": "^2.4.1", "@resvg/resvg-js": "^2.4.1",
"@sveltejs/adapter-vercel": "^2.4.3", "@sveltejs/adapter-vercel": "^2.4.3",
"@sveltejs/kit": "^1.15.9", "@sveltejs/kit": "^1.16.3",
"@sveltejs/site-kit": "^5.0.4", "@sveltejs/site-kit": "^5.0.4",
"@types/marked": "^4.0.8", "@types/marked": "^4.3.0",
"@types/node": "^18.16.3",
"degit": "^2.8.4", "degit": "^2.8.4",
"dotenv": "^16.0.3", "dotenv": "^16.0.3",
"jimp": "^0.22.7", "jimp": "^0.22.7",
"marked": "^4.3.0", "marked": "^5.0.1",
"node-fetch": "^3.3.1", "node-fetch": "^3.3.1",
"prettier": "^2.8.8", "prettier": "^2.8.8",
"prettier-plugin-svelte": "^2.10.0", "prettier-plugin-svelte": "^2.10.0",
"rollup": "^3.21.2", "rollup": "^3.21.5",
"rollup-plugin-dts": "^5.3.0", "rollup-plugin-dts": "^5.3.0",
"sass": "^1.62.1", "sass": "^1.62.1",
"satori": "^0.7.3", "satori": "^0.7.4",
"satori-html": "^0.3.2", "satori-html": "^0.3.2",
"shelljs": "^0.8.5", "shelljs": "^0.8.5",
"shiki": "^0.14.2", "shiki": "^0.14.2",
"shiki-twoslash": "^3.1.2", "shiki-twoslash": "^3.1.2",
"svelte": "^3.58.0", "svelte": "^3.59.1",
"svelte-check": "^3.2.0", "svelte-check": "^3.3.2",
"ts-morph": "^18.0.0", "ts-morph": "^18.0.0",
"typescript": "^5.0.4", "typescript": "^5.0.4",
"vite": "^4.3.3", "vite": "^4.3.5",
"vite-imagetools": "^4.0.19" "vite-imagetools": "^5.0.3"
} }
} }

@ -1,10 +1,10 @@
import { dev } from '$app/environment'; import { dev } from '$app/environment';
import { client } from '$lib/db/client'; import { client } from '$lib/db/client';
import * as gist from '$lib/db/gist'; import * as gist from '$lib/db/gist';
import examples_data from '$lib/generated/examples-data.js';
import { get_example } from '$lib/server/examples'; import { get_example } from '$lib/server/examples';
import { get_examples_list } from '$lib/server/examples/get-examples'; import { get_examples_data, get_examples_list } from '$lib/server/examples/get-examples';
import { error, json } from '@sveltejs/kit'; import { error, json } from '@sveltejs/kit';
import examples_data from '$lib/generated/examples-data.js';
export const prerender = 'auto'; export const prerender = 'auto';
@ -87,9 +87,17 @@ export async function GET({ params }) {
return json({ return json({
id: params.id, id: params.id,
name: app.name, name: app.name,
// @ts-ignore
owner: app.userid, owner: app.userid,
relaxed: false, relaxed: false,
// @ts-expect-error app.files has a `source` property // @ts-expect-error app.files has a `source` property
components: munge(app.files) components: munge(app.files)
}); });
} }
/** @type {import('./$types.js').EntryGenerator} */
export async function entries() {
return get_examples_list(get_examples_data())
.map(({ examples }) => examples)
.flatMap((val) => val.map(({ slug }) => ({ id: slug })));
}

@ -1,6 +1,6 @@
<script> <script>
import { Blurb } from '@sveltejs/site-kit/components'; import { Blurb } from '@sveltejs/site-kit/components';
import Balls from './svelte-balls.png?w=640;1280;2560;3840&format=avif;webp;png&picture'; import Balls from './svelte-balls.png?w=640;1280;2560;3840&format=avif;webp;png&as=picture';
import Demo from './_components/Demo.svelte'; import Demo from './_components/Demo.svelte';
import Hero from './_components/Hero.svelte'; import Hero from './_components/Hero.svelte';
import Image from './_components/Image.svelte'; import Image from './_components/Image.svelte';

@ -1,16 +1,18 @@
<script> <script>
import Image from './Image.svelte'; import Image from './Image.svelte';
import Machine from './svelte-machine.png?w=640;1280;2560;3840&format=avif;webp;png&picture'; import Machine from './svelte-machine.png?w=640;1280;2560;3840&q=95;format=avif;webp;png&as=picture';
import SvelteLogotype from './svelte-logotype.svg'; import SvelteLogotype from './svelte-logotype.svg';
</script> </script>
<div class="hero"> <div class="hero">
<strong>Cybernetically enhanced web apps</strong> <strong>Cybernetically enhanced web apps</strong>
<Image <Image
src={Machine} src={Machine}
alt="The Svelte compiler packaging up your component code" alt="The Svelte compiler packaging up your component code"
--max-height="65vh" --max-height="65vh"
/> />
<img alt="Svelte logotype" class="logotype" src={SvelteLogotype} /> <img alt="Svelte logotype" class="logotype" src={SvelteLogotype} />
</div> </div>

@ -7,10 +7,10 @@
</script> </script>
<picture> <picture>
{#each Object.entries(src.sources) as [format, images]} {#each Object.entries(src?.sources ?? {}) as [format, images]}
<source srcset={images.map((i) => `${i.src} ${i.w}w`).join(', ')} type={'image/' + format} /> <source srcset={images?.map((i) => `${i?.src} ${i?.w}w`).join(', ')} type="image/{format}" />
{/each} {/each}
<img src={src.fallback.src} {alt} /> <img src={src?.img?.src} {alt} />
</picture> </picture>
<style> <style>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.6 MiB

After

Width:  |  Height:  |  Size: 2.2 MiB

@ -1,6 +1,6 @@
import examples_data from '$lib/generated/examples-data.js'; import examples_data from '$lib/generated/examples-data.js';
import { get_example } from '$lib/server/examples'; import { get_example } from '$lib/server/examples';
import { get_examples_list } from '$lib/server/examples/get-examples'; import { get_examples_data, get_examples_list } from '$lib/server/examples/get-examples';
import { error, json } from '@sveltejs/kit'; import { error, json } from '@sveltejs/kit';
export const prerender = true; export const prerender = true;
@ -17,3 +17,10 @@ export const GET = ({ params }) => {
return json(get_example(examples_data, params.slug)); return json(get_example(examples_data, params.slug));
}; };
export async function entries() {
const examples_list = get_examples_list(get_examples_data());
return examples_list
.map(({ examples }) => examples)
.flatMap((val) => val.map(({ slug }) => ({ slug })));
}

@ -18,3 +18,10 @@ export async function load({ params }) {
slug: params.slug slug: params.slug
}; };
} }
export async function entries() {
const tutorials_list = get_tutorial_list(get_tutorial_data());
return tutorials_list
.map(({ tutorials }) => tutorials)
.flatMap((val) => val.map(({ slug }) => ({ slug })));
}

@ -1,39 +1,9 @@
// @ts-check // @ts-check
import adapter from '@sveltejs/adapter-vercel'; import adapter from '@sveltejs/adapter-vercel';
import { get_examples_data, get_examples_list } from './src/lib/server/examples/get-examples.js';
import { get_tutorial_data, get_tutorial_list } from './src/lib/server/tutorial/get-tutorial.js';
/** @type {import('@sveltejs/kit').Config} */ /** @type {import('@sveltejs/kit').Config} */
export default { export default {
kit: { kit: {
adapter: adapter(), adapter: adapter()
prerender: {
// TODO use route entries instead, once https://github.com/sveltejs/kit/pull/9571 is merged
entries: ['*', ...repl_json_entries(), ...tutorial_entries(), ...examples_json_entries()]
}
} }
}; };
function repl_json_entries() {
return get_examples_list(
get_examples_data(new URL('../../site/content/examples', import.meta.url).pathname)
).flatMap(({ examples }) =>
examples.map(({ slug }) => /** @type {(`/${string}`)} */ (`/repl/${slug}.json`))
);
}
function tutorial_entries() {
return get_tutorial_list(
get_tutorial_data(new URL('../../site/content/tutorial', import.meta.url).pathname)
).flatMap(({ tutorials }) =>
tutorials.map(({ slug }) => /** @type {(`/${string}`)} */ (`/tutorial/${slug}`))
);
}
function examples_json_entries() {
return get_examples_list(
get_examples_data(new URL('../../site/content/examples', import.meta.url).pathname)
).flatMap(({ examples }) =>
examples.map(({ slug }) => /** @type {(`/${string}`)} */ (`/examples/api/${slug}.json`))
);
}

Loading…
Cancel
Save