From f74ee5ba59520899fd6260c9caaef7d3b052caeb Mon Sep 17 00:00:00 2001 From: Jonathan Bangert Date: Fri, 21 Jun 2024 12:50:00 +0200 Subject: [PATCH 1/5] Start on adding --- bun.lockb | Bin 216402 -> 218698 bytes package.json | 1 + src/lib/projects/nbskak.md | 10 ++++++++++ src/lib/projects/nbskak_en.md | 10 ++++++++++ src/routes/projects/[project]/+page.svelte | 9 +++++++++ src/routes/projects/[project]/+page.ts | 21 +++++++++++++++++++++ svelte.config.js | 10 +++++++++- 7 files changed, 60 insertions(+), 1 deletion(-) mode change 100644 => 100755 bun.lockb create mode 100644 src/lib/projects/nbskak.md create mode 100644 src/lib/projects/nbskak_en.md create mode 100644 src/routes/projects/[project]/+page.svelte create mode 100644 src/routes/projects/[project]/+page.ts diff --git a/bun.lockb b/bun.lockb old mode 100644 new mode 100755 index 32dc027d3b4bf91a885eb303c0ce2f2d21c5bb2b..1361349a617b62957bdcbbb2998e60873a6c8f08 GIT binary patch delta 35316 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 Zy&XKf#DGWmLk6$Y@|Z)H-<4;~`9G!w1^WO1 delta 33660 zcmeHwcU)9gyY-o)ql_J6K|}==MJWmjgQBCT*c+CJ*cgfeA|OSv&R~hy#iMS-iWOsu zy&FqnVw%w;MkO%`NlY}|Bqo}e zNm-fx*-28WJvA*UUXosIElITzpYJ0{)xcTy*jRgPO2Pr?4Pg&!BS|%=XQm{@B7H9W zkY9CY)wYsU7ZK?`N|3pgV`6|LHG$b5>;d-I?Rwxwuz&WKq^97v!7afDz@FeWx;_=$ z0`?Gab8vfbGq9`9Kl*9u-vv`Y2IhS>fg4Mb0~L?WPD+WFMu%wS>J5GZ4ng30U{77I zq1z9FwfHZfo(y2d_rvYB-m3j z@dH;d^j5sVyS|#kq?EMSjD#F1rO4`%gZ zbxuo-LuQgR9pf^6h9sr+)&}Zd{rke-9qA7A(r!Dquhv{sz%2GSFbDGFewsZyJT ze24RwK3cgtAR{(MEwDHEE;4Kaz5@0Hp8>PIpBt!UQ~+jyhYr%3F9$aL#(K zI9My7A8ZbY5ks^B?LvMvH~_wdz>-cKs!gdYU^d{(;OgLLFcXG@IVEoD{#}P@H#iHf z0X;Ke%CrRZ_>|#Vy76F6(f(i#pfKI`1=oSynCw8Hh8~eTJ(DdiB~Q1j-0VrMhs|I% z@w2$m6W|_x+6~5y(r%nIDK#x4L6YJ!;`}=VNz%*caaQ1z-t+A+64+8-Mrrv(jn>j9 zM5Fy#va1ltg0dBdiuin5A0+<^Xf(j7iMe40le}0?zZ3wd(B$vsq%Hv)VJ$ z;+dZ`BP}})_m&1t(K1>GW^>#Gv!M1&f9wk>30bL1Vf9vy5$W0t2?ld5ZV2Yu{%e{x zV?G44yxFPoNpVvE&+Szp>^UYrL_x8*8|+bQ?>wu{0Zdh_P2_Yk$Y`wcXfkjLpT^ zOteh_1Adm)!)s35l zF#9h)AtBvADO1{kd^sShVboCf$NERR@_a2{H~81!8u=rZ32#K)0<#B7z#KUflTzdT zv(u$B3pD$X&guRsX>s-}+$AMxN>Y||XrUJW8q%?V5l?A1n4B!m!wH~S`9YBMv0xn7Hf7~ zqCEwJS9)c!5?!m6qi~5fL!4lDxaGl}GbS0#kr)H!NE!-eIX_sYWuKhsKf^vHMY3m1 zO1EcZCR~Qj+f-Sh@q^`hf5B!$ax1l`WJ+E1{70=+_m&RMgJ^LM&8GSdjq)F#s~vCd zAif#mi(qr*E107M)o$hZezlhGEHK;21<{`1H{jj`{4oXw-B-fq{XavM*-t;N(fp0_ zv)PiS*vsnCX`NQzsI{7ZKQP<93%Dk@olx0sy zfi-M$d{RcbBzbL6V(YYW9Nw&T+}JHzzDBU?#(>d#|ioIM36qKgpNQis4CN$6MA9==ms0z1Rznl?Qx zV{%qnx-@#1)-ZoroBqS438#kt-L>i8Uz&Mp4nO{>}|9B0RcC0niVe}s~qH`xc9Ni8+?@LJ~qoWA4v*DTot9r+iI!ZMv{8M zs-)QaSmp6;6!*S1xv-5A4SJ)EQrOpKY1CGdy1_+Ky!@?lR9nTppG`i{R*42B`znR~ zY?eQLQ2_ORrM^}<(NA&jZ!^yiz{y!@(m%}nAwr|okhPtmtww0Ls@+0poEqwZJd)JV zUWDvws79a>n}pCLRlAH(f*J}AlB5Z0XiZt@M})NehITMwpGQb5feYGY6jR8_9hK<8 zHuGe(WiO@4@Gg}R=&g(!9A>_UP+v9F)yha}xd>_6s|aa+wb71R>~Ms%*bN8`R8xFW zrnT!NNrP2w4nkV&s|e}2V1R3BM!w6MX|v43NI~miu-H3>y1>AVX|%LjeuBk8A}ghc z>aLB#N=hk4VHPZoS48<)<>Ky2$tauU7R3Il=+)jTw+mOIqip60;n=g4P2ORa

Q% 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 diff --git a/package.json b/package.json index 5f8f816..73d425a 100644 --- a/package.json +++ b/package.json @@ -44,6 +44,7 @@ "bits-ui": "^0.21.10", "clsx": "^2.1.1", "lucide-svelte": "^0.395.0", + "mdsvex": "^0.11.2", "mode-watcher": "^0.3.0", "tailwind-merge": "^2.3.0", "tailwind-variants": "^0.2.1" diff --git a/src/lib/projects/nbskak.md b/src/lib/projects/nbskak.md new file mode 100644 index 0000000..126747a --- /dev/null +++ b/src/lib/projects/nbskak.md @@ -0,0 +1,10 @@ +--- +title: Nørrebro Skakklub +image: https://nbskak.dk/card.webp +tags: react +people: jonathan, elliott, johannes +short_description: hejhejhej +--- + +# Nørrebro skakklub +længere description arh \ No newline at end of file diff --git a/src/lib/projects/nbskak_en.md b/src/lib/projects/nbskak_en.md new file mode 100644 index 0000000..ab0d544 --- /dev/null +++ b/src/lib/projects/nbskak_en.md @@ -0,0 +1,10 @@ +--- +title: Nørrebro chessclub +image: https://nbskak.dk/card.webp +tags: react +people: jonathan, elliott, johannes +short_description: heyheyhey +--- + +# Nørrebro skakklub +længere description arh \ No newline at end of file diff --git a/src/routes/projects/[project]/+page.svelte b/src/routes/projects/[project]/+page.svelte new file mode 100644 index 0000000..4239d7d --- /dev/null +++ b/src/routes/projects/[project]/+page.svelte @@ -0,0 +1,9 @@ + + +

+

{data.title}

+

Page {data.content}

+
\ No newline at end of file diff --git a/src/routes/projects/[project]/+page.ts b/src/routes/projects/[project]/+page.ts new file mode 100644 index 0000000..a87b053 --- /dev/null +++ b/src/routes/projects/[project]/+page.ts @@ -0,0 +1,21 @@ +import { error } from '@sveltejs/kit'; + +export async function load({ params }) { + const project = params.project; + console.log('project:', project); + + try { + const data = (await import(/* @vite-ignore */'../../../lib/projects/' + project + '.md')); + const metadata = data.metadata; + console.log('data:', data); + console.log('metadata:', metadata); + + return { + content: data.default, + title: metadata.title + } + } catch (e) { + console.error(e); + return error(404, 'Not found'); + } +} diff --git a/svelte.config.js b/svelte.config.js index a3b51dc..4289db6 100644 --- a/svelte.config.js +++ b/svelte.config.js @@ -1,11 +1,18 @@ import adapter from '@sveltejs/adapter-cloudflare'; import { vitePreprocess } from '@sveltejs/vite-plugin-svelte'; +import { mdsvex } from 'mdsvex'; /** @type {import('@sveltejs/kit').Config} */ const config = { // Consult https://kit.svelte.dev/docs/integrations#preprocessors // for more information about preprocessors - preprocess: vitePreprocess(), + preprocess: [ + vitePreprocess(), + mdsvex({ + extensions: ['.md'], + }), + ], + extensions: ['.svelte', '.svx', '.md'], kit: { // adapter-auto only supports some environments, see https://kit.svelte.dev/docs/adapter-auto for a list. @@ -23,6 +30,7 @@ const config = { }, prerender: { origin: 'https://novusgroup.dk', + entries: ['*'], } } }; From 994b9646c279279537de5919a40e49978aa2fae4 Mon Sep 17 00:00:00 2001 From: Jonathan Bangert Date: Fri, 21 Jun 2024 13:44:03 +0200 Subject: [PATCH 2/5] Fix md rendering --- src/routes/projects/[project]/+page.svelte | 2 +- src/routes/projects/[project]/+page.ts | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/src/routes/projects/[project]/+page.svelte b/src/routes/projects/[project]/+page.svelte index 4239d7d..6f8ae4f 100644 --- a/src/routes/projects/[project]/+page.svelte +++ b/src/routes/projects/[project]/+page.svelte @@ -5,5 +5,5 @@

{data.title}

-

Page {data.content}

+
\ No newline at end of file diff --git a/src/routes/projects/[project]/+page.ts b/src/routes/projects/[project]/+page.ts index a87b053..6cf4994 100644 --- a/src/routes/projects/[project]/+page.ts +++ b/src/routes/projects/[project]/+page.ts @@ -19,3 +19,5 @@ export async function load({ params }) { return error(404, 'Not found'); } } + +export const prerender = true; \ No newline at end of file From 56c196819b08d9249c353fcd0777a92a3bdfbe97 Mon Sep 17 00:00:00 2001 From: Jonathan Bangert Date: Fri, 21 Jun 2024 14:31:12 +0200 Subject: [PATCH 3/5] Add dialog component --- bun.lockb | Bin 218698 -> 218698 bytes package.json | 2 +- src/lib/components/LanguageSwitcher.svelte | 1 - .../ui/dialog/dialog-content.svelte | 36 +++++++++++++++++ .../ui/dialog/dialog-description.svelte | 16 ++++++++ .../components/ui/dialog/dialog-footer.svelte | 16 ++++++++ .../components/ui/dialog/dialog-header.svelte | 13 ++++++ .../ui/dialog/dialog-overlay.svelte | 21 ++++++++++ .../components/ui/dialog/dialog-portal.svelte | 8 ++++ .../components/ui/dialog/dialog-title.svelte | 16 ++++++++ src/lib/components/ui/dialog/index.ts | 37 ++++++++++++++++++ 11 files changed, 164 insertions(+), 2 deletions(-) create mode 100644 src/lib/components/ui/dialog/dialog-content.svelte create mode 100644 src/lib/components/ui/dialog/dialog-description.svelte create mode 100644 src/lib/components/ui/dialog/dialog-footer.svelte create mode 100644 src/lib/components/ui/dialog/dialog-header.svelte create mode 100644 src/lib/components/ui/dialog/dialog-overlay.svelte create mode 100644 src/lib/components/ui/dialog/dialog-portal.svelte create mode 100644 src/lib/components/ui/dialog/dialog-title.svelte create mode 100644 src/lib/components/ui/dialog/index.ts diff --git a/bun.lockb b/bun.lockb index 1361349a617b62957bdcbbb2998e60873a6c8f08..3a1c38bb14fc1bc44850e95eba1bf9a9a9340493 100755 GIT binary patch delta 174 zcmX@LhWFGO-U)gNO8l8p_fCDUU3B8pO7Ruam3e-rzMehGUwhFyaH|<_&-IOd*IXHU zCQne-o_s->V{?QX?;eLst>)=066XRPuf|L-P)Wc3U3de3=iB?c3=Q^fKUt(~TQ=P# zW?hxmg{|6BreBq-zCL;*B(>Q&&{Ed**6~g8+*jL|GBIvn%EYwAos)?H3Z^G{F=->X T+oyRk{cd42+dk<$(~dR(wVg&= delta 174 zcmV;f08#(StPRSn4UjG%n$kKIN4M{%bHC8!{aCyb7C`qLc%OR2JV@BGEnZU6u};=S z0gIE6BP)~8BM7rtMh(0`f?fw8ft1QU?0J{}2@bCte<(6@W_0aka1mP!KqgaI|TlFtIThOUrEcK`qY diff --git a/package.json b/package.json index 73d425a..ce97c46 100644 --- a/package.json +++ b/package.json @@ -43,7 +43,7 @@ "@inlang/paraglide-sveltekit": "0.10.2", "bits-ui": "^0.21.10", "clsx": "^2.1.1", - "lucide-svelte": "^0.395.0", + "lucide-svelte": "^0.396.0", "mdsvex": "^0.11.2", "mode-watcher": "^0.3.0", "tailwind-merge": "^2.3.0", diff --git a/src/lib/components/LanguageSwitcher.svelte b/src/lib/components/LanguageSwitcher.svelte index 2f4611d..1d78d7e 100644 --- a/src/lib/components/LanguageSwitcher.svelte +++ b/src/lib/components/LanguageSwitcher.svelte @@ -18,7 +18,6 @@ // Only remove the language tag if it is present let currentPathNoLang = currentPath.replace(/\/(en|dk)/, ''); let newRouteWithLang = i18n.resolveRoute(currentPathNoLang, tag); - console.log(newRouteWithLang); if (newRouteWithLang !== window.location.pathname) { goto(newRouteWithLang); } diff --git a/src/lib/components/ui/dialog/dialog-content.svelte b/src/lib/components/ui/dialog/dialog-content.svelte new file mode 100644 index 0000000..9512ba8 --- /dev/null +++ b/src/lib/components/ui/dialog/dialog-content.svelte @@ -0,0 +1,36 @@ + + + + + + + + + Close + + + diff --git a/src/lib/components/ui/dialog/dialog-description.svelte b/src/lib/components/ui/dialog/dialog-description.svelte new file mode 100644 index 0000000..e1d796a --- /dev/null +++ b/src/lib/components/ui/dialog/dialog-description.svelte @@ -0,0 +1,16 @@ + + + + + diff --git a/src/lib/components/ui/dialog/dialog-footer.svelte b/src/lib/components/ui/dialog/dialog-footer.svelte new file mode 100644 index 0000000..a235d1f --- /dev/null +++ b/src/lib/components/ui/dialog/dialog-footer.svelte @@ -0,0 +1,16 @@ + + +
+ +
diff --git a/src/lib/components/ui/dialog/dialog-header.svelte b/src/lib/components/ui/dialog/dialog-header.svelte new file mode 100644 index 0000000..6b4448c --- /dev/null +++ b/src/lib/components/ui/dialog/dialog-header.svelte @@ -0,0 +1,13 @@ + + +
+ +
diff --git a/src/lib/components/ui/dialog/dialog-overlay.svelte b/src/lib/components/ui/dialog/dialog-overlay.svelte new file mode 100644 index 0000000..3721361 --- /dev/null +++ b/src/lib/components/ui/dialog/dialog-overlay.svelte @@ -0,0 +1,21 @@ + + + diff --git a/src/lib/components/ui/dialog/dialog-portal.svelte b/src/lib/components/ui/dialog/dialog-portal.svelte new file mode 100644 index 0000000..eb5d0a5 --- /dev/null +++ b/src/lib/components/ui/dialog/dialog-portal.svelte @@ -0,0 +1,8 @@ + + + + + diff --git a/src/lib/components/ui/dialog/dialog-title.svelte b/src/lib/components/ui/dialog/dialog-title.svelte new file mode 100644 index 0000000..06574f3 --- /dev/null +++ b/src/lib/components/ui/dialog/dialog-title.svelte @@ -0,0 +1,16 @@ + + + + + diff --git a/src/lib/components/ui/dialog/index.ts b/src/lib/components/ui/dialog/index.ts new file mode 100644 index 0000000..b17ba5e --- /dev/null +++ b/src/lib/components/ui/dialog/index.ts @@ -0,0 +1,37 @@ +import { Dialog as DialogPrimitive } from "bits-ui"; + +import Title from "./dialog-title.svelte"; +import Portal from "./dialog-portal.svelte"; +import Footer from "./dialog-footer.svelte"; +import Header from "./dialog-header.svelte"; +import Overlay from "./dialog-overlay.svelte"; +import Content from "./dialog-content.svelte"; +import Description from "./dialog-description.svelte"; + +const Root = DialogPrimitive.Root; +const Trigger = DialogPrimitive.Trigger; +const Close = DialogPrimitive.Close; + +export { + Root, + Title, + Portal, + Footer, + Header, + Trigger, + Overlay, + Content, + Description, + Close, + // + Root as Dialog, + Title as DialogTitle, + Portal as DialogPortal, + Footer as DialogFooter, + Header as DialogHeader, + Trigger as DialogTrigger, + Overlay as DialogOverlay, + Content as DialogContent, + Description as DialogDescription, + Close as DialogClose, +}; From 8dd97b32ed63cfd79281a0c8f55cdf93ad1b05d0 Mon Sep 17 00:00:00 2001 From: Jonathan Bangert Date: Fri, 21 Jun 2024 14:31:35 +0200 Subject: [PATCH 4/5] Make projects popup --- src/routes/projects/+layout.svelte | 39 ++++++++++++++++++++++++++ src/routes/projects/+page.svelte | 26 ----------------- src/routes/projects/[project]/+page.ts | 12 ++++---- 3 files changed, 45 insertions(+), 32 deletions(-) create mode 100644 src/routes/projects/+layout.svelte diff --git a/src/routes/projects/+layout.svelte b/src/routes/projects/+layout.svelte new file mode 100644 index 0000000..e7cf7b2 --- /dev/null +++ b/src/routes/projects/+layout.svelte @@ -0,0 +1,39 @@ + + +
+

Our projects:

+ +

Nørrebro Skakklubs website

+
+ + NBskak + +
+
    +
  • Chessbot which competed in the Sebastian Lague coding challenge
  • +
  • Viranoid 2023 winning gamejam game
  • +
  • GravityDrop
  • +
+
+ + + + + + \ No newline at end of file diff --git a/src/routes/projects/+page.svelte b/src/routes/projects/+page.svelte index 0e68829..e69de29 100644 --- a/src/routes/projects/+page.svelte +++ b/src/routes/projects/+page.svelte @@ -1,26 +0,0 @@ -
- -

Our projects:

- - -

Nørrebro Skakklubs website

-
- - NBskak - -
-
    -
  • Chessbot which competed in the Sebastian Lague coding challenge
  • -
  • Viranoid 2023 winning gamejam game
  • -
  • GravityDrop
  • -
- -
- - diff --git a/src/routes/projects/[project]/+page.ts b/src/routes/projects/[project]/+page.ts index 6cf4994..2877ca3 100644 --- a/src/routes/projects/[project]/+page.ts +++ b/src/routes/projects/[project]/+page.ts @@ -1,14 +1,14 @@ import { error } from '@sveltejs/kit'; +import { languageTag } from '$lib/paraglide/runtime.js'; -export async function load({ params }) { - const project = params.project; - console.log('project:', project); +export async function load({ params, depends }) { + const project = params.project; + depends("paraglide:lang"); try { - const data = (await import(/* @vite-ignore */'../../../lib/projects/' + project + '.md')); + const lang = languageTag(); + const data = (await import(/* @vite-ignore */'../../../lib/projects/' + project + "_" + lang + '.md')); const metadata = data.metadata; - console.log('data:', data); - console.log('metadata:', metadata); return { content: data.default, From ce65b7e86e29b18f6c97a03ed7d51c978ebf713e Mon Sep 17 00:00:00 2001 From: Jonathan Bangert Date: Fri, 21 Jun 2024 14:31:43 +0200 Subject: [PATCH 5/5] Translate popups --- src/lib/projects/{nbskak.md => nbskak_dk.md} | 0 src/lib/projects/nbskak_en.md | 2 +- 2 files changed, 1 insertion(+), 1 deletion(-) rename src/lib/projects/{nbskak.md => nbskak_dk.md} (100%) diff --git a/src/lib/projects/nbskak.md b/src/lib/projects/nbskak_dk.md similarity index 100% rename from src/lib/projects/nbskak.md rename to src/lib/projects/nbskak_dk.md diff --git a/src/lib/projects/nbskak_en.md b/src/lib/projects/nbskak_en.md index ab0d544..b18e768 100644 --- a/src/lib/projects/nbskak_en.md +++ b/src/lib/projects/nbskak_en.md @@ -7,4 +7,4 @@ short_description: heyheyhey --- # Nørrebro skakklub -længere description arh \ No newline at end of file +lAUHDUAIDH \ No newline at end of file