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} encrypted-art {/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}