diff --git a/package.json b/package.json index 9a47247..a538968 100644 --- a/package.json +++ b/package.json @@ -7,7 +7,7 @@ "build": "vite build", "package": "svelte-kit package", "preview": "vite preview", - "prepare": "svelte-kit sync", + "postinstall": "svelte-kit sync", "check": "svelte-check --tsconfig ./tsconfig.json", "check:watch": "svelte-check --tsconfig ./tsconfig.json --watch", "lint": "prettier --check --plugin-search-dir=. . && eslint .", @@ -15,7 +15,7 @@ }, "devDependencies": { "@sveltejs/adapter-auto": "next", - "@sveltejs/kit": "next", + "@sveltejs/kit": "1.0.0-next.413", "@typescript-eslint/eslint-plugin": "^5.27.0", "@typescript-eslint/parser": "^5.27.0", "autoprefixer": "^10.4.7", diff --git a/src/app.d.ts b/src/app.d.ts index 4abaddc..1deb4a1 100644 --- a/src/app.d.ts +++ b/src/app.d.ts @@ -7,9 +7,9 @@ declare namespace App { // interface Locals {} // interface Platform {} // interface Session {} - interface Stuff { - title?: string; - description?: string; - keywords?: string[]; - } + // interface Stuff { + // title?: string; + // description?: string; + // keywords?: string[]; + // } } diff --git a/src/lib/utils/types.ts b/src/lib/utils/types.ts index f2ff897..bdfd0a5 100644 --- a/src/lib/utils/types.ts +++ b/src/lib/utils/types.ts @@ -27,3 +27,11 @@ export interface Thumbnail { width: number; height: number; } + +export interface PageData { + seo: { + title: string; + description: string; + keywords: string[]; + }; +} diff --git a/src/routes/+layout.svelte b/src/routes/+layout.svelte index a240cd5..5f6f374 100644 --- a/src/routes/+layout.svelte +++ b/src/routes/+layout.svelte @@ -5,11 +5,20 @@ import Header from '$lib/components/Header.svelte'; import '@fontsource/ubuntu-mono/400.css'; - $: wrappedTitle = $page.stuff.title - ? `${$page.stuff.title} - Alex Daichendt` - : "Alex Daichendt's website"; - $: description = $page.stuff.description; - $: keywords = $page.stuff.keywords; + // svelte-ignore unused-export-let + export let data; + + let seo = $page.data?.seo; + + let wrappedTitle = "Alex Daichendt's website"; + let description = ''; + let keywords: string[] = []; + + if (seo) { + wrappedTitle = seo.title ? `${seo.title} - Alex Daichendt` : "Alex Daichendt's website"; + description = seo.description; + keywords = seo.keywords; + } - export async function load() { - return { - stuff: { - title: 'Home', - description: - 'Alex Daichendt"s website, blog, and yard of stuffs and things of modern tech.', - }, - }; - } - - -

Blog Posts

diff --git a/src/routes/blog/+page.ts b/src/routes/blog/+page.ts new file mode 100644 index 0000000..05dc5e6 --- /dev/null +++ b/src/routes/blog/+page.ts @@ -0,0 +1,13 @@ +import type { LoadEvent } from '@sveltejs/kit'; +import type { PageLoad } from './$types'; + +export async function load({ data }: LoadEvent): PageLoad { + return { + posts: data.posts, + seo: { + title: 'Blog', + description: + 'My blogposts, where I occasionally document things, that I think are not accessible or badly documented.', + }, + }; +} diff --git a/src/routes/blog/lxcanddpdk/+page.svx b/src/routes/blog/lxcanddpdk/+page.md similarity index 96% rename from src/routes/blog/lxcanddpdk/+page.svx rename to src/routes/blog/lxcanddpdk/+page.md index 66f9f01..1dac47b 100644 --- a/src/routes/blog/lxcanddpdk/+page.svx +++ b/src/routes/blog/lxcanddpdk/+page.md @@ -7,18 +7,6 @@ keywords: - DPDK --- - - For my thesis, I evaluated if containers are viable for low-latency networking. I decided to pick LXC as my container implementation due to them being extremely lightweight compared to its peers and also related work indicating, that LXC beats diff --git a/src/routes/blog/ondemand-image-optimization-catapi/+page.md b/src/routes/blog/ondemand-image-optimization-catapi/+page.md index af31c84..f91b0f6 100644 --- a/src/routes/blog/ondemand-image-optimization-catapi/+page.md +++ b/src/routes/blog/ondemand-image-optimization-catapi/+page.md @@ -10,18 +10,6 @@ keywords: hidden: true --- - - - This tutorial will show you how to flash ArrowOS, a nice android 12 rom, together with magisk to get root access to the phone and also microG, the google alternative to google play services. This tutorial is tailored for the Redmi Note 7, commonly referred to as lavender. Other phones might work differently due to not having a ramdisk, or being an A/B device, or ... something else. Proceed with caution. You can't blame me for bricked devices. Prerequisites: diff --git a/src/routes/blog/software-recommendations/+page.svx b/src/routes/blog/software-recommendations/+page.svx index 8eaa023..ffe1333 100644 --- a/src/routes/blog/software-recommendations/+page.svx +++ b/src/routes/blog/software-recommendations/+page.svx @@ -8,19 +8,6 @@ keywords: hidden: false --- - - - Moving away from BigTech is not an easy task. However, in these days, there are plenty polished alternatives out there. Over the years I tried out many different services and software. I will present what worked best for me here. diff --git a/src/routes/cat/+page.svelte b/src/routes/cat/+page.svelte index d1b669b..ee36089 100644 --- a/src/routes/cat/+page.svelte +++ b/src/routes/cat/+page.svelte @@ -1,19 +1,6 @@ - - - -

Impressum

Information according to ยง5 TMG:

diff --git a/src/routes/impressum/+page.ts b/src/routes/impressum/+page.ts new file mode 100644 index 0000000..99a2fe6 --- /dev/null +++ b/src/routes/impressum/+page.ts @@ -0,0 +1,9 @@ +export async function load() { + throw new Error("@migration task: Migrate this return statement (https://github.com/sveltejs/kit/discussions/5774#discussioncomment-3292693)"); + return { + stuff: { + title: 'Impressum', + description: 'The impressum I have to include for Germany.', + }, + }; +} diff --git a/src/routes/privacy/+page.svelte b/src/routes/privacy/+page.svelte index 185b80d..241a541 100644 --- a/src/routes/privacy/+page.svelte +++ b/src/routes/privacy/+page.svelte @@ -1,15 +1,3 @@ - -

Privacy Policy for AlexDaichendt

diff --git a/src/routes/privacy/+page.ts b/src/routes/privacy/+page.ts new file mode 100644 index 0000000..69fd595 --- /dev/null +++ b/src/routes/privacy/+page.ts @@ -0,0 +1,10 @@ +export async function load() { + throw new Error("@migration task: Migrate this return statement (https://github.com/sveltejs/kit/discussions/5774#discussioncomment-3292693)"); + return { + stuff: { + title: 'Privacy', + description: + 'The privacy policy I have to include even though I don"t collect any data or use shady services.', + }, + }; +} diff --git a/yarn.lock b/yarn.lock index aa45aa5..4dba984 100644 --- a/yarn.lock +++ b/yarn.lock @@ -110,6 +110,11 @@ "@nodelib/fs.scandir" "2.1.5" fastq "^1.6.0" +"@polka/url@^1.0.0-next.20": + version "1.0.0-next.21" + resolved "https://registry.yarnpkg.com/@polka/url/-/url-1.0.0-next.21.tgz#5de5a2385a35309427f6011992b544514d559aa1" + integrity sha512-a5Sab1C4/icpTZVzZc5Ghpz88yQtGOyNqYXcZgOssB2uuAr+wF/MvN6bgtW32q7HHrvBki+BsZ0OuNv6EV3K9g== + "@rollup/pluginutils@^4.1.2", "@rollup/pluginutils@^4.2.1": version "4.2.1" resolved "https://registry.yarnpkg.com/@rollup/pluginutils/-/pluginutils-4.2.1.tgz#e6c6c3aba0744edce3fb2074922d3776c0af2a6d" @@ -154,14 +159,24 @@ "@vercel/nft" "^0.20.0" esbuild "^0.14.48" -"@sveltejs/kit@next": - version "1.0.0-next.392" - resolved "https://registry.yarnpkg.com/@sveltejs/kit/-/kit-1.0.0-next.392.tgz#cbded7a0a9d00ac5d59b063bfe57c37051a2d5df" - integrity sha512-od4rDJ/Soq0I7mda7sTbAnNKERHSDEGNa7QBpLA859xgBkwC1JnEIymYOh9dm+hMyHhB0bUoRoaur0qxKLqOOw== +"@sveltejs/kit@1.0.0-next.413": + version "1.0.0-next.413" + resolved "https://registry.yarnpkg.com/@sveltejs/kit/-/kit-1.0.0-next.413.tgz#f79e4a0d582621aaf9016e37826b180f9f3be0aa" + integrity sha512-6rboaf0LuMEOmW+wyyAmBJ7q8/TyRxJ3ESc8t/k9l0NGXoQ2l61IzHKuHxcxjriKczZFdGFuB97j8wQ/PlLyHA== dependencies: "@sveltejs/vite-plugin-svelte" "^1.0.1" chokidar "^3.5.3" + cookie "^0.5.0" + devalue "^2.0.1" + kleur "^4.1.4" + magic-string "^0.26.2" + mime "^3.0.0" + node-fetch "^3.2.4" sade "^1.8.1" + set-cookie-parser "^2.4.8" + sirv "^2.0.2" + tiny-glob "^0.2.9" + undici "^5.8.1" "@sveltejs/vite-plugin-svelte@^1.0.1": version "1.0.1" @@ -581,6 +596,11 @@ console-control-strings@^1.0.0, console-control-strings@^1.1.0: resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e" integrity sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ== +cookie@^0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.5.0.tgz#d1f5d71adec6558c58f389987c366aa47e994f8b" + integrity sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw== + cross-spawn@^7.0.2: version "7.0.3" resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" @@ -590,6 +610,11 @@ cross-spawn@^7.0.2: shebang-command "^2.0.0" which "^2.0.1" +data-uri-to-buffer@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/data-uri-to-buffer/-/data-uri-to-buffer-4.0.0.tgz#b5db46aea50f6176428ac05b73be39a57701a64b" + integrity sha512-Vr3mLBA8qWmcuschSLAOogKgQ/Jwxulv3RNE4FXnYWRGujzrRWQI4m12fQqRkwX06C0KanhLr4hK+GydchZsaA== + debug@4, debug@^4.0.0, debug@^4.1.1, debug@^4.3.2, debug@^4.3.4: version "4.3.4" resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" @@ -646,6 +671,11 @@ detect-libc@^2.0.0, detect-libc@^2.0.1: resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-2.0.1.tgz#e1897aa88fa6ad197862937fbc0441ef352ee0cd" integrity sha512-463v3ZeIrcWtdgIg6vI6XUncguvr2TnGl4SzDXinkt9mSLpBJKXT3mW6xT3VQdDN11+WVs29pgvivTc4Lp8v+w== +devalue@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/devalue/-/devalue-2.0.1.tgz#5d368f9adc0928e47b77eea53ca60d2f346f9762" + integrity sha512-I2TiqT5iWBEyB8GRfTDP0hiLZ0YeDJZ+upDxjBfOC2lebO5LezQMv7QvIUTzdb64jQyAKLf1AHADtGN+jw6v8Q== + diff@^5.0.0: version "5.1.0" resolved "https://registry.yarnpkg.com/diff/-/diff-5.1.0.tgz#bc52d298c5ea8df9194800224445ed43ffc87e40" @@ -1008,6 +1038,14 @@ fastq@^1.6.0: dependencies: reusify "^1.0.4" +fetch-blob@^3.1.2, fetch-blob@^3.1.4: + version "3.2.0" + resolved "https://registry.yarnpkg.com/fetch-blob/-/fetch-blob-3.2.0.tgz#f09b8d4bbd45adc6f0c20b7e787e793e309dcce9" + integrity sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ== + dependencies: + node-domexception "^1.0.0" + web-streams-polyfill "^3.0.3" + file-entry-cache@^6.0.1: version "6.0.1" resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-6.0.1.tgz#211b2dd9659cb0394b073e7323ac3c933d522027" @@ -1040,6 +1078,13 @@ flatted@^3.1.0: resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.6.tgz#022e9218c637f9f3fc9c35ab9c9193f05add60b2" integrity sha512-0sQoMh9s0BYsm+12Huy/rkKxVu4R1+r96YX5cG44rHV0pQ6iC3Q+mkoMFaGWObMFYQxCVT+ssG1ksneA2MI9KQ== +formdata-polyfill@^4.0.10: + version "4.0.10" + resolved "https://registry.yarnpkg.com/formdata-polyfill/-/formdata-polyfill-4.0.10.tgz#24807c31c9d402e002ab3d8c720144ceb8848423" + integrity sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g== + dependencies: + fetch-blob "^3.1.2" + fraction.js@^4.2.0: version "4.2.0" resolved "https://registry.yarnpkg.com/fraction.js/-/fraction.js-4.2.0.tgz#448e5109a313a3527f5a3ab2119ec4cf0e0e2950" @@ -1335,7 +1380,7 @@ json-stable-stringify-without-jsonify@^1.0.1: resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" integrity sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw== -kleur@^4.0.3, kleur@^4.1.5: +kleur@^4.0.3, kleur@^4.1.4, kleur@^4.1.5: version "4.1.5" resolved "https://registry.yarnpkg.com/kleur/-/kleur-4.1.5.tgz#95106101795f7050c6c650f350c683febddb1780" integrity sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ== @@ -1806,6 +1851,11 @@ micromatch@^4.0.2, micromatch@^4.0.4: braces "^3.0.2" picomatch "^2.3.1" +mime@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/mime/-/mime-3.0.0.tgz#b374550dca3a0c18443b0c950a6a58f1931cf7a7" + integrity sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A== + mimic-response@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-3.1.0.tgz#2d1d59af9c1b129815accc2c46a022a5ce1fa3c9" @@ -1902,6 +1952,11 @@ node-addon-api@^5.0.0: resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-5.0.0.tgz#7d7e6f9ef89043befdb20c1989c905ebde18c501" integrity sha512-CvkDw2OEnme7ybCykJpVcKH+uAOLV2qLqiyla128dN9TkEWfrYmxG6C2boDe5KcNQqZF3orkqzGgOMvZ/JNekA== +node-domexception@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/node-domexception/-/node-domexception-1.0.0.tgz#6888db46a1f71c0b76b3f7555016b63fe64766e5" + integrity sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ== + node-emoji@^1.11.0: version "1.11.0" resolved "https://registry.yarnpkg.com/node-emoji/-/node-emoji-1.11.0.tgz#69a0150e6946e2f115e9d7ea4df7971e2628301c" @@ -1916,6 +1971,15 @@ node-fetch@^2.6.7: dependencies: whatwg-url "^5.0.0" +node-fetch@^3.2.4: + version "3.2.10" + resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-3.2.10.tgz#e8347f94b54ae18b57c9c049ef641cef398a85c8" + integrity sha512-MhuzNwdURnZ1Cp4XTazr69K0BTizsBroX7Zx3UgDSVcZYKF/6p0CBe4EUb/hLqmzVhl0UpYfgRljQ4yxE+iCxA== + dependencies: + data-uri-to-buffer "^4.0.0" + fetch-blob "^3.1.4" + formdata-polyfill "^4.0.10" + node-gyp-build@^4.2.2: version "4.5.0" resolved "https://registry.yarnpkg.com/node-gyp-build/-/node-gyp-build-4.5.0.tgz#7a64eefa0b21112f89f58379da128ac177f20e40" @@ -2357,6 +2421,15 @@ simple-swizzle@^0.2.2: dependencies: is-arrayish "^0.3.1" +sirv@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/sirv/-/sirv-2.0.2.tgz#128b9a628d77568139cff85703ad5497c46a4760" + integrity sha512-4Qog6aE29nIjAOKe/wowFTxOdmbEZKb+3tsLljaBRzJwtqto0BChD2zzH0LhgCSXiI+V7X+Y45v14wBZQ1TK3w== + dependencies: + "@polka/url" "^1.0.0-next.20" + mrmime "^1.0.0" + totalist "^3.0.0" + slash@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" @@ -2523,6 +2596,11 @@ to-regex-range@^5.0.1: dependencies: is-number "^7.0.0" +totalist@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/totalist/-/totalist-3.0.0.tgz#4ef9c58c5f095255cdc3ff2a0a55091c57a3a1bd" + integrity sha512-eM+pCBxXO/njtF7vdFsHuqb+ElbxqtI4r5EAvk6grfAFyJ6IvWlSkfZ5T9ozC6xWw3Fj1fGoSmrl0gUs46JVIw== + tr46@~0.0.3: version "0.0.3" resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a" @@ -2574,6 +2652,11 @@ typescript@*, typescript@^4.7.4: resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.7.4.tgz#1a88596d1cf47d59507a1bcdfb5b9dfe4d488235" integrity sha512-C0WQT0gezHuw6AdY1M2jxUO83Rjf0HP7Sk1DtXj6j1EwkQNZrHAg2XPWlq62oqEhYvONq5pkC2Y9oPljWToLmQ== +undici@^5.8.1: + version "5.8.2" + resolved "https://registry.yarnpkg.com/undici/-/undici-5.8.2.tgz#071fc8a6a5d24db0ad510ad442f607d9b09d5eec" + integrity sha512-3KLq3pXMS0Y4IELV045fTxqz04Nk9Ms7yfBBHum3yxsTR4XNn+ZCaUbf/mWitgYDAhsplQ0B1G4S5D345lMO3A== + unified@^10.0.0: version "10.1.2" resolved "https://registry.yarnpkg.com/unified/-/unified-10.1.2.tgz#b1d64e55dafe1f0b98bb6c719881103ecf6c86df" @@ -2705,6 +2788,11 @@ vite@^3.0.0: optionalDependencies: fsevents "~2.3.2" +web-streams-polyfill@^3.0.3: + version "3.2.1" + resolved "https://registry.yarnpkg.com/web-streams-polyfill/-/web-streams-polyfill-3.2.1.tgz#71c2718c52b45fd49dbeee88634b3a60ceab42a6" + integrity sha512-e0MO3wdXWKrLbL0DgGnUV7WHVuw9OUvL4hjgnPkIeEvESk74gAITi5G606JtZPp39cd8HA9VQzCIvA49LpPN5Q== + webidl-conversions@^3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871"