diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..f717663 --- /dev/null +++ b/.gitignore @@ -0,0 +1,27 @@ +# Logs / local runtime +debug-logs/ +*.log + +# IDE / OS +.idea/ +.vscode/ +.DS_Store +Thumbs.db + +# Frontend (CRA / React) +mengyaprofile-frontend/node_modules/ +mengyaprofile-frontend/build/ + +# Backend (Python/Flask) +mengyaprofile-backend/__pycache__/ +**/__pycache__/ +*.py[cod] +.venv/ +venv/ + +# Env / local overrides +.env +.env.* +.env.local +.env.*.local + diff --git a/mengyaprofile-backend/data/background/image1.png b/mengyaprofile-backend/data/background/image1.png new file mode 100644 index 0000000..628e677 Binary files /dev/null and b/mengyaprofile-backend/data/background/image1.png differ diff --git a/mengyaprofile-backend/data/background/image2.png b/mengyaprofile-backend/data/background/image2.png new file mode 100644 index 0000000..33f7730 Binary files /dev/null and b/mengyaprofile-backend/data/background/image2.png differ diff --git a/mengyaprofile-backend/data/background/image3.png b/mengyaprofile-backend/data/background/image3.png new file mode 100644 index 0000000..dc53aed Binary files /dev/null and b/mengyaprofile-backend/data/background/image3.png differ diff --git a/mengyaprofile-backend/data/background/image4.png b/mengyaprofile-backend/data/background/image4.png new file mode 100644 index 0000000..5058533 Binary files /dev/null and b/mengyaprofile-backend/data/background/image4.png differ diff --git a/mengyaprofile-backend/data/background/image5.png b/mengyaprofile-backend/data/background/image5.png new file mode 100644 index 0000000..8dd5f41 Binary files /dev/null and b/mengyaprofile-backend/data/background/image5.png differ diff --git a/mengyaprofile-backend/data/background/image6.png b/mengyaprofile-backend/data/background/image6.png new file mode 100644 index 0000000..64c2425 Binary files /dev/null and b/mengyaprofile-backend/data/background/image6.png differ diff --git a/mengyaprofile-backend/data/background/image7.png b/mengyaprofile-backend/data/background/image7.png new file mode 100644 index 0000000..f282db4 Binary files /dev/null and b/mengyaprofile-backend/data/background/image7.png differ diff --git a/mengyaprofile-backend/data/contacts.json b/mengyaprofile-backend/data/contacts.json index 1e06392..33c6742 100644 --- a/mengyaprofile-backend/data/contacts.json +++ b/mengyaprofile-backend/data/contacts.json @@ -1,11 +1,11 @@ { "contacts": [ { - "type": "qq", - "label": "QQ", - "value": "3205788256", - "link": "tencent://message/?uin=123456789", - "icon": "https://img.shumengya.top/i/2025/11/02/69076687211f9.webp" + "type": "email", + "label": "个人邮箱", + "value": "mail@smyhub.com", + "link": "mailto:mail@smyhub.com", + "icon": "https://img.shumengya.top/i/2026/02/10/698b21a5e2c26.png" }, { "type": "email", diff --git a/mengyaprofile-backend/data/logo/android.svg b/mengyaprofile-backend/data/logo/android.svg new file mode 100644 index 0000000..a9df53f --- /dev/null +++ b/mengyaprofile-backend/data/logo/android.svg @@ -0,0 +1,8 @@ + + Android + + + + + + \ No newline at end of file diff --git a/mengyaprofile-backend/data/logo/android2.svg b/mengyaprofile-backend/data/logo/android2.svg new file mode 100644 index 0000000..b2eb976 --- /dev/null +++ b/mengyaprofile-backend/data/logo/android2.svg @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/mengyaprofile-backend/data/logo/csharp.svg b/mengyaprofile-backend/data/logo/csharp.svg new file mode 100644 index 0000000..c023aa9 --- /dev/null +++ b/mengyaprofile-backend/data/logo/csharp.svg @@ -0,0 +1,10 @@ + + + + + + + + + + \ No newline at end of file diff --git a/mengyaprofile-backend/data/logo/docker.svg b/mengyaprofile-backend/data/logo/docker.svg new file mode 100644 index 0000000..eba6cc4 --- /dev/null +++ b/mengyaprofile-backend/data/logo/docker.svg @@ -0,0 +1,12 @@ + + + + + + + \ No newline at end of file diff --git a/mengyaprofile-backend/data/logo/docker2.svg b/mengyaprofile-backend/data/logo/docker2.svg new file mode 100644 index 0000000..fc59e9d --- /dev/null +++ b/mengyaprofile-backend/data/logo/docker2.svg @@ -0,0 +1,12 @@ + + + + + + + \ No newline at end of file diff --git a/mengyaprofile-backend/data/logo/flask.svg b/mengyaprofile-backend/data/logo/flask.svg new file mode 100644 index 0000000..c802da9 --- /dev/null +++ b/mengyaprofile-backend/data/logo/flask.svg @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/mengyaprofile-backend/data/logo/gin.svg b/mengyaprofile-backend/data/logo/gin.svg new file mode 100644 index 0000000..e7ab3cf --- /dev/null +++ b/mengyaprofile-backend/data/logo/gin.svg @@ -0,0 +1,92 @@ + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + diff --git a/mengyaprofile-backend/data/logo/gin2.svg b/mengyaprofile-backend/data/logo/gin2.svg new file mode 100644 index 0000000..2874f2c --- /dev/null +++ b/mengyaprofile-backend/data/logo/gin2.svg @@ -0,0 +1,58 @@ + + + + + + + + image/svg+xml + + + + + + + + + diff --git a/mengyaprofile-backend/data/logo/git.svg b/mengyaprofile-backend/data/logo/git.svg new file mode 100644 index 0000000..5bf444b --- /dev/null +++ b/mengyaprofile-backend/data/logo/git.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/mengyaprofile-backend/data/logo/godot.svg b/mengyaprofile-backend/data/logo/godot.svg new file mode 100644 index 0000000..77c8704 --- /dev/null +++ b/mengyaprofile-backend/data/logo/godot.svg @@ -0,0 +1 @@ +godot-game-engine-icon \ No newline at end of file diff --git a/mengyaprofile-backend/data/logo/golang.svg b/mengyaprofile-backend/data/logo/golang.svg new file mode 100644 index 0000000..e5a68fe --- /dev/null +++ b/mengyaprofile-backend/data/logo/golang.svg @@ -0,0 +1,238 @@ + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/mengyaprofile-backend/data/logo/java.svg b/mengyaprofile-backend/data/logo/java.svg new file mode 100644 index 0000000..5e0cc0f --- /dev/null +++ b/mengyaprofile-backend/data/logo/java.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/mengyaprofile-backend/data/logo/linux.svg b/mengyaprofile-backend/data/logo/linux.svg new file mode 100644 index 0000000..088de35 --- /dev/null +++ b/mengyaprofile-backend/data/logo/linux.svg @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/mengyaprofile-backend/data/logo/minecraft.svg b/mengyaprofile-backend/data/logo/minecraft.svg new file mode 100644 index 0000000..734e42d --- /dev/null +++ b/mengyaprofile-backend/data/logo/minecraft.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/mengyaprofile-backend/data/logo/mongodb.svg b/mengyaprofile-backend/data/logo/mongodb.svg new file mode 100644 index 0000000..5ee2821 --- /dev/null +++ b/mengyaprofile-backend/data/logo/mongodb.svg @@ -0,0 +1,2 @@ + +file_type_mongo \ No newline at end of file diff --git a/mengyaprofile-backend/data/logo/mysql.svg b/mengyaprofile-backend/data/logo/mysql.svg new file mode 100644 index 0000000..5650e1c --- /dev/null +++ b/mengyaprofile-backend/data/logo/mysql.svg @@ -0,0 +1,8 @@ + + MySQL + + + + + + \ No newline at end of file diff --git a/mengyaprofile-backend/data/logo/mysql2.svg b/mengyaprofile-backend/data/logo/mysql2.svg new file mode 100644 index 0000000..53371d0 --- /dev/null +++ b/mengyaprofile-backend/data/logo/mysql2.svg @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/mengyaprofile-backend/data/logo/mysql3.svg b/mengyaprofile-backend/data/logo/mysql3.svg new file mode 100644 index 0000000..4457eb9 --- /dev/null +++ b/mengyaprofile-backend/data/logo/mysql3.svg @@ -0,0 +1,7 @@ + + +MySQL textlogo + + + + diff --git a/mengyaprofile-backend/data/logo/postgres.svg b/mengyaprofile-backend/data/logo/postgres.svg new file mode 100644 index 0000000..ecfcb48 --- /dev/null +++ b/mengyaprofile-backend/data/logo/postgres.svg @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/mengyaprofile-backend/data/logo/python.svg b/mengyaprofile-backend/data/logo/python.svg new file mode 100644 index 0000000..8aa9a10 --- /dev/null +++ b/mengyaprofile-backend/data/logo/python.svg @@ -0,0 +1,2 @@ + +file_type_python \ No newline at end of file diff --git a/mengyaprofile-backend/data/logo/react.svg b/mengyaprofile-backend/data/logo/react.svg new file mode 100644 index 0000000..2acc8c5 --- /dev/null +++ b/mengyaprofile-backend/data/logo/react.svg @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/mengyaprofile-backend/data/logo/redis.svg b/mengyaprofile-backend/data/logo/redis.svg new file mode 100644 index 0000000..1cde9ca --- /dev/null +++ b/mengyaprofile-backend/data/logo/redis.svg @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mengyaprofile-backend/data/logo/spring.svg b/mengyaprofile-backend/data/logo/spring.svg new file mode 100644 index 0000000..4f70f0b --- /dev/null +++ b/mengyaprofile-backend/data/logo/spring.svg @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/mengyaprofile-backend/data/logo/sqlite.svg b/mengyaprofile-backend/data/logo/sqlite.svg new file mode 100644 index 0000000..378298f --- /dev/null +++ b/mengyaprofile-backend/data/logo/sqlite.svg @@ -0,0 +1,2 @@ + +file_type_sqlite \ No newline at end of file diff --git a/mengyaprofile-backend/data/logo/unity.svg b/mengyaprofile-backend/data/logo/unity.svg new file mode 100644 index 0000000..13122d0 --- /dev/null +++ b/mengyaprofile-backend/data/logo/unity.svg @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/mengyaprofile-backend/data/logo/vue.svg b/mengyaprofile-backend/data/logo/vue.svg new file mode 100644 index 0000000..d4d5f0b --- /dev/null +++ b/mengyaprofile-backend/data/logo/vue.svg @@ -0,0 +1,8 @@ + + + + + diff --git a/mengyaprofile-backend/data/logo/wireguard.svg b/mengyaprofile-backend/data/logo/wireguard.svg new file mode 100644 index 0000000..81823b3 --- /dev/null +++ b/mengyaprofile-backend/data/logo/wireguard.svg @@ -0,0 +1,7 @@ + + \ No newline at end of file diff --git a/mengyaprofile-backend/data/projects.json b/mengyaprofile-backend/data/projects.json index 62b1018..9778dee 100644 --- a/mengyaprofile-backend/data/projects.json +++ b/mengyaprofile-backend/data/projects.json @@ -1,29 +1,119 @@ { "projects": [ { - "id": 1, + "title": "萌芽主页", + "description": "一个简洁美观的个人主页,展示个人信息和项目", + "link": "https://shumengya.top", + "icon": "https://img.shumengya.top/i/2025/11/03/690836f3c87b2.png", + "tags": ["个人主页","React","Flask"], + "admin":false, + "show":true, + "develop":true + }, + { + "title": "萌芽笔记", + "description": "展示自己学习过程中的一些MarkDown笔记", + "link": "https://note.shumengya.top", + "icon": "https://image.shumengya.top/i/2025/11/02/mengyanote.png", + "tags": [ "笔记","Obsidion","React","Flask"], + "admin":false, + "show":true, + "develop":true + }, + { + "title": "萌芽作品集", + "description": "展示个人制作的一些小创意和小项目", + "link": "https://work.shumengya.top", + "icon": "https://img.shumengya.top/i/2025/11/02/69074f8f5ed5e.png", + "tags": [ "作品集","React","Flask"], + "admin":false, + "show":true, + "develop":true + }, + { + "title": "万象口袋", + "description": "一款跨平台的聚合式软件", + "link": "https://infogenie.shumengya.top", + "icon": "https://img.shumengya.top/i/2025/11/02/6907516fb77d5.png", + "tags": [ "聚合","工具","React","Flask"], + "admin":false, + "show":true, + "develop":true + }, + { + "title": "萌芽农场", + "description": "一款2D平台联机农场经营游戏", + "link": "https://work.shumengya.top/#/work/mengyafarm", + "icon": "https://img.shumengya.top/i/2025/11/02/6907599cbaf10.png", + "tags": [ "农场","游戏","联机","Godot","Python"], + "admin":false, + "show":true, + "develop":true + }, + { + "title": "萌芽短链", + "description": "一个轻量简单的短链跳转系统", + "link": "https://short.shumengya.top", + "icon": "https://img.shumengya.top/i/2025/11/17/691ad6c78283a.png", + "tags": [ "短链接","React","Flask"], + "admin":false, + "show":true, + "develop":true + }, + { + "title": "萌芽监控面板", + "description": "一个轻量简单的监控系统", + "link": "https://monitor.shumengya.top", + "icon": "https://img.shumengya.top/i/2026/01/12/6964fffd54221.png", + "tags": [ "监控","React","Golang"], + "admin":false, + "show":true, + "develop":true + }, + { + "title": "萌芽Ping", + "description": "网站监控系统", + "link": "https://ping.shumengya.top", + "icon": "https://img.shumengya.top/i/2026/01/22/6971ad8eb9e56.png", + "tags": [ "监控","React","Gin"], + "admin":false, + "show":true, + "develop":true + }, + { + "title": "萌芽密码管理器", + "description": "自制密码库,做的太烂,我都不怎么用(", + "link": "https://keyvault.shumengya.top", + "icon": "https://img.shumengya.top/i/2026/02/10/698b2f4c321ec.ico", + "tags": [ "监控","React","Gin"], + "admin":true, + "show":true, + "develop":true + }, + { + "title": "萌芽漂流瓶", + "description": "匿名漂流瓶系统", + "link": "https://bottle.shumengya.top", + "icon": "https://img.shumengya.top/i/2025/11/17/691ad6cc635d2.png", + "tags": [ "监控","React","Flask"], + "admin":false, + "show":true, + "develop":true + }, + + + + { "title": "萌芽盘", "description": "一个轻量级在线网盘,支持文件上传、下载、分享等功能", "link": "https://pan.shumengya.top", - "icon": "https://image.shumengya.top/i/2025/11/02/openlist.png", + "icon": "https://img.shumengya.top/i/2026/01/04/695a660870959.png", "tags": ["网盘","OpenList"], "admin":false, "show":true, "develop":false }, { - "id": 2, - "title": "萌芽主页", - "description": "一个简洁美观的个人主页,展示个人信息和项目", - "link": "https://shumengya.top", - "icon": "https://img.shumengya.top/i/2025/11/03/690836f3c87b2.png", - "tags": ["个人主页"], - "admin":false, - "show":true, - "develop":true - }, - { - "id": 3, "title": "萌芽Git仓库", "description": "自部署私有化Git仓库", "link": "https://repo.shumengya.top", @@ -34,7 +124,6 @@ "develop":false }, { - "id": 4, "title": "萌芽快传", "description": "像取快递一样方便的寄送文件", "link": "https://send.shumengya.top", @@ -45,7 +134,6 @@ "develop":false }, { - "id": 5, "title": "萌芽图床", "description": "简单易用的图床,将您的图片转化为一段网页链接", "link": "https://img.shumengya.top", @@ -56,96 +144,6 @@ "develop":false }, { - "id": 6, - "title": "萌芽笔记", - "description": "展示自己学习过程中的一些MarkDown笔记", - "link": "https://note.shumengya.top", - "icon": "https://image.shumengya.top/i/2025/11/02/mengyanote.png", - "tags": [ "笔记","Obsidion"], - "admin":false, - "show":true, - "develop":true - }, - { - "id": 7, - "title": "萌芽作品集", - "description": "展示个人制作的一些小创意和小项目", - "link": "https://work.shumengya.top", - "icon": "https://img.shumengya.top/i/2025/11/02/69074f8f5ed5e.png", - "tags": [ "作品集"], - "admin":false, - "show":true, - "develop":true - }, - { - "id": 8, - "title": "万象口袋", - "description": "一款跨平台的聚合式软件", - "link": "https://infogenie.shumengya.top", - "icon": "https://img.shumengya.top/i/2025/11/02/6907516fb77d5.png", - "tags": [ "聚合","工具"], - "admin":false, - "show":true, - "develop":true - }, - { - "id": 9, - "title": "萌芽农场", - "description": "一款2D平台联机农场经营游戏", - "link": "https://work.shumengya.top/#/work/mengyafarm", - "icon": "https://img.shumengya.top/i/2025/11/02/6907599cbaf10.png", - "tags": [ "农场","游戏","联机"], - "admin":false, - "show":true, - "develop":true - }, - - { - "id": 10, - "title": "1Panel面板", - "description": "大萌芽1panel面板后台", - "link": "https://1panel.shumengya.top", - "icon": "https://img.shumengya.top/i/2025/11/02/69076213d9200.webp", - "tags": [ "1Panel","面板"], - "admin":true, - "show":true, - "develop":false - }, - { - "id": 11, - "title": "DPanel面板", - "description": "大萌芽dpanel面板后台", - "link": "https://dpanel.shumengya.top", - "icon": "https://img.shumengya.top/i/2025/11/02/6907621448bac.png", - "tags": [ "Docker","面板"], - "admin":true, - "show":true, - "develop":false - }, - { - "id": 12, - "title": "Frps管理后台", - "description": "成都公网内网穿透服务端", - "link": "https://frps.shumengya.top", - "icon": "https://img.shumengya.top/i/2025/11/02/6907621475130.png", - "tags": [ "内网穿透","Frp"], - "admin":true, - "show":true, - "develop":false - }, - { - "id": 13, - "title": "Frpc管理后台", - "description": "大萌芽内网穿透客户端", - "link": "https://frpc.shumengya.top", - "icon": "https://img.shumengya.top/i/2025/11/02/6907621475130.png", - "tags": [ "内网穿透","Frp"], - "admin":true, - "show":true, - "develop":false - }, - { - "id": 13, "title": "萌芽问卷", "description": "一个轻量简单的问卷系统", "link": "https://survey.shumengya.top", @@ -156,15 +154,153 @@ "develop":false }, { - "id": 14, - "title": "HeadScale管理后台", - "description": "一个自建tailscale管理后台", - "link": "https://headscale.shumengya.top", - "icon": "https://img.shumengya.top/i/2025/11/03/6908327149dce.png", - "tags": [ "TailScale","HeadScale"], + "title": "编程速查表[CF]", + "description": "一个编程入门速查表", + "link": "https://reference.smyhub.com", + "icon": "https://img.shumengya.top/i/2026/01/12/6964fd1159f91.png", + "tags": [ "QuickReference","编程速查表"], + "admin":false, + "show":true, + "develop":false + }, + { + "title": "在线思维导图[CF]", + "description": "一个思维导图工具", + "link": "https://mind-map.smyhub.com", + "icon": "https://img.shumengya.top/i/2026/01/12/6964fd1271081.png", + "tags": [ "mindmap","思维导图"], + "admin":false, + "show":true, + "develop":false + }, + { + "title": "it-tools工具集[CF]", + "description": "一个轻量简单的编程工具集合", + "link": "https://it-tools.smyhub.com", + "icon": "https://img.shumengya.top/i/2026/01/12/6964fd1229dc3.png", + "tags": [ "it-tools","工具集合"], + "admin":false, + "show":true, + "develop":false + }, + { + "title": "xtools工具集[CF]", + "description": "一个轻量简单的编程工具集合", + "link": "https://xtools.smyhub.com", + "icon": "https://img.shumengya.top/i/2026/01/12/6964fd133e934.png", + "tags": [ "xtool","工具集合"], + "admin":false, + "show":true, + "develop":false + }, + { + "title": "萌芽备忘录", + "description": "一个轻量简单的备忘录系统", + "link": "https://memos.shumengya.top", + "icon": "https://img.shumengya.top/i/2026/01/13/69663c9f1acc1.png", + "tags": [ "memos","备忘录"], + "admin":false, + "show":true, + "develop":false + }, + { + "title": "网页魔方[CF]", + "description": "就是一个简单的网页魔方", + "link": "https://cube.smyhub.com", + "icon": "https://img.shumengya.top/i/2026/01/14/69678bf409a31.webp", + "tags": [ "web-cube","网页魔方"], + "admin":false, + "show":true, + "develop":false + }, + + + + + + + + + { + "title": "大萌芽1Panel面板[WG]", + "description": "大萌芽1panel面板后台", + "link": "http://10.0.0.233:19132/smy", + "icon": "https://img.shumengya.top/i/2025/11/02/69076213d9200.webp", + "tags": [ "1Panel","面板"], + "admin":true, + "show":true, + "develop":false + }, + { + "title": "小萌芽1Panel面板[WG]", + "description": "小萌芽1panel面板后台", + "link": "http://10.0.0.100:19132/smy", + "icon": "https://img.shumengya.top/i/2025/11/02/69076213d9200.webp", + "tags": [ "1Panel","面板"], + "admin":true, + "show":true, + "develop":false + }, + { + "title": "easytier面板", + "description": "阿里云成都easytier面板后台", + "link": "https://easytier.shumengya.top", + "icon": "https://img.shumengya.top/i/2026/01/12/6964fd1307fdc.png", + "tags": [ "easytier","面板"], + "admin":true, + "show":true, + "develop":false + }, + { + "title": "WireGuard面板[等待复活]", + "description": "阿里云成都WireGuard面板后台", + "link": "https://wireguard.shumengya.top", + "icon": "https://img.shumengya.top/i/2026/01/12/6964fd12baa3c.png", + "tags": [ "WireGuard","面板"], + "admin":true, + "show":true, + "develop":false + }, + { + "title": "大萌芽Portainer面板[WG]", + "description": "大萌芽Portainer面板后台", + "link": "http://10.0.0.233:8484", + "icon": "https://img.shumengya.top/i/2026/01/12/6964fd119f8d1.png", + "tags": [ "Portainer","面板"], + "admin":true, + "show":true, + "develop":false + }, + { + "title": "小萌芽Portainer面板[WG]", + "description": "小萌芽Portainer面板后台", + "link": "https://10.0.0.100:8484", + "icon": "https://img.shumengya.top/i/2026/01/12/6964fd119f8d1.png", + "tags": [ "Portainer","面板"], + "admin":true, + "show":true, + "develop":false + }, + { + "title": "萌芽Docker镜像仓库[等待复活]", + "description": "萌芽Docker镜像仓库后台", + "link": "https://repo.docker.shumengya.top", + "icon": "https://img.shumengya.top/i/2025/11/02/6907621448bac.png", + "tags": [ "Docker","镜像仓库"], + "admin":true, + "show":true, + "develop":false + }, + { + "title": "萌芽通知", + "description": "萌芽通知后台", + "link": "https://notice.shumengya.top", + "icon": "https://img.shumengya.top/i/2026/01/12/6964ff8787011.png", + "tags": [ "通知","gotify"], "admin":true, "show":true, "develop":false } + ] } diff --git a/mengyaprofile-backend/data/techstack.json b/mengyaprofile-backend/data/techstack.json index 869c421..8a79b66 100644 --- a/mengyaprofile-backend/data/techstack.json +++ b/mengyaprofile-backend/data/techstack.json @@ -2,114 +2,193 @@ "title": "技术栈", "items": [ { - "name": "Python", - "icon": "https://img.shields.io/badge/-Python-3776AB?style=flat&logo=python&logoColor=white", - "link": "https://www.python.org/" - }, - { - "name": "JavaScript", - "icon": "https://img.shields.io/badge/-JavaScript-F7DF1E?style=flat&logo=javascript&logoColor=black", - "link": "https://developer.mozilla.org/en-US/docs/Web/JavaScript" - }, - { - "name": "Java", - "icon": "https://img.shields.io/badge/-Java-007396?style=flat&logo=java&logoColor=white", - "link": "https://www.oracle.com/java/" + "name": "Android", + "link": "https://developer.android.com/", + "svg": "android.svg", + "color": "#3DDC84", + "show": false }, { "name": "C#", - "icon": "https://img.shields.io/badge/-C%23-512BD4?style=flat&logo=csharp&logoColor=white", - "link": "https://learn.microsoft.com/en-us/dotnet/csharp/" - }, - { - "name": "Golang", - "icon": "https://img.shields.io/badge/-Golang-00ADD8?style=flat&logo=go&logoColor=white", - "link": "https://go.dev/" - }, - { - "name": "React", - "icon": "https://img.shields.io/badge/-React-20232A?style=flat&logo=react&logoColor=61DAFB", - "link": "https://react.dev/" - }, - { - "name": "Node.js", - "icon": "https://img.shields.io/badge/-Node.js-339933?style=flat&logo=nodedotjs&logoColor=white", - "link": "https://nodejs.org/" + "link": "https://learn.microsoft.com/en-us/dotnet/csharp/", + "svg": "csharp.svg", + "color": "#68217A", + "show": true }, { "name": "Docker", - "icon": "https://img.shields.io/badge/-Docker-2496ED?style=flat&logo=docker&logoColor=white", - "link": "https://www.docker.com/" - }, - { - "name": "Linux", - "icon": "https://img.shields.io/badge/-Linux-000000?style=flat&logo=linux&logoColor=white", - "link": "https://www.linux.org/" - }, - { - "name": "Git", - "icon": "https://img.shields.io/badge/-Git-F05032?style=flat&logo=git&logoColor=white", - "link": "https://git-scm.com/" + "link": "https://www.docker.com/", + "svg": "docker.svg", + "color": "#2496ED", + "show": true }, { "name": "Flask", - "icon": "https://img.shields.io/badge/-Flask-000000?style=flat&logo=flask&logoColor=white", - "link": "https://flask.palletsprojects.com/" - }, - { - "name": "MongoDB", - "icon": "https://img.shields.io/badge/-MongoDB-47A248?style=flat&logo=mongodb&logoColor=white", - "link": "https://www.mongodb.com/" - }, - { - "name": "PostgreSQL", - "icon": "https://img.shields.io/badge/-PostgreSQL-4169E1?style=flat&logo=postgresql&logoColor=white", - "link": "https://www.postgresql.org/" - }, - { - "name": "MySQL", - "icon": "https://img.shields.io/badge/-MySQL-00758F?style=flat&logo=mysql&logoColor=white", - "link": "https://www.mysql.com/" - }, - { - "name": "Redis", - "icon": "https://img.shields.io/badge/-Redis-DC382D?style=flat&logo=redis&logoColor=white", - "link": "https://redis.io/" - }, - { - "name": "Android", - "icon": "https://img.shields.io/badge/-Android-3DDC84?style=flat&logo=android&logoColor=white", - "link": "https://developer.android.com/" + "link": "https://flask.palletsprojects.com/", + "svg": "flask.svg", + "color": "#000000", + "show": true }, { "name": "Flutter", - "icon": "https://img.shields.io/badge/-Flutter-02569B?style=flat&logo=flutter&logoColor=white", - "link": "https://flutter.dev/" + "link": "https://flutter.dev/", + "svg": "flutter.svg", + "color": "#02569B", + "show": false + }, + { + "name": "Gin", + "link": "https://gin-gonic.com/", + "svg": "gin.svg", + "color": "#00ADD8", + "show": true + }, + { + "name": "Git", + "link": "https://git-scm.com/", + "svg": "git.svg", + "color": "#F05032", + "show": true }, { "name": "Godot", - "icon": "https://img.shields.io/badge/-Godot-478CBF?style=flat&logo=godot&logoColor=white", - "link": "https://godotengine.org/" + "link": "https://godotengine.org/", + "svg": "godot.svg", + "color": "#478CBF", + "show": true }, { - "name": "Unity", - "icon": "https://img.shields.io/badge/-Unity-000000?style=flat&logo=unity&logoColor=white", - "link": "https://unity.com/" + "name": "Golang", + "link": "https://go.dev/", + "svg": "golang.svg", + "color": "#00ADD8", + "show": true + }, + { + "name": "Java", + "link": "https://www.oracle.com/java/", + "svg": "java.svg", + "color": "#ED8B00", + "show": true + }, + { + "name": "JavaScript", + "link": "https://developer.mozilla.org/en-US/docs/Web/JavaScript", + "svg": "javascript.svg", + "color": "#F7DF1E", + "show": false }, { "name": "JSON", - "icon": "https://img.shields.io/badge/-JSON-000000?style=flat&logo=json&logoColor=white", - "link": "https://www.json.org/" + "link": "https://www.json.org/", + "svg": "json.svg", + "color": "#000000", + "show": false + }, + { + "name": "Linux", + "link": "https://www.linux.org/", + "svg": "linux.svg", + "color": "#FCC624", + "show": true }, { "name": "Markdown", - "icon": "https://img.shields.io/badge/-Markdown-083fa1?style=flat&logo=markdown&logoColor=white", - "link": "https://daringfireball.net/projects/markdown/" + "link": "https://daringfireball.net/projects/markdown/", + "svg": "markdown.svg", + "color": "#000000", + "show": false }, { "name": "Minecraft", - "icon": "https://img.shields.io/badge/-Minecraft-62B34A?style=flat&logo=minecraft&logoColor=white", - "link": "https://www.minecraft.net/" + "link": "https://www.minecraft.net/", + "svg": "minecraft.svg", + "color": "#62B74A", + "show": false + }, + { + "name": "MongoDB", + "link": "https://www.mongodb.com/", + "svg": "mongodb.svg", + "color": "#47A248", + "show": true + }, + { + "name": "MySQL", + "link": "https://www.mysql.com/", + "svg": "mysql.svg", + "color": "#00758F", + "show": true + }, + { + "name": "Node.js", + "link": "https://nodejs.org/", + "svg": "nodejs.svg", + "color": "#339933", + "show": false + }, + { + "name": "PostgreSQL", + "link": "https://www.postgresql.org/", + "svg": "postgres.svg", + "color": "#4169E1", + "show": true + }, + { + "name": "Python", + "link": "https://www.python.org/", + "svg": "python.svg", + "color": "#3776AB", + "show": true + }, + { + "name": "React", + "link": "https://react.dev/", + "svg": "react.svg", + "color": "#61DAFB", + "show": true + }, + { + "name": "Redis", + "link": "https://redis.io/", + "svg": "redis.svg", + "color": "#DC382D", + "show": true + }, + { + "name": "Spring", + "link": "https://spring.io/", + "svg": "spring.svg", + "color": "#6DB33F", + "show": true + }, + { + "name": "Unity", + "link": "https://unity.com/", + "svg": "unity.svg", + "color": "#FFFFFF", + "show": true + }, + { + "name": "Vue", + "link": "https://vuejs.org/", + "svg": "vue.svg", + "color": "#4FC08D", + "show": false + }, + { + "name": "WireGuard", + "link": "https://www.wireguard.com/", + "svg": "wireguard.svg", + "color": "#a10808", + "show": true + }, + { + "name": "SQLite", + "link": "https://sqlite.org", + "svg": "sqlite.svg", + "color": "#0671c8", + "show": true } ] } \ No newline at end of file diff --git a/mengyaprofile-backend/data/techstack.json.bak b/mengyaprofile-backend/data/技术栈旧版图标.json similarity index 65% rename from mengyaprofile-backend/data/techstack.json.bak rename to mengyaprofile-backend/data/技术栈旧版图标.json index 77754b5..acd244f 100644 --- a/mengyaprofile-backend/data/techstack.json.bak +++ b/mengyaprofile-backend/data/技术栈旧版图标.json @@ -1,120 +1,125 @@ { "title": "技术栈", "items": [ + { + "name": "Android", + "icon": "https://img.shields.io/badge/-Android-3DDC84?style=flat&logo=android&logoColor=white", + "link": "https://developer.android.com/" + }, + { + "name": "C#", + "icon": "https://img.shields.io/badge/-C%23-512BD4?style=flat&logo=csharp&logoColor=white", + "link": "https://learn.microsoft.com/en-us/dotnet/csharp/" + }, + { + "name": "Docker", + "icon": "https://img.shields.io/badge/-Docker-2496ED?style=flat&logo=docker&logoColor=white", + "link": "https://www.docker.com/" + }, + { + "name": "Flask", + "icon": "https://img.shields.io/badge/-Flask-000000?style=flat&logo=flask&logoColor=white", + "link": "https://flask.palletsprojects.com/" + }, + { + "name": "Flutter", + "icon": "https://img.shields.io/badge/-Flutter-02569B?style=flat&logo=flutter&logoColor=white", + "link": "https://flutter.dev/" + }, + { + "name": "Gin", + "icon": "https://img.shields.io/badge/-Gin-00ADD8?style=flat&logo=go&logoColor=white", + "link": "https://gin-gonic.com/" + }, + { + "name": "Git", + "icon": "https://img.shields.io/badge/-Git-F05032?style=flat&logo=git&logoColor=white", + "link": "https://git-scm.com/" + }, + { + "name": "Godot", + "icon": "https://img.shields.io/badge/-Godot-478CBF?style=flat&logo=godot&logoColor=white", + "link": "https://godotengine.org/" + }, + { + "name": "Golang", + "icon": "https://img.shields.io/badge/-Golang-00ADD8?style=flat&logo=go&logoColor=white", + "link": "https://go.dev/" + }, + { + "name": "Java", + "icon": "https://img.shields.io/badge/-Java-007396?style=flat&logo=java&logoColor=white", + "link": "https://www.oracle.com/java/" + }, + { + "name": "JavaScript", + "icon": "https://img.shields.io/badge/-JavaScript-F7DF1E?style=flat&logo=javascript&logoColor=black", + "link": "https://developer.mozilla.org/en-US/docs/Web/JavaScript" + }, + { + "name": "JSON", + "icon": "https://img.shields.io/badge/-JSON-000000?style=flat&logo=json&logoColor=white", + "link": "https://www.json.org/" + }, + { + "name": "Linux", + "icon": "https://img.shields.io/badge/-Linux-000000?style=flat&logo=linux&logoColor=white", + "link": "https://www.linux.org/" + }, + { + "name": "Markdown", + "icon": "https://img.shields.io/badge/-Markdown-083fa1?style=flat&logo=markdown&logoColor=white", + "link": "https://daringfireball.net/projects/markdown/" + }, + { + "name": "Minecraft", + "icon": "https://img.shields.io/badge/-Minecraft-62B34A?style=flat&logo=minecraft&logoColor=white", + "link": "https://www.minecraft.net/" + }, + { + "name": "MongoDB", + "icon": "https://img.shields.io/badge/-MongoDB-47A248?style=flat&logo=mongodb&logoColor=white", + "link": "https://www.mongodb.com/" + }, + { + "name": "MySQL", + "icon": "https://img.shields.io/badge/-MySQL-00758F?style=flat&logo=mysql&logoColor=white", + "link": "https://www.mysql.com/" + }, + { + "name": "Node.js", + "icon": "https://img.shields.io/badge/-Node.js-339933?style=flat&logo=nodedotjs&logoColor=white", + "link": "https://nodejs.org/" + }, + { + "name": "PostgreSQL", + "icon": "https://img.shields.io/badge/-PostgreSQL-4169E1?style=flat&logo=postgresql&logoColor=white", + "link": "https://www.postgresql.org/" + }, { "name": "Python", "icon": "https://img.shields.io/badge/-Python-3776AB?style=flat&logo=python&logoColor=white", "link": "https://www.python.org/" }, - { - "name": "JavaScript", - "icon": "https://img.shields.io/badge/-JavaScript-F7DF1E?style=flat&logo=javascript&logoColor=black", - "link": "" - }, - { - "name": "Java", - "icon": "https://img.shields.io/badge/-Java-007396?style=flat&logo=java&logoColor=white", - "link": "" - }, - { - "name": "C#", - "icon": "https://img.shields.io/badge/-C%23-512BD4?style=flat&logo=csharp&logoColor=white", - "link": "" - }, - { - "name": "Golang", - "icon": "https://img.shields.io/badge/-Golang-00ADD8?style=flat&logo=go&logoColor=white", - "link": "" - }, - { "name": "React", "icon": "https://img.shields.io/badge/-React-20232A?style=flat&logo=react&logoColor=61DAFB", - "link": "" - }, - { - "name": "Node.js", - "icon": "https://img.shields.io/badge/-Node.js-339933?style=flat&logo=nodedotjs&logoColor=white", - "link": "" - }, - { - "name": "Docker", - "icon": "https://img.shields.io/badge/-Docker-2496ED?style=flat&logo=docker&logoColor=white", - "link": "" - }, - { - "name": "Linux", - "icon": "https://img.shields.io/badge/-Linux-000000?style=flat&logo=linux&logoColor=white", - "link": "" - }, - { - "name": "Git", - "icon": "https://img.shields.io/badge/-Git-F05032?style=flat&logo=git&logoColor=white", - "link": "" - }, - { - "name": "Flask", - "icon": "https://img.shields.io/badge/-Flask-000000?style=flat&logo=flask&logoColor=white", - "link": "" - }, - - - { - "name": "MongoDB", - "icon": "https://img.shields.io/badge/-MongoDB-47A248?style=flat&logo=mongodb&logoColor=white", - "link": "" - }, - { - "name": "PostgreSQL", - "icon": "https://img.shields.io/badge/-PostgreSQL-4169E1?style=flat&logo=postgresql&logoColor=white", - "link": "" - }, - { - "name": "MySQL", - "icon": "https://img.shields.io/badge/-MySQL-00758F?style=flat&logo=mysql&logoColor=white", - "link": "" + "link": "https://react.dev/" }, { "name": "Redis", "icon": "https://img.shields.io/badge/-Redis-DC382D?style=flat&logo=redis&logoColor=white", - "link": "" + "link": "https://redis.io/" }, { - "name": "Android", - "icon": "https://img.shields.io/badge/-Android-3DDC84?style=flat&logo=android&logoColor=white", - "link": "" - }, - { - "name": "Flutter", - "icon": "https://img.shields.io/badge/-Flutter-02569B?style=flat&logo=flutter&logoColor=white", - "link": "" - }, - { - "name": "Godot", - "icon": "https://img.shields.io/badge/-Godot-478CBF?style=flat&logo=godot&logoColor=white", - "link": "" + "name": "Spring", + "icon": "https://img.shields.io/badge/-Spring-6DB33F?style=flat&logo=spring&logoColor=white", + "link": "https://spring.io/" }, { "name": "Unity", "icon": "https://img.shields.io/badge/-Unity-000000?style=flat&logo=unity&logoColor=white", - "link": "" - }, - - { - "name": "JSON", - "icon": "https://img.shields.io/badge/-JSON-000000?style=flat&logo=json&logoColor=white", - "link": "" - }, - { - "name": "Markdown", - "icon": "https://img.shields.io/badge/-Markdown-083fa1?style=flat&logo=markdown&logoColor=white", - "link": "" - }, - - { - "name": "Minecraft", - "icon": "https://img.shields.io/badge/-Minecraft-62B34A?style=flat&logo=minecraft&logoColor=white", - "link": "" + "link": "https://unity.com/" } ] }