diff --git a/.gitignore b/.gitignore
index 4949e37c..19044e05 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,5 +1,6 @@
.env
.env.production
+stats.html
*.local
.DS_Store
diff --git a/package-lock.json b/package-lock.json
index 1427ebd3..ded1e5e0 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -35,6 +35,7 @@
"globals": "^16.3.0",
"jsdom": "^24.0.0",
"prettier": "^3.5.3",
+ "rollup-plugin-visualizer": "^6.0.3",
"tailwindcss": "^4.1.4",
"typescript": "^5.8.3",
"vite": "^6.3.5",
@@ -2698,6 +2699,78 @@
"node": ">=18"
}
},
+ "node_modules/cliui": {
+ "version": "8.0.1",
+ "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz",
+ "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==",
+ "dev": true,
+ "dependencies": {
+ "string-width": "^4.2.0",
+ "strip-ansi": "^6.0.1",
+ "wrap-ansi": "^7.0.0"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/cliui/node_modules/ansi-regex": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
+ "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/cliui/node_modules/emoji-regex": {
+ "version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
+ "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
+ "dev": true
+ },
+ "node_modules/cliui/node_modules/string-width": {
+ "version": "4.2.3",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
+ "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
+ "dev": true,
+ "dependencies": {
+ "emoji-regex": "^8.0.0",
+ "is-fullwidth-code-point": "^3.0.0",
+ "strip-ansi": "^6.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/cliui/node_modules/strip-ansi": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
+ "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
+ "dev": true,
+ "dependencies": {
+ "ansi-regex": "^5.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/cliui/node_modules/wrap-ansi": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
+ "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
+ "dev": true,
+ "dependencies": {
+ "ansi-styles": "^4.0.0",
+ "string-width": "^4.1.0",
+ "strip-ansi": "^6.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/wrap-ansi?sponsor=1"
+ }
+ },
"node_modules/color-convert": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
@@ -2882,6 +2955,15 @@
"integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==",
"dev": true
},
+ "node_modules/define-lazy-prop": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz",
+ "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
"node_modules/delayed-stream": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
@@ -3116,7 +3198,6 @@
"resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz",
"integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==",
"dev": true,
- "peer": true,
"engines": {
"node": ">=6"
}
@@ -3621,6 +3702,15 @@
"node": ">=6.9.0"
}
},
+ "node_modules/get-caller-file": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz",
+ "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==",
+ "dev": true,
+ "engines": {
+ "node": "6.* || 8.* || >= 10.*"
+ }
+ },
"node_modules/get-intrinsic": {
"version": "1.3.0",
"resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz",
@@ -3894,6 +3984,21 @@
"dev": true,
"license": "ISC"
},
+ "node_modules/is-docker": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz",
+ "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==",
+ "dev": true,
+ "bin": {
+ "is-docker": "cli.js"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
"node_modules/is-extglob": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
@@ -3951,6 +4056,18 @@
"url": "https://github.com/sponsors/mesqueeb"
}
},
+ "node_modules/is-wsl": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz",
+ "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==",
+ "dev": true,
+ "dependencies": {
+ "is-docker": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
"node_modules/isexe": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
@@ -4717,6 +4834,23 @@
"dev": true,
"license": "MIT"
},
+ "node_modules/open": {
+ "version": "8.4.2",
+ "resolved": "https://registry.npmjs.org/open/-/open-8.4.2.tgz",
+ "integrity": "sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==",
+ "dev": true,
+ "dependencies": {
+ "define-lazy-prop": "^2.0.0",
+ "is-docker": "^2.1.1",
+ "is-wsl": "^2.2.0"
+ },
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
"node_modules/optionator": {
"version": "0.9.4",
"resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz",
@@ -5025,6 +5159,15 @@
}
]
},
+ "node_modules/require-directory": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz",
+ "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
"node_modules/requires-port": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz",
@@ -5095,6 +5238,48 @@
"fsevents": "~2.3.2"
}
},
+ "node_modules/rollup-plugin-visualizer": {
+ "version": "6.0.3",
+ "resolved": "https://registry.npmjs.org/rollup-plugin-visualizer/-/rollup-plugin-visualizer-6.0.3.tgz",
+ "integrity": "sha512-ZU41GwrkDcCpVoffviuM9Clwjy5fcUxlz0oMoTXTYsK+tcIFzbdacnrr2n8TXcHxbGKKXtOdjxM2HUS4HjkwIw==",
+ "dev": true,
+ "dependencies": {
+ "open": "^8.0.0",
+ "picomatch": "^4.0.2",
+ "source-map": "^0.7.4",
+ "yargs": "^17.5.1"
+ },
+ "bin": {
+ "rollup-plugin-visualizer": "dist/bin/cli.js"
+ },
+ "engines": {
+ "node": ">=18"
+ },
+ "peerDependencies": {
+ "rolldown": "1.x || ^1.0.0-beta",
+ "rollup": "2.x || 3.x || 4.x"
+ },
+ "peerDependenciesMeta": {
+ "rolldown": {
+ "optional": true
+ },
+ "rollup": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/rollup-plugin-visualizer/node_modules/picomatch": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz",
+ "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==",
+ "dev": true,
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/jonschlinkert"
+ }
+ },
"node_modules/rrweb-cssom": {
"version": "0.7.1",
"resolved": "https://registry.npmjs.org/rrweb-cssom/-/rrweb-cssom-0.7.1.tgz",
@@ -5193,6 +5378,15 @@
"url": "https://github.com/sponsors/isaacs"
}
},
+ "node_modules/source-map": {
+ "version": "0.7.6",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.6.tgz",
+ "integrity": "sha512-i5uvt8C3ikiWeNZSVZNWcfZPItFQOsYTUAOkcUPGd8DqDy1uOUikjt5dG+uRlwyvR108Fb9DOd4GvXfT0N2/uQ==",
+ "dev": true,
+ "engines": {
+ "node": ">= 12"
+ }
+ },
"node_modules/source-map-js": {
"version": "1.2.1",
"resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz",
@@ -6224,6 +6418,15 @@
"dev": true,
"license": "MIT"
},
+ "node_modules/y18n": {
+ "version": "5.0.8",
+ "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz",
+ "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==",
+ "dev": true,
+ "engines": {
+ "node": ">=10"
+ }
+ },
"node_modules/yallist": {
"version": "3.1.1",
"resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz",
@@ -6231,6 +6434,74 @@
"dev": true,
"peer": true
},
+ "node_modules/yargs": {
+ "version": "17.7.2",
+ "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz",
+ "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==",
+ "dev": true,
+ "dependencies": {
+ "cliui": "^8.0.1",
+ "escalade": "^3.1.1",
+ "get-caller-file": "^2.0.5",
+ "require-directory": "^2.1.1",
+ "string-width": "^4.2.3",
+ "y18n": "^5.0.5",
+ "yargs-parser": "^21.1.1"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/yargs-parser": {
+ "version": "21.1.1",
+ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz",
+ "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==",
+ "dev": true,
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/yargs/node_modules/ansi-regex": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
+ "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/yargs/node_modules/emoji-regex": {
+ "version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
+ "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
+ "dev": true
+ },
+ "node_modules/yargs/node_modules/string-width": {
+ "version": "4.2.3",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
+ "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
+ "dev": true,
+ "dependencies": {
+ "emoji-regex": "^8.0.0",
+ "is-fullwidth-code-point": "^3.0.0",
+ "strip-ansi": "^6.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/yargs/node_modules/strip-ansi": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
+ "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
+ "dev": true,
+ "dependencies": {
+ "ansi-regex": "^5.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
"node_modules/yocto-queue": {
"version": "0.1.0",
"resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz",
diff --git a/package.json b/package.json
index f4814f94..5e56e2d1 100644
--- a/package.json
+++ b/package.json
@@ -9,7 +9,8 @@
"dev": "vite",
"build": "vite build",
"preview": "vite preview",
- "test": "vitest run --coverage"
+ "test": "vitest run --coverage",
+ "build:stats": "VITE_VISUALIZER=true vite build"
},
"dependencies": {
"dompurify": "^3.2.6",
@@ -23,6 +24,7 @@
"devDependencies": {
"@babel/eslint-parser": "^7.27.0",
"@eslint/js": "^9.25.1",
+ "@faker-js/faker": "^8.4.0",
"@tailwindcss/forms": "^0.5.10",
"@tailwindcss/vite": "^4.1.4",
"@types/lodash": "^4.17.20",
@@ -31,14 +33,14 @@
"@typescript-eslint/parser": "^8.38.0",
"@vitejs/plugin-vue": "^5.2.1",
"@vitest/coverage-v8": "^3.2.0",
- "@faker-js/faker": "^8.4.0",
- "jsdom": "^24.0.0",
"@vue/test-utils": "^2.4.1",
"eslint": "^9.31.0",
"eslint-config-prettier": "^10.1.2",
"eslint-plugin-vue": "^10.3.0",
"globals": "^16.3.0",
+ "jsdom": "^24.0.0",
"prettier": "^3.5.3",
+ "rollup-plugin-visualizer": "^6.0.3",
"tailwindcss": "^4.1.4",
"typescript": "^5.8.3",
"vite": "^6.3.5",
diff --git a/public/images/recommendation/amrith-g.jpeg b/public/images/recommendation/amrith-g.jpeg
index d8e5ad15..ec3f2655 100644
Binary files a/public/images/recommendation/amrith-g.jpeg and b/public/images/recommendation/amrith-g.jpeg differ
diff --git a/public/images/recommendation/dawid-makowski.jpeg b/public/images/recommendation/dawid-makowski.jpeg
index fa9c72ff..805f4a27 100644
Binary files a/public/images/recommendation/dawid-makowski.jpeg and b/public/images/recommendation/dawid-makowski.jpeg differ
diff --git a/public/images/talks/001.jpg b/public/images/talks/001.jpg
index bdfa282a..83179e18 100644
Binary files a/public/images/talks/001.jpg and b/public/images/talks/001.jpg differ
diff --git a/public/images/talks/002.jpg b/public/images/talks/002.jpg
index 1788978b..44e662ea 100644
Binary files a/public/images/talks/002.jpg and b/public/images/talks/002.jpg differ
diff --git a/public/images/talks/003.jpg b/public/images/talks/003.jpg
index 69e7e1dd..b89792df 100644
Binary files a/public/images/talks/003.jpg and b/public/images/talks/003.jpg differ
diff --git a/src/images/1-about.png b/src/images/1-about.png
deleted file mode 100644
index c92ba83c..00000000
Binary files a/src/images/1-about.png and /dev/null differ
diff --git a/src/images/1-me.jpg b/src/images/1-me.jpg
deleted file mode 100644
index 0e890a38..00000000
Binary files a/src/images/1-me.jpg and /dev/null differ
diff --git a/src/images/avatar-01.jpg b/src/images/avatar-01.jpg
deleted file mode 100644
index 63707268..00000000
Binary files a/src/images/avatar-01.jpg and /dev/null differ
diff --git a/src/images/avatar-02.jpg b/src/images/avatar-02.jpg
deleted file mode 100644
index 817ee084..00000000
Binary files a/src/images/avatar-02.jpg and /dev/null differ
diff --git a/src/images/avatar-03.jpg b/src/images/avatar-03.jpg
deleted file mode 100644
index 15500bc0..00000000
Binary files a/src/images/avatar-03.jpg and /dev/null differ
diff --git a/src/images/avatar-04.jpg b/src/images/avatar-04.jpg
deleted file mode 100644
index c607dc51..00000000
Binary files a/src/images/avatar-04.jpg and /dev/null differ
diff --git a/src/images/avatar-05.jpg b/src/images/avatar-05.jpg
deleted file mode 100644
index 3b5ade60..00000000
Binary files a/src/images/avatar-05.jpg and /dev/null differ
diff --git a/src/images/book.png b/src/images/book.png
deleted file mode 100644
index 49eac767..00000000
Binary files a/src/images/book.png and /dev/null differ
diff --git a/src/images/default-avatar.jpg b/src/images/default-avatar.jpg
deleted file mode 100644
index e551bab8..00000000
Binary files a/src/images/default-avatar.jpg and /dev/null differ
diff --git a/src/images/education-icon-01.svg b/src/images/education-icon-01.svg
deleted file mode 100644
index 57223d68..00000000
--- a/src/images/education-icon-01.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/src/images/education-icon-02.svg b/src/images/education-icon-02.svg
deleted file mode 100644
index ec176586..00000000
--- a/src/images/education-icon-02.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/src/images/popular-post-01.jpg b/src/images/popular-post-01.jpg
deleted file mode 100644
index c755fe7b..00000000
Binary files a/src/images/popular-post-01.jpg and /dev/null differ
diff --git a/src/images/popular-post-02.jpg b/src/images/popular-post-02.jpg
deleted file mode 100644
index e6598b53..00000000
Binary files a/src/images/popular-post-02.jpg and /dev/null differ
diff --git a/src/images/post-image.jpg b/src/images/post-image.jpg
deleted file mode 100644
index c865e20d..00000000
Binary files a/src/images/post-image.jpg and /dev/null differ
diff --git a/src/images/post-thumb-01.jpg b/src/images/post-thumb-01.jpg
deleted file mode 100644
index b804ad13..00000000
Binary files a/src/images/post-thumb-01.jpg and /dev/null differ
diff --git a/src/images/post-thumb-02.jpg b/src/images/post-thumb-02.jpg
deleted file mode 100644
index 272b7e0b..00000000
Binary files a/src/images/post-thumb-02.jpg and /dev/null differ
diff --git a/src/images/post-thumb-03.jpg b/src/images/post-thumb-03.jpg
deleted file mode 100644
index 0b54733f..00000000
Binary files a/src/images/post-thumb-03.jpg and /dev/null differ
diff --git a/src/images/post-thumb-04.jpg b/src/images/post-thumb-04.jpg
deleted file mode 100644
index 5b9320d4..00000000
Binary files a/src/images/post-thumb-04.jpg and /dev/null differ
diff --git a/src/images/post-thumb-05.jpg b/src/images/post-thumb-05.jpg
deleted file mode 100644
index a0e08aba..00000000
Binary files a/src/images/post-thumb-05.jpg and /dev/null differ
diff --git a/src/images/post-thumb-06.jpg b/src/images/post-thumb-06.jpg
deleted file mode 100644
index 4870a578..00000000
Binary files a/src/images/post-thumb-06.jpg and /dev/null differ
diff --git a/src/images/post-thumb-07.jpg b/src/images/post-thumb-07.jpg
deleted file mode 100644
index 5eb0582d..00000000
Binary files a/src/images/post-thumb-07.jpg and /dev/null differ
diff --git a/src/images/post-thumb-08.jpg b/src/images/post-thumb-08.jpg
deleted file mode 100644
index 4865336f..00000000
Binary files a/src/images/post-thumb-08.jpg and /dev/null differ
diff --git a/src/images/profile/001.png b/src/images/profile/001.png
index b41d066b..a037f304 100644
Binary files a/src/images/profile/001.png and b/src/images/profile/001.png differ
diff --git a/src/images/profile/about.jpg b/src/images/profile/about.jpg
index 50a02fa1..8aac5494 100644
Binary files a/src/images/profile/about.jpg and b/src/images/profile/about.jpg differ
diff --git a/src/images/profile/me.jpg b/src/images/profile/me.jpg
deleted file mode 100644
index 66084ef1..00000000
Binary files a/src/images/profile/me.jpg and /dev/null differ
diff --git a/src/images/profile/me.png b/src/images/profile/me.png
index 6c964313..9d8cfb19 100644
Binary files a/src/images/profile/me.png and b/src/images/profile/me.png differ
diff --git a/src/images/project-icon-01.svg b/src/images/project-icon-01.svg
deleted file mode 100644
index 7ca521cc..00000000
--- a/src/images/project-icon-01.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-
\ No newline at end of file
diff --git a/src/images/project-icon-02.svg b/src/images/project-icon-02.svg
deleted file mode 100644
index 3bb5508c..00000000
--- a/src/images/project-icon-02.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-
\ No newline at end of file
diff --git a/src/images/project-icon-03.svg b/src/images/project-icon-03.svg
deleted file mode 100644
index 1a28e32b..00000000
--- a/src/images/project-icon-03.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-
\ No newline at end of file
diff --git a/src/images/project-icon-04.svg b/src/images/project-icon-04.svg
deleted file mode 100644
index 288f02e4..00000000
--- a/src/images/project-icon-04.svg
+++ /dev/null
@@ -1,6 +0,0 @@
-
\ No newline at end of file
diff --git a/src/images/project-icon-05.svg b/src/images/project-icon-05.svg
deleted file mode 100644
index 5510bcd1..00000000
--- a/src/images/project-icon-05.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-
\ No newline at end of file
diff --git a/src/images/project-icon-06.svg b/src/images/project-icon-06.svg
deleted file mode 100644
index 84118556..00000000
--- a/src/images/project-icon-06.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/src/images/project-icon-07.svg b/src/images/project-icon-07.svg
deleted file mode 100644
index 3ef855b4..00000000
--- a/src/images/project-icon-07.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-
\ No newline at end of file
diff --git a/src/images/project-icon-08.svg b/src/images/project-icon-08.svg
deleted file mode 100644
index 18c72fcd..00000000
--- a/src/images/project-icon-08.svg
+++ /dev/null
@@ -1,4 +0,0 @@
-
\ No newline at end of file
diff --git a/src/images/reference-01.jpg b/src/images/reference-01.jpg
deleted file mode 100644
index 57afa157..00000000
Binary files a/src/images/reference-01.jpg and /dev/null differ
diff --git a/src/images/reference-02.jpg b/src/images/reference-02.jpg
deleted file mode 100644
index 9a0cd6e5..00000000
Binary files a/src/images/reference-02.jpg and /dev/null differ
diff --git a/src/images/testimonial-01.jpg b/src/images/testimonial-01.jpg
deleted file mode 100644
index 566bf332..00000000
Binary files a/src/images/testimonial-01.jpg and /dev/null differ
diff --git a/src/images/testimonial-02.jpg b/src/images/testimonial-02.jpg
deleted file mode 100644
index eb85157e..00000000
Binary files a/src/images/testimonial-02.jpg and /dev/null differ
diff --git a/src/images/testimonial-03.jpg b/src/images/testimonial-03.jpg
deleted file mode 100644
index 2567d180..00000000
Binary files a/src/images/testimonial-03.jpg and /dev/null differ
diff --git a/src/images/testimonial-04.jpg b/src/images/testimonial-04.jpg
deleted file mode 100644
index 19883c4d..00000000
Binary files a/src/images/testimonial-04.jpg and /dev/null differ
diff --git a/src/pages/PostPage.vue b/src/pages/PostPage.vue
index 6b0c3b6e..f24ba959 100644
--- a/src/pages/PostPage.vue
+++ b/src/pages/PostPage.vue
@@ -96,7 +96,6 @@
@@ -114,20 +113,17 @@ import { marked } from 'marked';
import DOMPurify from 'dompurify';
import { useRoute } from 'vue-router';
import { useApiStore } from '@api/store.ts';
+import { useDarkMode } from '@/dark-mode.ts';
+import highlight from 'highlight.js/lib/core';
import { debugError } from '@api/http-error.ts';
-import { date, getReadingTime } from '@/public.ts';
import FooterPartial from '@partials/FooterPartial.vue';
import HeaderPartial from '@partials/HeaderPartial.vue';
import SideNavPartial from '@partials/SideNavPartial.vue';
import type { PostResponse } from '@api/response/index.ts';
-import WidgetSkillsPartial from '@partials/WidgetSkillsPartial.vue';
import WidgetSponsorPartial from '@partials/WidgetSponsorPartial.vue';
+import { date, getReadingTime, initializeHighlighter } from '@/public.ts';
import { onMounted, ref, computed, watch, nextTick, watchEffect } from 'vue';
-// --- syntax highlight
-import hljs from 'highlight.js';
-import { useDarkMode } from '@/dark-mode.ts';
-
// --- Component
const route = useRoute();
const apiStore = useApiStore();
@@ -186,12 +182,14 @@ watch(htmlContent, async () => {
if (postContainer.value) {
const blocks = postContainer.value.querySelectorAll('pre code');
blocks.forEach((block) => {
- hljs.highlightElement(block as HTMLElement);
+ highlight.highlightElement(block as HTMLElement);
});
}
});
onMounted(async () => {
+ await initializeHighlighter(highlight);
+
try {
post.value = (await apiStore.getPost(slug.value)) as PostResponse;
} catch (error) {
diff --git a/src/partials/WidgetSponsorPartial.vue b/src/partials/WidgetSponsorPartial.vue
index f0fd69ae..2a414742 100644
--- a/src/partials/WidgetSponsorPartial.vue
+++ b/src/partials/WidgetSponsorPartial.vue
@@ -1,5 +1,8 @@
-
+