From 1ac4e90bfdc8d1db8afa6fd3fe489adcb6e75b07 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Moritz=20M=C3=A4hr?=
Date: Mon, 4 Sep 2023 10:10:37 +0200
Subject: [PATCH] wip
---
CHANGELOG.md | 7 +++
README.md | 46 +++++------------
package.json | 3 +-
pnpm-lock.yaml | 76 +++++++++++++++++++++++++++
src/lib/components/Container.svelte | 2 +-
src/lib/components/Navigation.svelte | 2 +-
src/routes/+page.svelte | 3 +-
src/routes/agenda/+page.svelte | 77 +++++++++++++++++-----------
8 files changed, 149 insertions(+), 67 deletions(-)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 98ef0ba9..752a3b57 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -6,3 +6,10 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
## [Unreleased](https://github.com/Stadt-Geschichte-Basel/stadtgeschichtebasel.ch/compare/...HEAD)
+
+- feat: SvelteKit and Skeleton-UI by @maehr
+- feat: Architecture by @maehr, @flicksolutions and @thgie
+- feat: UX by @maehr, @thgie and @amaehr
+- feat: blog via MDsveX and Wordpress API (https://sgb.hypotheses.org/wp-json/wp/v2/) by @maehr and @flicksolutions
+- feat: agenda via Agendabasel.ch API (https://www.kulturzueri.ch/xmlexport/kzexport-basel.xml)
+- feat: map via svelte-maplibre by @koilebeit and @maehr
diff --git a/README.md b/README.md
index d300b247..1e9ae1a8 100644
--- a/README.md
+++ b/README.md
@@ -34,39 +34,19 @@ This project is maintained by [@maehr](https://github.com/maehr). Please underst
## Roadmap
-- [x] Basic layout (inspired by )
-- [x] Download all posts and pages from sgb.hypotheses.org
-- [x] Download all assets from sgb.hypotheses.org
-- [x] Implement blog functionality
-- [x] Implement page functionality
-- [x] Add robots.txt
-- [x] Add fonts
-- [x] Add Meta-Tag, Twitter Card and OpenGraph Generator
-- [ ] Add search functionality via lunr or elasticlunr (or similar)
-- [ ] Collapse search on mobile
-- [ ] ~~Read params from url~~
-- [ ] ~~Add newsletter functionality~~
-- [ ] Add wcag accessibility functionality and logo
-- [x] Add copyright info
-- [ ] Add sitemap
-- [x] Add agenda page
-- [x] Add map page
-- [ ] ~~Add dark mode~~
-- [x] Add breadcrumb
-- [ ] ~~Add confirmation page for newsletter subscription~~
-- [ ] ~~Remove mdsvex dependency if no longer needed~~
-- [ ] ~~Remove turndown dependency if no longer needed~~
-- [ ]
-- [ ]
-- [ ]
-- [ ] Add metadata to svg
-- [x] Add "@vite-pwa/sveltekit": "^0.2.1",
-- [x]
-- [x]
-- [ ] https://sveltekit-static-blog-template.vercel.app/
-- [ ] ~~https://github.com/matfantinel/image-transmutation~~
-- [x] make all page prerenderable
-- [ ] Cloudflare rule für weiterleitungen www.stadtgeschichtebasel.ch/index... stadtgeschichtebasel.ch/index (siehe kernreaktor.ch/\* Forwarding URL (Status Code: 301 - Permanent Redirect, Url: https://web.archive.org/web/kernreaktor.ch/$1))
+- [ ] feat: improved accessability
+ - [ ] feat: wcag 2.1 compliance
+ - [ ] feat:
+ - [ ] feat: Add toc to long pages
+- [ ] feat: link to research data platform
+- [ ] feat: lunr.js bases search
+- [ ] feat: improved SEO
+ - [ ] feat: sitemap.xml
+ - [ ] feat: rss.xml (via )
+ - [ ] feat: atom.xml
+ - [ ] fix: improved meta-tags
+ - [ ] fix: Add metadata to svg images
+ - [ ] fix: better description for old page redirects
## Contributing
diff --git a/package.json b/package.json
index dccf817f..adacabe8 100644
--- a/package.json
+++ b/package.json
@@ -24,7 +24,7 @@
"commit": "cz",
"prepare": "svelte-kit sync && husky install",
"prebuild": "node ./src/lib/downloadPostsPagesAssets.mjs",
- "postbuild": "jampack ./build"
+ "postbuild": "jampack ./build && npx svelte-sitemap --domain https://beta.stadtgeschichtebasel.ch"
},
"devDependencies": {
"@divriots/jampack": "^0.13.0",
@@ -60,6 +60,7 @@
"svelte": "^3.59.2",
"svelte-check": "^3.5.1",
"svelte-maplibre": "^0.3.4",
+ "svelte-sitemap": "^2.6.0",
"tailwindcss": "^3.3.3",
"turndown": "^7.1.2",
"typescript": "^5.2.2",
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index ace9ec3a..05d79956 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -104,6 +104,9 @@ devDependencies:
svelte-maplibre:
specifier: ^0.3.4
version: 0.3.4(svelte@3.59.2)
+ svelte-sitemap:
+ specifier: ^2.6.0
+ version: 2.6.0
tailwindcss:
specifier: ^3.3.3
version: 3.3.3
@@ -1719,6 +1722,35 @@ packages:
fastq: 1.15.0
dev: true
+ /@oozcitak/dom@1.15.10:
+ resolution: {integrity: sha512-0JT29/LaxVgRcGKvHmSrUTEvZ8BXvZhGl2LASRUgHqDTC1M5g1pLmVv56IYNyt3bG2CUjDkc67wnyZC14pbQrQ==}
+ engines: {node: '>=8.0'}
+ dependencies:
+ '@oozcitak/infra': 1.0.8
+ '@oozcitak/url': 1.0.4
+ '@oozcitak/util': 8.3.8
+ dev: true
+
+ /@oozcitak/infra@1.0.8:
+ resolution: {integrity: sha512-JRAUc9VR6IGHOL7OGF+yrvs0LO8SlqGnPAMqyzOuFZPSZSXI7Xf2O9+awQPSMXgIWGtgUf/dA6Hs6X6ySEaWTg==}
+ engines: {node: '>=6.0'}
+ dependencies:
+ '@oozcitak/util': 8.3.8
+ dev: true
+
+ /@oozcitak/url@1.0.4:
+ resolution: {integrity: sha512-kDcD8y+y3FCSOvnBI6HJgl00viO/nGbQoCINmQ0h98OhnGITrWR3bOGfwYCthgcrV8AnTJz8MzslTQbC3SOAmw==}
+ engines: {node: '>=8.0'}
+ dependencies:
+ '@oozcitak/infra': 1.0.8
+ '@oozcitak/util': 8.3.8
+ dev: true
+
+ /@oozcitak/util@8.3.8:
+ resolution: {integrity: sha512-T8TbSnGsxo6TDBJx/Sgv/BlVJL3tshxZP7Aq5R1mSnM5OcHY2dQaxLMu2+E8u3gN0MLOzdjurqN4ZRVuzQycOQ==}
+ engines: {node: '>=8.0'}
+ dev: true
+
/@playwright/test@1.37.1:
resolution: {integrity: sha512-bq9zTli3vWJo8S3LwB91U0qDNQDpEXnw7knhxLM0nwDvexQAwx9tO8iKDZSqqneVq+URd/WIoz+BALMqUTgdSg==}
engines: {node: '>=16'}
@@ -2235,6 +2267,12 @@ packages:
resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==}
dev: true
+ /argparse@1.0.10:
+ resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==}
+ dependencies:
+ sprintf-js: 1.0.3
+ dev: true
+
/argparse@2.0.1:
resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==}
dev: true
@@ -3192,6 +3230,12 @@ packages:
eslint-visitor-keys: 3.4.3
dev: true
+ /esprima@4.0.1:
+ resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==}
+ engines: {node: '>=4'}
+ hasBin: true
+ dev: true
+
/esquery@1.5.0:
resolution: {integrity: sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==}
engines: {node: '>=0.10'}
@@ -4026,6 +4070,14 @@ packages:
resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==}
dev: true
+ /js-yaml@3.14.1:
+ resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==}
+ hasBin: true
+ dependencies:
+ argparse: 1.0.10
+ esprima: 4.0.1
+ dev: true
+
/js-yaml@4.1.0:
resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==}
hasBin: true
@@ -5560,6 +5612,10 @@ packages:
extend-shallow: 3.0.2
dev: true
+ /sprintf-js@1.0.3:
+ resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==}
+ dev: true
+
/stdin-discarder@0.1.0:
resolution: {integrity: sha512-xhV7w8S+bUwlPTb4bAOUQhv8/cSS5offJuX8GQGq32ONF0ZtDWKfkdomM3HMRA+LhX6um/FZ0COqlwsjD53LeQ==}
engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
@@ -5854,6 +5910,16 @@ packages:
typescript: 5.2.2
dev: true
+ /svelte-sitemap@2.6.0:
+ resolution: {integrity: sha512-WcwsuIeo8iJFG9a5cgvXwXEGoyjk6Zowb6JmL5BbwfnFXMzakGa1+mQjthw5Ni3UV/gGbE0PgJvc7Ygir3LmFg==}
+ engines: {node: '>= 14.17.0'}
+ hasBin: true
+ dependencies:
+ fast-glob: 3.3.1
+ minimist: 1.2.8
+ xmlbuilder2: 3.1.1
+ dev: true
+
/svelte@3.59.2:
resolution: {integrity: sha512-vzSyuGr3eEoAtT/A6bmajosJZIUWySzY2CzB3w2pgPvnkUjGqlDnsNnA0PMO+mMAhuyMul6C2uuZzY6ELSkzyA==}
engines: {node: '>= 8'}
@@ -6767,6 +6833,16 @@ packages:
xmlbuilder: 11.0.1
dev: true
+ /xmlbuilder2@3.1.1:
+ resolution: {integrity: sha512-WCSfbfZnQDdLQLiMdGUQpMxxckeQ4oZNMNhLVkcekTu7xhD4tuUDyAPoY8CwXvBYE6LwBHd6QW2WZXlOWr1vCw==}
+ engines: {node: '>=12.0'}
+ dependencies:
+ '@oozcitak/dom': 1.15.10
+ '@oozcitak/infra': 1.0.8
+ '@oozcitak/util': 8.3.8
+ js-yaml: 3.14.1
+ dev: true
+
/xmlbuilder@11.0.1:
resolution: {integrity: sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==}
engines: {node: '>=4.0'}
diff --git a/src/lib/components/Container.svelte b/src/lib/components/Container.svelte
index 868fca3e..81184def 100644
--- a/src/lib/components/Container.svelte
+++ b/src/lib/components/Container.svelte
@@ -1,3 +1,3 @@
-
+
diff --git a/src/lib/components/Navigation.svelte b/src/lib/components/Navigation.svelte
index 5ee11ca4..6da2ecfb 100644
--- a/src/lib/components/Navigation.svelte
+++ b/src/lib/components/Navigation.svelte
@@ -9,7 +9,7 @@
}
-
+
{/each}
-
+
+
diff --git a/src/routes/agenda/+page.svelte b/src/routes/agenda/+page.svelte
index 971c9a60..d0d4ac2a 100644
--- a/src/routes/agenda/+page.svelte
+++ b/src/routes/agenda/+page.svelte
@@ -2,7 +2,7 @@
import Container from '$lib/components/Container.svelte';
/** @type {import('./$types').PageData} */
export let data;
- const events = data.events.filter(({ startDate }) => new Date(startDate) > new Date())
+ const events = data.events.filter(({ startDate }) => new Date(startDate) > new Date());
events.forEach((date) => {
const startDate = new Date(date.startDate);
const endDate = new Date(date.endDate);
@@ -26,38 +26,55 @@
Agenda
- Veranstaltungen
-
- Dauerausstellungen
-
+
+
+ Agendabasel.ch
+
+ Alle Daten auf dieser Seite stammen von agendabasel.ch
+ und werden der Stiftung Stadt.Geschichte.Basel im Rahmen einer Kooperation kostenlos zur Verfügung
+ gestellt. Falls Sie eine Veranstaltung oder Ausstellung auf Stadt.Geschichte.Basel publizieren
+ möchten, wenden Sie sich bitte direkt an agendabasel.ch oder an
+ vermittlung@stadtgeschichtebasel.ch .
+ Die Stiftung Stadt.Geschichte.Basel übernimmt keine Verantwortung für die Richtigkeit der
+ Daten.
+
+