From 0e93b591aafc631fa78f20e34c1044f32b9b0860 Mon Sep 17 00:00:00 2001 From: Kevin Kandlbinder Date: Sat, 6 May 2023 20:40:26 +0200 Subject: [PATCH] Transform site to meet specifications --- src/routes/(feeds)/posts.[format]/+server.ts | 82 ------- src/routes/+layout.svelte | 41 ++-- src/routes/+page.server.ts | 6 +- src/routes/+page.svelte | 13 +- src/routes/posts/+page.server.ts | 18 -- src/routes/posts/+page.svelte | 127 ----------- src/routes/posts/[slug]/+page.server.ts | 29 --- src/routes/posts/[slug]/+page.svelte | 217 ------------------- svelte.config.js | 2 +- 9 files changed, 25 insertions(+), 510 deletions(-) delete mode 100644 src/routes/(feeds)/posts.[format]/+server.ts delete mode 100644 src/routes/posts/+page.server.ts delete mode 100644 src/routes/posts/+page.svelte delete mode 100644 src/routes/posts/[slug]/+page.server.ts delete mode 100644 src/routes/posts/[slug]/+page.svelte diff --git a/src/routes/(feeds)/posts.[format]/+server.ts b/src/routes/(feeds)/posts.[format]/+server.ts deleted file mode 100644 index 0b9eb22..0000000 --- a/src/routes/(feeds)/posts.[format]/+server.ts +++ /dev/null @@ -1,82 +0,0 @@ -import Secrets from '$lib/server/secrets'; -import type { RequestHandler } from './$types'; -import GhostContentAPI from '@tryghost/content-api'; -import { Feed } from 'feed'; -import { DateTime } from 'luxon'; -import { error } from '@sveltejs/kit'; - -export const trailingSlash = 'never'; -export const prerender = true; - -export const GET: RequestHandler = async (request) => { - //const siteBase = `${request.url.protocol}//${request.url.host}/` - const siteBase = `https://public-spaces-preview.pages.dev/`; // TODO: Change! - - const api = new GhostContentAPI({ - url: Secrets.ghost.url, - key: Secrets.ghost.key, - version: 'v5.0' - }); - - const posts = await api.posts.browse({ - limit: 100, - include: ['authors', 'tags'] - }); - - const feed = new Feed({ - title: 'Public Spaces e.V.', - generator: 'Public Spaces e.V. Web', - description: 'Die neusten Beiträge von Public Spaces e.V.', - language: 'de-DE', - link: siteBase, - feedLinks: { - rss: `${siteBase}posts.rss`, - json: `${siteBase}posts.json`, - atom: `${siteBase}posts.atom` - }, - id: siteBase, - copyright: '' - }); - - posts.forEach((post) => { - const date = DateTime.fromISO(post.updated_at || post.published_at || post.created_at || ''); - const datePublished = DateTime.fromISO(post.published_at || post.created_at || ''); - - feed.addItem({ - id: `${siteBase}post/${post.slug}`, - title: post.title || '', - link: `${siteBase}post/${post.slug}`, - date: date.toJSDate(), - published: datePublished.toJSDate(), - description: post.excerpt || '', - content: post.html || undefined, - author: post.authors?.map((author) => { - return { - name: author.name - }; - }) - }); - }); - - switch (request.params.format) { - case 'rss': - return new Response(feed.rss2(), { - headers: { - 'Content-Type': 'application/rss+xml' - } - }); - case 'atom': - return new Response(feed.atom1(), { - headers: { - 'Content-Type': 'application/atom+xml' - } - }); - case 'json': - return new Response(feed.json1(), { - headers: { - 'Content-Type': 'application/feed+json' - } - }); - } - throw error(404, 'Ungültiges Format'); -}; diff --git a/src/routes/+layout.svelte b/src/routes/+layout.svelte index c183baa..7861795 100644 --- a/src/routes/+layout.svelte +++ b/src/routes/+layout.svelte @@ -25,24 +25,30 @@
- { menuOpen = false; }}>Beiträge - --> + { menuOpen = false; }}>Kontakt + { + menuOpen = false; + }}>Spenden
-
+
Unterstützer des Vereins -
+
-->
CC-BY-4.0 {new Date().getFullYear()}, Public Spaces e.V. @@ -122,7 +110,8 @@ .grid { grid-column: wide-start/wide-end; display: grid; - grid-template-columns: 1fr 1px 1fr 1px 1fr; + //grid-template-columns: 1fr 1px 1fr 1px 1fr; + grid-template-columns: 1fr; gap: var(--gap); @media (max-width: 700px) { diff --git a/src/routes/+page.server.ts b/src/routes/+page.server.ts index 0f626fe..107ae7c 100644 --- a/src/routes/+page.server.ts +++ b/src/routes/+page.server.ts @@ -14,9 +14,9 @@ export const load: PageServerLoad = async () => { include: ['authors', 'tags'] }); - const about = await api.pages.read({ + /*const about = await api.pages.read({ slug: 'about' - }); + });*/ - return { posts, about }; + return { posts /*, about*/ }; }; diff --git a/src/routes/+page.svelte b/src/routes/+page.svelte index b75297f..7f165e8 100644 --- a/src/routes/+page.svelte +++ b/src/routes/+page.svelte @@ -1,11 +1,11 @@ @@ -48,9 +48,9 @@
- Mehr über uns + -
+ + Alle Beiträge sehen--> diff --git a/src/routes/posts/[slug]/+page.server.ts b/src/routes/posts/[slug]/+page.server.ts deleted file mode 100644 index a8ff031..0000000 --- a/src/routes/posts/[slug]/+page.server.ts +++ /dev/null @@ -1,29 +0,0 @@ -import type { PageServerLoad } from './$types'; -import GhostContentAPI from '@tryghost/content-api'; -import Secrets from '$lib/server/secrets'; -import { error } from '@sveltejs/kit'; - -export const load: PageServerLoad = async ({ params }) => { - const api = new GhostContentAPI({ - url: Secrets.ghost.url, - key: Secrets.ghost.key, - version: 'v5.0' - }); - - let post = null; - - try { - post = await api.posts.read( - { - slug: params.slug - }, - { include: ['tags', 'authors'] } - ); - } catch (e) { - throw error(404, 'Artikel Nicht Gefunden'); - } - - return { - post - }; -}; diff --git a/src/routes/posts/[slug]/+page.svelte b/src/routes/posts/[slug]/+page.svelte deleted file mode 100644 index 97e558f..0000000 --- a/src/routes/posts/[slug]/+page.svelte +++ /dev/null @@ -1,217 +0,0 @@ - - - - {data.post.title} - - - - - - - - - - - - - - - - {#if data.post.updated_at} - - {/if} - {#if data.post.primary_tag} - - {/if} - {@html ``} - - -
-
-

{data.post?.title}

- - {publishTime.setLocale('de-DE').toLocaleString(DateTime.DATE_FULL)} · - Ca. {data.post.reading_time || data.post.reading_time === 0 - ? Math.max(1, data.post.reading_time) + ' Min.' - : 'Unbekannte'} Lesezeit - · - - {#each data.post.tags || [] as tag, i} - {i > 0 ? ', ' : ''}{tag.name} - {/each} - - - - {#if data.post.feature_image} -
-
- {data.post.feature_image_alt -
{@html data.post.feature_image_caption || ''}
-
-
- {/if} -
- -
- {@html data.post?.html} - - -
- -
-
- {#each data.post.authors || [] as author} -
-
- {#if author.profile_image} - {'Profilbild - {/if} - {#if !author.profile_image} -
- {/if} -
-
- {author.name} -

{author.bio || ''}

- -
-
- {/each} -
-
- - diff --git a/svelte.config.js b/svelte.config.js index 1b5beac..e1230e0 100644 --- a/svelte.config.js +++ b/svelte.config.js @@ -23,7 +23,7 @@ const config = { // See https://kit.svelte.dev/docs/adapters for more information about adapters. adapter: adapter({}), prerender: { - entries: ['*', '/posts.rss', '/posts.atom', '/posts.json'] + entries: ['*'] } } };