From 7268933a17220f296e282dc09efd61017a187dc6 Mon Sep 17 00:00:00 2001 From: klemek Date: Sat, 25 Apr 2026 17:04:31 +0200 Subject: [PATCH] feat: lucide icon and latex formulas --- .env.example | 3 ++- bun.lock | 8 ++++++++ index.html | 2 +- package.json | 2 ++ src/App.vue | 26 +++++++++++++++++++++++++- src/components/PageFooter.vue | 2 +- src/lib/articles.ts | 21 ++++++++++++++++++++- src/lib/strings.ts | 5 +++++ src/style.scss | 5 +++-- src/views/ArticleView.vue | 13 +++++-------- src/views/HomeView.vue | 7 ++++--- src/views/NotFoundView.vue | 5 ++--- 12 files changed, 78 insertions(+), 21 deletions(-) create mode 100644 src/lib/strings.ts diff --git a/.env.example b/.env.example index 9939800..32d632e 100644 --- a/.env.example +++ b/.env.example @@ -1,3 +1,4 @@ -VITE_APP_TITLE=My Blog +VITE_APP_TITLE= My Blog +VITE_APP_TITLE_NO_HTML=My Blog VITE_APP_SIGNATURE=By me VITE_APP_LANG=en \ No newline at end of file diff --git a/bun.lock b/bun.lock index a1486bb..b316700 100644 --- a/bun.lock +++ b/bun.lock @@ -6,6 +6,8 @@ "name": "md-blog", "dependencies": { "highlight.js": "^11.11.1", + "katex": "^0.16.45", + "lucide": "^1.3.0", "vue": "^3.5.32", "vue-router": "^5.0.4", }, @@ -365,6 +367,8 @@ "colorjs.io": ["colorjs.io@0.5.2", "", {}, "sha512-twmVoizEW7ylZSN32OgKdXRmo1qg+wT5/6C3xu5b9QsWzSFAhHLn2xd8ro0diCsKfCj1RdaTP/nrcW+vAoQPIw=="], + "commander": ["commander@8.3.0", "", {}, "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww=="], + "confbox": ["confbox@0.2.4", "", {}, "sha512-ysOGlgTFbN2/Y6Cg3Iye8YKulHw+R2fNXHrgSmXISQdMnomY6eNDprVdW9R5xBguEqI954+S6709UyiO7B+6OQ=="], "convert-source-map": ["convert-source-map@2.0.0", "", {}, "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg=="], @@ -511,6 +515,8 @@ "jsonc-parser": ["jsonc-parser@3.3.1", "", {}, "sha512-HUgH65KyejrUFPvHFPbqOY0rsFip3Bo5wb4ngvdi1EpCYWUQDC5V+Y7mZws+DLkr4M//zQJoanu1SP+87Dv1oQ=="], + "katex": ["katex@0.16.45", "", { "dependencies": { "commander": "^8.3.0" }, "bin": { "katex": "cli.js" } }, "sha512-pQpZbdBu7wCTmQUh7ufPmLr0pFoObnGUoL/yhtwJDgmmQpbkg/0HSVti25Fu4rmd1oCR6NGWe9vqTWuWv3GcNA=="], + "keyv": ["keyv@4.5.4", "", { "dependencies": { "json-buffer": "3.0.1" } }, "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw=="], "kolorist": ["kolorist@1.8.0", "", {}, "sha512-Y+60/zizpJ3HRH8DCss+q95yr6145JXZo46OTpFvDZWLfRCE4qChOyk1b26nMaNpfHHgxagk9dXT5OP0Tfe+dQ=="], @@ -549,6 +555,8 @@ "lru-cache": ["lru-cache@5.1.1", "", { "dependencies": { "yallist": "^3.0.2" } }, "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w=="], + "lucide": ["lucide@1.3.0", "", {}, "sha512-8/98ZCQjNDdfOjSycUujwqxKNrq97WPzdlNBR6tG7BqZgiOFQqzJuFapIpjPceW57sJv3zGIBg0L3SWR7c4fqA=="], + "magic-string": ["magic-string@0.30.21", "", { "dependencies": { "@jridgewell/sourcemap-codec": "^1.5.5" } }, "sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ=="], "magic-string-ast": ["magic-string-ast@1.0.3", "", { "dependencies": { "magic-string": "^0.30.19" } }, "sha512-CvkkH1i81zl7mmb94DsRiFeG9V2fR2JeuK8yDgS8oiZSFa++wWLEgZ5ufEOyLHbvSbD1gTRKv9NdX69Rnvr9JA=="], diff --git a/index.html b/index.html index e81e8c0..a749e0d 100644 --- a/index.html +++ b/index.html @@ -4,7 +4,7 @@ - %VITE_APP_TITLE% + %VITE_APP_TITLE_NO_HTML% diff --git a/package.json b/package.json index a51df8e..725c34b 100644 --- a/package.json +++ b/package.json @@ -17,6 +17,8 @@ }, "dependencies": { "highlight.js": "^11.11.1", + "katex": "^0.16.45", + "lucide": "^1.3.0", "vue": "^3.5.32", "vue-router": "^5.0.4" }, diff --git a/src/App.vue b/src/App.vue index 7c2aa3f..d420c93 100644 --- a/src/App.vue +++ b/src/App.vue @@ -1,3 +1,27 @@ + + diff --git a/src/components/PageFooter.vue b/src/components/PageFooter.vue index a19f3b1..ea920cd 100644 --- a/src/components/PageFooter.vue +++ b/src/components/PageFooter.vue @@ -4,7 +4,7 @@ import { REPOSITORY, NAME, VERSION } from '@/lib/meta'