diff --git a/.yarn/install-state.gz b/.yarn/install-state.gz index c7cb5b6..f27e267 100644 Binary files a/.yarn/install-state.gz and b/.yarn/install-state.gz differ diff --git a/package.json b/package.json index b6133b6..ba02ecb 100644 --- a/package.json +++ b/package.json @@ -14,20 +14,20 @@ }, "devDependencies": { "@img/sharp-linux-x64": "^0.33.5", - "@sveltejs/vite-plugin-svelte": "^3.1.2", + "@sveltejs/vite-plugin-svelte": "^4.0.0", "@types/cookie": "^0.6.0", "@types/html-minifier": "^4.0.5", "@types/matter-js": "^0.19.7", "@types/turndown": "^5.0.5", - "@typescript-eslint/eslint-plugin": "^8.10.0", - "@typescript-eslint/parser": "^8.10.0", + "@typescript-eslint/eslint-plugin": "^8.11.0", + "@typescript-eslint/parser": "^8.11.0", "eslint": "^9.13.0", "eslint-config-prettier": "^9.1.0", "mdsvex": "patch:mdsvex@npm%3A0.12.3#~/.yarn/patches/mdsvex-npm-0.12.3-11596b7ddc.patch", "prettier": "^3.3.3", "prettier-plugin-svelte": "^3.2.7", "sharp": "^0.33.5", - "svelte": "4.2.19", + "svelte": "^5.1.0", "svelte-check": "^4.0.5", "svelte-preprocess": "^6.0.3", "tslib": "^2.8.0", @@ -38,16 +38,16 @@ "@lukeed/uuid": "^2.0.1", "@sveltejs/adapter-node": "^5.2.8", "@sveltejs/adapter-static": "^3.0.5", - "@sveltejs/kit": "^2.7.1", + "@sveltejs/kit": "^2.7.2", "@types/js-yaml": "^4.0.9", "cbor-x": "^1.6.0", "cookie": "^1.0.1", "html-minifier": "^4.0.0", "matter-js": "^0.20.0", "postinstall-postinstall": "^2.1.0", - "svelte-body": "^1.4.0", + "svelte-body": "^2.0.0", "turndown": "^7.2.0", - "vite": "5.4.9" + "vite": "5.4.10" }, "engines": { "node": ">=16" diff --git a/src/lib/98/98.css b/src/lib/98/98.css index e947e8d..4c5f397 100644 --- a/src/lib/98/98.css +++ b/src/lib/98/98.css @@ -779,4 +779,3 @@ table > tbody > tr > * { height: 14px; padding: 0 6px; } -/*# sourceMappingURL=98.css.map */ diff --git a/src/lib/BackAnchor.svelte b/src/lib/BackAnchor.svelte index 5be5819..43f264a 100644 --- a/src/lib/BackAnchor.svelte +++ b/src/lib/BackAnchor.svelte @@ -1,5 +1,9 @@ diff --git a/src/lib/ButtonRow.svelte b/src/lib/ButtonRow.svelte index 872bb9f..2d2c763 100644 --- a/src/lib/ButtonRow.svelte +++ b/src/lib/ButtonRow.svelte @@ -1,5 +1,15 @@ + +
- + {@render children?.()}
` @@ -13,7 +17,7 @@ -
+
{@html postHtml}
diff --git a/src/lib/Project.svelte b/src/lib/Project.svelte index 3afbfc9..a52ed98 100644 --- a/src/lib/Project.svelte +++ b/src/lib/Project.svelte @@ -7,27 +7,41 @@ import TypeScriptIcon from './Icon/TypeScript.svelte' import IconButtonRow from './IconButtonRow.svelte' - export let name: string - export let nextName: string | undefined - export let href: string | undefined = undefined - export let languages: string[] = [] - /** A link to where the code is hosted. */ - export let source: string | undefined = undefined + - export let archived = false + interface Props { + name: string; + nextName: string | undefined; + href?: string | undefined; + languages?: string[]; + /** A link to where the code is hosted. */ + source?: string | undefined; + archived?: boolean; + children?: import('svelte').Snippet; + } + + let { + name, + nextName, + href = undefined, + languages = [], + source = undefined, + archived = false, + children + }: Props = $props(); function nameToId(name: string): string { return name.toLowerCase().replace(/\s+/g, '-') } - $: id = nameToId(name) - $: nextId = nextName ? nameToId(nextName) : undefined + let id = $derived(nameToId(name)) + let nextId = $derived(nextName ? nameToId(nextName) : undefined)
-
+
{#if href} @@ -63,7 +77,7 @@ {/if} -

+

{@render children?.()}

{#if nextId}
↓ Next diff --git a/src/lib/blog.ts b/src/lib/blog.ts index 05e0b66..301ed3b 100644 --- a/src/lib/blog.ts +++ b/src/lib/blog.ts @@ -1,5 +1,6 @@ import path from 'path' import fs from 'fs' +import { render } from 'svelte/server' export const postsDir = 'src/routes/(blog)' as const @@ -68,18 +69,16 @@ export async function getPost(slug: string): Promise { }> } = { title: '', subtitle: undefined, head: '', css: new Set() } - const renderHtml = post.$$render( - result, - {}, - {}, - {}, - new Map([ + const renderHtml = render(post, { + props: result, + context: new Map([ [ '__svelte__', { page: { - // HACK: this is necessary so the hack with images works - // probably a war crime :) + // this is necessary so the page.subscribe calls in + // img.svelte don't error for calling page.subscribe + // outside of a component subscribe: (r: any) => { r({ url }) }, @@ -91,12 +90,13 @@ export async function getPost(slug: string): Promise { }, }, ], - ]) - ) + ]), + }) + // console.log('renderHtml', renderHtml) // HACK: i'm probably committing a felony by putting this here // but i couldn't come up with a better solution - const html = /^[\w\W]*?<\/div>\s*([\w\W]+)<\/article>[\w\W]*?$/.exec(renderHtml)?.[1] ?? '' + const html = /^[\w\W]*?<\/div>\s*([\w\W]+)<\/article>[\w\W]*?$/.exec(renderHtml.body)?.[1] ?? '' const css = Array.from(result.css) .map((css) => css.code) diff --git a/src/lib/components/img.svelte b/src/lib/components/img.svelte index 3ea46a8..89f826c 100644 --- a/src/lib/components/img.svelte +++ b/src/lib/components/img.svelte @@ -1,7 +1,12 @@ -
diff --git a/src/routes/(blog)/minecraft-scanning/Server.svelte b/src/routes/(blog)/minecraft-scanning/Server.svelte index 6f635e4..dd260f7 100644 --- a/src/routes/(blog)/minecraft-scanning/Server.svelte +++ b/src/routes/(blog)/minecraft-scanning/Server.svelte @@ -18,7 +18,11 @@ onlineMode: undefined | boolean } - export let data: ServerData + interface Props { + data: ServerData; + } + + let { data }: Props = $props(); let displayIp = data.port !== 25565 ? `${data.host}:${data.port}` : data.host diff --git a/src/routes/(blog)/minecraft-uuids/BarChart.svelte b/src/routes/(blog)/minecraft-uuids/BarChart.svelte index b6ebaf0..78c1f06 100644 --- a/src/routes/(blog)/minecraft-uuids/BarChart.svelte +++ b/src/routes/(blog)/minecraft-uuids/BarChart.svelte @@ -1,5 +1,9 @@ {#key data.pathname} @@ -106,15 +114,15 @@ out:fly={{ x: 5 * flyDirection, duration: 200 }} >
- + {@render children?.()}