diff --git a/webapp/package.json b/webapp/package.json
index 4c55383..a743e81 100644
--- a/webapp/package.json
+++ b/webapp/package.json
@@ -19,7 +19,7 @@
},
"devDependencies": {
"@sveltejs/adapter-auto": "next",
- "@sveltejs/kit": "^1.0.0-next.350",
+ "@sveltejs/kit": "^1.0.0-next.544",
"@tailwindcss/typography": "^0.5.2",
"@testing-library/jest-dom": "^5.16.4",
"@testing-library/svelte": "^3.1.3",
diff --git a/webapp/pnpm-lock.yaml b/webapp/pnpm-lock.yaml
index 66416bc..e86397b 100644
--- a/webapp/pnpm-lock.yaml
+++ b/webapp/pnpm-lock.yaml
@@ -3,7 +3,7 @@ lockfileVersion: 5.4
specifiers:
'@sveltejs/adapter-auto': next
'@sveltejs/adapter-node': ^1.0.0-next.78
- '@sveltejs/kit': ^1.0.0-next.350
+ '@sveltejs/kit': ^1.0.0-next.544
'@tailwindcss/typography': ^0.5.2
'@testing-library/jest-dom': ^5.16.4
'@testing-library/svelte': ^3.1.3
diff --git a/webapp/src/routes/+error.svelte b/webapp/src/routes/+error.svelte
index c16160d..e18efb8 100644
--- a/webapp/src/routes/+error.svelte
+++ b/webapp/src/routes/+error.svelte
@@ -1,42 +1,21 @@
-
-
-
{title}
-
{explainText}
+ {#if $page.status === 404}
+
404: No note found 🕵️
+
No note was found at this link. Are you from the future?
+ {:else if $page.status === 410}
+
📝💨 This note is no longer here!
+
+ Notes are stored for a limited amount of time. The note at this link was either set to expire,
+ or deleted due to inactivity. Sorry!
+
+ {/if}
- {#if status == 404 || status == 410}
+ {#if $page.status === 404 || $page.status === 410}

{/if}
diff --git a/webapp/src/routes/+page.js b/webapp/src/routes/+page.js
new file mode 100644
index 0000000..a913e50
--- /dev/null
+++ b/webapp/src/routes/+page.js
@@ -0,0 +1,2 @@
+// try making this false to prevent LinkedIn crawler returning 416
+export const prerender = false;
diff --git a/webapp/src/routes/+page.svelte b/webapp/src/routes/+page.svelte
index 49c6074..790164a 100644
--- a/webapp/src/routes/+page.svelte
+++ b/webapp/src/routes/+page.svelte
@@ -1,8 +1,3 @@
-
-
diff --git a/webapp/src/routes/about/+page.js b/webapp/src/routes/about/+page.js
new file mode 100644
index 0000000..189f71e
--- /dev/null
+++ b/webapp/src/routes/about/+page.js
@@ -0,0 +1 @@
+export const prerender = true;
diff --git a/webapp/src/routes/about/+page.svelte b/webapp/src/routes/about/+page.svelte
index d2bd431..ab4a7d1 100644
--- a/webapp/src/routes/about/+page.svelte
+++ b/webapp/src/routes/about/+page.svelte
@@ -1,7 +1,3 @@
-
-
About | {import.meta.env.VITE_BRANDING}
diff --git a/webapp/src/routes/changelog/+page.svelte b/webapp/src/routes/changelog/+page.svelte
index 281daa0..713e023 100644
--- a/webapp/src/routes/changelog/+page.svelte
+++ b/webapp/src/routes/changelog/+page.svelte
@@ -1,8 +1,5 @@
-
diff --git a/webapp/src/routes/changelog/+page.ts b/webapp/src/routes/changelog/+page.ts
new file mode 100644
index 0000000..4b63624
--- /dev/null
+++ b/webapp/src/routes/changelog/+page.ts
@@ -0,0 +1,8 @@
+export const prerender = true;
+
+// @ts-expect-error - Markdown files are not recognized by Vite
+import { html } from '/CHANGELOG.md';
+
+export function load() {
+ return { html };
+}
diff --git a/webapp/src/routes/contact/+page.js b/webapp/src/routes/contact/+page.js
new file mode 100644
index 0000000..189f71e
--- /dev/null
+++ b/webapp/src/routes/contact/+page.js
@@ -0,0 +1 @@
+export const prerender = true;
diff --git a/webapp/src/routes/contact/+page.svelte b/webapp/src/routes/contact/+page.svelte
index 3f6f73e..7d08679 100644
--- a/webapp/src/routes/contact/+page.svelte
+++ b/webapp/src/routes/contact/+page.svelte
@@ -1,7 +1,3 @@
-
-
Contact | {import.meta.env.VITE_BRANDING}
diff --git a/webapp/src/routes/funding/+page.svelte b/webapp/src/routes/funding/+page.svelte
index 9be8191..713e023 100644
--- a/webapp/src/routes/funding/+page.svelte
+++ b/webapp/src/routes/funding/+page.svelte
@@ -1,8 +1,5 @@
-
diff --git a/webapp/src/routes/funding/+page.ts b/webapp/src/routes/funding/+page.ts
new file mode 100644
index 0000000..aa152c7
--- /dev/null
+++ b/webapp/src/routes/funding/+page.ts
@@ -0,0 +1,8 @@
+export const prerender = true;
+
+// @ts-expect-error - Markdown files are not recognized by Svelte
+import { html } from '../funding.md';
+
+export function load() {
+ return { html };
+}
diff --git a/webapp/src/routes/install/+page.js b/webapp/src/routes/install/+page.js
new file mode 100644
index 0000000..189f71e
--- /dev/null
+++ b/webapp/src/routes/install/+page.js
@@ -0,0 +1 @@
+export const prerender = true;
diff --git a/webapp/src/routes/install/+page.svelte b/webapp/src/routes/install/+page.svelte
index c46d546..e60bded 100644
--- a/webapp/src/routes/install/+page.svelte
+++ b/webapp/src/routes/install/+page.svelte
@@ -1,7 +1,3 @@
-
-
Get the plugin | {import.meta.env.VITE_BRANDING}
diff --git a/webapp/src/routes/note/[id]/+page.server.ts b/webapp/src/routes/note/[id]/+page.server.ts
index 87c7afc..3dba32b 100644
--- a/webapp/src/routes/note/[id]/+page.server.ts
+++ b/webapp/src/routes/note/[id]/+page.server.ts
@@ -1,7 +1,9 @@
import type { EncryptedNote } from '$lib/model/EncryptedNote';
-import type { RequestHandler } from '@sveltejs/kit';
+import type { PageServerLoad } from './$types';
-export const get: RequestHandler = async ({ request, clientAddress, params }) => {
+import { error } from '@sveltejs/kit';
+
+export const get: PageServerLoad = async ({ request, clientAddress, params, setHeaders }) => {
const ip = (request.headers.get('x-forwarded-for') || clientAddress) as string;
const url = `${import.meta.env.VITE_SERVER_INTERNAL}/api/note/${params.id}`;
const response = await fetch(url, {
@@ -16,27 +18,16 @@ export const get: RequestHandler = async ({ request, clientAddress, params }) =>
note.insert_time = new Date(note.insert_time as unknown as string);
note.expire_time = new Date(note.expire_time as unknown as string);
const maxage = Math.floor((note.expire_time.valueOf() - note.insert_time.valueOf()) / 1000);
- return {
- status: response.status,
- headers: {
- 'Cache-Control': `public, max-age=${maxage}`
- },
- cache: {
- maxage: maxage,
- private: false
- },
- body: { note }
- };
+
+ setHeaders({
+ maxage: maxage,
+ 'Cache-Control': `max-age=${maxage}, public`
+ });
+ return { note };
} catch {
- return {
- status: 500,
- error: response.statusText
- };
+ error(500, response.statusText);
}
} else {
- return {
- status: response.status,
- error: response.statusText
- };
+ error(response.status, response.statusText);
}
};
diff --git a/webapp/src/routes/note/[id]/+page.svelte b/webapp/src/routes/note/[id]/+page.svelte
index 40debbb..137fe33 100644
--- a/webapp/src/routes/note/[id]/+page.svelte
+++ b/webapp/src/routes/note/[id]/+page.svelte
@@ -1,34 +1,19 @@
-
-
-
Roadmap | {import.meta.env.VITE_BRANDING}