From 584b4a60dab277f04b3814b0bd378f351880cd4c Mon Sep 17 00:00:00 2001 From: developomp Date: Sat, 23 Mar 2024 14:13:13 +0900 Subject: [PATCH] refactor: remove portfolio --- CONTRIBUTING.md | 2 - apps/blog/package.json | 1 + .../src/app/[category]/[[...slug]]/helper.ts | 7 - apps/main/src/app.html | 6 +- apps/main/src/components/Navbar.svelte | 34 ----- apps/main/src/routes/(app)/+layout.svelte | 3 - apps/main/static/sitemap.xml | 35 +++-- apps/portfolio/.eslintrc.cjs | 8 -- apps/portfolio/.gitignore | 36 ----- apps/portfolio/.prettierrc.cjs | 5 - apps/portfolio/e2e/notfound.spec.ts | 6 - apps/portfolio/e2e/title.spec.ts | 14 -- apps/portfolio/next-sitemap.config.js | 8 -- apps/portfolio/next.config.js | 11 -- apps/portfolio/package.json | 55 -------- apps/portfolio/playwright.config.ts | 5 - apps/portfolio/postcss.config.js | 7 - apps/portfolio/public/favicon.svg | 1 - .../public/img/portfolio/developomp-site.avif | Bin 19797 -> 0 bytes .../public/img/portfolio/wbm-installer.avif | Bin 7971 -> 0 bytes .../public/img/portfolio/wbm-overlays.avif | Bin 3604 -> 0 bytes apps/portfolio/public/img/portfolio/wbm.avif | Bin 69189 -> 0 bytes apps/portfolio/public/img/portfolio/wbp.avif | Bin 14469 -> 0 bytes apps/portfolio/public/nojs.avif | Bin 4566 -> 0 bytes apps/portfolio/src/app/global.scss | 22 ---- apps/portfolio/src/app/layout.tsx | 86 ------------ apps/portfolio/src/app/not-found.tsx | 21 --- apps/portfolio/src/app/page.tsx | 40 ------ apps/portfolio/src/app/project/[id]/page.tsx | 98 -------------- .../portfolio/src/app/project/[id]/style.scss | 29 ----- apps/portfolio/src/components/Badge/Badge.tsx | 35 ----- apps/portfolio/src/components/Badge/index.ts | 3 - .../portfolio/src/components/Badge/style.scss | 11 -- .../src/components/Header/Header.tsx | 25 ---- apps/portfolio/src/components/Header/index.ts | 3 - .../components/ProjectCard/ProjectCard.tsx | 39 ------ .../src/components/ProjectCard/index.ts | 3 - .../src/components/ProjectCard/style.scss | 17 --- apps/portfolio/tailwind.config.js | 9 -- apps/portfolio/tsconfig.json | 35 ----- commitlint.config.js | 1 - firebase.json | 7 - main.tf | 20 --- packages/content/exports/portfolio.ts | 14 -- .../markdown/projects/developomp-site.md | 30 ----- packages/content/markdown/projects/wbm.md | 38 ------ packages/content/markdown/projects/wbp.md | 23 ---- packages/content/src/config.ts | 1 - packages/content/src/index.ts | 17 +-- packages/content/src/parseMarkdown.ts | 21 +-- packages/content/src/recursiveParse/index.ts | 5 - .../src/recursiveParse/parseProjects.ts | 57 -------- packages/content/src/types/types.ts | 36 ----- pnpm-lock.yaml | 123 +----------------- 54 files changed, 28 insertions(+), 1085 deletions(-) delete mode 100644 apps/main/src/components/Navbar.svelte delete mode 100644 apps/portfolio/.eslintrc.cjs delete mode 100644 apps/portfolio/.gitignore delete mode 100644 apps/portfolio/.prettierrc.cjs delete mode 100644 apps/portfolio/e2e/notfound.spec.ts delete mode 100644 apps/portfolio/e2e/title.spec.ts delete mode 100644 apps/portfolio/next-sitemap.config.js delete mode 100644 apps/portfolio/next.config.js delete mode 100644 apps/portfolio/package.json delete mode 100644 apps/portfolio/playwright.config.ts delete mode 100644 apps/portfolio/postcss.config.js delete mode 100644 apps/portfolio/public/favicon.svg delete mode 100644 apps/portfolio/public/img/portfolio/developomp-site.avif delete mode 100644 apps/portfolio/public/img/portfolio/wbm-installer.avif delete mode 100644 apps/portfolio/public/img/portfolio/wbm-overlays.avif delete mode 100644 apps/portfolio/public/img/portfolio/wbm.avif delete mode 100644 apps/portfolio/public/img/portfolio/wbp.avif delete mode 100644 apps/portfolio/public/nojs.avif delete mode 100644 apps/portfolio/src/app/global.scss delete mode 100644 apps/portfolio/src/app/layout.tsx delete mode 100644 apps/portfolio/src/app/not-found.tsx delete mode 100644 apps/portfolio/src/app/page.tsx delete mode 100644 apps/portfolio/src/app/project/[id]/page.tsx delete mode 100644 apps/portfolio/src/app/project/[id]/style.scss delete mode 100644 apps/portfolio/src/components/Badge/Badge.tsx delete mode 100644 apps/portfolio/src/components/Badge/index.ts delete mode 100644 apps/portfolio/src/components/Badge/style.scss delete mode 100644 apps/portfolio/src/components/Header/Header.tsx delete mode 100644 apps/portfolio/src/components/Header/index.ts delete mode 100644 apps/portfolio/src/components/ProjectCard/ProjectCard.tsx delete mode 100644 apps/portfolio/src/components/ProjectCard/index.ts delete mode 100644 apps/portfolio/src/components/ProjectCard/style.scss delete mode 100644 apps/portfolio/tailwind.config.js delete mode 100644 apps/portfolio/tsconfig.json delete mode 100644 packages/content/exports/portfolio.ts delete mode 100644 packages/content/markdown/projects/developomp-site.md delete mode 100644 packages/content/markdown/projects/wbm.md delete mode 100644 packages/content/markdown/projects/wbp.md delete mode 100644 packages/content/src/recursiveParse/parseProjects.ts diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index b5a788d..3dd6aa1 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -12,7 +12,6 @@ - `apps` - `main` - https://developomp.com - `blog` - https://blog.developomp.com - - `portfolio` - https://portfolio.developomp.com - `packages` - shared stuff used across different packages - `content` - Shared content - `eslint-config` - ESLint configuration files @@ -46,7 +45,6 @@ - `pnpm dev` - Run all apps and packages locally - blog - http://localhost:3000 - main - http://localhost:5173 - - portfolio - http://localhost:5174 - `pnpm lint` - Lint all apps and packages - `pnpm clean` - Remove all auto-generated content such as `node_modules` and `dist`. diff --git a/apps/blog/package.json b/apps/blog/package.json index 3638719..58800d4 100644 --- a/apps/blog/package.json +++ b/apps/blog/package.json @@ -46,6 +46,7 @@ "prettier": "^3.2.5", "prettier-plugin-tailwindcss": "^0.5.9", "react": "18.2.0", + "react-collapse": "^5.1.1", "react-dom": "18.2.0", "serve": "^14.2.0", "tailwindcss": "^3.4.0", diff --git a/apps/blog/src/app/[category]/[[...slug]]/helper.ts b/apps/blog/src/app/[category]/[[...slug]]/helper.ts index 52f268c..6d0b897 100644 --- a/apps/blog/src/app/[category]/[[...slug]]/helper.ts +++ b/apps/blog/src/app/[category]/[[...slug]]/helper.ts @@ -75,13 +75,6 @@ export function parsePageData( order: [], length: 0, - - // portfolio (unused) - - image: "", - overview: "", - badges: [], - repo: "", } // load and parse content differently depending on the content type diff --git a/apps/main/src/app.html b/apps/main/src/app.html index 921b273..9bb86dd 100644 --- a/apps/main/src/app.html +++ b/apps/main/src/app.html @@ -1,4 +1,4 @@ - + @@ -8,7 +8,7 @@ developomp @@ -17,7 +17,7 @@ diff --git a/apps/main/src/components/Navbar.svelte b/apps/main/src/components/Navbar.svelte deleted file mode 100644 index 76c9b8c..0000000 --- a/apps/main/src/components/Navbar.svelte +++ /dev/null @@ -1,34 +0,0 @@ - - - - - diff --git a/apps/main/src/routes/(app)/+layout.svelte b/apps/main/src/routes/(app)/+layout.svelte index 608bf4a..68f5fd9 100644 --- a/apps/main/src/routes/(app)/+layout.svelte +++ b/apps/main/src/routes/(app)/+layout.svelte @@ -1,10 +1,7 @@ -
diff --git a/apps/main/static/sitemap.xml b/apps/main/static/sitemap.xml index 79fe493..158e31d 100644 --- a/apps/main/static/sitemap.xml +++ b/apps/main/static/sitemap.xml @@ -1,23 +1,18 @@ - - https://developomp.com - always - 1.0 - - - https://blog.developomp.com - always - 0.8 - - - https://portfolio.developomp.com - always - 0.9 - - - https://developomp.com/resume - always - 0.4 - + + https://developomp.com + always + 1.0 + + + https://blog.developomp.com + always + 0.8 + + + https://developomp.com/resume + always + 0.4 + \ No newline at end of file diff --git a/apps/portfolio/.eslintrc.cjs b/apps/portfolio/.eslintrc.cjs deleted file mode 100644 index de84612..0000000 --- a/apps/portfolio/.eslintrc.cjs +++ /dev/null @@ -1,8 +0,0 @@ -module.exports = { - root: true, - extends: ["next/core-web-vitals", "@developomp-site/eslint-config"], - rules: { - "react-hooks/exhaustive-deps": "off", - "react/no-unescaped-entities": "off", - }, -} diff --git a/apps/portfolio/.gitignore b/apps/portfolio/.gitignore deleted file mode 100644 index 058b9db..0000000 --- a/apps/portfolio/.gitignore +++ /dev/null @@ -1,36 +0,0 @@ -# See https://help.github.com/articles/ignoring-files/ for more about ignoring files. - -# dependencies -/node_modules -/.pnp -.pnp.js - -# testing -/coverage -/test-results - -# next.js -/.next/ -/out/ - -# production -/build - -# misc -.DS_Store -*.pem - -# debug -npm-debug.log* -yarn-debug.log* -yarn-error.log* - -# local env files -.env*.local - -# vercel -.vercel - -# typescript -*.tsbuildinfo -next-env.d.ts diff --git a/apps/portfolio/.prettierrc.cjs b/apps/portfolio/.prettierrc.cjs deleted file mode 100644 index 15b4bc0..0000000 --- a/apps/portfolio/.prettierrc.cjs +++ /dev/null @@ -1,5 +0,0 @@ -/** @type {import("prettier").Options} */ -module.exports = { - ...require("@developomp-site/prettier-config"), - plugins: ["prettier-plugin-tailwindcss"], -} diff --git a/apps/portfolio/e2e/notfound.spec.ts b/apps/portfolio/e2e/notfound.spec.ts deleted file mode 100644 index df2645b..0000000 --- a/apps/portfolio/e2e/notfound.spec.ts +++ /dev/null @@ -1,6 +0,0 @@ -import { expect, test } from "@playwright/test" - -test("Should return 404 for invalid routes", async ({ page }) => { - const response = await page.goto("/path/that/does/not/exist") - expect(response?.status()).toEqual(404) -}) diff --git a/apps/portfolio/e2e/title.spec.ts b/apps/portfolio/e2e/title.spec.ts deleted file mode 100644 index d8c1bef..0000000 --- a/apps/portfolio/e2e/title.spec.ts +++ /dev/null @@ -1,14 +0,0 @@ -import { expect, test } from "@playwright/test" - -const prefix = "pomp's portfolio | " - -test("should have proper title", async ({ page }) => { - await page.goto("/") - await expect(page).toHaveTitle(`${prefix}Home`) - - await page.goto("/project/developomp-site") - await expect(page).toHaveTitle(`${prefix}developomp-site`) - - await page.goto("/404") - await expect(page).toHaveTitle(`${prefix}Page Not Found`) -}) diff --git a/apps/portfolio/next-sitemap.config.js b/apps/portfolio/next-sitemap.config.js deleted file mode 100644 index 3957fce..0000000 --- a/apps/portfolio/next-sitemap.config.js +++ /dev/null @@ -1,8 +0,0 @@ -// https://next-sitemap.iamvishnusankar.com/docs/documentation/configuration -/** @type {import('next-sitemap').IConfig} */ -module.exports = { - siteUrl: "https://portfolio.developomp.com", - generateRobotsTxt: true, - outDir: "dist", - priority: 0.8, -} diff --git a/apps/portfolio/next.config.js b/apps/portfolio/next.config.js deleted file mode 100644 index 28e04b1..0000000 --- a/apps/portfolio/next.config.js +++ /dev/null @@ -1,11 +0,0 @@ -/** @type {import('next').NextConfig} */ -const nextConfig = { - output: "export", - distDir: "dist", - images: { unoptimized: true }, - experimental: { - externalDir: true, - }, -} - -module.exports = nextConfig diff --git a/apps/portfolio/package.json b/apps/portfolio/package.json deleted file mode 100644 index cbbab3e..0000000 --- a/apps/portfolio/package.json +++ /dev/null @@ -1,55 +0,0 @@ -{ - "name": "@developomp-site/portfolio", - "version": "0.0.0", - "private": true, - "scripts": { - "dev": "open-cli http://localhost:5174 && next dev -p 5174", - "build": "next build", - "postbuild": "next-sitemap", - "serve": "serve dist --listen 5174", - "test:e2e": "playwright test", - "lint": "next lint", - "clean": "rm -rf .next .turbo dist node_modules test-results" - }, - "devDependencies": { - "@developomp-site/blog": "workspace:*", - "@developomp-site/content": "workspace:*", - "@developomp-site/eslint-config": "workspace:*", - "@developomp-site/playwright-config": "workspace:*", - "@developomp-site/prettier-config": "workspace:*", - "@developomp-site/tailwind-config": "workspace:*", - "@fontsource/noto-sans-kr": "^5.0.5", - "@fontsource/source-code-pro": "^5.0.5", - "@fortawesome/free-brands-svg-icons": "^6.4.0", - "@fortawesome/free-solid-svg-icons": "^6.4.0", - "@fortawesome/react-fontawesome": "^0.2.0", - "@kunukn/react-collapse": "^2.2.10", - "@playwright/test": "^1.36.2", - "@types/highlight.js": "^10.1.0", - "@types/katex": "^0.16.7", - "@types/node": "^20.10.5", - "@types/react": "18.2.17", - "@types/react-collapse": "^5.0.1", - "@types/react-dom": "18.2.7", - "@typescript-eslint/eslint-plugin": "^6.15.0", - "@typescript-eslint/parser": "^6.15.0", - "autoprefixer": "^10.4.16", - "eslint": "^8.56.0", - "eslint-config-next": "13.4.12", - "highlight.js": "^11.8.0", - "katex": "^0.16.8", - "next": "13.4.12", - "next-sitemap": "^4.1.8", - "open-cli": "^7.2.0", - "postcss": "^8.4.32", - "postcss-load-config": "^4.0.1", - "prettier": "^3.2.5", - "prettier-plugin-tailwindcss": "^0.5.9", - "react": "18.2.0", - "react-collapse": "^5.1.1", - "react-dom": "18.2.0", - "serve": "^14.2.0", - "tailwindcss": "^3.4.0", - "typescript": "^5.3.3" - } -} diff --git a/apps/portfolio/playwright.config.ts b/apps/portfolio/playwright.config.ts deleted file mode 100644 index 0766427..0000000 --- a/apps/portfolio/playwright.config.ts +++ /dev/null @@ -1,5 +0,0 @@ -import { createConfig } from "@developomp-site/playwright-config" - -export default createConfig({ - port: 5174, -}) diff --git a/apps/portfolio/postcss.config.js b/apps/portfolio/postcss.config.js deleted file mode 100644 index 4684711..0000000 --- a/apps/portfolio/postcss.config.js +++ /dev/null @@ -1,7 +0,0 @@ -/** @type {import('postcss-load-config').Config} */ -module.exports = { - plugins: { - tailwindcss: {}, - autoprefixer: {}, - }, -} diff --git a/apps/portfolio/public/favicon.svg b/apps/portfolio/public/favicon.svg deleted file mode 100644 index 6cba67a..0000000 --- a/apps/portfolio/public/favicon.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/apps/portfolio/public/img/portfolio/developomp-site.avif b/apps/portfolio/public/img/portfolio/developomp-site.avif deleted file mode 100644 index 846b69dc3088cfa27246bdde606bb57391565078..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 19797 zcmXteV{j-;&vtFQJ+*Dywr$%zwQbwBZQHhOyZz4neDfwV!IjJ=KX;P_006)@b#}Km zaJ4W6_(%U~8w*ng8w&$d836`?f6#-CiL=3fv42EvZfx!N|4je@dkZ7y|Fi$o))t2U zcMP1pg|p57Vu1f7u7$Oo(SM#W007`W{!an`VgUe1bN#c)Ei7#RSNnevtbdLP(0|GQ zatvJQ8HDVt?fzHN(!$=+{vR%7VQ*yjPor2k*_-^A2mk=$0ssI^_0K@CxA<%E9|8;k z0r5}47`QSB`IG#I03aLLSv%SqS^ot9`o~~?{~&Y=dmDrQV*lu0V<3P)fgu0760$Ki za7F@vg5t0=Dp8pL0fEJ5EKdVO>;qmP7x49)YkK-)ose;ipG+;EtOfLJ8%de~{Y2<= zvNuU^c)%~mU&E`v)W}yl3tP5QCTsg3j`tQOvD-zgw#50$R~gOA^crYs5=uzTO5{W}h3mO%LNcgfqhv|8VZ zn&u{6tJ6z_-O5Wk^fu>Cs_Em4XiLChQ;CsJnKrP~*kg&?8DS$S(6P*{ET`M92&Nz; zz&t)6A`AiJ!c8X@&I9E%$OesdSn;rObfR5olohd8>(!p=>9t+P$bE4LKAEA&7R=Uv zp>IJBZ`=DF=MN$*u4>d8VOJA@WK%x5qsOI^f};UpX+p*E%-~#&4I(VMu$Rd~US&ccE*lj;KlGn7V;o8)zD+opt_R$X?@+C?;N6>4e_o8zl3%CgVu; z6a7bykKV3aYM|{f)xrSBbG;3~BETy=NJEn?4|jn$o&FGg<#+Mf=W0G zgy#h3gE`-Toff?OzB6;Y?J1sDIbTg&rRhFSDgJl&1>9-Tv7AMn*9D?jaSg?zB$TGG z|et zh2`Z(ra}Gg+2=*kdh^?HrtP?IezTZ7_a7lLNhTSGLfyBg+x$q@1=Tgp#I0n68-UG{ zA0NhX2>^IC;PD>#){|2F_4=`#Q8P4|er^7Cm0T+KxK-@5p=@Sd%_tm}C*-vY`HmBe zmNK5~hAoczlIx14pc6Ies9ppB#-y;CxeLIb= zVsv^4@Qp!B!wiIp$C-z*fgUKanPiUUYD`-xD8vMy*w#uTK1i$AVc+K#QS2TCPGe`l zLc?U-j59fw69ilUmDs9($)%$g+0)W`IRIktfT?LN`f|8xcV#^48sU70HpZBSaEH<} z#I$f6=7PTb2n?7Tbx+;1ps=qO@jw~hv+J$^CvDwpDp*L^ojI&CO9M{)YtqL350Cmr zz0lnv7vCJ@06?6a_t1Cdml0c8d8t6h_~<24kH6H1l|kw&1qk0_=XgLcR9dIYe3JsG z?Nrw$INqr1>_mhV`SR}D1l>A#698a0HMCF$3zYw3=W zx!rQig>McHXbDLnS5w8QUdix>o$cuCsq6Gy>%7DG{i} zKm|Oio2u23czC0@IbgwZA|BCB)W-|u5RY6@&)kxzlA%LUJc=qe1VQfYM%!x&ydILQp#00=uh5r$?icS#DY4IKswNj&Daw0GHo9IDd(xt zVAB@-URaB5*gmAdW5yr)uoZbP_R_S`A%l5YFji5n$NRPT8L5@`;a}9=zjRs94h~&< z(m1KUlZ0@ujz;Z8NXmkDN0H|wy|1@ZFT4Rt+*)6)rQI7v@6K+MXJDa*Zh`w6l5c3m z$}mb*=pS_os%At3qFO2&rT0qG3cr{L`?0D(nRTP}u6_~szMNX<$zj`6APs$U%uaL> z)C`dQ!TEz9WY!=m(1)NL0~arl$%7Bdh!AE*lTe&=U+d;epEaN2|Ca|6b1$>n4)-)8ra6|^;dvtE-<*X%cD zi6weS-j@cQf5Qw5p7vOlkwVLKEi@~^jzk$v7F&`66ad)qP8QN@*5y8q+7L!b<(RI= zf?g6GgBCOwlu>D8**1HS*IBX}vQ?mXQ)v~E)>=0A8V7*a6g`s*#AX>dLt?+?8J=Jy zolGPII8b#klVI2>@et81o2QrBoeu?MSpgI+kIboIf;s+T>B4u%h=3+(TQC-w-T>?; zx+l(~LV$QSNm^@#6}3wr?~1fsqh#-Z{?t)!z2AJr80O(_mR5A z*kp2ZdM)a`N>R#jCmk>=%XpY_C4yT;ZA$JF~kMcXs#mgRUE8g>qfy((j)Cx#mxQ@CM^`Qj&Ncr8Mo2Z2K2kgoR<&cXz|Y`@F68q zmoOCjSXh*q6+r_;CQ=g-5%6qYz-$4e}DQnr^Jd>hltPivo>SKs>7&Ts1a z39zkCfsd&qR?Is~t5B-N$wQY6I?miN{hi6;rti$m z*HQN*{n)wG8-@$^*|2sctE1TxCggHIY@kkpxAwW0!peqszf?{Xlw5OjfHVub=f{cM z>4k-5uiucqdABUF_;UzaOO9dvI?Tp#96Z%-c!sKC`j3Rxo8U{niQ^mLJi7hfJm-0y zl`S1ZURCa)$@h(uwf(swH$9v>z>)|90=^A5MJGbe$W~#3sRHy;X(+N0K$9RJRTjiE z4>!g4Y}35jlz5is$s5*?qCzwf8_1$)a(l70^;wQ<50vyPqwjC)+5_r||3(IzU{;Vit*61=2H3UKrgJ?1P&dY1~Ss5^i92CZAC=L{M3;VZ})a zyKq~+vaym%YqUGJnW;RyXtyY5^>D+iC(bK_5AEEwfJrN&Cr|8OL=Fq)X0MK8enI~o zLzldEvqR8`MFCj`aZO^pzD9u?TmB8y1DjQ^FWAUBNzup_^X#Q zQf0@na3f#Q0|P74UG_h9Y-x_8mZ|1nxlvk+!Te!SSH%|aP?9?0miCH_=hVQx-+`L@2@wtrG8P`+S-=T{kUFufk8hafYOU?QM0VKW1r1 zeb`1!Zx#+^(~^qd>x2@3rr;@DJ^{EYk4W?TKIv(AK)abFFL=G2ECAj(klawASQq=e z%GB+EsIDO+ODFfe$0~8#pEH)(Ys*h=f*<|vs z8n-i<@^VccCl0+gQ|_Rkvdr*s9<@zYn`;g*8TO63FvNwcG~N6>tYxbePzD#CVY0=% zk`}H%tI3zY{QJdx`me|H?2z1Nw457N_FnMqzxRqh#H20bC71Zmwnc7(5umZBUfUSW z1$7CASac>W+nA^%n>x5&Q5!7eoE_9KZ`m= zP)Q+bGit7ZYO0VYHhc+~&838U$|(yOr&h3oq6uzFpAq=n`fhvil(}*gff{hKUmR0# z#D{Zi&-F-|uQEju7xKb2vQCjtSOV0F<2kK9RfT*R4P;!>3WPi_WvBp4bUk z`lOVdMgVXzbjABmrXli#*PO9Z9bH8=>A*!3GMn^@N0NF3r9Zf@I=6a>a zhg=k_s3qbw!2NtfwU2t=7;l`&MFIshoH$(Br~M?Udk#v#UUwZBEM2D75OF$)yq+hW zPoMdQm6aVuSvms})T}RhCIG)3(!WtbZ|=Fh@U#HQ5@lKAtBabQ|EzD^(C-V#wd<}$ zrpqY)msc;6^3Onsqr!3gP0|mG!)^WZmlP`!E90@vJZqM(Zw(L`&M@RHeAs){Ak3zfLg+;G&EC#LA+>*k5o++Dl zXn2Gj2io=}v=VIeu*Ex~wcLkk*-tnQze0MHTXkHMA#X}WM8<=* zSq&>1v4i_gBM93aRP|w`-m7hRWfGTdT|c<{inZVR^LVZ0@}Ui~tgnLk$QdUy=!h??sj4oZ8v175 zr2YCX6)9O25iUS25gu@;FS2(xJeK19ZSz@XY_i;%EaH>MR_~LZdswux3(IhqrOX`Q z(dULd-c7Vv!xe7`g*LE?r-&}9y@cP53kxr9z-9gvxN2c8tnOvHRKLQFJ`-#dVLPBr zqcbqOv45qI2ddfyqV}KEhG3wLgf+T`ZC)Xzkq-X2!j;R_V3qME5uy`^)y}D-s9=Ca z^w7cDL8YhFP24S@Kw^-aVq&6!6a-jfPofJE6$*1QqsaMR@Vp(SByWm+d>T#!uttULJ$y3p|QA0A>6A?ka2{a=^`%^o4#Z;{)7m7W=NOu zY{%V`TyfmGn!c%TA-M+^Ac!F`GP>R_1ML2=;qE6#GE;scw383IZjjJ-g)HpouOW;} zmqTAnVu_cKf5t7Lg{L8{ok{#ofVcfbD9=fQgiNcRW3D@T3W`Pjdljqq?(vePaxeZ~ zS%+dS{B$sHVcFpWYuGHMB!Wn%wQQD{rj7~i;9_f#W=Xm?=*#2-sP7Xu(RapPkxi{@ z7hWJ5>~2evQa~#maW@IDJcIqwnei90G1ZF5Cg7Nx*-EF^c-e`szz%}YADqHz0lVYs zJ?$5B_SmsyAnh5tskAI0cK~n4$=E zH_pllymw;tk_4F-lgycXJ3Jc*B{y_#>7HHR(k1iG#6P30dMoIFRDI&R$4X)#ApZMC?asPf! zv5Q+WdQIiIviro>z1XJBN4!MZAoIul!(QA(H7_+07o8cj$+W1$bKctt_`$A{x=DxY zw~L*!A1JV5HzGj(y>uxKV(Y8(%cHn1rr(K{#{6W?p5@Ne`c#Gn?Y(spQD0 z;YiaWFh3MBqr+TSoV=Ne-3jVgYN*o|qSt*lhpJ2K()UiLh-nqN3{Lf6eF{iolO`9b+cpxOX^k(swi=+u>JALM;2Ncqt{}l0+ z@7G7HiDRbx!S9UxiJCzrHX^NC(+%6TGyr4C@iEMZ5gz{dRmJ-x$JSi@> zZW_c-t*~7c?St)R1hh;N*(ml#0$jP zGy-k*Y+-1EATlr|uibZr_BCT6pUd9aqV1p1b^1*WmIk{grk9toe%9bAe58g!#COXx z2*43;Rxy>?;u+J~#>2UkD=X_Tx?d|jDNw*fRnfg5apR^Og|=}yq!Gdcc;pj1F)0G4 zYf!X@QGdlE0jW8(z@>_f;Zc{GO2q=sl6ew6nXTPYtP-F}0fx#xFNj}PkGUP=W*WXX22xbSdbN;@ti8GhNbJz7pX3LCnPUnuWRg3#B(SO+eFM@Ei~BIvxIySll89q}z_UX;RCBA?WO8Q*`33i&Ag<(@OR&9f}(t1#fV z6S6bnQ9JMFaDVRF*wywRe2;Aa9VW6U-=A9DR#Lg@7>409T&QadS!#&--eNsQY11g% z#8xQ%d?Ekv>_+m29G!<(bAZcApwDn$9mBajl}qNUcCcf=K%1-C9)GzVLZ!;c`1Pf1 zl1_89J`!|fv*B|8?IDJSnD4WUj|H2_Iu>oR6PwAlMNrJ--03SYT?Lnjb_Ipn7)rIuM(LZv>?cgOnfF$89N(}G2qFy@_gE#Rw>Ts4a6gf8_aSNW_j zpEGxP%J$hYUqQ^2j3Cwm6F$t(__Wm%&Sxz-+}(frK7NzCIqFpxgAM#JC8BZ2Y5V(g zV{ZeaC@!7LGLa?2rpy6qTe+P`1U-gYKf%-UftJg%s8GV3N}YmwtQl`YC3ZpLO+VT> z0xJuDFt5kf!+=L0QgKi6bWavNQU{L|I$DutA5>0a#m%udMX$~Sx+-&>S zT)ykd3U-3^7L!O4>=e~@f5mv?Q2MD6;cMUU;@bU^!-oHhRPrPK0P*+3aK2wQ(_#cb z(->^<`DSVPz_NM-d!P2^|3H(P&TAaJblVBa!AVyW31M16etAQi5j>FH{3*O zH(JxF5YYj*H5y~AidBaX5D)){JiQfThSsNQv>v|fjqdYL-odjMl(Y+a^vG>uxn)=R zATsrF>G9NN;zU(~=-9S!(xGE`k`?i7U@Z?V7y#q>ue9Hc_fKC3maG&F34F|5(pkExxa`*=#YhV! z=L=1C&kjzt-iw{5+@#As(Ta;55Xw_;(Iml=-4qpX1q5vPq>bzxM)D@TNIq8ctaE@P zDh_l`G|Tex`mwC0hVR@kgR>&LwrsY@v}1g#3}Cnc?KGNvs+R9!FIW96ccHiJ#A(un z<)M~dxN>{2>xhLH?NVt~^!loa!h0uX)d=~GN#c#ysD}8NGI6g3yNClIKefuAAooMG zxuhhIq~O1ly~=;rek(-9XddeYBeYr1eG`ljF_#FdXeJx=FLYv92kfKsp*O&DpFG)#UyPMM7Z+uu#-KVMnbkBixshtAHSx|7>M*u3b996YOpa zanvu(Av{qk2?E~WR=1oK;a%PY1SY6{^9ZuZnkv+`+j0Eqm~Q2u#I z_KU}`|GP6EJ|1Wgk}Uxju%eTIFl0J2b9#G$31kUNsb~J<7AV4|x?`tb>ijkll(9z* zGhGsM<%?QvjQbTdFuwBCXMBDvIc+LsCJQuytRew@2C`9LzroOQO)~E!j4BUHFvmd~ z@@$Q7b*gt=Og?LV*%I6L_dVb?V&^HdQbiVNL0pa#$);*(VHL0H3vNkhjth zYpTplussMp$mNvIv**Z|y3XC+%W>lnqS6G(k-V95Ts{BpeuPScZCz8n?#Qqf#u;a7 zW7X59V?Mh_{sdyiO`7sZ{$riL?{Sem}EleYLMLDC!1LzYuyZ(Z=I zkoMY4t=7#*c(N`t#97pqLE!CJ#M7$^6u_YA1)Va6gXYpLaHISDU(0B1Ar7-hbvY z5NGl{uo*g^K6z~UK1o;Ba`!ka?DIV&D(FYdOpke?cj^=woIg(W)%N!FCwjM^hnQC- zY33=1e!grpu%r_avc}op0DS{9>qnE+M&}=OCi3=+1*jO(R#<4Gx6HY zM;Z@W!Re+w|^ z!@-v{;+ZK3!RExyPWr5yxafD2M@#}6P^_2l1{sw$y1o`?Tt58KFEMEG>(7bv8!M?) zQt#AFK+Z>7ksXxRC;5%HE2cQ7fxHMjnesb+iVE9%|vPggtm*e(p;V)8%3x8`fR9f{tNtfESLUNr1{$=bDW+ zarqinRa;J1M#NKk3_8rU&&Yya-O? zeC(^v2-XdKk zTe^mEPG4lllJ7q;(FybZPz+1ANf2f0X$A6NQnH!r--U&62?B6 z_a<9#q(Cz6O(x5Ea)rn&5-mn$I?9&95Yeu~`Ko6}BmmcMbeiVN%NW!z%Q@}CyHg_8 zoOkWa6ric(LKU`sn;#diC8*!Qw@d~#F-=5q0^2`)t)D*#(TSE^8P9rzv#~3sjU>vg zJi4gS#ljFms_ha`+HEq?W*O>SX%W7)6s0+hG1tHr!==m;pnRMDM?zdyjdWTz z{SHoby3`Q`1s#$K{kQKB^zz{L*x+H^jvHS>A9{=7{f%ZCmJD}l-{%<7Wc+CMdE4Xi z@&sts5#kTiOR&$*CH)nxQK^AIU%&2!JSTAZ=S>9$(63|#i27YBKg^rKp1n~Hjlep8 zfv&?tgBq6rX$XVV5J7GpT+O{K8K~-Q0prEH`h#m6XNNc!GS<2$y%E0_}R+x&c` zFAP2KIk5nrx`Mo6{9e~rTYia%I9f>h-+%jZjux$^d}I3(mgDrq4LpKCPa9C~3v@tp zngviOK4?#oBd2MbO#KR54EGo^8%HEl1Hd-;-8FTO6_{7of{t*5(NLVZJwwHB4CT{4 zH$XK1}i^Xa^&FUCr{LuNSOqi1H^7EQYk z@_Hb}b12A{h4f=L&-9$Z2l+(Pv9i90%Y*Ndt0YSBh`&(4&Fx*gFsDcu>z{_+I73Iw z)ruCe>z)PlQ#%E=e+|`!O8UDZtneQ%ZAT2QuU#f@S%;U6&>p7zuh^1ua>1~Sj4py; zFP?XCI$naARf-S8p-aFGl$I~&chj0BzL_vx?NUa!5(N*qLH51?gI6mPODdIZP&)?+ zCryqH5^)Nti}^#aZ0JDcs6J-ziBJ>kAbNY<1N=m~F+9IS=6)JF>)2E*iAHB@b+r=vMM1<2ApHqI zQN|akj#Ncss-VWexdITINQvMscr$5t(&WA2H-A^1Fp8wrF}CA#S{XTvobyIwq@d50Srh?h(=lXR?i(5Oj{Fzt~VT}7C&=?vz8o`FIqM2E^>Vbx_A)3_577%Vr624T!6Vd8?fZ{GnI zCE%qRg%ey7*Egv|=|?e#ot?+ht9s8}VPMmR)o#5Kn&JJbTYSCagB{n8*_apW+Q zgox8T!to2!pP8}iP1Pi#sb*-U7K3AFC3BM+=-A|Y;J|4Dl){0r)mEH%HU~D8-Bh+; zNrru4CNjH7ht7R>GkXIIMleso5o_oy!cAMna-gHb2$L_OGs}t%W%E@VXt-zr|1lVM z{KE=(xtfWUh~uc|ZfjLhv;;L4kqdajjbuwz-QT7_vbEz6a zH{4~GGj+QTvEUh5Ee>l$bRGVk1coJnR8PM>28h?85t3=R@R<#t>4dj{A5hETHUPoP zCrvTHCU)PaLsSlsmbyFREQL;;TV!2#$kDLCY$2V+$&~lts}Y2u8uN`(GfhrS1Z(ns zqzkso`0w@*6nzUS@oj<(Wz8P3IILi=KzvmX(CJWfY}R(K5hrI7M_WmTvxc)Njl0k& ztAJ0+Qi5JYE}}=$g0P-;>ws0(oKNo+L-+R3D&8!3q#jBv?;|%mMN@43e#EM_INF{EjO@ z(^MVkRG<#bVQq5B*)Xc1Bt^zq1y235#3&olo#0^}<1t!yu8pjHMj)_?C5L# zqV54Vv|(%a}7c*GlgX!r>NqtUkutY(*!#Iw+GZ!^ZYS-?of(1oZjhgY3k-U zib{W-*M1QgC`Ws^%F?;__x&*mJoDNy&9e4wVsw4s+t61M!a0``-<|h;Sm$JKbHJnC zgXsOTeA|jujhI@axSI#v4B3o?)@|?oUJfC|MlCv_6>v)&MF3{(ry}*VB|HR1!@+12 z`GYfMkcLCZX>tR*b@2|PLlL5?G7NSQFKCysJ+-An)Eu!jq&;;C;c#+Wuzso-?8=vo znJ2T&k=a-{BSMk7DeHh#dnp|9Gj|A5{@-pso&E9Z8n20jZXpciGPc~@ zRhSCkRQ*#ILj$}w@!&@G#UI_52RX<$xL~4f_T$Z(dd-?-+Jl$l$BAy2kUr|vh{xlE zh!8VJl|V@3FJIY!yD*|H!1@mpVwq&ttn`L+_TJOknXs(W@(1WlDLCU>sCA_P&Z&E~ zexi4hdpMPAAu!nWN{alseGEfDMUF0GcZMS$aM-1L*N-jYb5a($$gFMPWKModf)?ki znZIgwmRO@*ZK%e@$HZ5uuL(w%R7;l&xDTVm35-Bovq7(9?Yu5RrnH;=q)@&DTS@kjw;qmZu)Zr z{jC7gQ-wKGtsO!G#Ny?dP7%>u!Lz$+^fPanSnryuCsP6l7H+*(O|j6QjMHNefzVX zRrkQV7``n2hO7kXRJlopsB&Z7DX2h`wLTwnm^0lLtNKcuQg?z8gJ&OH8iljt-aU2; zL7z@FK9Q-T5*-sc>O*5#uVA<2i`0G%amJx^NB&ay)awWaB%On7g9!Sq zN+3ZHiA)LxaPe*{}77pT-%mW%F}&|p9%vh>*A-@WMtB?Py(D6H^Nv*|o_D0RveEcBvQ zRc<}V!o^u9@PON4=pw2r{}!1Q%4Y%_lj%2tiVQ2V+?1A1+)RUSt;g-PT+(7GlAIUd z`LtvH!5;(JUp4Mf>@EbGO>s4NFFG5RE6u2iu2))g+=gp^@OuLUTiW?E-S63)=7^S7 zEhev~j=s(r(vaiQ>EeynrXW>Y{x#^8MEczGf-KmKedle`l7jS3$;qJ-WyDiXfh0AL zmowlvWgNL~c8My`X}2v$XIH@mo$loORigB752o!4M-H5~YmeHyFy~E*F}}}@_~;_g zU3lkCDGvr}@=YlIHX^Q{S#kT#iT+Kfy`kYCQGZ*4 zPIa=x<>m1!O31Dl4*I(!==ZdFQW8Z!5M;}@(5Q=7(HFG06lcik`^B=k0q^M-tmrS8 z#q`2NG{m>7@m}np0>iwe5Kzpn4`x~@w>0EXWhSExCPILUGQ`e~Yl#WjOJ%m0yqjXk zrWtl3%(f+-!y#{0eOCoj;wNSRI$c>!wa-o^#kE~C13=!5i*>_B9Ukdx{AD4HiR^1< z5d7>Gd?HzXaafx!+%SqgsegJ=BAoEr&f-5TQ{*QuR#3_C8QiSo23%oze!;rI3+|p9n{I^l#R@5(#q5 zu*2am7h;oia3hIz^kx(U_qkVCq)zLwcEO6ylAbqH8Dj(&E?i0mY;O!$+epft1$w+^ zQ!ojkmZoQG2GR{|fyi*~fnV`GM^Y-dA@9X$)a9*{J~c<}U9(H6a<;6c&)iya z*#OiSEZ^q0)GHtr@zciILP0}DRG+D`oEqrMe(Z z8i#O9gkaKyP+VGn}A>d#m=s*h}a%4js?t!71Oy?tdAa? ze@mX?XpJf4A1f#@pU6?GIAwnG^Cc61Pn}>d*Rs8zND05R99#4&eR#hy>N<1ixgusg-A9a=XGnD(42kB+;H*+n9MhA z)d7`zLR82(PXdjNHkS2YmNamyWP@9cmw*lKNvA30yU4SXn9p5rWy0}!TM^@+fqQQQ zTGtxpvwLz5?2BtS$peUIF|)4##V3>@VseS&EMUV;k4{4!HZj78ka1R3uT<)1Uz26p zujo*+mqnK12_;C%4{ADPS0znv#<{gAFQf^9u- z7JpY$81uSjJwjM3ojv#n1VfisBD0CUXxUGofmi2%wQA_&{EMq&)Boi93qb5;(p??m zdR`n}Imbu0Nv;VX)n(->sCcN*r6Dbb*APULJv>7Gm?R^^YQ&c#V3>zNf5Yd|Y0LX${!BQK+o+shcYk|$BI=A(; zw2FMG;>BAr57i?1HvFkR$`_ercdG!&`lkK{#p(qy@Cko$zJcI7n;4`V49e{cc#t}KnL-zgY9Zym5@d~k(&_*It(1++snKYw|4?1pfnT> zR2TtMNxUM51YRzuFHIF6*;6$@6w!+Setx4!e10=@kPW68v1q8DGb~MIX7+7t!nSKM zOc%pW!Z)BsiJAMV8-6nm%OnQR2?sB|4E7rGys#oB6>%Gt!iLi+-$dwhYOc1Bh`>)| z+p;ShSRH)8b&&x(_Q!CXw!+UU;NgzObDUh+j{VfOoJ)N{!hEw8U3vP(RH(fU=F+2$Z~h1r5e)5q z;p)f%$iPZ|&>}&m-$*YXjyE9dj@RtX^(`Srp;1>=`IIf9w{UKe+&G$lddw3;F}b6j zaQlrcwF;Yv8P&NIwL&mmcd`BWXjwgmcIyl;;a;?~wj4_MUIXz*#Gh51`fhk#U>%K3 z(1;uL5Q%AjCn)jQ;;|@+)XAv!F~?ZW*md+-gf#&Ze~~VL&~L-I=5!ODGr^$|v`*o| z6E$A}3bsc!&+m33#zd~y@ipvjj|Bc~KU-Q-hRfcb1KX99a&IK4(1!T($&yRY%;>5> z*iEY=+?7tZ1<8{Wu=_@`_DM3Q57*_v+^gY?$ju^)jVh9L9D;s?bLx&iR6Uy$@p3$U z5vk}V^B0}w+ zyG}+YQEN{ACxX)FYj7F07#lP(2&5aHJTM|A&e=Kim_Zj)SVeqA6Qq$!btyyy7UAGbEs>Hfr{+W{_07Tm>7y$hHu>Yi6qOQDv-co!Q< z7Zfg9Dhb$8aW&;cGbxp@E{c=HtF-Lv%qxEZSg~Oc&SfdmhC7T_bj~z;bwx~9Y{dE_ zt%@Vot9DaL`v^g2u9Lf&{N%z@fxbCvO?yWLQ@JEK?gBtI^pU`jD2%Q~z78w>a3;Y+ z(j2+`@CA}-NpdQa;ftqgzj-4rC)e)ZY=5^&Y%^{7d=uqL6-i9*q$GJ{_}>S%f;3VY z4mqOM1xtH%;rNlK@^yK!{<}N2c2RS=hq8(1zf%|$(o7s&s$}b|yDD6{KoYEa><716 zd(!VLIVo-1vW^shexx3^jF^X_Jc9e_(MP|nZa1$v>wSG5DzaK1ylY+!kdtSs;Hz$A z(h%AZub}n7c!HZ&Yg0Tt97;sk7tWdl(CU~(u;;wNLfv&IXh3@yQ8{*nsHBPBjL|Xo z?RCs}cp<8w;o%bM0tn*b7(WNx;Os zc(-(-+8K!sXzAooGuT)#6%|yz;)*6`=jw~@if*gi9&yq|asygnpNPGKH8Fbi93kfl zRT{gH(TW$&7%C#XBlysfU3eSGbu46P6LOReS&a9{iLQ?}i-lhagZY$Ek`g-eH# ziUw1TkPaK5g)wM{vYlS*)qj_nC5)PmV7yTdNodzORQz7`)Ytn$*6pHWd$A%l9+d;_ zC*g(!&v~r;@fspA1Lpd@PfnV~f-L`Z0=MLLB*3<}Wm80>G%Q@kEkbYGnM=Jk`kg&% z@&`ZCe7S7hJO|N|BdN%wy1A#xWDSI}2JCE@5k>=Enjmfgs<_&(yGwyf&e(9kLPShB zvI>)q=&4S$F^XZ1&a9)>uaFAEVu1qW)KNl_SR;$-fR-1gdJuEC8=I3eP?l-6Vn5w4 zc>A(Q^nmV^40?3oDRR008CRRle8y+W@N+dWsjD~|wAk^f*9vuX*w|sKA*~HhdTO3zY^qKzwKY%uk%UFWBrs+?6 z9}}jQr+AP(x^@+#03UCBgh{TK{y7eV$>9%qY-@^?#6y?geVKlMq^m-B#fYuc$A84h z>^pT}qALEp;R~9EQ341uBPXx)_h*6owm0umsC0tcN zyE0g;l)!1$ieFUn?>u^6oj`8i#3gl zCW{Z$f}c)(B|Y~8^?u|DP3{NFQza!=7Wi8LmKoFCN=rEF?(H-NQvwbB`0kQg|Hh zLk}St$+YrRXBkxoB^g?}CV_Cn{WA=2D>z5EH*RDp#!ZN#EekmW!S~*-YBx3JZLaJy z(VrB_WTDpNZr1PcDuz2j=0 z_1|guSvA40CfLQhNA9D#+dJ~-_vDU8N^kKyPXeYzz5yveUf<7R|2X!8yz>c2$AVf3 z6aFCWAPXN9d|AF=rsE0!lN$i4cp1S!Vn&~J$%i5s7@PRk6Gb}RbcopQ48;xb1$?r* zt&iFAhFW4Ci;95_Tb-pPxiZpHY=^wF3iyIw_gk(&?c>?rh+r|rMk!(@(L@L*Ck^dd z+W4(u9ap>`JyV{{F6B%2*$NVRG(d7GkYPgxj?lEn!G@uZnFdizeg)yy2K{U6{o>!4 zqq69>29_ome<9l~t8)d82Tb1k_AV5oZ826yoi7m%vEny5E~w3(FhrQY0#5>L>`XS& z;%lT#D!Ojuvs2o>p8+`sITnu3?f%9>IydC^TobQ(>YKA1)dJq7tn-o9%y_r1QG0#AM)!WY5y@&!CJDFxf<|o{JQs?KfA4R6RVU>*VM;I9oj%l@ zFHN6o!4*RM6Fg;Y`G*gaq>YC3Fp%7GiB!bh?g?!L^>Q=kiG>SVBG0&fEEbX){b$Oa zQ2cn=29BYV1z@rTG@=T$s{>6WeKibf#AX<2v8AZfwvc+)VeL_xebVT}lHfnZw1{8P z2H)&(9sx22*#z6IMPHqT3XJdUy4~D2wv>z+@dgVGddf$@I2Q1639ACTM~u5czkm1OU)pDO&Zx zW0^RI>LGKq!*e>*?b|3NCIOw?{Q>-?I?TkyfDJm|UMf%4DSCKVm8yps$Q}VUhQIAxV^pSu&$F%+1y5ktpUSdztaVM9eEn3(|!J^k6&ZQv&z zy{&zshQ;+eL$m)gfrvV1mq9b1ov-iKpdJexd`?w1mdK$9!>!?IQXY z6q13&gC8GV53f3E3pW(f4_zpoMkT1r@OaUfX`LFJhg?vf@FjlQiBEC#ss;;p)};w~ zT^!&j($KUatsXf6FVdhBHo3|uj7DnhFF2UR8A-OoTTP9hYHDfHu@)H&qnKPSBh?qW zq`jT8m=Y8lnHr~2;zpWGM4@D|iD3;1`AF8-yJFjEowwOUQ|bE=BTeKbz|M7(^+TWl z;g-`^M;8F_y$5EPKESQhP)hIdk4U7?-fAWC#=rDjZR3~|l%8h(oQ91(M9@)W$oTdX z|;gFKk z7Dk4va>fA!wbt$LOD5Ss`YNqS0&;hbR9c9skxL0%m!C^jmr=F58TE##5!v?OH$2Ls z0u;qeC*8tuEeS^e-wU~>vk338(8%sn6X`YCU*1 z*a*^0kP?&u)}9D+r-nkrKiozc*ZT)d^6zyJgp5MBDN2;YOFo}BOj`}v6+JqL?=eyh z5LIDj%wmi&R@_#2@k$fu(JaHwJ*;e@!Rk)l;@xP{eNVgBR2#eJ?Sc0XajI)rx%B}0 zYDZ*?E7}C8_^KKGb>3w4MHUWmtexkoryo!M)n6ZA)%Dl-tA+fFIy8#ZcGtPL5jMVS z5%De-X6=J7dD*|*yye!vC7PlKZ+l|?;zXn(ANdbMbOOspP1=@6RsLx)r$JQrJ>_2~ z9K?>95<)jw!tZYS&GlPNp&ajCi4*N}uu20ZILO_~*^oElWQ>B~xo?!N6y0oq?MPJv z%p}K|B zfr(RujQvybSz*6C7cT~tjvv=E^Rlb;BHX^#G%yQI=IER7_=qLH4qL)|D-pZ(AyNX+ zZYtJF@Ag?(YhO0>i#W%SwU`fFW4e2q94^%QFxG%61IQ2%B)F$>=8{@Ql?{T7>^(bU z@F{$ZPsX!twTKk$eB#Y&8L7s>*adK4!FX)Gc#cxf7P(b++d`ui`KntYZ#puQA#$Y{ z&aBakyg9YhRCuYa(aaZ;*@4q=B+;%-BO2860+hPB+$p^W6(IBm-V287$iY} BzE zFfxB&Y-)wkcBw{*kqI*;H5i+sSqlO$2Gx(XnNHebTy(1Carevgvp2){ z``&)@+W-7Iyk^vY*I#M!-{k~Ye^$(%dZ5XhgxyL+GG`20kP-27PAJWgyCu;iNjzTQ^Sir0O9- z*d-F(2`TcXX@v(PsFlkFMv<>vB5@!NhpzE-*ntV@q3VVuMBj$9LD|kSfMv+j=${+c zBIIhJ&O_WTAdCW=Q-7spgofvUj8wT_N$1^kYrj+ zG42>=`ot#U;nkS`&IG78My?;`)k#N}K}DDT$d&n|7D$z^8FX1f3LSTUtnLT_iPBH(kF ze42c%%Nsi+52bW6dWdmlMqfXl@in^Z-RuZ-?N5WsnXG$%TFN&*klNHlewNQ42c`li z@V}@50I!O3{s_ceCl{2^>a_(WW2tsr+6<;zulU!-yi3Juo+o{|lUcJgjp|;n(3d)- zu975qNjfs@duMkm|NQyd^843 z&#U}|sfCipq=ZFtSiqVNjCmQ9)4`&+Qm~s!rRjtE1=N@DM^E(`1&D31)W0HiJMC7$ RM_h+M%v}Hg diff --git a/apps/portfolio/public/img/portfolio/wbm-installer.avif b/apps/portfolio/public/img/portfolio/wbm-installer.avif deleted file mode 100644 index 8d3a2fa549127978f13fcc839ac0a72c111989de..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7971 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 Lw-?T%V%Yy5LQ@|f diff --git a/apps/portfolio/public/img/portfolio/wbm-overlays.avif b/apps/portfolio/public/img/portfolio/wbm-overlays.avif deleted file mode 100644 index 55a3bc24b6abf7f6cd40bb3082163ab77ec62783..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3604 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 I9Apmv2cBuE=>Px# diff --git a/apps/portfolio/public/img/portfolio/wbm.avif b/apps/portfolio/public/img/portfolio/wbm.avif deleted file mode 100644 index 25c47eef960dae2ee3808b6e7617b8f06a039f2f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 69189 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

HP@$fNuWZ8@^#MnQUVVYv& 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

IZk-SLXwdwIcLO=F#AW_z3m1S!vS*zFW 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 J68gBw{|_`=*Y*Ga diff --git a/apps/portfolio/public/nojs.avif b/apps/portfolio/public/nojs.avif deleted file mode 100644 index adfa49a16707f9210f16eb2eca7f1526ecea90ce..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4566 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 la^uC?*2#=JKiTP(U4I6Q11OnY^ZwZ9H?D - - - - - - -

- No javascript? -
- Image compressed down to 4.5kB because you probably - have potato internet :D -
-
- - -
-
- {children} -
- - - ) -} diff --git a/apps/portfolio/src/app/not-found.tsx b/apps/portfolio/src/app/not-found.tsx deleted file mode 100644 index 2db8189..0000000 --- a/apps/portfolio/src/app/not-found.tsx +++ /dev/null @@ -1,21 +0,0 @@ -import { type Metadata } from "next" - -export const metadata: Metadata = { - metadataBase: new URL("https://portfolio.developomp.com"), - title: "pomp's portfolio | Page Not Found", - openGraph: { - title: "pomp's portfolio | Page Not Found", - }, -} - -export default function NotFound() { - return ( - <> -

- 404 -

- -

Page Not Found

- - ) -} diff --git a/apps/portfolio/src/app/page.tsx b/apps/portfolio/src/app/page.tsx deleted file mode 100644 index 59d4768..0000000 --- a/apps/portfolio/src/app/page.tsx +++ /dev/null @@ -1,40 +0,0 @@ -import type { ProjectKey } from "@developomp-site/content/exports/portfolio" -import portfolio from "@developomp-site/content/exports/portfolio" -import type { Metadata } from "next" - -import Badge from "@/components/Badge" -import ProjectCard from "@/components/ProjectCard" - -function getSkills(): JSX.Element[] { - return portfolio.skills.map((slug) => { - return - }) -} - -function getProjects(): JSX.Element[] { - return (Object.keys(portfolio.projects) as ProjectKey[]).map( - (projectID) => ( - - ), - ) -} - -export const metadata: Metadata = { - metadataBase: new URL("https://blog.developomp.com"), - title: "pomp's portfolio | Home", -} - -export default function Page() { - return ( - <> -

developomp's Portfolio

-
-
{getSkills()}
-
{getProjects()}
- - ) -} diff --git a/apps/portfolio/src/app/project/[id]/page.tsx b/apps/portfolio/src/app/project/[id]/page.tsx deleted file mode 100644 index b781ded..0000000 --- a/apps/portfolio/src/app/project/[id]/page.tsx +++ /dev/null @@ -1,98 +0,0 @@ -import "./style.scss" - -import Toc from "@developomp-site/blog/src/app/[category]/[[...slug]]/Toc" -import type { ProjectKey } from "@developomp-site/content/exports/portfolio" -import portfolio from "@developomp-site/content/exports/portfolio" -import { faGithub } from "@fortawesome/free-brands-svg-icons" -import { FontAwesomeIcon } from "@fortawesome/react-fontawesome" -import { type Metadata } from "next" -import Link from "next/link" - -import Badge from "@/components/Badge" - -interface Data { - title: string - toc?: string - content: string - - image: string // image url - overview: string - badges: string[] - repo: string -} - -interface Params { - id: ProjectKey -} - -interface Props { - params: Params -} - -async function getData(id: ProjectKey): Promise { - const content = await import( - `@developomp-site/content/dist/content/projects/${id}.json` - ) - const data = portfolio.projects[id] - - return { - content: content.content, - toc: content.toc, - title: data.name, - image: data.image, - overview: data.overview, - badges: data.badges, - repo: data.repo, - } -} - -export async function generateStaticParams(): Promise { - return (Object.keys(portfolio.projects) as ProjectKey[]).map((id) => ({ - id, - })) -} - -export async function generateMetadata({ params }: Props): Promise { - const data = await getData(params.id) - return { - metadataBase: new URL("https://portfolio.developomp.com"), - title: data.title, - openGraph: { - title: `pomp's portfolio | ${data.title}`, - }, - } -} - -export default async function Project({ params }: Props) { - const data = await getData(params.id) - - return ( - <> -
-

{data.title}

- - - -
-
- {data.badges.map((slug) => { - return - })} -
-
- - - - {/* page content */} -
- - ) -} diff --git a/apps/portfolio/src/app/project/[id]/style.scss b/apps/portfolio/src/app/project/[id]/style.scss deleted file mode 100644 index 17086a4..0000000 --- a/apps/portfolio/src/app/project/[id]/style.scss +++ /dev/null @@ -1,29 +0,0 @@ -.project-description { - h2, - h3, - h4, - h5, - h6 { - @apply mb-2; - } - - h2 { - @apply mt-10 text-3xl; - } - - h3 { - @apply mt-6 indent-2 text-xl; - } - - h4 { - @apply mt-6 indent-4 text-base; - } - - h5 { - @apply mt-6 indent-6 text-base; - } - - h6 { - @apply mt-6 indent-8 text-base; - } -} diff --git a/apps/portfolio/src/components/Badge/Badge.tsx b/apps/portfolio/src/components/Badge/Badge.tsx deleted file mode 100644 index 84a9e08..0000000 --- a/apps/portfolio/src/components/Badge/Badge.tsx +++ /dev/null @@ -1,35 +0,0 @@ -import "./style.scss" - -import { type Badge as BadgeType } from "@developomp-site/content/src/types/types" - -interface BadgeProps { - slug: string -} - -export default async function Badge({ slug }: BadgeProps) { - const badgeData: BadgeType = await import( - `@developomp-site/content/dist/icons/${slug}.json` - ) - - if (!badgeData) - throw `"@developomp-site/content/dist/icons/${slug}.json" does not exist` - - return ( -
-
- {badgeData.title} -
- ) -} diff --git a/apps/portfolio/src/components/Badge/index.ts b/apps/portfolio/src/components/Badge/index.ts deleted file mode 100644 index e26eecc..0000000 --- a/apps/portfolio/src/components/Badge/index.ts +++ /dev/null @@ -1,3 +0,0 @@ -import Badge from "./Badge" - -export default Badge diff --git a/apps/portfolio/src/components/Badge/style.scss b/apps/portfolio/src/components/Badge/style.scss deleted file mode 100644 index 7649f0d..0000000 --- a/apps/portfolio/src/components/Badge/style.scss +++ /dev/null @@ -1,11 +0,0 @@ -.light-badge { - svg { - @apply dark:fill-light-text-default; - } -} - -.dark-badge { - svg { - @apply dark:fill-dark-text-default; - } -} diff --git a/apps/portfolio/src/components/Header/Header.tsx b/apps/portfolio/src/components/Header/Header.tsx deleted file mode 100644 index 6c7a405..0000000 --- a/apps/portfolio/src/components/Header/Header.tsx +++ /dev/null @@ -1,25 +0,0 @@ -import Link from "next/link" -import { type FC } from "react" - -const Header: FC = () => { - return ( -
-
- - {/* eslint-disable-next-line @next/next/no-img-element */} - logo - -
-
- ) -} - -export default Header diff --git a/apps/portfolio/src/components/Header/index.ts b/apps/portfolio/src/components/Header/index.ts deleted file mode 100644 index 696cfbc..0000000 --- a/apps/portfolio/src/components/Header/index.ts +++ /dev/null @@ -1,3 +0,0 @@ -import Header from "./Header" - -export default Header diff --git a/apps/portfolio/src/components/ProjectCard/ProjectCard.tsx b/apps/portfolio/src/components/ProjectCard/ProjectCard.tsx deleted file mode 100644 index 492a4e0..0000000 --- a/apps/portfolio/src/components/ProjectCard/ProjectCard.tsx +++ /dev/null @@ -1,39 +0,0 @@ -import "./style.scss" - -import type { PortfolioProject } from "@developomp-site/content/src/types/types" -import Link from "next/link" - -import Badge from "@/components/Badge" - -interface ProjectCardProps { - projectID: string - project: PortfolioProject -} - -export default function ProjectCard({ projectID, project }: ProjectCardProps) { - return ( - -
-

{project.name}

- {/* eslint-disable-next-line @next/next/no-img-element */} - project thumbnail - -
- {project.badges.map((badge) => ( - - ))} -
-
-
-
- - ) -} diff --git a/apps/portfolio/src/components/ProjectCard/index.ts b/apps/portfolio/src/components/ProjectCard/index.ts deleted file mode 100644 index 7d7ffc5..0000000 --- a/apps/portfolio/src/components/ProjectCard/index.ts +++ /dev/null @@ -1,3 +0,0 @@ -import ProjectCard from "./ProjectCard" - -export default ProjectCard diff --git a/apps/portfolio/src/components/ProjectCard/style.scss b/apps/portfolio/src/components/ProjectCard/style.scss deleted file mode 100644 index a2d6af3..0000000 --- a/apps/portfolio/src/components/ProjectCard/style.scss +++ /dev/null @@ -1,17 +0,0 @@ -.project { - // general - @apply cursor-pointer rounded-md; - - // spacing - @apply m-auto mb-8 p-8; - - // color - @apply bg-dark-card-bg dark:text-dark-text-default; - - // glow - @apply duration-75 hover:shadow-glow dark:hover:shadow-dark-text-default; - - h2 { - @apply text-3xl; - } -} diff --git a/apps/portfolio/tailwind.config.js b/apps/portfolio/tailwind.config.js deleted file mode 100644 index c888d68..0000000 --- a/apps/portfolio/tailwind.config.js +++ /dev/null @@ -1,9 +0,0 @@ -/** @type {import('tailwindcss').Config} */ -module.exports = { - presets: [require("@developomp-site/tailwind-config/tailwind.config.js")], - content: [ - "./src/pages/**/*.{js,ts,jsx,tsx,mdx}", - "./src/components/**/*.{js,ts,jsx,tsx,mdx}", - "./src/app/**/*.{js,ts,jsx,tsx,mdx}", - ], -} diff --git a/apps/portfolio/tsconfig.json b/apps/portfolio/tsconfig.json deleted file mode 100644 index 862bf6c..0000000 --- a/apps/portfolio/tsconfig.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "compilerOptions": { - "target": "es5", - "lib": ["dom", "dom.iterable", "esnext"], - "allowJs": true, - "skipLibCheck": true, - "strict": true, - "forceConsistentCasingInFileNames": true, - "noEmit": true, - "esModuleInterop": true, - "module": "esnext", - "moduleResolution": "bundler", - "resolveJsonModule": true, - "isolatedModules": true, - "jsx": "preserve", - "incremental": true, - "plugins": [ - { - "name": "next" - } - ], - "paths": { - "@/*": ["./src/*"] - } - }, - "include": [ - "next-env.d.ts", - "**/*.ts", - "**/*.tsx", - ".next/types/**/*.ts", - "build/types/**/*.ts", - "dist/types/**/*.ts" - ], - "exclude": ["node_modules"] -} diff --git a/commitlint.config.js b/commitlint.config.js index 92c6dd7..b8e7961 100644 --- a/commitlint.config.js +++ b/commitlint.config.js @@ -14,7 +14,6 @@ module.exports = { // apps "blog", "main", - "portfolio", // packages "content", diff --git a/firebase.json b/firebase.json index 435b482..5234426 100644 --- a/firebase.json +++ b/firebase.json @@ -13,13 +13,6 @@ "trailingSlash": false, "public": "apps/blog/build", "ignore": ["**/.*"] - }, - { - "target": "portfolio", - "cleanUrls": true, - "trailingSlash": false, - "public": "apps/portfolio/dist", - "ignore": ["**/.*"] } ] } diff --git a/main.tf b/main.tf index 4283e6d..c193423 100644 --- a/main.tf +++ b/main.tf @@ -57,23 +57,3 @@ resource "aws_route53_record" "blog_acme_challenge" { ttl = 60 records = ["RXaOhzFg2U4ZtEU_Dj_2ylAX3D8xXpdRCq1KjoaB9Sc"] } - -# https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/route53_record -resource "aws_route53_record" "portfolio" { - allow_overwrite = true - zone_id = data.aws_route53_zone.developomp_com.zone_id - name = "portfolio.${data.aws_route53_zone.developomp_com.name}" - type = "A" - ttl = 60 - records = ["199.36.158.100"] -} - -# https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/route53_record -resource "aws_route53_record" "portfolio_acme_challenge" { - allow_overwrite = true - zone_id = data.aws_route53_zone.developomp_com.zone_id - name = "_acme-challenge.portfolio.${data.aws_route53_zone.developomp_com.name}" - type = "TXT" - ttl = 60 - records = ["YxFtDJ-Qf1yE8KX2mzf4cbfkPBR74IbbWX_0l5gGnLg"] -} diff --git a/packages/content/exports/portfolio.ts b/packages/content/exports/portfolio.ts deleted file mode 100644 index 269da66..0000000 --- a/packages/content/exports/portfolio.ts +++ /dev/null @@ -1,14 +0,0 @@ -import portfolio from "../dist/portfolio.json" assert { type: "json" } -import type { PortfolioProject } from "../src/types/types" - -export type ProjectKey = keyof typeof portfolio.projects - -// sort of like src/types/types.ts > PortfolioData but exported -export default portfolio as { - // waiting for https://github.com/microsoft/TypeScript/issues/32063 - skills: string[] - - projects: { - [key in ProjectKey]: PortfolioProject - } -} diff --git a/packages/content/markdown/projects/developomp-site.md b/packages/content/markdown/projects/developomp-site.md deleted file mode 100644 index 49a4200..0000000 --- a/packages/content/markdown/projects/developomp-site.md +++ /dev/null @@ -1,30 +0,0 @@ ---- -name: developomp-site -overview: my websites for blogging, portfolio, resume, etc. -image: /img/portfolio/developomp-site.avif -repo: https://github.com/developomp/developomp-site -badges: - - typescript - - tailwindcss - - react - - svelte - - nextdotjs - - firebase - - terraform ---- - -## Introduction - -developomp-site is a monorepo managed by [turborepo](https://turbo.build/repo) -and pnpm workspace. - -- https://developomp.com - about me, built with **Svelte with SvelteKit** -- https://blog.developomp.com - Blogging site, built with **React with NextJS** -- https://portfolio.developomp.com - Portfolio, built with **React with NextJS** - -## Interesting Stuff - -- [markdown parsing][markdown-parsing] -- [test post](https://blog.developomp.com/posts/test-post) - -[markdown-parsing]: https://github.com/developomp/developomp-site/tree/081855a4ecb6f5bf74b76758c358ea54b465b2b7/packages/blog-content diff --git a/packages/content/markdown/projects/wbm.md b/packages/content/markdown/projects/wbm.md deleted file mode 100644 index e4fd53f..0000000 --- a/packages/content/markdown/projects/wbm.md +++ /dev/null @@ -1,38 +0,0 @@ ---- -name: War Brokers Mods -overview: A game mod for a unity game. Provides in-game UI and OBS overlays. -image: /img/portfolio/wbm.avif -repo: https://github.com/War-Brokers-Mods -badges: - - rust - - csharp - - svelte - - tailwindcss - - unity - - tauri ---- - -## Introduction - -The War Brokers Mods (WBM) is a mod for the game -[War Brokers](https://warbrokers.io) consisting of 3 sub-projects: - -- [mod][mod] - Built with C#, it uses the [BepInEx][bepinex] framework to patch - different aspects of the game -- [OBS overlay][overlays] - Customizable overlays for [OBS studio](https://github.com/obsproject/obs-studio) - -![Overlay image](/img/portfolio/wbm-overlays.avif "Overlay image") - -- [installer][installer] - Utility for installing updating the mod. Built with [tauri][tauri], - [rust][rust], [svelte][svelte], and [tailwind css][tailwindcss]. - -![Installer image](/img/portfolio/wbm-installer.avif "Installer image") - -[mod]: https://github.com/War-Brokers-Mods/WBM -[overlays]: https://github.com/War-Brokers-Mods/WBM-Overlays -[installer]: https://github.com/War-Brokers-Mods/WBM-installer -[bepinex]: https://github.com/BepInEx/BepInEx -[tauri]: https://github.com/tauri-apps/tauri -[rust]: https://github.com/rust-lang/rust -[svelte]: https://github.com/sveltejs/svelte -[tailwindcss]: https://github.com/tailwindlabs/tailwindcss diff --git a/packages/content/markdown/projects/wbp.md b/packages/content/markdown/projects/wbp.md deleted file mode 100644 index 2a2904c..0000000 --- a/packages/content/markdown/projects/wbp.md +++ /dev/null @@ -1,23 +0,0 @@ ---- -name: War Brokers Projects -overview: An attempt to bring together community projects related to War Brokers with the goal of making them more visible and making collaboration easier. -image: /img/portfolio/wbp.avif -repo: https://github.com/War-Brokers -badges: - - csharp - - typescript - - express - - swagger - - firebase ---- - -## Introduction - -WBP (War Brokers Projects) is an attempt to bring together community projects -related to War Brokers with the goal of making them more visible and making -collaboration easier. - -You can find more information in their [homepage][homepage] or in their [GitHub organization][github] - -[Homepage]: https://war-brokers-projects.notion.site/War-Brokers-Projects-0ab13d7077a843e79b99a328e00d2008 -[github]: https://github.com/orgs/War-Brokers/repositories diff --git a/packages/content/src/config.ts b/packages/content/src/config.ts index 8c0e666..d35b8ea 100644 --- a/packages/content/src/config.ts +++ b/packages/content/src/config.ts @@ -4,5 +4,4 @@ export const outPath = "./dist" // path to the json database export const contentDirectoryPath = `${outPath}/content` export const iconsDirectoryPath = `${outPath}/icons` export const mapFilePath = `${outPath}/map.json` -export const portfolioFilePath = `${outPath}/portfolio.json` export const searchIndexFilePath = `${outPath}/search.json` diff --git a/packages/content/src/index.ts b/packages/content/src/index.ts index 06e1a89..94ddb40 100644 --- a/packages/content/src/index.ts +++ b/packages/content/src/index.ts @@ -8,11 +8,11 @@ import fs from "fs" -import { mapFilePath, markdownPath, outPath, portfolioFilePath } from "./config" +import { mapFilePath, markdownPath, outPath } from "./config" import { fillTags, parseSeries, sortDates } from "./postProcess" import { recursiveParse } from "./recursiveParse" import { saveIndex } from "./searchIndex" -import type { ContentMap, PortfolioData, SeriesMap } from "./types/types" +import type { ContentMap, SeriesMap } from "./types/types" import { ParseMode } from "./types/types" export const contentMap: ContentMap = { @@ -25,10 +25,6 @@ export const contentMap: ContentMap = { series: {}, } export const seriesMap: SeriesMap = {} -export const portfolioData: PortfolioData = { - skills: new Set(), - projects: {}, -} async function main() { /** @@ -60,7 +56,6 @@ async function main() { // parse markdown await recursiveParse(ParseMode.POSTS, markdownPath + "/posts") await recursiveParse(ParseMode.SERIES, markdownPath + "/series") - await recursiveParse(ParseMode.PORTFOLIO, markdownPath + "/projects") sortDates() fillTags() @@ -71,14 +66,6 @@ async function main() { */ fs.writeFileSync(mapFilePath, JSON.stringify(contentMap)) - fs.writeFileSync( - portfolioFilePath, - JSON.stringify({ - ...portfolioData, - skills: Array.from(portfolioData.skills), - }), - ) - saveIndex() } diff --git a/packages/content/src/parseMarkdown.ts b/packages/content/src/parseMarkdown.ts index 519bef5..bbbf309 100644 --- a/packages/content/src/parseMarkdown.ts +++ b/packages/content/src/parseMarkdown.ts @@ -23,7 +23,6 @@ import supersub from "remark-supersub" import { unified } from "unified" import type { MarkdownData } from "./types/types" -import { ParseMode } from "./types/types" import { nthIndex } from "./util" const processor = unified() // interface for remark and rehype @@ -50,12 +49,10 @@ const processor = unified() // interface for remark and rehype * * @param {string} markdownRaw - raw unparsed text data of the markdown file * @param {string} path - filename of the markdown file - * @param {ParseMode} mode */ export default async function parseMarkdown( markdownRaw: string, path: string, - mode: ParseMode, ): Promise { const fileHasFrontMatter = markdownRaw.startsWith("---") @@ -64,21 +61,11 @@ export default async function parseMarkdown( : {} if (fileHasFrontMatter) { - if (mode != ParseMode.PORTFOLIO) { - if (!frontMatter.title) - throw Error(`Title is not defined in file: ${path}`) + if (!frontMatter.title) + throw Error(`Title is not defined in file: ${path}`) - if (!frontMatter.date) - throw Error(`Date is not defined in file: ${path}`) - } - - if (mode === ParseMode.PORTFOLIO) { - if (frontMatter.overview) { - frontMatter.overview = String( - processor.processSync(frontMatter.overview), - ) - } - } + if (!frontMatter.date) + throw Error(`Date is not defined in file: ${path}`) } frontMatter.content = touchupHTML( diff --git a/packages/content/src/recursiveParse/index.ts b/packages/content/src/recursiveParse/index.ts index 9257a42..9b5ea6b 100644 --- a/packages/content/src/recursiveParse/index.ts +++ b/packages/content/src/recursiveParse/index.ts @@ -5,7 +5,6 @@ import parseMarkdown from "../parseMarkdown" import { ParseMode } from "../types/types" import { path2FileOrFolderName, path2URL } from "../util" import parsePost from "./parsePost" -import parseProjects from "./parseProjects" import parseSeries from "./parseSeries" /** @@ -98,9 +97,5 @@ async function parseFile(mode: ParseMode, path: string): Promise { case ParseMode.SERIES: await parseSeries(dataToPass) break - - case ParseMode.PORTFOLIO: - await parseProjects(dataToPass) - break } } diff --git a/packages/content/src/recursiveParse/parseProjects.ts b/packages/content/src/recursiveParse/parseProjects.ts deleted file mode 100644 index 3f72641..0000000 --- a/packages/content/src/recursiveParse/parseProjects.ts +++ /dev/null @@ -1,57 +0,0 @@ -import type { SimpleIcon } from "simple-icons" -import * as icons from "simple-icons" -import tinycolor from "tinycolor2" - -import { portfolioData } from ".." -import { contentDirectoryPath, iconsDirectoryPath } from "../config" -import { generateToc } from "../parseMarkdown" -import { writeToFile } from "../util" -import type { DataToPass } from "." - -export default async function parseProjects({ - urlPath, - markdownRaw, - markdownData, -}: DataToPass): Promise { - if (markdownData.badges) { - ;(markdownData.badges as string[]).forEach((slug) => { - // todo: handle cases when icon is not on simple-icons - const icon: SimpleIcon = - // eslint-disable-next-line @typescript-eslint/ban-ts-comment - // @ts-ignore - icons["si" + slug[0].toUpperCase() + slug.slice(1)] - - portfolioData.skills.add(slug) - - const color = tinycolor(icon.hex).lighten(5).desaturate(5) - - // save svg icon - writeToFile( - `${iconsDirectoryPath}/${icon.slug}.json`, - JSON.stringify({ - svg: icon.svg, - hex: color.toHexString(), - isDark: color.isDark(), - title: icon.title, - }), - ) - }) - } - - // remove /projects/ prefix - portfolioData.projects[urlPath.replace("/projects/", "")] = { - name: markdownData.name as string, - image: markdownData.image as string, - overview: markdownData.overview as string, - badges: (markdownData.badges as string[]) || [], - repo: (markdownData.repo as string) || "", - } - - writeToFile( - `${contentDirectoryPath}${urlPath}.json`, - JSON.stringify({ - content: markdownData.content, - toc: await generateToc(markdownRaw), - }), - ) -} diff --git a/packages/content/src/types/types.ts b/packages/content/src/types/types.ts index 36182ff..2f5737b 100644 --- a/packages/content/src/types/types.ts +++ b/packages/content/src/types/types.ts @@ -32,7 +32,6 @@ export interface ContentMap { export enum ParseMode { POSTS, SERIES, - PORTFOLIO, } export interface MarkdownData { @@ -67,13 +66,6 @@ export interface PageData { order: string[] length: number - - // portfolio - - image: string // image url - overview: string - badges: string[] - repo: string } export interface Badge { @@ -106,31 +98,3 @@ export interface SeriesEntry { index: number url: string } - -/** - * Portfolio - */ - -export interface PortfolioData { - // a set of valid simple icons slug - skills: Set - - // key: url - projects: { - [key: string]: PortfolioProject - } -} - -export interface PortfolioOverview { - // link to my github - github: string - description: string -} - -export interface PortfolioProject { - name: string - image: string // url to the image - overview: string - badges: string[] // array of valid simpleIcons slug - repo: string // url of the git repository -} diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 31def3e..1446a07 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -140,6 +140,9 @@ importers: react: specifier: 18.2.0 version: 18.2.0 + react-collapse: + specifier: ^5.1.1 + version: 5.1.1(react@18.2.0) react-dom: specifier: 18.2.0 version: 18.2.0(react@18.2.0) @@ -261,126 +264,6 @@ importers: specifier: ^5.0.10 version: 5.0.10(@types/node@18.19.3)(sass@1.69.5) - apps/portfolio: - devDependencies: - '@developomp-site/blog': - specifier: workspace:* - version: link:../blog - '@developomp-site/content': - specifier: workspace:* - version: link:../../packages/content - '@developomp-site/eslint-config': - specifier: workspace:* - version: link:../../packages/eslint-config - '@developomp-site/playwright-config': - specifier: workspace:* - version: link:../../packages/playwright-config - '@developomp-site/prettier-config': - specifier: workspace:* - version: link:../../packages/prettier-config - '@developomp-site/tailwind-config': - specifier: workspace:* - version: link:../../packages/tailwind-config - '@fontsource/noto-sans-kr': - specifier: ^5.0.5 - version: 5.0.5 - '@fontsource/source-code-pro': - specifier: ^5.0.5 - version: 5.0.5 - '@fortawesome/free-brands-svg-icons': - specifier: ^6.4.0 - version: 6.4.0 - '@fortawesome/free-solid-svg-icons': - specifier: ^6.4.0 - version: 6.4.0 - '@fortawesome/react-fontawesome': - specifier: ^0.2.0 - version: 0.2.0(@fortawesome/fontawesome-svg-core@6.5.1)(react@18.2.0) - '@kunukn/react-collapse': - specifier: ^2.2.10 - version: 2.2.10(react-dom@18.2.0)(react@18.2.0) - '@playwright/test': - specifier: ^1.36.2 - version: 1.36.2 - '@types/highlight.js': - specifier: ^10.1.0 - version: 10.1.0 - '@types/katex': - specifier: ^0.16.7 - version: 0.16.7 - '@types/node': - specifier: ^20.10.5 - version: 20.10.5 - '@types/react': - specifier: 18.2.17 - version: 18.2.17 - '@types/react-collapse': - specifier: ^5.0.1 - version: 5.0.1 - '@types/react-dom': - specifier: 18.2.7 - version: 18.2.7 - '@typescript-eslint/eslint-plugin': - specifier: ^6.15.0 - version: 6.15.0(@typescript-eslint/parser@6.15.0)(eslint@8.56.0)(typescript@5.3.3) - '@typescript-eslint/parser': - specifier: ^6.15.0 - version: 6.15.0(eslint@8.56.0)(typescript@5.3.3) - autoprefixer: - specifier: ^10.4.16 - version: 10.4.16(postcss@8.4.32) - eslint: - specifier: ^8.56.0 - version: 8.56.0 - eslint-config-next: - specifier: 13.4.12 - version: 13.4.12(eslint@8.56.0)(typescript@5.3.3) - highlight.js: - specifier: ^11.8.0 - version: 11.8.0 - katex: - specifier: ^0.16.8 - version: 0.16.8 - next: - specifier: 13.4.12 - version: 13.4.12(react-dom@18.2.0)(react@18.2.0) - next-sitemap: - specifier: ^4.1.8 - version: 4.1.8(next@13.4.12) - open-cli: - specifier: ^7.2.0 - version: 7.2.0 - postcss: - specifier: ^8.4.32 - version: 8.4.32 - postcss-load-config: - specifier: ^4.0.1 - version: 4.0.1(postcss@8.4.32) - prettier: - specifier: ^3.2.5 - version: 3.2.5 - prettier-plugin-tailwindcss: - specifier: ^0.5.9 - version: 0.5.9(prettier-plugin-svelte@3.1.2)(prettier@3.2.5) - react: - specifier: 18.2.0 - version: 18.2.0 - react-collapse: - specifier: ^5.1.1 - version: 5.1.1(react@18.2.0) - react-dom: - specifier: 18.2.0 - version: 18.2.0(react@18.2.0) - serve: - specifier: ^14.2.0 - version: 14.2.0 - tailwindcss: - specifier: ^3.4.0 - version: 3.4.0 - typescript: - specifier: ^5.3.3 - version: 5.3.3 - packages/content: dependencies: '@developomp-site/eslint-config':