diff --git a/README.md b/README.md index 44d5084..cb7a9db 100644 --- a/README.md +++ b/README.md @@ -4,27 +4,22 @@ Revival archive website # Pages/posts -To make a post, place it into the /pages directory. The filename will be used as the URL slug. The file must be in Markdown and contain a json header, like the following: +To make a post, place it into the /pages directory. The filename will be used as the URL slug. The file must be in Markdown and contain front matter, like the following: -```json -{ - "title": "First blog post", - "date": "2023-07-06 7:29 PM" -} +``` +title: First blog post +date: 2023-07-06 7:29 PM ``` -A Revival description must include a "---" line between a short overview and the full post. A json header for a Revival could contain the following fields: +A Revival description must include a "---" line between a short overview and the full post. Front mater for a Revival could contain the following fields: -```json -{ - "name": "Mercury", - "date": "2023-07-09 01:58 PM", - "clients": [2013], - "rating": { - "website": 5, - "community": 5, - "clients": 5, - "overall": 5 - } -} +``` +name: Mercury +date: 2023-07-09 01:58 PM +clients: [2013] +rating: + website: 5 + community: 5 + clients: 5 + overall: 5 ``` diff --git a/package.json b/package.json index 0d20b81..29148ab 100644 --- a/package.json +++ b/package.json @@ -4,18 +4,16 @@ "type": "module", "scripts": { "dev": "vite dev", - "build": "node pages/pages.js && vite build", + "build": "vite build", "preview": "vite preview", - "buildview": "node pages/pages.js && vite build && vite preview", + "buildview": " && vite build && vite preview", "check": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json", "check:watch": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json --watch", - "md": "node pages/pages.js", "lint": "prettier --plugin-search-dir . --check .", "format": "prettier --plugin-search-dir . --write ." }, "devDependencies": { - "@sveltejs/adapter-auto": "^2.1.0", - "@sveltejs/adapter-netlify": "^2.0.7", + "@sveltejs/adapter-static": "^2.0.2", "@sveltejs/kit": "^1.22.1", "@types/marked": "^5.0.0", "@unocss/extractor-svelte": "^0.53.5", diff --git a/pages/blog/first.md b/pages/blog/first.md index ef153da..15055b6 100644 --- a/pages/blog/first.md +++ b/pages/blog/first.md @@ -1,9 +1,7 @@ -```json -{ - "title": "First blog post", - "date": "2023-07-06 7:29 PM" -} -``` +--- +title: First blog post +date: 2023-07-06 7:29 PM +--- I'm baby portland cred tote bag ethical glossier etsy fixie edison bulb retro irony. Helvetica beard humblebrag before they sold out photo booth yr cloud bread iceland ennui yes plz cold-pressed solarpunk tacos marxism. Yr occupy squid pug helvetica crucifix enamel pin subway tile bruh jean shorts fanny pack. Meditation gluten-free butcher PBR&B twee. Hammock selfies asymmetrical fixie before they sold out. diff --git a/pages/blog/second.md b/pages/blog/second.md index 99bee00..5469b71 100644 --- a/pages/blog/second.md +++ b/pages/blog/second.md @@ -1,9 +1,7 @@ -```json -{ - "title": "Second blog post", - "date": "2023-07-09 11:40 AM" -} -``` +--- +title: Second blog post +date: 2023-07-09 11:40 AM +--- Franzen bodega boys gorpcore disrupt hell of viral wolf man braid food truck VHS yr. Gentrify tumblr meditation, art party try-hard vaporware direct trade echo park helvetica you probably haven't heard of them disrupt fam. Poutine portland gatekeep bespoke. Organic neutra jianbing, occupy distillery 3 wolf moon big mood bitters tumblr actually forage tattooed. DIY messenger bag listicle, sustainable bitters sus portland. Gentrify VHS freegan artisan solarpunk seitan bruh hoodie live-edge drinking vinegar vape iceland palo santo +1. diff --git a/pages/pages.js b/pages/pages.js deleted file mode 100644 index 93838d8..0000000 --- a/pages/pages.js +++ /dev/null @@ -1,80 +0,0 @@ -import { marked } from "marked" -import fs from "fs" - -// Convert all markdown files in the pages directory and all subdirectories -// to HTML, and output as JSON files in the pagesjson directory. - -const parseMD = md => - marked.parse(md, { - mangle: false, - headerIds: false, - }) - -// thx copilot -function walk(dir) { - let results = [] - - for (const file of fs.readdirSync(dir)) { - const name = `${dir}/${file}` - const stat = fs.statSync(name) - - if (stat && stat.isDirectory()) - // Recurse into a subdirectory - results = results.concat(walk(name)) - else if (file.endsWith(".md")) - // Is a file - results.push({ name }) - } - return results -} - -const allMdFiles = walk("./pages") - -if (fs.existsSync("./pagesjson")) fs.rmSync("./pagesjson", { recursive: true }) - -allMdFiles.forEach(file => { - let md = fs.readFileSync(file.name, "utf8").replace(/\r\n/g, "\n") - - // Get json data from the top of the file - const [json, content] = md - .match(/^```json[\s\S]*?({[\s\S]+})[\s\S]*```\n*([\s\S]+)$/) - .slice(1, 3) - - let obj - - if (file.name.includes("/index/")) { - // It's a Revival description - try { - const [overview, post] = content.split("\n---\n") - obj = { - ...JSON.parse(json), - overview: parseMD(overview), - html: parseMD(post), - } - } catch (e) { - throw new Error( - `Error parsing ${file.name}: check that it has an overview and post section separated by ---` - ) - } - } else - obj = { - ...JSON.parse(json), - html: parseMD(content), - } - - fs.mkdirSync( - file.name - .replace("/pages/", "/pagesjson/") - .replace(file.name.split("/").pop(), ""), - { recursive: true } - ) - - console.log(`Writing ${file.name.replace(".md", ".json")}`) - - fs.writeFileSync( - file.name.replace("/pages/", "/pagesjson/").replace(".md", ".json"), - JSON.stringify(obj) - ) -}) - -console.log("~ Done! ~") diff --git a/pages/index/finobe.md b/pages/revivals/finobe.md similarity index 92% rename from pages/index/finobe.md rename to pages/revivals/finobe.md index 7216e6e..eb863b3 100644 --- a/pages/index/finobe.md +++ b/pages/revivals/finobe.md @@ -1,19 +1,16 @@ -```json -{ - "name": "Finobe", - "date": "2023-07-09 01:58 PM", - "clients": [2012, 2016], - "rating": { - "website": 4, - "community": 4, - "clients": 4, - "overall": 4 - } -} -``` - -Finobe is a revival - +--- +name: Finobe +date: 2023-07-09 01:58 PM +clients: + - 2012 + - 2016 +rating: + website: 4 + community: 4 + clients: 4 + overall: 4 +overview: | + Finobe is a revival --- Grailed laborum reprehenderit, id art party ea la croix small batch DIY fingerstache. Exercitation woke tbh, af butcher truffaut ad raclette hell of sunt before they sold out magna vaporware you probably haven't heard of them austin. Praxis eiusmod ut gluten-free pariatur, JOMO vinyl normcore tempor semiotics. Authentic kogi fashion axe yes plz veniam. Ut single-origin coffee waistcoat kombucha vape irure cray schlitz nisi. Cloud bread four dollar toast enamel pin sus. Butcher fam cliche salvia, af before they sold out selvage duis. diff --git a/pages/index/goodblox.md b/pages/revivals/goodblox.md similarity index 91% rename from pages/index/goodblox.md rename to pages/revivals/goodblox.md index 5ea2d61..1de9d37 100644 --- a/pages/index/goodblox.md +++ b/pages/revivals/goodblox.md @@ -1,19 +1,15 @@ -```json -{ - "name": "Goodblox", - "date": "2023-07-09 01:58 PM", - "clients": [2009], - "rating": { - "website": 4.5, - "community": 4.5, - "clients": 4.5, - "overall": 4.5 - } -} -``` - -Goodblox is a revival - +--- +name: Goodblox +date: 2023-07-09 01:58 PM +clients: + - 2009 +rating: + website: 4.5 + community: 4.5 + clients: 4.5 + overall: 4.5 +overview: | + Goodblox is a revival --- Minim viral gochujang ipsum et cred pitchfork shaman copper mug lumbersexual. Ipsum +1 fanny pack, twee chartreuse biodiesel fixie vexillologist tbh master cleanse unicorn subway tile officia. Tempor sunt small batch, waistcoat keffiyeh yes plz kogi. Adaptogen woke yes plz JOMO actually. You probably haven't heard of them kickstarter mollit chia whatever vaporware tonx man bun ethical letterpress cardigan. Blog nostrud vaporware aute woke. Before they sold out irure lorem, austin freegan vice ullamco in disrupt grailed franzen quinoa quis bushwick. diff --git a/pages/index/hamblox.md b/pages/revivals/hamblox.md similarity index 91% rename from pages/index/hamblox.md rename to pages/revivals/hamblox.md index 337b982..ec0b256 100644 --- a/pages/index/hamblox.md +++ b/pages/revivals/hamblox.md @@ -1,19 +1,15 @@ -```json -{ - "name": "Hamblox", - "date": "2023-07-09 01:58 PM", - "clients": [2015], - "rating": { - "website": 3.7, - "community": 3.7, - "clients": 3.7, - "overall": 3.7 - } -} -``` - -Hamblox is a revival - +--- +name: Hamblox +date: 2023-07-09 01:58 PM +clients: + - 2015 +rating: + website: 3.7 + community: 3.7 + clients: 3.7 + overall: 3.7 +overview: | + Hamblox is a revival --- Big mood dolor +1, post-ironic green juice williamsburg you probably haven't heard of them edison bulb af asymmetrical poke chicharrones iPhone bespoke put a bird on it. Heirloom paleo air plant, raclette woke pariatur selfies chambray. Hashtag sunt you probably haven't heard of them velit meggings. Polaroid activated charcoal lyft messenger bag adipisicing, minim prism squid shabby chic yes plz kinfolk Brooklyn. diff --git a/pages/index/idk18.md b/pages/revivals/idk18.md similarity index 91% rename from pages/index/idk18.md rename to pages/revivals/idk18.md index 249874b..3c54002 100644 --- a/pages/index/idk18.md +++ b/pages/revivals/idk18.md @@ -1,19 +1,15 @@ -```json -{ - "name": "idk18", - "date": "2023-07-09 01:58 PM", - "clients": [2018], - "rating": { - "website": 1.7, - "community": 1.7, - "clients": 1.7, - "overall": 1.7 - } -} -``` - -idk18 is a revival - +--- +name: idk18 +date: 2023-07-09 01:58 PM +clients: + - 2018 +rating: + website: 1.7 + community: 1.7 + clients: 1.7 + overall: 1.7 +overview: | + idk18 is a revival --- Taxidermy adaptogen do hot chicken consequat elit blue bottle pinterest portland velit normcore fashion axe anim mumblecore ex. Sus keffiyeh hot chicken affogato slow-carb nulla reprehenderit, occaecat neutral milk hotel chillwave XOXO tacos. Sus eu aliquip, shaman labore pinterest mumblecore narwhal kickstarter. Fit occaecat taiyaki DIY, succulents sint brunch magna tumblr YOLO thundercats. diff --git a/pages/index/kapish.md b/pages/revivals/kapish.md similarity index 92% rename from pages/index/kapish.md rename to pages/revivals/kapish.md index 254a195..7407093 100644 --- a/pages/index/kapish.md +++ b/pages/revivals/kapish.md @@ -1,19 +1,16 @@ -```json -{ - "name": "Kapish", - "date": "2023-07-09 01:58 PM", - "clients": [2014, 2016], - "rating": { - "website": 2.3, - "community": 2.3, - "clients": 2.3, - "overall": 2.3 - } -} -``` - -Kapish is a revival - +--- +name: Kapish +date: 2023-07-09 01:58 PM +clients: + - 2014 + - 2016 +rating: + website: 2.3 + community: 2.3 + clients: 2.3 + overall: 2.3 +overview: | + Kapish is a revival --- Tousled kinfolk coloring book +1 blackbird spyplane celiac vice palo santo mixtape grailed YOLO elit. Portland etsy fixie poutine. Pariatur gluten-free activated charcoal, XOXO godard shaman iceland. Art party single-origin coffee magna humblebrag sustainable celiac swag. diff --git a/pages/index/krypton.md b/pages/revivals/krypton.md similarity index 92% rename from pages/index/krypton.md rename to pages/revivals/krypton.md index e5b3955..83e31ce 100644 --- a/pages/index/krypton.md +++ b/pages/revivals/krypton.md @@ -1,19 +1,15 @@ -```json -{ - "name": "Krypton", - "date": "2023-07-09 01:58 PM", - "clients": [2011], - "rating": { - "website": 4.7, - "community": 4.7, - "clients": 4.7, - "overall": 4.7 - } -} -``` - -Krypton is a revival - +--- +name: Krypton +date: 2023-07-09 01:58 PM +clients: + - 2011 +rating: + website: 4.7 + community: 4.7 + clients: 4.7 + overall: 4.7 +overview: | + Krypton is a revival --- Artisan qui marxism mumblecore craft beer. Do lo-fi consequat raw denim gastropub sed blog, tumblr intelligentsia PBR&B. Deserunt fit ut retro. Gochujang mlkshk 3 wolf moon, lomo nisi excepteur tacos tousled vinyl et portland tilde. diff --git a/pages/index/mercury.md b/pages/revivals/mercury.md similarity index 91% rename from pages/index/mercury.md rename to pages/revivals/mercury.md index 7aa463e..b72dafe 100644 --- a/pages/index/mercury.md +++ b/pages/revivals/mercury.md @@ -1,19 +1,15 @@ -```json -{ - "name": "Mercury", - "date": "2023-07-09 01:58 PM", - "clients": [2013], - "rating": { - "website": 5, - "community": 5, - "clients": 5, - "overall": 5 - } -} -``` - -Mercury is a revival - +--- +name: Mercury +date: 2023-07-09 01:58 PM +clients: + - 2013 +rating: + website: 5 + community: 5 + clients: 5 + overall: 5 +overview: | + Mercury is a revival --- Tilde lorem tbh, cliche eu forage laborum franzen vice. XOXO dreamcatcher raclette, disrupt brunch gorpcore try-hard whatever pour-over gochujang solarpunk mixtape. Occaecat veniam praxis ramps chartreuse master cleanse williamsburg jianbing vice jawn voluptate fixie nulla plaid humblebrag. Farm-to-table tofu 90's gochujang deep v affogato. Hella yes plz ipsum actually truffaut narwhal viral ut. Fam fixie mustache bushwick. diff --git a/pages/index/meteorite.md b/pages/revivals/meteorite.md similarity index 91% rename from pages/index/meteorite.md rename to pages/revivals/meteorite.md index a05f995..36c47d0 100644 --- a/pages/index/meteorite.md +++ b/pages/revivals/meteorite.md @@ -1,19 +1,16 @@ -```json -{ - "name": "Meteorite", - "date": "2023-07-09 01:58 PM", - "clients": [2016, 2020], - "rating": { - "website": 2.7, - "community": 2.7, - "clients": 2.7, - "overall": 2.7 - } -} -``` - -Meteorite is a revival - +--- +name: Meteorite +date: 2023-07-09 01:58 PM +clients: + - 2016 + - 2020 +rating: + website: 2.7 + community: 2.7 + clients: 2.7 + overall: 2.7 +overview: | + Meteorite is a revival --- Banjo bruh gatekeep, scenester mukbang crucifix XOXO everyday carry. Ullamco JOMO vinyl eu prism et. Roof party shoreditch green juice fugiat post-ironic chillwave flannel fixie bodega boys vegan prism snackwave etsy. Tote bag bodega boys church-key, voluptate palo santo vice wolf food truck leggings hot chicken subway tile. diff --git a/pages/index/rawblox.md b/pages/revivals/rawblox.md similarity index 92% rename from pages/index/rawblox.md rename to pages/revivals/rawblox.md index fc8782b..a33c59a 100644 --- a/pages/index/rawblox.md +++ b/pages/revivals/rawblox.md @@ -1,19 +1,15 @@ -```json -{ - "name": "Rawblox", - "date": "2023-07-09 01:58 PM", - "clients": [2017], - "rating": { - "website": 1, - "community": 1, - "clients": 1, - "overall": 1 - } -} -``` - -Rawblox is a revival - +--- +name: Rawblox +date: 2023-07-09 01:58 PM +clients: + - 2017 +rating: + website: 1 + community: 1 + clients: 1 + overall: 1 +overview: | + Rawblox is a revival --- Leggings chartreuse organic id proident. Ascot tattooed bruh palo santo portland roof party. Etsy irure anim flannel ennui cold-pressed same. Next level sartorial elit, adipisicing vexillologist bodega boys taiyaki before they sold out venmo. Try-hard austin four loko organic beard in narwhal tempor quinoa mollit. Tofu ut distillery knausgaard listicle Brooklyn keffiyeh tumblr vice aliqua meggings. diff --git a/pages/index/tadah.md b/pages/revivals/tadah.md similarity index 91% rename from pages/index/tadah.md rename to pages/revivals/tadah.md index ae5ec08..c583499 100644 --- a/pages/index/tadah.md +++ b/pages/revivals/tadah.md @@ -1,19 +1,18 @@ -```json -{ - "name": "Tadah", - "date": "2023-07-09 01:58 PM", - "clients": [2010, 2012, 2014, 2016], - "rating": { - "website": 3.5, - "community": 3.5, - "clients": 3.5, - "overall": 3.5 - } -} -``` - -Tadah is a revival - +--- +name: Tadah +date: 2023-07-09 01:58 PM +clients: + - 2010 + - 2012 + - 2014 + - 2016 +rating: + website: 3.5 + community: 3.5 + clients: 3.5 + overall: 3.5 +overview: | + Tadah is a revival --- Sed enim shaman roof party taiyaki pabst ipsum palo santo irure normcore polaroid small batch. Dolor ugh shoreditch incididunt laboris salvia iceland cornhole consectetur poutine raw denim fixie sunt activated charcoal. PBR&B pitchfork excepteur, woke eu affogato plaid leggings taiyaki. Kombucha hot chicken palo santo, laborum tempor aliqua cliche id jawn irony shaman. Tumeric et celiac, coloring book put a bird on it sartorial butcher cornhole heirloom. diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 643586a..5131c00 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -5,12 +5,9 @@ settings: excludeLinksFromLockfile: false devDependencies: - '@sveltejs/adapter-auto': - specifier: ^2.1.0 - version: 2.1.0(@sveltejs/kit@1.22.1) - '@sveltejs/adapter-netlify': - specifier: ^2.0.7 - version: 2.0.7(@sveltejs/kit@1.22.1) + '@sveltejs/adapter-static': + specifier: ^2.0.2 + version: 2.0.2(@sveltejs/kit@1.22.1) '@sveltejs/kit': specifier: ^1.22.1 version: 1.22.1(svelte@4.0.5)(vite@4.4.2) @@ -84,15 +81,6 @@ packages: resolution: {integrity: sha512-dlR6LdS+0SzOAPx/TPRhnoi7hE251OVeT2Snw0RguNbBSbjUHdWr0l3vcUUDg26rEysT89kCbtw1lVorBXLLCg==} dev: true - /@esbuild/android-arm64@0.17.19: - resolution: {integrity: sha512-KBMWvEZooR7+kzY0BtbTQn0OAYY7CsiydT63pVEaPtVYF0hXbUaOyZog37DKxK7NF3XacBJOpYT4adIJh+avxA==} - engines: {node: '>=12'} - cpu: [arm64] - os: [android] - requiresBuild: true - dev: true - optional: true - /@esbuild/android-arm64@0.18.11: resolution: {integrity: sha512-snieiq75Z1z5LJX9cduSAjUr7vEI1OdlzFPMw0HH5YI7qQHDd3qs+WZoMrWYDsfRJSq36lIA6mfZBkvL46KoIw==} engines: {node: '>=12'} @@ -102,15 +90,6 @@ packages: dev: true optional: true - /@esbuild/android-arm@0.17.19: - resolution: {integrity: sha512-rIKddzqhmav7MSmoFCmDIb6e2W57geRsM94gV2l38fzhXMwq7hZoClug9USI2pFRGL06f4IOPHHpFNOkWieR8A==} - engines: {node: '>=12'} - cpu: [arm] - os: [android] - requiresBuild: true - dev: true - optional: true - /@esbuild/android-arm@0.18.11: resolution: {integrity: sha512-q4qlUf5ucwbUJZXF5tEQ8LF7y0Nk4P58hOsGk3ucY0oCwgQqAnqXVbUuahCddVHfrxmpyewRpiTHwVHIETYu7Q==} engines: {node: '>=12'} @@ -120,15 +99,6 @@ packages: dev: true optional: true - /@esbuild/android-x64@0.17.19: - resolution: {integrity: sha512-uUTTc4xGNDT7YSArp/zbtmbhO0uEEK9/ETW29Wk1thYUJBz3IVnvgEiEwEa9IeLyvnpKrWK64Utw2bgUmDveww==} - engines: {node: '>=12'} - cpu: [x64] - os: [android] - requiresBuild: true - dev: true - optional: true - /@esbuild/android-x64@0.18.11: resolution: {integrity: sha512-iPuoxQEV34+hTF6FT7om+Qwziv1U519lEOvekXO9zaMMlT9+XneAhKL32DW3H7okrCOBQ44BMihE8dclbZtTuw==} engines: {node: '>=12'} @@ -138,15 +108,6 @@ packages: dev: true optional: true - /@esbuild/darwin-arm64@0.17.19: - resolution: {integrity: sha512-80wEoCfF/hFKM6WE1FyBHc9SfUblloAWx6FJkFWTWiCoht9Mc0ARGEM47e67W9rI09YoUxJL68WHfDRYEAvOhg==} - engines: {node: '>=12'} - cpu: [arm64] - os: [darwin] - requiresBuild: true - dev: true - optional: true - /@esbuild/darwin-arm64@0.18.11: resolution: {integrity: sha512-Gm0QkI3k402OpfMKyQEEMG0RuW2LQsSmI6OeO4El2ojJMoF5NLYb3qMIjvbG/lbMeLOGiW6ooU8xqc+S0fgz2w==} engines: {node: '>=12'} @@ -156,15 +117,6 @@ packages: dev: true optional: true - /@esbuild/darwin-x64@0.17.19: - resolution: {integrity: sha512-IJM4JJsLhRYr9xdtLytPLSH9k/oxR3boaUIYiHkAawtwNOXKE8KoU8tMvryogdcT8AU+Bflmh81Xn6Q0vTZbQw==} - engines: {node: '>=12'} - cpu: [x64] - os: [darwin] - requiresBuild: true - dev: true - optional: true - /@esbuild/darwin-x64@0.18.11: resolution: {integrity: sha512-N15Vzy0YNHu6cfyDOjiyfJlRJCB/ngKOAvoBf1qybG3eOq0SL2Lutzz9N7DYUbb7Q23XtHPn6lMDF6uWbGv9Fw==} engines: {node: '>=12'} @@ -174,15 +126,6 @@ packages: dev: true optional: true - /@esbuild/freebsd-arm64@0.17.19: - resolution: {integrity: sha512-pBwbc7DufluUeGdjSU5Si+P3SoMF5DQ/F/UmTSb8HXO80ZEAJmrykPyzo1IfNbAoaqw48YRpv8shwd1NoI0jcQ==} - engines: {node: '>=12'} - cpu: [arm64] - os: [freebsd] - requiresBuild: true - dev: true - optional: true - /@esbuild/freebsd-arm64@0.18.11: resolution: {integrity: sha512-atEyuq6a3omEY5qAh5jIORWk8MzFnCpSTUruBgeyN9jZq1K/QI9uke0ATi3MHu4L8c59CnIi4+1jDKMuqmR71A==} engines: {node: '>=12'} @@ -192,15 +135,6 @@ packages: dev: true optional: true - /@esbuild/freebsd-x64@0.17.19: - resolution: {integrity: sha512-4lu+n8Wk0XlajEhbEffdy2xy53dpR06SlzvhGByyg36qJw6Kpfk7cp45DR/62aPH9mtJRmIyrXAS5UWBrJT6TQ==} - engines: {node: '>=12'} - cpu: [x64] - os: [freebsd] - requiresBuild: true - dev: true - optional: true - /@esbuild/freebsd-x64@0.18.11: resolution: {integrity: sha512-XtuPrEfBj/YYYnAAB7KcorzzpGTvOr/dTtXPGesRfmflqhA4LMF0Gh/n5+a9JBzPuJ+CGk17CA++Hmr1F/gI0Q==} engines: {node: '>=12'} @@ -210,15 +144,6 @@ packages: dev: true optional: true - /@esbuild/linux-arm64@0.17.19: - resolution: {integrity: sha512-ct1Tg3WGwd3P+oZYqic+YZF4snNl2bsnMKRkb3ozHmnM0dGWuxcPTTntAF6bOP0Sp4x0PjSF+4uHQ1xvxfRKqg==} - engines: {node: '>=12'} - cpu: [arm64] - os: [linux] - requiresBuild: true - dev: true - optional: true - /@esbuild/linux-arm64@0.18.11: resolution: {integrity: sha512-c6Vh2WS9VFKxKZ2TvJdA7gdy0n6eSy+yunBvv4aqNCEhSWVor1TU43wNRp2YLO9Vng2G+W94aRz+ILDSwAiYog==} engines: {node: '>=12'} @@ -228,15 +153,6 @@ packages: dev: true optional: true - /@esbuild/linux-arm@0.17.19: - resolution: {integrity: sha512-cdmT3KxjlOQ/gZ2cjfrQOtmhG4HJs6hhvm3mWSRDPtZ/lP5oe8FWceS10JaSJC13GBd4eH/haHnqf7hhGNLerA==} - engines: {node: '>=12'} - cpu: [arm] - os: [linux] - requiresBuild: true - dev: true - optional: true - /@esbuild/linux-arm@0.18.11: resolution: {integrity: sha512-Idipz+Taso/toi2ETugShXjQ3S59b6m62KmLHkJlSq/cBejixmIydqrtM2XTvNCywFl3VC7SreSf6NV0i6sRyg==} engines: {node: '>=12'} @@ -246,15 +162,6 @@ packages: dev: true optional: true - /@esbuild/linux-ia32@0.17.19: - resolution: {integrity: sha512-w4IRhSy1VbsNxHRQpeGCHEmibqdTUx61Vc38APcsRbuVgK0OPEnQ0YD39Brymn96mOx48Y2laBQGqgZ0j9w6SQ==} - engines: {node: '>=12'} - cpu: [ia32] - os: [linux] - requiresBuild: true - dev: true - optional: true - /@esbuild/linux-ia32@0.18.11: resolution: {integrity: sha512-S3hkIF6KUqRh9n1Q0dSyYcWmcVa9Cg+mSoZEfFuzoYXXsk6196qndrM+ZiHNwpZKi3XOXpShZZ+9dfN5ykqjjw==} engines: {node: '>=12'} @@ -264,15 +171,6 @@ packages: dev: true optional: true - /@esbuild/linux-loong64@0.17.19: - resolution: {integrity: sha512-2iAngUbBPMq439a+z//gE+9WBldoMp1s5GWsUSgqHLzLJ9WoZLZhpwWuym0u0u/4XmZ3gpHmzV84PonE+9IIdQ==} - engines: {node: '>=12'} - cpu: [loong64] - os: [linux] - requiresBuild: true - dev: true - optional: true - /@esbuild/linux-loong64@0.18.11: resolution: {integrity: sha512-MRESANOoObQINBA+RMZW+Z0TJWpibtE7cPFnahzyQHDCA9X9LOmGh68MVimZlM9J8n5Ia8lU773te6O3ILW8kw==} engines: {node: '>=12'} @@ -282,15 +180,6 @@ packages: dev: true optional: true - /@esbuild/linux-mips64el@0.17.19: - resolution: {integrity: sha512-LKJltc4LVdMKHsrFe4MGNPp0hqDFA1Wpt3jE1gEyM3nKUvOiO//9PheZZHfYRfYl6AwdTH4aTcXSqBerX0ml4A==} - engines: {node: '>=12'} - cpu: [mips64el] - os: [linux] - requiresBuild: true - dev: true - optional: true - /@esbuild/linux-mips64el@0.18.11: resolution: {integrity: sha512-qVyPIZrXNMOLYegtD1u8EBccCrBVshxMrn5MkuFc3mEVsw7CCQHaqZ4jm9hbn4gWY95XFnb7i4SsT3eflxZsUg==} engines: {node: '>=12'} @@ -300,15 +189,6 @@ packages: dev: true optional: true - /@esbuild/linux-ppc64@0.17.19: - resolution: {integrity: sha512-/c/DGybs95WXNS8y3Ti/ytqETiW7EU44MEKuCAcpPto3YjQbyK3IQVKfF6nbghD7EcLUGl0NbiL5Rt5DMhn5tg==} - engines: {node: '>=12'} - cpu: [ppc64] - os: [linux] - requiresBuild: true - dev: true - optional: true - /@esbuild/linux-ppc64@0.18.11: resolution: {integrity: sha512-T3yd8vJXfPirZaUOoA9D2ZjxZX4Gr3QuC3GztBJA6PklLotc/7sXTOuuRkhE9W/5JvJP/K9b99ayPNAD+R+4qQ==} engines: {node: '>=12'} @@ -318,15 +198,6 @@ packages: dev: true optional: true - /@esbuild/linux-riscv64@0.17.19: - resolution: {integrity: sha512-FC3nUAWhvFoutlhAkgHf8f5HwFWUL6bYdvLc/TTuxKlvLi3+pPzdZiFKSWz/PF30TB1K19SuCxDTI5KcqASJqA==} - engines: {node: '>=12'} - cpu: [riscv64] - os: [linux] - requiresBuild: true - dev: true - optional: true - /@esbuild/linux-riscv64@0.18.11: resolution: {integrity: sha512-evUoRPWiwuFk++snjH9e2cAjF5VVSTj+Dnf+rkO/Q20tRqv+644279TZlPK8nUGunjPAtQRCj1jQkDAvL6rm2w==} engines: {node: '>=12'} @@ -336,15 +207,6 @@ packages: dev: true optional: true - /@esbuild/linux-s390x@0.17.19: - resolution: {integrity: sha512-IbFsFbxMWLuKEbH+7sTkKzL6NJmG2vRyy6K7JJo55w+8xDk7RElYn6xvXtDW8HCfoKBFK69f3pgBJSUSQPr+4Q==} - engines: {node: '>=12'} - cpu: [s390x] - os: [linux] - requiresBuild: true - dev: true - optional: true - /@esbuild/linux-s390x@0.18.11: resolution: {integrity: sha512-/SlRJ15XR6i93gRWquRxYCfhTeC5PdqEapKoLbX63PLCmAkXZHY2uQm2l9bN0oPHBsOw2IswRZctMYS0MijFcg==} engines: {node: '>=12'} @@ -354,15 +216,6 @@ packages: dev: true optional: true - /@esbuild/linux-x64@0.17.19: - resolution: {integrity: sha512-68ngA9lg2H6zkZcyp22tsVt38mlhWde8l3eJLWkyLrp4HwMUr3c1s/M2t7+kHIhvMjglIBrFpncX1SzMckomGw==} - engines: {node: '>=12'} - cpu: [x64] - os: [linux] - requiresBuild: true - dev: true - optional: true - /@esbuild/linux-x64@0.18.11: resolution: {integrity: sha512-xcncej+wF16WEmIwPtCHi0qmx1FweBqgsRtEL1mSHLFR6/mb3GEZfLQnx+pUDfRDEM4DQF8dpXIW7eDOZl1IbA==} engines: {node: '>=12'} @@ -372,15 +225,6 @@ packages: dev: true optional: true - /@esbuild/netbsd-x64@0.17.19: - resolution: {integrity: sha512-CwFq42rXCR8TYIjIfpXCbRX0rp1jo6cPIUPSaWwzbVI4aOfX96OXY8M6KNmtPcg7QjYeDmN+DD0Wp3LaBOLf4Q==} - engines: {node: '>=12'} - cpu: [x64] - os: [netbsd] - requiresBuild: true - dev: true - optional: true - /@esbuild/netbsd-x64@0.18.11: resolution: {integrity: sha512-aSjMHj/F7BuS1CptSXNg6S3M4F3bLp5wfFPIJM+Km2NfIVfFKhdmfHF9frhiCLIGVzDziggqWll0B+9AUbud/Q==} engines: {node: '>=12'} @@ -390,15 +234,6 @@ packages: dev: true optional: true - /@esbuild/openbsd-x64@0.17.19: - resolution: {integrity: sha512-cnq5brJYrSZ2CF6c35eCmviIN3k3RczmHz8eYaVlNasVqsNY+JKohZU5MKmaOI+KkllCdzOKKdPs762VCPC20g==} - engines: {node: '>=12'} - cpu: [x64] - os: [openbsd] - requiresBuild: true - dev: true - optional: true - /@esbuild/openbsd-x64@0.18.11: resolution: {integrity: sha512-tNBq+6XIBZtht0xJGv7IBB5XaSyvYPCm1PxJ33zLQONdZoLVM0bgGqUrXnJyiEguD9LU4AHiu+GCXy/Hm9LsdQ==} engines: {node: '>=12'} @@ -408,15 +243,6 @@ packages: dev: true optional: true - /@esbuild/sunos-x64@0.17.19: - resolution: {integrity: sha512-vCRT7yP3zX+bKWFeP/zdS6SqdWB8OIpaRq/mbXQxTGHnIxspRtigpkUcDMlSCOejlHowLqII7K2JKevwyRP2rg==} - engines: {node: '>=12'} - cpu: [x64] - os: [sunos] - requiresBuild: true - dev: true - optional: true - /@esbuild/sunos-x64@0.18.11: resolution: {integrity: sha512-kxfbDOrH4dHuAAOhr7D7EqaYf+W45LsAOOhAet99EyuxxQmjbk8M9N4ezHcEiCYPaiW8Dj3K26Z2V17Gt6p3ng==} engines: {node: '>=12'} @@ -426,15 +252,6 @@ packages: dev: true optional: true - /@esbuild/win32-arm64@0.17.19: - resolution: {integrity: sha512-yYx+8jwowUstVdorcMdNlzklLYhPxjniHWFKgRqH7IFlUEa0Umu3KuYplf1HUZZ422e3NU9F4LGb+4O0Kdcaag==} - engines: {node: '>=12'} - cpu: [arm64] - os: [win32] - requiresBuild: true - dev: true - optional: true - /@esbuild/win32-arm64@0.18.11: resolution: {integrity: sha512-Sh0dDRyk1Xi348idbal7lZyfSkjhJsdFeuC13zqdipsvMetlGiFQNdO+Yfp6f6B4FbyQm7qsk16yaZk25LChzg==} engines: {node: '>=12'} @@ -444,15 +261,6 @@ packages: dev: true optional: true - /@esbuild/win32-ia32@0.17.19: - resolution: {integrity: sha512-eggDKanJszUtCdlVs0RB+h35wNlb5v4TWEkq4vZcmVt5u/HiDZrTXe2bWFQUez3RgNHwx/x4sk5++4NSSicKkw==} - engines: {node: '>=12'} - cpu: [ia32] - os: [win32] - requiresBuild: true - dev: true - optional: true - /@esbuild/win32-ia32@0.18.11: resolution: {integrity: sha512-o9JUIKF1j0rqJTFbIoF4bXj6rvrTZYOrfRcGyL0Vm5uJ/j5CkBD/51tpdxe9lXEDouhRgdr/BYzUrDOvrWwJpg==} engines: {node: '>=12'} @@ -462,15 +270,6 @@ packages: dev: true optional: true - /@esbuild/win32-x64@0.17.19: - resolution: {integrity: sha512-lAhycmKnVOuRYNtRtatQR1LPQf2oYCkRGkSFnseDAKPl8lu5SOsK/e1sXe5a0Pc5kHIHe6P2I/ilntNv2xf3cA==} - engines: {node: '>=12'} - cpu: [x64] - os: [win32] - requiresBuild: true - dev: true - optional: true - /@esbuild/win32-x64@0.18.11: resolution: {integrity: sha512-rQI4cjLHd2hGsM1LqgDI7oOCYbQ6IBOVsX9ejuRMSze0GqXUG2ekwiKkiBU1pRGSeCqFFHxTrcEydB2Hyoz9CA==} engines: {node: '>=12'} @@ -480,10 +279,6 @@ packages: dev: true optional: true - /@iarna/toml@2.2.5: - resolution: {integrity: sha512-trnsAYxU3xnS1gPHPyU961coFyLkh4gAD/0zQ5mymY4yOZ+CYvsPqUbOFSw0aDM4y0tV7tiFxL/1XfXPNC6IPg==} - dev: true - /@iconify/types@2.0.0: resolution: {integrity: sha512-+wluvCrRhXrhyOmRDJ3q8mux9JkKy5SJ/v8ol2tu4FVjyYvtEzkc/3pK15ET6RKg4b4w4BmTk1+gsCUhf21Ykg==} dev: true @@ -582,24 +377,12 @@ packages: picomatch: 2.3.1 dev: true - /@sveltejs/adapter-auto@2.1.0(@sveltejs/kit@1.22.1): - resolution: {integrity: sha512-o2pZCfATFtA/Gw/BB0Xm7k4EYaekXxaPGER3xGSY3FvzFJGTlJlZjBseaXwYSM94lZ0HniOjTokN3cWaLX6fow==} - peerDependencies: - '@sveltejs/kit': ^1.0.0 - dependencies: - '@sveltejs/kit': 1.22.1(svelte@4.0.5)(vite@4.4.2) - import-meta-resolve: 3.0.0 - dev: true - - /@sveltejs/adapter-netlify@2.0.7(@sveltejs/kit@1.22.1): - resolution: {integrity: sha512-QztxtQ26wzyonEOy+7RUvl4gqaYRi6UiBcIKrVTWA6uhkDYrB72ttt9t47phNeJAl9j2bCMZHQ8W7k2vXcwTrA==} + /@sveltejs/adapter-static@2.0.2(@sveltejs/kit@1.22.1): + resolution: {integrity: sha512-9wYtf6s6ew7DHUHMrt55YpD1FgV7oWql2IGsW5BXquLxqcY9vjrqCFo0TzzDpo+ZPZkW/v77k0eOP6tsAb8HmQ==} peerDependencies: '@sveltejs/kit': ^1.5.0 dependencies: - '@iarna/toml': 2.2.5 '@sveltejs/kit': 1.22.1(svelte@4.0.5)(vite@4.4.2) - esbuild: 0.17.19 - set-cookie-parser: 2.6.0 dev: true /@sveltejs/kit@1.22.1(svelte@4.0.5)(vite@4.4.2): @@ -1055,36 +838,6 @@ packages: resolution: {integrity: sha512-SOp9Phqvqn7jtEUxPWdWfWoLmyt2VaJ6MpvP9Comy1MceMXqE6bxvaTu4iaxpYYPzhny28Lc+M87/c2cPK6lDg==} dev: true - /esbuild@0.17.19: - resolution: {integrity: sha512-XQ0jAPFkK/u3LcVRcvVHQcTIqD6E2H1fvZMA5dQPSOWb3suUbWbfbRf94pjc0bNzRYLfIrDRQXr7X+LHIm5oHw==} - engines: {node: '>=12'} - hasBin: true - requiresBuild: true - optionalDependencies: - '@esbuild/android-arm': 0.17.19 - '@esbuild/android-arm64': 0.17.19 - '@esbuild/android-x64': 0.17.19 - '@esbuild/darwin-arm64': 0.17.19 - '@esbuild/darwin-x64': 0.17.19 - '@esbuild/freebsd-arm64': 0.17.19 - '@esbuild/freebsd-x64': 0.17.19 - '@esbuild/linux-arm': 0.17.19 - '@esbuild/linux-arm64': 0.17.19 - '@esbuild/linux-ia32': 0.17.19 - '@esbuild/linux-loong64': 0.17.19 - '@esbuild/linux-mips64el': 0.17.19 - '@esbuild/linux-ppc64': 0.17.19 - '@esbuild/linux-riscv64': 0.17.19 - '@esbuild/linux-s390x': 0.17.19 - '@esbuild/linux-x64': 0.17.19 - '@esbuild/netbsd-x64': 0.17.19 - '@esbuild/openbsd-x64': 0.17.19 - '@esbuild/sunos-x64': 0.17.19 - '@esbuild/win32-arm64': 0.17.19 - '@esbuild/win32-ia32': 0.17.19 - '@esbuild/win32-x64': 0.17.19 - dev: true - /esbuild@0.18.11: resolution: {integrity: sha512-i8u6mQF0JKJUlGR3OdFLKldJQMMs8OqM9Cc3UCi9XXziJ9WERM5bfkHaEAy0YAvPRMgqSW55W7xYn84XtEFTtA==} engines: {node: '>=12'} @@ -1239,10 +992,6 @@ packages: resolve-from: 4.0.0 dev: true - /import-meta-resolve@3.0.0: - resolution: {integrity: sha512-4IwhLhNNA8yy445rPjD/lWh++7hMDOml2eHtd58eG7h+qK3EryMuuRbsHGPikCoAgIkkDnckKfWSk2iDla/ejg==} - dev: true - /inflight@1.0.6: resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} dependencies: diff --git a/src/routes/+layout.ts b/src/routes/+layout.ts new file mode 100644 index 0000000..176ae64 --- /dev/null +++ b/src/routes/+layout.ts @@ -0,0 +1 @@ +export const prerender = true diff --git a/src/routes/blog/+page.ts b/src/routes/blog/+page.ts index 9631cc7..21764b5 100644 --- a/src/routes/blog/+page.ts +++ b/src/routes/blog/+page.ts @@ -1,17 +1,19 @@ export async function load() { - const allPostFiles = import.meta.glob("../../../pagesjson/blog/*.json") + const allPostFiles = import.meta.glob("../../../pages/blog/*.md") return { posts: Promise.all( - Object.entries(allPostFiles).map(async ([path, resolver]) => { - const { title, date } = (await resolver()) as any + Object.keys(allPostFiles).map(async path => { + const { metadata } = await allPostFiles[path]() return { - title, - date, - path: path.match(/(\w+)\.json/)?.[1], + ...(metadata as { + title: string + date: Date + }), + path: path.match(/(\w+)\.md/)?.[1], } - }) + }), ), } } diff --git a/src/routes/blog/[post]/+page.server.ts b/src/routes/blog/[post]/+page.server.ts deleted file mode 100644 index 0be5b3f..0000000 --- a/src/routes/blog/[post]/+page.server.ts +++ /dev/null @@ -1,22 +0,0 @@ -import { error } from "@sveltejs/kit" -import { load as loadParent } from "../+page" - -export async function load({ params }) { - let title: string, date: Date, html: string - - try { - ;({ title, date, html } = await import( - `../../../../pagesjson/blog/${params.post}.json` - )) - } catch (e) { - throw error(404, "Post not found") - } - - const posts = await (await loadParent()).posts - - // remove the current post from the list - const index = posts.findIndex(post => post.title == title) - posts.splice(index, 1) - - return { title, date, html, posts } -} diff --git a/src/routes/index/+page.ts b/src/routes/index/+page.ts deleted file mode 100644 index 41ef591..0000000 --- a/src/routes/index/+page.ts +++ /dev/null @@ -1,21 +0,0 @@ -export async function load() { - const allPostFiles = import.meta.glob("../../../pagesjson/index/*.json") - - return { - revivals: Promise.all( - Object.entries(allPostFiles).map(async ([path, resolver]) => { - const { name, date, clients, rating, overview } = - (await resolver()) as any - - return { - name, - date, - clients, - rating: rating.overall, - overview, - path: path.match(/(\w+)\.json/)?.[1], - } - }) - ), - } -} diff --git a/src/routes/post/[post]/+page.ts b/src/routes/post/[post]/+page.ts new file mode 100644 index 0000000..dd8c435 --- /dev/null +++ b/src/routes/post/[post]/+page.ts @@ -0,0 +1,28 @@ +import { error } from "@sveltejs/kit" +import { load as loadBlog } from "../../blog/+page" + +export async function load({ params }) { + let data: any + try { + data = await import(`../../../../pages/blog/${params.post}.md`) + } catch (e) { + throw error(404, "Post not found") + } + + const posts = await (await loadBlog()).posts + + // remove the current post from the list + posts.splice( + posts.findIndex(post => post.title == data.metadata.title), + 1, + ) + + return { + ...(data.metadata as { + title: string + date: Date + }), + content: data.default, + posts, + } +} diff --git a/src/routes/revival/[revival]/+page.server.ts b/src/routes/revival/[revival]/+page.server.ts deleted file mode 100644 index cdd5bdb..0000000 --- a/src/routes/revival/[revival]/+page.server.ts +++ /dev/null @@ -1,32 +0,0 @@ -import { error } from "@sveltejs/kit" -import { load as loadParent } from "../../index/+page" - -export async function load({ params }) { - let name: string, - date: Date, - clients: number[], - rating: { - website: number - community: number - development: number - clients: number - overall: number - }, - html: string - - try { - ;({ name, date, clients, rating, html } = await import( - `../../../../pagesjson/index/${params.revival}.json` - )) - } catch (e) { - throw error(404, "Revival not found") - } - - const revivals = await (await loadParent()).revivals - - // remove the current post from the list - const index = revivals.findIndex(revival => revival.name == name) - revivals.splice(index, 1) - - return { name, date, clients, rating, html, revivals } -} diff --git a/src/routes/revival/[revival]/+page.ts b/src/routes/revival/[revival]/+page.ts new file mode 100644 index 0000000..3ea7910 --- /dev/null +++ b/src/routes/revival/[revival]/+page.ts @@ -0,0 +1,36 @@ +import { error } from "@sveltejs/kit" +import { load as loadParent } from "../../revivals/+page" + +export async function load({ params }) { + let data: any + try { + data = await import(`../../../../pages/revivals/${params.revival}.md`) + } catch (e) { + throw error(404, "Revival not found") + } + + const revivals = await (await loadParent()).revivals + + // remove the current post from the list + revivals.splice( + revivals.findIndex(revival => revival.name == data.metadata.name), + 1, + ) + + return { + ...(data.metadata as { + name: string + date: Date + clients: number[] + rating: { + website: number + community: number + clients: number + overall: number + } + overview: string + }), + content: data.default, + revivals, + } +} diff --git a/src/routes/revivals/+page.ts b/src/routes/revivals/+page.ts new file mode 100644 index 0000000..0ab56ef --- /dev/null +++ b/src/routes/revivals/+page.ts @@ -0,0 +1,27 @@ +export async function load() { + const allPostFiles = import.meta.glob("../../../pages/revivals/*.md") + + return { + revivals: Promise.all( + Object.keys(allPostFiles).map(async path => { + const { metadata } = await allPostFiles[path]() as any + + return { + ...(metadata as { + name: string + date: Date + clients: number[] + rating: { + website: number + community: number + clients: number + overall: number + } + overview: string + }), + path: path.match(/(\w+)\.md/)?.[1], + } + }), + ), + } +} diff --git a/svelte.config.js b/svelte.config.js index 5fc5b2e..8302529 100644 --- a/svelte.config.js +++ b/svelte.config.js @@ -1,4 +1,4 @@ -import adapter from "@sveltejs/adapter-netlify" +import adapter from "@sveltejs/adapter-static" import { vitePreprocess } from "@sveltejs/kit/vite" import autoImport from "sveltekit-autoimport" import { mdsvex } from "mdsvex" diff --git a/vite.config.ts b/vite.config.ts index c9be25a..ffea3f9 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -12,7 +12,7 @@ export default defineConfig({ ], server: { fs: { - allow: ["./pagesjson"], + allow: ["./pages"], }, }, })