Compare commits
5 commits
01c5131055
...
e1d44586b9
Author | SHA1 | Date | |
---|---|---|---|
e1d44586b9 | |||
e8ca5568c7 | |||
8e55ea6fe6 | |||
23397634f1 | |||
efe0b21753 |
11 changed files with 265 additions and 143 deletions
|
@ -63,6 +63,7 @@
|
||||||
"tags": {
|
"tags": {
|
||||||
"journal": "Journal/Summary",
|
"journal": "Journal/Summary",
|
||||||
"milestone": "Milestone",
|
"milestone": "Milestone",
|
||||||
|
"service": "Service",
|
||||||
"other": "Other"
|
"other": "Other"
|
||||||
},
|
},
|
||||||
"notFound": {
|
"notFound": {
|
||||||
|
@ -110,7 +111,7 @@
|
||||||
"openMenu": "Open menu"
|
"openMenu": "Open menu"
|
||||||
},
|
},
|
||||||
"hero": {
|
"hero": {
|
||||||
"title": "Connecting STARSET with You",
|
"title": "Connecting STARSET and You",
|
||||||
"subtitle": "",
|
"subtitle": "",
|
||||||
"cta": {
|
"cta": {
|
||||||
"projects": "Browse Projects",
|
"projects": "Browse Projects",
|
||||||
|
@ -123,7 +124,7 @@
|
||||||
"system": "System"
|
"system": "System"
|
||||||
},
|
},
|
||||||
"footer": {
|
"footer": {
|
||||||
"copyright": " 2024 STARSET Mirror."
|
"copyright": " 2020-{{currentYear}} STARSET Mirror."
|
||||||
},
|
},
|
||||||
"social": {
|
"social": {
|
||||||
"links": [
|
"links": [
|
||||||
|
@ -146,10 +147,10 @@
|
||||||
"icon": "Fediverse"
|
"icon": "Fediverse"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "Twitter",
|
"name": "Bluesky",
|
||||||
"url": "https://x.com/starset_mirror",
|
"url": "https://bsky.app/profile/mirror.starset.fans",
|
||||||
"color": "text-gray-400 hover:text-blue-400",
|
"color": "text-gray-400 hover:text-blue-400",
|
||||||
"icon": "Twitter"
|
"icon": "Bluesky"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "Discord",
|
"name": "Discord",
|
||||||
|
@ -162,6 +163,12 @@
|
||||||
"url": "https://git.owu.one/starset-mirror",
|
"url": "https://git.owu.one/starset-mirror",
|
||||||
"color": "text-gray-400 hover:text-orange-400",
|
"color": "text-gray-400 hover:text-orange-400",
|
||||||
"icon": "Forgejo"
|
"icon": "Forgejo"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Twitter",
|
||||||
|
"url": "https://x.com/starset_mirror",
|
||||||
|
"color": "text-gray-400 hover:text-blue-400",
|
||||||
|
"icon": "Twitter"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
|
|
@ -84,6 +84,7 @@
|
||||||
"tags": {
|
"tags": {
|
||||||
"journal": "日志/总结",
|
"journal": "日志/总结",
|
||||||
"milestone": "里程碑",
|
"milestone": "里程碑",
|
||||||
|
"service": "服务",
|
||||||
"other": "其它"
|
"other": "其它"
|
||||||
},
|
},
|
||||||
"notFound": {
|
"notFound": {
|
||||||
|
@ -123,7 +124,7 @@
|
||||||
"system": "跟随系统"
|
"system": "跟随系统"
|
||||||
},
|
},
|
||||||
"footer": {
|
"footer": {
|
||||||
"copyright": " 2024 STARSET Mirror."
|
"copyright": " 2020-{{currentYear}} STARSET Mirror."
|
||||||
},
|
},
|
||||||
"social": {
|
"social": {
|
||||||
"links": [
|
"links": [
|
||||||
|
|
|
@ -76,6 +76,7 @@
|
||||||
"tags": {
|
"tags": {
|
||||||
"journal": "日誌/總結",
|
"journal": "日誌/總結",
|
||||||
"milestone": "里程碑",
|
"milestone": "里程碑",
|
||||||
|
"service": "服務",
|
||||||
"other": "其他"
|
"other": "其他"
|
||||||
},
|
},
|
||||||
"notFound": {
|
"notFound": {
|
||||||
|
@ -107,7 +108,7 @@
|
||||||
"system": "跟隨系統"
|
"system": "跟隨系統"
|
||||||
},
|
},
|
||||||
"footer": {
|
"footer": {
|
||||||
"copyright": " 2024 STARSET Mirror."
|
"copyright": " 2020-{{currentYear}} STARSET Mirror."
|
||||||
},
|
},
|
||||||
"social": {
|
"social": {
|
||||||
"links": [
|
"links": [
|
||||||
|
@ -130,10 +131,10 @@
|
||||||
"icon": "Fediverse"
|
"icon": "Fediverse"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "Twitter",
|
"name": "Bluesky",
|
||||||
"url": "https://x.com/starset_mirror",
|
"url": "https://bsky.app/profile/mirror.starset.fans",
|
||||||
"color": "text-gray-400 hover:text-blue-400",
|
"color": "text-gray-400 hover:text-blue-400",
|
||||||
"icon": "Twitter"
|
"icon": "Bluesky"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "Discord",
|
"name": "Discord",
|
||||||
|
@ -146,6 +147,12 @@
|
||||||
"url": "https://git.owu.one/starset-mirror",
|
"url": "https://git.owu.one/starset-mirror",
|
||||||
"color": "text-gray-400 hover:text-orange-400",
|
"color": "text-gray-400 hover:text-orange-400",
|
||||||
"icon": "Forgejo"
|
"icon": "Forgejo"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Twitter",
|
||||||
|
"url": "https://x.com/starset_mirror",
|
||||||
|
"color": "text-gray-400 hover:text-blue-400",
|
||||||
|
"icon": "Twitter"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
|
|
@ -13,18 +13,19 @@
|
||||||
"@ant-design/icons": "^5.6.0",
|
"@ant-design/icons": "^5.6.0",
|
||||||
"@tanstack/react-query": "^5.66.0",
|
"@tanstack/react-query": "^5.66.0",
|
||||||
"antd": "^5.23.3",
|
"antd": "^5.23.3",
|
||||||
|
"artalk": "^2.9.1",
|
||||||
"clsx": "^2.1.1",
|
"clsx": "^2.1.1",
|
||||||
"feed": "^4.2.2",
|
"feed": "^4.2.2",
|
||||||
"i18next": "^23.16.8",
|
"i18next": "^23.16.8",
|
||||||
"i18next-browser-languagedetector": "^7.2.2",
|
"i18next-browser-languagedetector": "^7.2.2",
|
||||||
"lucide-react": "^0.344.0",
|
"lucide-react": "^0.344.0",
|
||||||
"marked": "^12.0.2",
|
"marked": "^15.0.6",
|
||||||
"react": "^18.3.1",
|
"react": "^18.3.1",
|
||||||
"react-dom": "^18.3.1",
|
"react-dom": "^18.3.1",
|
||||||
"react-helmet-async": "^2.0.5",
|
"react-helmet-async": "^2.0.5",
|
||||||
"react-i18next": "^14.1.3",
|
"react-i18next": "^14.1.3",
|
||||||
"react-icons": "^5.4.0",
|
"react-icons": "^5.4.0",
|
||||||
"react-router-dom": "^6.28.2"
|
"react-router-dom": "^6.29.0"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@eslint/js": "^9.19.0",
|
"@eslint/js": "^9.19.0",
|
||||||
|
|
254
pnpm-lock.yaml
generated
254
pnpm-lock.yaml
generated
|
@ -17,6 +17,9 @@ importers:
|
||||||
antd:
|
antd:
|
||||||
specifier: ^5.23.3
|
specifier: ^5.23.3
|
||||||
version: 5.23.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
|
version: 5.23.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
|
||||||
|
artalk:
|
||||||
|
specifier: ^2.9.1
|
||||||
|
version: 2.9.1(marked@15.0.6)
|
||||||
clsx:
|
clsx:
|
||||||
specifier: ^2.1.1
|
specifier: ^2.1.1
|
||||||
version: 2.1.1
|
version: 2.1.1
|
||||||
|
@ -33,8 +36,8 @@ importers:
|
||||||
specifier: ^0.344.0
|
specifier: ^0.344.0
|
||||||
version: 0.344.0(react@18.3.1)
|
version: 0.344.0(react@18.3.1)
|
||||||
marked:
|
marked:
|
||||||
specifier: ^12.0.2
|
specifier: ^15.0.6
|
||||||
version: 12.0.2
|
version: 15.0.6
|
||||||
react:
|
react:
|
||||||
specifier: ^18.3.1
|
specifier: ^18.3.1
|
||||||
version: 18.3.1
|
version: 18.3.1
|
||||||
|
@ -51,8 +54,8 @@ importers:
|
||||||
specifier: ^5.4.0
|
specifier: ^5.4.0
|
||||||
version: 5.4.0(react@18.3.1)
|
version: 5.4.0(react@18.3.1)
|
||||||
react-router-dom:
|
react-router-dom:
|
||||||
specifier: ^6.28.2
|
specifier: ^6.29.0
|
||||||
version: 6.28.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
|
version: 6.29.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
|
||||||
devDependencies:
|
devDependencies:
|
||||||
'@eslint/js':
|
'@eslint/js':
|
||||||
specifier: ^9.19.0
|
specifier: ^9.19.0
|
||||||
|
@ -543,8 +546,8 @@ packages:
|
||||||
resolution: {integrity: sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==}
|
resolution: {integrity: sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==}
|
||||||
engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0}
|
engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0}
|
||||||
|
|
||||||
'@eslint/config-array@0.19.1':
|
'@eslint/config-array@0.19.2':
|
||||||
resolution: {integrity: sha512-fo6Mtm5mWyKjA/Chy1BYTdn5mGJoDNjC7C64ug20ADsRDGrA85bN3uK3MaKbeRkRuuIEAR5N33Jr1pbm411/PA==}
|
resolution: {integrity: sha512-GNKqxfHG2ySmJOBSHg7LxeUx4xpuCoFjacmlCoYWEbaPXLwvfIjixRI12xCQZeULksQb23uiA8F40w5TojpV7w==}
|
||||||
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
||||||
|
|
||||||
'@eslint/core@0.10.0':
|
'@eslint/core@0.10.0':
|
||||||
|
@ -559,8 +562,8 @@ packages:
|
||||||
resolution: {integrity: sha512-rbq9/g38qjfqFLOVPvwjIvFFdNziEC5S65jmjPw5r6A//QH+W91akh9irMwjDN8zKUTak6W9EsAv4m/7Wnw0UQ==}
|
resolution: {integrity: sha512-rbq9/g38qjfqFLOVPvwjIvFFdNziEC5S65jmjPw5r6A//QH+W91akh9irMwjDN8zKUTak6W9EsAv4m/7Wnw0UQ==}
|
||||||
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
||||||
|
|
||||||
'@eslint/object-schema@2.1.5':
|
'@eslint/object-schema@2.1.6':
|
||||||
resolution: {integrity: sha512-o0bhxnL89h5Bae5T318nFoFzGy+YE5i/gGkoPAgkmTVdRKTiv3p8JHevPiPaMwoloKfEiiaHlawCqaZMqRm+XQ==}
|
resolution: {integrity: sha512-RBMg5FRL0I0gs51M/guSAj5/e14VQ4tpZnQNWwuDT66P14I43ItmPfIZRhO9fUVIPOAQXU47atlywZ/czoqFPA==}
|
||||||
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
||||||
|
|
||||||
'@eslint/plugin-kit@0.2.5':
|
'@eslint/plugin-kit@0.2.5':
|
||||||
|
@ -680,102 +683,102 @@ packages:
|
||||||
react: '>=16.9.0'
|
react: '>=16.9.0'
|
||||||
react-dom: '>=16.9.0'
|
react-dom: '>=16.9.0'
|
||||||
|
|
||||||
'@remix-run/router@1.21.1':
|
'@remix-run/router@1.22.0':
|
||||||
resolution: {integrity: sha512-KeBYSwohb8g4/wCcnksvKTYlg69O62sQeLynn2YE+5z7JWEj95if27kclW9QqbrlsQ2DINI8fjbV3zyuKfwjKg==}
|
resolution: {integrity: sha512-MBOl8MeOzpK0HQQQshKB7pABXbmyHizdTpqnrIseTbsv0nAepwC2ENZa1aaBExNQcpLoXmWthhak8SABLzvGPw==}
|
||||||
engines: {node: '>=14.0.0'}
|
engines: {node: '>=14.0.0'}
|
||||||
|
|
||||||
'@rollup/rollup-android-arm-eabi@4.32.1':
|
'@rollup/rollup-android-arm-eabi@4.34.1':
|
||||||
resolution: {integrity: sha512-/pqA4DmqyCm8u5YIDzIdlLcEmuvxb0v8fZdFhVMszSpDTgbQKdw3/mB3eMUHIbubtJ6F9j+LtmyCnHTEqIHyzA==}
|
resolution: {integrity: sha512-kwctwVlswSEsr4ljpmxKrRKp1eG1v2NAhlzFzDf1x1OdYaMjBYjDCbHkzWm57ZXzTwqn8stMXgROrnMw8dJK3w==}
|
||||||
cpu: [arm]
|
cpu: [arm]
|
||||||
os: [android]
|
os: [android]
|
||||||
|
|
||||||
'@rollup/rollup-android-arm64@4.32.1':
|
'@rollup/rollup-android-arm64@4.34.1':
|
||||||
resolution: {integrity: sha512-If3PDskT77q7zgqVqYuj7WG3WC08G1kwXGVFi9Jr8nY6eHucREHkfpX79c0ACAjLj3QIWKPJR7w4i+f5EdLH5Q==}
|
resolution: {integrity: sha512-4H5ZtZitBPlbPsTv6HBB8zh1g5d0T8TzCmpndQdqq20Ugle/nroOyDMf9p7f88Gsu8vBLU78/cuh8FYHZqdXxw==}
|
||||||
cpu: [arm64]
|
cpu: [arm64]
|
||||||
os: [android]
|
os: [android]
|
||||||
|
|
||||||
'@rollup/rollup-darwin-arm64@4.32.1':
|
'@rollup/rollup-darwin-arm64@4.34.1':
|
||||||
resolution: {integrity: sha512-zCpKHioQ9KgZToFp5Wvz6zaWbMzYQ2LJHQ+QixDKq52KKrF65ueu6Af4hLlLWHjX1Wf/0G5kSJM9PySW9IrvHA==}
|
resolution: {integrity: sha512-f2AJ7Qwx9z25hikXvg+asco8Sfuc5NCLg8rmqQBIOUoWys5sb/ZX9RkMZDPdnnDevXAMJA5AWLnRBmgdXGEUiA==}
|
||||||
cpu: [arm64]
|
cpu: [arm64]
|
||||||
os: [darwin]
|
os: [darwin]
|
||||||
|
|
||||||
'@rollup/rollup-darwin-x64@4.32.1':
|
'@rollup/rollup-darwin-x64@4.34.1':
|
||||||
resolution: {integrity: sha512-sFvF+t2+TyUo/ZQqUcifrJIgznx58oFZbdHS9TvHq3xhPVL9nOp+yZ6LKrO9GWTP+6DbFtoyLDbjTpR62Mbr3Q==}
|
resolution: {integrity: sha512-+/2JBrRfISCsWE4aEFXxd+7k9nWGXA8+wh7ZUHn/u8UDXOU9LN+QYKKhd57sIn6WRcorOnlqPMYFIwie/OHXWw==}
|
||||||
cpu: [x64]
|
cpu: [x64]
|
||||||
os: [darwin]
|
os: [darwin]
|
||||||
|
|
||||||
'@rollup/rollup-freebsd-arm64@4.32.1':
|
'@rollup/rollup-freebsd-arm64@4.34.1':
|
||||||
resolution: {integrity: sha512-NbOa+7InvMWRcY9RG+B6kKIMD/FsnQPH0MWUvDlQB1iXnF/UcKSudCXZtv4lW+C276g3w5AxPbfry5rSYvyeYA==}
|
resolution: {integrity: sha512-SUeB0pYjIXwT2vfAMQ7E4ERPq9VGRrPR7Z+S4AMssah5EHIilYqjWQoTn5dkDtuIJUSTs8H+C9dwoEcg3b0sCA==}
|
||||||
cpu: [arm64]
|
cpu: [arm64]
|
||||||
os: [freebsd]
|
os: [freebsd]
|
||||||
|
|
||||||
'@rollup/rollup-freebsd-x64@4.32.1':
|
'@rollup/rollup-freebsd-x64@4.34.1':
|
||||||
resolution: {integrity: sha512-JRBRmwvHPXR881j2xjry8HZ86wIPK2CcDw0EXchE1UgU0ubWp9nvlT7cZYKc6bkypBt745b4bglf3+xJ7hXWWw==}
|
resolution: {integrity: sha512-L3T66wAZiB/ooiPbxz0s6JEX6Sr2+HfgPSK+LMuZkaGZFAFCQAHiP3dbyqovYdNaiUXcl9TlgnIbcsIicAnOZg==}
|
||||||
cpu: [x64]
|
cpu: [x64]
|
||||||
os: [freebsd]
|
os: [freebsd]
|
||||||
|
|
||||||
'@rollup/rollup-linux-arm-gnueabihf@4.32.1':
|
'@rollup/rollup-linux-arm-gnueabihf@4.34.1':
|
||||||
resolution: {integrity: sha512-PKvszb+9o/vVdUzCCjL0sKHukEQV39tD3fepXxYrHE3sTKrRdCydI7uldRLbjLmDA3TFDmh418XH19NOsDRH8g==}
|
resolution: {integrity: sha512-UBXdQ4+ATARuFgsFrQ+tAsKvBi/Hly99aSVdeCUiHV9dRTTpMU7OrM3WXGys1l40wKVNiOl0QYY6cZQJ2xhKlQ==}
|
||||||
cpu: [arm]
|
cpu: [arm]
|
||||||
os: [linux]
|
os: [linux]
|
||||||
|
|
||||||
'@rollup/rollup-linux-arm-musleabihf@4.32.1':
|
'@rollup/rollup-linux-arm-musleabihf@4.34.1':
|
||||||
resolution: {integrity: sha512-9WHEMV6Y89eL606ReYowXuGF1Yb2vwfKWKdD1A5h+OYnPZSJvxbEjxTRKPgi7tkP2DSnW0YLab1ooy+i/FQp/Q==}
|
resolution: {integrity: sha512-m/yfZ25HGdcCSwmopEJm00GP7xAUyVcBPjttGLRAqZ60X/bB4Qn6gP7XTwCIU6bITeKmIhhwZ4AMh2XLro+4+w==}
|
||||||
cpu: [arm]
|
cpu: [arm]
|
||||||
os: [linux]
|
os: [linux]
|
||||||
|
|
||||||
'@rollup/rollup-linux-arm64-gnu@4.32.1':
|
'@rollup/rollup-linux-arm64-gnu@4.34.1':
|
||||||
resolution: {integrity: sha512-tZWc9iEt5fGJ1CL2LRPw8OttkCBDs+D8D3oEM8mH8S1ICZCtFJhD7DZ3XMGM8kpqHvhGUTvNUYVDnmkj4BDXnw==}
|
resolution: {integrity: sha512-Wy+cUmFuvziNL9qWRRzboNprqSQ/n38orbjRvd6byYWridp5TJ3CD+0+HUsbcWVSNz9bxkDUkyASGP0zS7GAvg==}
|
||||||
cpu: [arm64]
|
cpu: [arm64]
|
||||||
os: [linux]
|
os: [linux]
|
||||||
|
|
||||||
'@rollup/rollup-linux-arm64-musl@4.32.1':
|
'@rollup/rollup-linux-arm64-musl@4.34.1':
|
||||||
resolution: {integrity: sha512-FTYc2YoTWUsBz5GTTgGkRYYJ5NGJIi/rCY4oK/I8aKowx1ToXeoVVbIE4LGAjsauvlhjfl0MYacxClLld1VrOw==}
|
resolution: {integrity: sha512-CQ3MAGgiFmQW5XJX5W3wnxOBxKwFlUAgSXFA2SwgVRjrIiVt5LHfcQLeNSHKq5OEZwv+VCBwlD1+YKCjDG8cpg==}
|
||||||
cpu: [arm64]
|
cpu: [arm64]
|
||||||
os: [linux]
|
os: [linux]
|
||||||
|
|
||||||
'@rollup/rollup-linux-loongarch64-gnu@4.32.1':
|
'@rollup/rollup-linux-loongarch64-gnu@4.34.1':
|
||||||
resolution: {integrity: sha512-F51qLdOtpS6P1zJVRzYM0v6MrBNypyPEN1GfMiz0gPu9jN8ScGaEFIZQwteSsGKg799oR5EaP7+B2jHgL+d+Kw==}
|
resolution: {integrity: sha512-rSzb1TsY4lSwH811cYC3OC2O2mzNMhM13vcnA7/0T6Mtreqr3/qs6WMDriMRs8yvHDI54qxHgOk8EV5YRAHFbw==}
|
||||||
cpu: [loong64]
|
cpu: [loong64]
|
||||||
os: [linux]
|
os: [linux]
|
||||||
|
|
||||||
'@rollup/rollup-linux-powerpc64le-gnu@4.32.1':
|
'@rollup/rollup-linux-powerpc64le-gnu@4.34.1':
|
||||||
resolution: {integrity: sha512-wO0WkfSppfX4YFm5KhdCCpnpGbtgQNj/tgvYzrVYFKDpven8w2N6Gg5nB6w+wAMO3AIfSTWeTjfVe+uZ23zAlg==}
|
resolution: {integrity: sha512-fwr0n6NS0pG3QxxlqVYpfiY64Fd1Dqd8Cecje4ILAV01ROMp4aEdCj5ssHjRY3UwU7RJmeWd5fi89DBqMaTawg==}
|
||||||
cpu: [ppc64]
|
cpu: [ppc64]
|
||||||
os: [linux]
|
os: [linux]
|
||||||
|
|
||||||
'@rollup/rollup-linux-riscv64-gnu@4.32.1':
|
'@rollup/rollup-linux-riscv64-gnu@4.34.1':
|
||||||
resolution: {integrity: sha512-iWswS9cIXfJO1MFYtI/4jjlrGb/V58oMu4dYJIKnR5UIwbkzR0PJ09O0PDZT0oJ3LYWXBSWahNf/Mjo6i1E5/g==}
|
resolution: {integrity: sha512-4uJb9qz7+Z/yUp5RPxDGGGUcoh0PnKF33QyWgEZ3X/GocpWb6Mb+skDh59FEt5d8+Skxqs9mng6Swa6B2AmQZg==}
|
||||||
cpu: [riscv64]
|
cpu: [riscv64]
|
||||||
os: [linux]
|
os: [linux]
|
||||||
|
|
||||||
'@rollup/rollup-linux-s390x-gnu@4.32.1':
|
'@rollup/rollup-linux-s390x-gnu@4.34.1':
|
||||||
resolution: {integrity: sha512-RKt8NI9tebzmEthMnfVgG3i/XeECkMPS+ibVZjZ6mNekpbbUmkNWuIN2yHsb/mBPyZke4nlI4YqIdFPgKuoyQQ==}
|
resolution: {integrity: sha512-QlIo8ndocWBEnfmkYqj8vVtIUpIqJjfqKggjy7IdUncnt8BGixte1wDON7NJEvLg3Kzvqxtbo8tk+U1acYEBlw==}
|
||||||
cpu: [s390x]
|
cpu: [s390x]
|
||||||
os: [linux]
|
os: [linux]
|
||||||
|
|
||||||
'@rollup/rollup-linux-x64-gnu@4.32.1':
|
'@rollup/rollup-linux-x64-gnu@4.34.1':
|
||||||
resolution: {integrity: sha512-WQFLZ9c42ECqEjwg/GHHsouij3pzLXkFdz0UxHa/0OM12LzvX7DzedlY0SIEly2v18YZLRhCRoHZDxbBSWoGYg==}
|
resolution: {integrity: sha512-hzpleiKtq14GWjz3ahWvJXgU1DQC9DteiwcsY4HgqUJUGxZThlL66MotdUEK9zEo0PK/2ADeZGM9LIondE302A==}
|
||||||
cpu: [x64]
|
cpu: [x64]
|
||||||
os: [linux]
|
os: [linux]
|
||||||
|
|
||||||
'@rollup/rollup-linux-x64-musl@4.32.1':
|
'@rollup/rollup-linux-x64-musl@4.34.1':
|
||||||
resolution: {integrity: sha512-BLoiyHDOWoS3uccNSADMza6V6vCNiphi94tQlVIL5de+r6r/CCQuNnerf+1g2mnk2b6edp5dk0nhdZ7aEjOBsA==}
|
resolution: {integrity: sha512-jqtKrO715hDlvUcEsPn55tZt2TEiBvBtCMkUuU0R6fO/WPT7lO9AONjPbd8II7/asSiNVQHCMn4OLGigSuxVQA==}
|
||||||
cpu: [x64]
|
cpu: [x64]
|
||||||
os: [linux]
|
os: [linux]
|
||||||
|
|
||||||
'@rollup/rollup-win32-arm64-msvc@4.32.1':
|
'@rollup/rollup-win32-arm64-msvc@4.34.1':
|
||||||
resolution: {integrity: sha512-w2l3UnlgYTNNU+Z6wOR8YdaioqfEnwPjIsJ66KxKAf0p+AuL2FHeTX6qvM+p/Ue3XPBVNyVSfCrfZiQh7vZHLQ==}
|
resolution: {integrity: sha512-RnHy7yFf2Wz8Jj1+h8klB93N0NHNHXFhNwAmiy9zJdpY7DE01VbEVtPdrK1kkILeIbHGRJjvfBDBhnxBr8kD4g==}
|
||||||
cpu: [arm64]
|
cpu: [arm64]
|
||||||
os: [win32]
|
os: [win32]
|
||||||
|
|
||||||
'@rollup/rollup-win32-ia32-msvc@4.32.1':
|
'@rollup/rollup-win32-ia32-msvc@4.34.1':
|
||||||
resolution: {integrity: sha512-Am9H+TGLomPGkBnaPWie4F3x+yQ2rr4Bk2jpwy+iV+Gel9jLAu/KqT8k3X4jxFPW6Zf8OMnehyutsd+eHoq1WQ==}
|
resolution: {integrity: sha512-i7aT5HdiZIcd7quhzvwQ2oAuX7zPYrYfkrd1QFfs28Po/i0q6kas/oRrzGlDhAEyug+1UfUtkWdmoVlLJj5x9Q==}
|
||||||
cpu: [ia32]
|
cpu: [ia32]
|
||||||
os: [win32]
|
os: [win32]
|
||||||
|
|
||||||
'@rollup/rollup-win32-x64-msvc@4.32.1':
|
'@rollup/rollup-win32-x64-msvc@4.34.1':
|
||||||
resolution: {integrity: sha512-ar80GhdZb4DgmW3myIS9nRFYcpJRSME8iqWgzH2i44u+IdrzmiXVxeFnExQ5v4JYUSpg94bWjevMG8JHf1Da5Q==}
|
resolution: {integrity: sha512-k3MVFD9Oq+laHkw2N2v7ILgoa9017ZMF/inTtHzyTVZjYs9cSH18sdyAf6spBAJIGwJ5UaC7et2ZH1WCdlhkMw==}
|
||||||
cpu: [x64]
|
cpu: [x64]
|
||||||
os: [win32]
|
os: [win32]
|
||||||
|
|
||||||
|
@ -937,6 +940,11 @@ packages:
|
||||||
argparse@2.0.1:
|
argparse@2.0.1:
|
||||||
resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==}
|
resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==}
|
||||||
|
|
||||||
|
artalk@2.9.1:
|
||||||
|
resolution: {integrity: sha512-IFo9XqWDalsHy8BsmMA5SSB9bozBa/sBhTm/+O5KwA6DnC95lFKv7C6ScMx/Xa4ue5qSQ7VV5vxRgCh/raohkQ==}
|
||||||
|
peerDependencies:
|
||||||
|
marked: ^14.1.0
|
||||||
|
|
||||||
autoprefixer@10.4.20:
|
autoprefixer@10.4.20:
|
||||||
resolution: {integrity: sha512-XY25y5xSv/wEoqzDyXXME4AFfkZI0P23z6Fs3YgymDnKJkCGOnkL0iTxCa85UTqaSgfcqyf3UA6+c7wUvx/16g==}
|
resolution: {integrity: sha512-XY25y5xSv/wEoqzDyXXME4AFfkZI0P23z6Fs3YgymDnKJkCGOnkL0iTxCa85UTqaSgfcqyf3UA6+c7wUvx/16g==}
|
||||||
engines: {node: ^10 || ^12 || >=14}
|
engines: {node: ^10 || ^12 || >=14}
|
||||||
|
@ -1144,8 +1152,8 @@ packages:
|
||||||
fast-levenshtein@2.0.6:
|
fast-levenshtein@2.0.6:
|
||||||
resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==}
|
resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==}
|
||||||
|
|
||||||
fastq@1.18.0:
|
fastq@1.19.0:
|
||||||
resolution: {integrity: sha512-QKHXPW0hD8g4UET03SdOdunzSouc9N4AuHdsX8XNcTsuz+yYFILVNIX4l9yHABMhiEI9Db0JTTIpu0wB+Y1QQw==}
|
resolution: {integrity: sha512-7SFSRCNjBQIZH/xZR3iy5iQYR8aGBE0h3VG6/cwlbrpdciNYBMotQav8c1XI3HjHH+NikUpP53nPdlZSdWmFzA==}
|
||||||
|
|
||||||
feed@4.2.2:
|
feed@4.2.2:
|
||||||
resolution: {integrity: sha512-u5/sxGfiMfZNtJ3OvQpXcvotFpYkL0n9u9mM2vkui2nGo8b4wvDkJ8gAkYqbA8QpGyFCv3RK0Z+Iv+9veCS9bQ==}
|
resolution: {integrity: sha512-u5/sxGfiMfZNtJ3OvQpXcvotFpYkL0n9u9mM2vkui2nGo8b4wvDkJ8gAkYqbA8QpGyFCv3RK0Z+Iv+9veCS9bQ==}
|
||||||
|
@ -1252,8 +1260,8 @@ packages:
|
||||||
resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==}
|
resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==}
|
||||||
engines: {node: '>= 4'}
|
engines: {node: '>= 4'}
|
||||||
|
|
||||||
import-fresh@3.3.0:
|
import-fresh@3.3.1:
|
||||||
resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==}
|
resolution: {integrity: sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==}
|
||||||
engines: {node: '>=6'}
|
engines: {node: '>=6'}
|
||||||
|
|
||||||
imurmurhash@0.1.4:
|
imurmurhash@0.1.4:
|
||||||
|
@ -1379,8 +1387,8 @@ packages:
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
react: ^16.5.1 || ^17.0.0 || ^18.0.0
|
react: ^16.5.1 || ^17.0.0 || ^18.0.0
|
||||||
|
|
||||||
marked@12.0.2:
|
marked@15.0.6:
|
||||||
resolution: {integrity: sha512-qXUm7e/YKFoqFPYPa3Ukg9xlI5cyAtGmyEIzMfW//m6kXwCy2Ps9DYf5ioijFKQ8qyuscrHoY04iJGctu2Kg0Q==}
|
resolution: {integrity: sha512-Y07CUOE+HQXbVDCGl3LXggqJDbXDP2pArc2C1N1RRMN0ONiShoSsIInMd5Gsxupe7fKLpgimTV+HOJ9r7bA+pg==}
|
||||||
engines: {node: '>= 18'}
|
engines: {node: '>= 18'}
|
||||||
hasBin: true
|
hasBin: true
|
||||||
|
|
||||||
|
@ -1815,15 +1823,15 @@ packages:
|
||||||
resolution: {integrity: sha512-jCvmsr+1IUSMUyzOkRcvnVbX3ZYC6g9TDrDbFuFmRDq7PD4yaGbLKNQL6k2jnArV8hjYxh7hVhAZB6s9HDGpZA==}
|
resolution: {integrity: sha512-jCvmsr+1IUSMUyzOkRcvnVbX3ZYC6g9TDrDbFuFmRDq7PD4yaGbLKNQL6k2jnArV8hjYxh7hVhAZB6s9HDGpZA==}
|
||||||
engines: {node: '>=0.10.0'}
|
engines: {node: '>=0.10.0'}
|
||||||
|
|
||||||
react-router-dom@6.28.2:
|
react-router-dom@6.29.0:
|
||||||
resolution: {integrity: sha512-O81EWqNJWqvlN/a7eTudAdQm0TbI7hw+WIi7OwwMcTn5JMyZ0ibTFNGz+t+Lju0df4LcqowCegcrK22lB1q9Kw==}
|
resolution: {integrity: sha512-pkEbJPATRJ2iotK+wUwHfy0xs2T59YPEN8BQxVCPeBZvK7kfPESRc/nyxzdcxR17hXgUPYx2whMwl+eo9cUdnQ==}
|
||||||
engines: {node: '>=14.0.0'}
|
engines: {node: '>=14.0.0'}
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
react: '>=16.8'
|
react: '>=16.8'
|
||||||
react-dom: '>=16.8'
|
react-dom: '>=16.8'
|
||||||
|
|
||||||
react-router@6.28.2:
|
react-router@6.29.0:
|
||||||
resolution: {integrity: sha512-BgFY7+wEGVjHCiqaj2XiUBQ1kkzfg6UoKYwEe0wv+FF+HNPCxtS/MVPvLAPH++EsuCMReZl9RYVGqcHLk5ms3A==}
|
resolution: {integrity: sha512-DXZJoE0q+KyeVw75Ck6GkPxFak63C4fGqZGNijnWgzB/HzSP1ZfTlBj5COaGWwhrMQ/R8bXiq5Ooy4KG+ReyjQ==}
|
||||||
engines: {node: '>=14.0.0'}
|
engines: {node: '>=14.0.0'}
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
react: '>=16.8'
|
react: '>=16.8'
|
||||||
|
@ -1861,8 +1869,8 @@ packages:
|
||||||
resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==}
|
resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==}
|
||||||
engines: {iojs: '>=1.0.0', node: '>=0.10.0'}
|
engines: {iojs: '>=1.0.0', node: '>=0.10.0'}
|
||||||
|
|
||||||
rollup@4.32.1:
|
rollup@4.34.1:
|
||||||
resolution: {integrity: sha512-z+aeEsOeEa3mEbS1Tjl6sAZ8NE3+AalQz1RJGj81M+fizusbdDMoEJwdJNHfaB40Scr4qNu+welOfes7maKonA==}
|
resolution: {integrity: sha512-iYZ/+PcdLYSGfH3S+dGahlW/RWmsqDhLgj1BT9DH/xXJ0ggZN7xkdP9wipPNjjNLczI+fmMLmTB9pye+d2r4GQ==}
|
||||||
engines: {node: '>=18.0.0', npm: '>=8.0.0'}
|
engines: {node: '>=18.0.0', npm: '>=8.0.0'}
|
||||||
hasBin: true
|
hasBin: true
|
||||||
|
|
||||||
|
@ -1968,8 +1976,8 @@ packages:
|
||||||
toggle-selection@1.0.6:
|
toggle-selection@1.0.6:
|
||||||
resolution: {integrity: sha512-BiZS+C1OS8g/q2RRbJmy59xpyghNBqrr6k5L/uKBGRsTfxmu3ffiRnd8mlGPUVayg8pvfi5urfnu8TU7DVOkLQ==}
|
resolution: {integrity: sha512-BiZS+C1OS8g/q2RRbJmy59xpyghNBqrr6k5L/uKBGRsTfxmu3ffiRnd8mlGPUVayg8pvfi5urfnu8TU7DVOkLQ==}
|
||||||
|
|
||||||
ts-api-utils@2.0.0:
|
ts-api-utils@2.0.1:
|
||||||
resolution: {integrity: sha512-xCt/TOAc+EOHS1XPnijD3/yzpH6qg2xppZO1YDqGoVsNXfQfzHpOdNuXwrwOU8u4ITXJyDCTyt8w5g1sZv9ynQ==}
|
resolution: {integrity: sha512-dnlgjFSVetynI8nzgJ+qF62efpglpWRk8isUEWZGWlJYySCTD6aKvbUDu+zbPeDakk3bg5H4XpitHukgfL1m9w==}
|
||||||
engines: {node: '>=18.12'}
|
engines: {node: '>=18.12'}
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
typescript: '>=4.8.4'
|
typescript: '>=4.8.4'
|
||||||
|
@ -2417,9 +2425,9 @@ snapshots:
|
||||||
|
|
||||||
'@eslint-community/regexpp@4.12.1': {}
|
'@eslint-community/regexpp@4.12.1': {}
|
||||||
|
|
||||||
'@eslint/config-array@0.19.1':
|
'@eslint/config-array@0.19.2':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@eslint/object-schema': 2.1.5
|
'@eslint/object-schema': 2.1.6
|
||||||
debug: 4.4.0
|
debug: 4.4.0
|
||||||
minimatch: 3.1.2
|
minimatch: 3.1.2
|
||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
|
@ -2436,7 +2444,7 @@ snapshots:
|
||||||
espree: 10.3.0
|
espree: 10.3.0
|
||||||
globals: 14.0.0
|
globals: 14.0.0
|
||||||
ignore: 5.3.2
|
ignore: 5.3.2
|
||||||
import-fresh: 3.3.0
|
import-fresh: 3.3.1
|
||||||
js-yaml: 4.1.0
|
js-yaml: 4.1.0
|
||||||
minimatch: 3.1.2
|
minimatch: 3.1.2
|
||||||
strip-json-comments: 3.1.1
|
strip-json-comments: 3.1.1
|
||||||
|
@ -2445,7 +2453,7 @@ snapshots:
|
||||||
|
|
||||||
'@eslint/js@9.19.0': {}
|
'@eslint/js@9.19.0': {}
|
||||||
|
|
||||||
'@eslint/object-schema@2.1.5': {}
|
'@eslint/object-schema@2.1.6': {}
|
||||||
|
|
||||||
'@eslint/plugin-kit@0.2.5':
|
'@eslint/plugin-kit@0.2.5':
|
||||||
dependencies:
|
dependencies:
|
||||||
|
@ -2501,7 +2509,7 @@ snapshots:
|
||||||
'@nodelib/fs.walk@1.2.8':
|
'@nodelib/fs.walk@1.2.8':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@nodelib/fs.scandir': 2.1.5
|
'@nodelib/fs.scandir': 2.1.5
|
||||||
fastq: 1.18.0
|
fastq: 1.19.0
|
||||||
|
|
||||||
'@pkgjs/parseargs@0.11.0':
|
'@pkgjs/parseargs@0.11.0':
|
||||||
optional: true
|
optional: true
|
||||||
|
@ -2575,63 +2583,63 @@ snapshots:
|
||||||
react: 18.3.1
|
react: 18.3.1
|
||||||
react-dom: 18.3.1(react@18.3.1)
|
react-dom: 18.3.1(react@18.3.1)
|
||||||
|
|
||||||
'@remix-run/router@1.21.1': {}
|
'@remix-run/router@1.22.0': {}
|
||||||
|
|
||||||
'@rollup/rollup-android-arm-eabi@4.32.1':
|
'@rollup/rollup-android-arm-eabi@4.34.1':
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
'@rollup/rollup-android-arm64@4.32.1':
|
'@rollup/rollup-android-arm64@4.34.1':
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
'@rollup/rollup-darwin-arm64@4.32.1':
|
'@rollup/rollup-darwin-arm64@4.34.1':
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
'@rollup/rollup-darwin-x64@4.32.1':
|
'@rollup/rollup-darwin-x64@4.34.1':
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
'@rollup/rollup-freebsd-arm64@4.32.1':
|
'@rollup/rollup-freebsd-arm64@4.34.1':
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
'@rollup/rollup-freebsd-x64@4.32.1':
|
'@rollup/rollup-freebsd-x64@4.34.1':
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
'@rollup/rollup-linux-arm-gnueabihf@4.32.1':
|
'@rollup/rollup-linux-arm-gnueabihf@4.34.1':
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
'@rollup/rollup-linux-arm-musleabihf@4.32.1':
|
'@rollup/rollup-linux-arm-musleabihf@4.34.1':
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
'@rollup/rollup-linux-arm64-gnu@4.32.1':
|
'@rollup/rollup-linux-arm64-gnu@4.34.1':
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
'@rollup/rollup-linux-arm64-musl@4.32.1':
|
'@rollup/rollup-linux-arm64-musl@4.34.1':
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
'@rollup/rollup-linux-loongarch64-gnu@4.32.1':
|
'@rollup/rollup-linux-loongarch64-gnu@4.34.1':
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
'@rollup/rollup-linux-powerpc64le-gnu@4.32.1':
|
'@rollup/rollup-linux-powerpc64le-gnu@4.34.1':
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
'@rollup/rollup-linux-riscv64-gnu@4.32.1':
|
'@rollup/rollup-linux-riscv64-gnu@4.34.1':
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
'@rollup/rollup-linux-s390x-gnu@4.32.1':
|
'@rollup/rollup-linux-s390x-gnu@4.34.1':
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
'@rollup/rollup-linux-x64-gnu@4.32.1':
|
'@rollup/rollup-linux-x64-gnu@4.34.1':
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
'@rollup/rollup-linux-x64-musl@4.32.1':
|
'@rollup/rollup-linux-x64-musl@4.34.1':
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
'@rollup/rollup-win32-arm64-msvc@4.32.1':
|
'@rollup/rollup-win32-arm64-msvc@4.34.1':
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
'@rollup/rollup-win32-ia32-msvc@4.32.1':
|
'@rollup/rollup-win32-ia32-msvc@4.34.1':
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
'@rollup/rollup-win32-x64-msvc@4.32.1':
|
'@rollup/rollup-win32-x64-msvc@4.34.1':
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
'@tailwindcss/typography@0.5.16(tailwindcss@3.4.17)':
|
'@tailwindcss/typography@0.5.16(tailwindcss@3.4.17)':
|
||||||
|
@ -2717,7 +2725,7 @@ snapshots:
|
||||||
graphemer: 1.4.0
|
graphemer: 1.4.0
|
||||||
ignore: 5.3.2
|
ignore: 5.3.2
|
||||||
natural-compare: 1.4.0
|
natural-compare: 1.4.0
|
||||||
ts-api-utils: 2.0.0(typescript@5.7.3)
|
ts-api-utils: 2.0.1(typescript@5.7.3)
|
||||||
typescript: 5.7.3
|
typescript: 5.7.3
|
||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- supports-color
|
- supports-color
|
||||||
|
@ -2745,7 +2753,7 @@ snapshots:
|
||||||
'@typescript-eslint/utils': 8.22.0(eslint@9.19.0(jiti@1.21.7))(typescript@5.7.3)
|
'@typescript-eslint/utils': 8.22.0(eslint@9.19.0(jiti@1.21.7))(typescript@5.7.3)
|
||||||
debug: 4.4.0
|
debug: 4.4.0
|
||||||
eslint: 9.19.0(jiti@1.21.7)
|
eslint: 9.19.0(jiti@1.21.7)
|
||||||
ts-api-utils: 2.0.0(typescript@5.7.3)
|
ts-api-utils: 2.0.1(typescript@5.7.3)
|
||||||
typescript: 5.7.3
|
typescript: 5.7.3
|
||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- supports-color
|
- supports-color
|
||||||
|
@ -2761,7 +2769,7 @@ snapshots:
|
||||||
is-glob: 4.0.3
|
is-glob: 4.0.3
|
||||||
minimatch: 9.0.5
|
minimatch: 9.0.5
|
||||||
semver: 7.7.0
|
semver: 7.7.0
|
||||||
ts-api-utils: 2.0.0(typescript@5.7.3)
|
ts-api-utils: 2.0.1(typescript@5.7.3)
|
||||||
typescript: 5.7.3
|
typescript: 5.7.3
|
||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- supports-color
|
- supports-color
|
||||||
|
@ -2885,6 +2893,10 @@ snapshots:
|
||||||
|
|
||||||
argparse@2.0.1: {}
|
argparse@2.0.1: {}
|
||||||
|
|
||||||
|
artalk@2.9.1(marked@15.0.6):
|
||||||
|
dependencies:
|
||||||
|
marked: 15.0.6
|
||||||
|
|
||||||
autoprefixer@10.4.20(postcss@8.5.1):
|
autoprefixer@10.4.20(postcss@8.5.1):
|
||||||
dependencies:
|
dependencies:
|
||||||
browserslist: 4.24.4
|
browserslist: 4.24.4
|
||||||
|
@ -3072,7 +3084,7 @@ snapshots:
|
||||||
dependencies:
|
dependencies:
|
||||||
'@eslint-community/eslint-utils': 4.4.1(eslint@9.19.0(jiti@1.21.7))
|
'@eslint-community/eslint-utils': 4.4.1(eslint@9.19.0(jiti@1.21.7))
|
||||||
'@eslint-community/regexpp': 4.12.1
|
'@eslint-community/regexpp': 4.12.1
|
||||||
'@eslint/config-array': 0.19.1
|
'@eslint/config-array': 0.19.2
|
||||||
'@eslint/core': 0.10.0
|
'@eslint/core': 0.10.0
|
||||||
'@eslint/eslintrc': 3.2.0
|
'@eslint/eslintrc': 3.2.0
|
||||||
'@eslint/js': 9.19.0
|
'@eslint/js': 9.19.0
|
||||||
|
@ -3141,7 +3153,7 @@ snapshots:
|
||||||
|
|
||||||
fast-levenshtein@2.0.6: {}
|
fast-levenshtein@2.0.6: {}
|
||||||
|
|
||||||
fastq@1.18.0:
|
fastq@1.19.0:
|
||||||
dependencies:
|
dependencies:
|
||||||
reusify: 1.0.4
|
reusify: 1.0.4
|
||||||
|
|
||||||
|
@ -3249,7 +3261,7 @@ snapshots:
|
||||||
|
|
||||||
ignore@5.3.2: {}
|
ignore@5.3.2: {}
|
||||||
|
|
||||||
import-fresh@3.3.0:
|
import-fresh@3.3.1:
|
||||||
dependencies:
|
dependencies:
|
||||||
parent-module: 1.0.1
|
parent-module: 1.0.1
|
||||||
resolve-from: 4.0.0
|
resolve-from: 4.0.0
|
||||||
|
@ -3357,7 +3369,7 @@ snapshots:
|
||||||
dependencies:
|
dependencies:
|
||||||
react: 18.3.1
|
react: 18.3.1
|
||||||
|
|
||||||
marked@12.0.2: {}
|
marked@15.0.6: {}
|
||||||
|
|
||||||
merge2@1.4.1: {}
|
merge2@1.4.1: {}
|
||||||
|
|
||||||
|
@ -3847,16 +3859,16 @@ snapshots:
|
||||||
|
|
||||||
react-refresh@0.14.2: {}
|
react-refresh@0.14.2: {}
|
||||||
|
|
||||||
react-router-dom@6.28.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1):
|
react-router-dom@6.29.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1):
|
||||||
dependencies:
|
dependencies:
|
||||||
'@remix-run/router': 1.21.1
|
'@remix-run/router': 1.22.0
|
||||||
react: 18.3.1
|
react: 18.3.1
|
||||||
react-dom: 18.3.1(react@18.3.1)
|
react-dom: 18.3.1(react@18.3.1)
|
||||||
react-router: 6.28.2(react@18.3.1)
|
react-router: 6.29.0(react@18.3.1)
|
||||||
|
|
||||||
react-router@6.28.2(react@18.3.1):
|
react-router@6.29.0(react@18.3.1):
|
||||||
dependencies:
|
dependencies:
|
||||||
'@remix-run/router': 1.21.1
|
'@remix-run/router': 1.22.0
|
||||||
react: 18.3.1
|
react: 18.3.1
|
||||||
|
|
||||||
react@18.3.1:
|
react@18.3.1:
|
||||||
|
@ -3887,29 +3899,29 @@ snapshots:
|
||||||
|
|
||||||
reusify@1.0.4: {}
|
reusify@1.0.4: {}
|
||||||
|
|
||||||
rollup@4.32.1:
|
rollup@4.34.1:
|
||||||
dependencies:
|
dependencies:
|
||||||
'@types/estree': 1.0.6
|
'@types/estree': 1.0.6
|
||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
'@rollup/rollup-android-arm-eabi': 4.32.1
|
'@rollup/rollup-android-arm-eabi': 4.34.1
|
||||||
'@rollup/rollup-android-arm64': 4.32.1
|
'@rollup/rollup-android-arm64': 4.34.1
|
||||||
'@rollup/rollup-darwin-arm64': 4.32.1
|
'@rollup/rollup-darwin-arm64': 4.34.1
|
||||||
'@rollup/rollup-darwin-x64': 4.32.1
|
'@rollup/rollup-darwin-x64': 4.34.1
|
||||||
'@rollup/rollup-freebsd-arm64': 4.32.1
|
'@rollup/rollup-freebsd-arm64': 4.34.1
|
||||||
'@rollup/rollup-freebsd-x64': 4.32.1
|
'@rollup/rollup-freebsd-x64': 4.34.1
|
||||||
'@rollup/rollup-linux-arm-gnueabihf': 4.32.1
|
'@rollup/rollup-linux-arm-gnueabihf': 4.34.1
|
||||||
'@rollup/rollup-linux-arm-musleabihf': 4.32.1
|
'@rollup/rollup-linux-arm-musleabihf': 4.34.1
|
||||||
'@rollup/rollup-linux-arm64-gnu': 4.32.1
|
'@rollup/rollup-linux-arm64-gnu': 4.34.1
|
||||||
'@rollup/rollup-linux-arm64-musl': 4.32.1
|
'@rollup/rollup-linux-arm64-musl': 4.34.1
|
||||||
'@rollup/rollup-linux-loongarch64-gnu': 4.32.1
|
'@rollup/rollup-linux-loongarch64-gnu': 4.34.1
|
||||||
'@rollup/rollup-linux-powerpc64le-gnu': 4.32.1
|
'@rollup/rollup-linux-powerpc64le-gnu': 4.34.1
|
||||||
'@rollup/rollup-linux-riscv64-gnu': 4.32.1
|
'@rollup/rollup-linux-riscv64-gnu': 4.34.1
|
||||||
'@rollup/rollup-linux-s390x-gnu': 4.32.1
|
'@rollup/rollup-linux-s390x-gnu': 4.34.1
|
||||||
'@rollup/rollup-linux-x64-gnu': 4.32.1
|
'@rollup/rollup-linux-x64-gnu': 4.34.1
|
||||||
'@rollup/rollup-linux-x64-musl': 4.32.1
|
'@rollup/rollup-linux-x64-musl': 4.34.1
|
||||||
'@rollup/rollup-win32-arm64-msvc': 4.32.1
|
'@rollup/rollup-win32-arm64-msvc': 4.34.1
|
||||||
'@rollup/rollup-win32-ia32-msvc': 4.32.1
|
'@rollup/rollup-win32-ia32-msvc': 4.34.1
|
||||||
'@rollup/rollup-win32-x64-msvc': 4.32.1
|
'@rollup/rollup-win32-x64-msvc': 4.34.1
|
||||||
fsevents: 2.3.3
|
fsevents: 2.3.3
|
||||||
|
|
||||||
run-parallel@1.2.0:
|
run-parallel@1.2.0:
|
||||||
|
@ -4027,7 +4039,7 @@ snapshots:
|
||||||
|
|
||||||
toggle-selection@1.0.6: {}
|
toggle-selection@1.0.6: {}
|
||||||
|
|
||||||
ts-api-utils@2.0.0(typescript@5.7.3):
|
ts-api-utils@2.0.1(typescript@5.7.3):
|
||||||
dependencies:
|
dependencies:
|
||||||
typescript: 5.7.3
|
typescript: 5.7.3
|
||||||
|
|
||||||
|
@ -4076,7 +4088,7 @@ snapshots:
|
||||||
dependencies:
|
dependencies:
|
||||||
esbuild: 0.21.5
|
esbuild: 0.21.5
|
||||||
postcss: 8.5.1
|
postcss: 8.5.1
|
||||||
rollup: 4.32.1
|
rollup: 4.34.1
|
||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
'@types/node': 22.13.0
|
'@types/node': 22.13.0
|
||||||
fsevents: 2.3.3
|
fsevents: 2.3.3
|
||||||
|
|
|
@ -78,7 +78,7 @@ function App() {
|
||||||
<footer className="bg-gray-900 dark:bg-gray-950 text-white py-6" role="contentinfo">
|
<footer className="bg-gray-900 dark:bg-gray-950 text-white py-6" role="contentinfo">
|
||||||
<div className="container mx-auto px-4">
|
<div className="container mx-auto px-4">
|
||||||
<div className="flex flex-col items-center">
|
<div className="flex flex-col items-center">
|
||||||
<p className="text-gray-400 mb-4"> {t('footer.copyright')}</p>
|
<p className="text-gray-400 mb-4"> {t('footer.copyright', { currentYear: new Date().getFullYear() })}</p>
|
||||||
<div className="flex space-x-6">
|
<div className="flex space-x-6">
|
||||||
{socialLinks.map((link: any) => {
|
{socialLinks.map((link: any) => {
|
||||||
const Icon = iconMap[link.icon as keyof typeof iconMap];
|
const Icon = iconMap[link.icon as keyof typeof iconMap];
|
||||||
|
|
71
src/components/Comments.tsx
Normal file
71
src/components/Comments.tsx
Normal file
|
@ -0,0 +1,71 @@
|
||||||
|
import { useCallback, useRef, useEffect } from 'react'
|
||||||
|
import { useLocation } from 'react-router-dom'
|
||||||
|
import 'artalk/dist/Artalk.css'
|
||||||
|
import Artalk from 'artalk'
|
||||||
|
|
||||||
|
interface CommentsProps {
|
||||||
|
title?: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
const Comments = ({ title }: CommentsProps) => {
|
||||||
|
const { pathname } = useLocation()
|
||||||
|
const artalkRef = useRef<Artalk>()
|
||||||
|
const containerRef = useRef<HTMLDivElement>(null)
|
||||||
|
|
||||||
|
useEffect(() => {
|
||||||
|
if (!containerRef.current) return
|
||||||
|
|
||||||
|
// Clean up previous instance
|
||||||
|
if (artalkRef.current) {
|
||||||
|
artalkRef.current.destroy()
|
||||||
|
artalkRef.current = undefined
|
||||||
|
}
|
||||||
|
|
||||||
|
// Initialize new instance
|
||||||
|
artalkRef.current = Artalk.init({
|
||||||
|
el: containerRef.current,
|
||||||
|
pageKey: pathname,
|
||||||
|
pageTitle: title || document.title,
|
||||||
|
server: 'https://comments.owu.one',
|
||||||
|
site: 'STARSET Mirror Homepage',
|
||||||
|
darkMode: document.documentElement.classList.contains('dark'),
|
||||||
|
useBackendConf: true,
|
||||||
|
pagination: {
|
||||||
|
pageSize: 15,
|
||||||
|
readMore: true,
|
||||||
|
},
|
||||||
|
emoticons: true,
|
||||||
|
})
|
||||||
|
|
||||||
|
// Handle dark mode changes
|
||||||
|
const observer = new MutationObserver((mutations) => {
|
||||||
|
mutations.forEach((mutation) => {
|
||||||
|
if (mutation.attributeName === 'class') {
|
||||||
|
const isDark = document.documentElement.classList.contains('dark')
|
||||||
|
artalkRef.current?.setDarkMode(isDark)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
})
|
||||||
|
|
||||||
|
observer.observe(document.documentElement, {
|
||||||
|
attributes: true,
|
||||||
|
attributeFilter: ['class'],
|
||||||
|
})
|
||||||
|
|
||||||
|
return () => {
|
||||||
|
observer.disconnect()
|
||||||
|
artalkRef.current?.destroy()
|
||||||
|
}
|
||||||
|
}, [pathname, title])
|
||||||
|
|
||||||
|
return (
|
||||||
|
<div
|
||||||
|
ref={containerRef}
|
||||||
|
className="mt-12 p-4 bg-white dark:bg-gray-800 rounded-lg shadow"
|
||||||
|
aria-label="Comments section"
|
||||||
|
role="complementary"
|
||||||
|
/>
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
export default Comments
|
|
@ -3,6 +3,7 @@ import { useNavigate } from 'react-router-dom';
|
||||||
import { useTranslation } from 'react-i18next';
|
import { useTranslation } from 'react-i18next';
|
||||||
import { ChevronLeft } from 'lucide-react';
|
import { ChevronLeft } from 'lucide-react';
|
||||||
import { Update } from '../utils/updates';
|
import { Update } from '../utils/updates';
|
||||||
|
import Comments from './Comments';
|
||||||
|
|
||||||
interface UpdateDetailProps {
|
interface UpdateDetailProps {
|
||||||
update: Update;
|
update: Update;
|
||||||
|
@ -51,6 +52,8 @@ const UpdateDetail: React.FC<UpdateDetailProps> = ({ update, content }) => {
|
||||||
{update.summary}
|
{update.summary}
|
||||||
</p>
|
</p>
|
||||||
)}
|
)}
|
||||||
|
|
||||||
|
<Comments title={update.title} />
|
||||||
</article>
|
</article>
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
|
|
|
@ -8,11 +8,12 @@ import { useUpdates, Update } from '../utils/updates';
|
||||||
const UpdateDetailPage: React.FC = () => {
|
const UpdateDetailPage: React.FC = () => {
|
||||||
const { id } = useParams<{ id: string }>();
|
const { id } = useParams<{ id: string }>();
|
||||||
const { i18n, t } = useTranslation();
|
const { i18n, t } = useTranslation();
|
||||||
const { getAllUpdates } = useUpdates();
|
const { data: allUpdates = [], isLoading } = useUpdates();
|
||||||
const [update, setUpdate] = useState<Update | null>(null);
|
const [update, setUpdate] = useState<Update | null>(null);
|
||||||
const [content, setContent] = useState<string | null>(null);
|
const [content, setContent] = useState<string | null>(null);
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
|
|
||||||
const fetchUpdateData = async () => {
|
const fetchUpdateData = async () => {
|
||||||
if (!id) {
|
if (!id) {
|
||||||
setUpdate(null);
|
setUpdate(null);
|
||||||
|
@ -21,8 +22,6 @@ const UpdateDetailPage: React.FC = () => {
|
||||||
}
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
// 获取所有更新条目
|
|
||||||
const allUpdates = await getAllUpdates();
|
|
||||||
// 查找对应 id 的更新条目
|
// 查找对应 id 的更新条目
|
||||||
const foundUpdate = allUpdates.find(u => u.id === id);
|
const foundUpdate = allUpdates.find(u => u.id === id);
|
||||||
|
|
||||||
|
@ -48,11 +47,19 @@ const UpdateDetailPage: React.FC = () => {
|
||||||
const mdPath = `/data/${i18n.language}/updates/${year}/${foundUpdate.id}.md`;
|
const mdPath = `/data/${i18n.language}/updates/${year}/${foundUpdate.id}.md`;
|
||||||
const response = await fetch(mdPath);
|
const response = await fetch(mdPath);
|
||||||
|
|
||||||
if (!response.ok) {
|
// 检查响应状态和内容类型
|
||||||
throw new Error('Markdown file not found');
|
const contentType = response.headers.get('content-type');
|
||||||
|
|
||||||
|
if (!response.ok || !contentType || !contentType.includes('text/markdown')) {
|
||||||
|
throw new Error('Markdown file not found or invalid');
|
||||||
}
|
}
|
||||||
|
|
||||||
const mdText = await response.text();
|
const mdText = await response.text();
|
||||||
|
// 简单验证内容是否看起来像 markdown
|
||||||
|
if (mdText.includes('<script') || mdText.includes('<meta')) {
|
||||||
|
throw new Error('Invalid markdown content');
|
||||||
|
}
|
||||||
|
|
||||||
// 将 Markdown 转换为 HTML
|
// 将 Markdown 转换为 HTML
|
||||||
setContent(marked(mdText));
|
setContent(marked(mdText));
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
|
@ -60,14 +67,25 @@ const UpdateDetailPage: React.FC = () => {
|
||||||
setContent(foundUpdate.summary);
|
setContent(foundUpdate.summary);
|
||||||
}
|
}
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.error('Failed to fetch update data:', error);
|
|
||||||
setUpdate(null);
|
setUpdate(null);
|
||||||
setContent(null);
|
setContent(null);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
fetchUpdateData();
|
fetchUpdateData();
|
||||||
}, [id, i18n.language, getAllUpdates]);
|
}, [id, i18n.language, allUpdates]);
|
||||||
|
|
||||||
|
if (isLoading) {
|
||||||
|
return (
|
||||||
|
<div className="min-h-screen flex items-center justify-center">
|
||||||
|
<div className="text-center">
|
||||||
|
<h2 className="text-2xl font-semibold text-gray-900 dark:text-white mb-2">
|
||||||
|
{t('common.loading')}
|
||||||
|
</h2>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
if (!update) {
|
if (!update) {
|
||||||
return (
|
return (
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
import { MdVerified, MdHome } from 'react-icons/md';
|
import { MdVerified, MdHome } from 'react-icons/md';
|
||||||
import { AiFillBilibili } from 'react-icons/ai';
|
import { AiFillBilibili } from 'react-icons/ai';
|
||||||
import { SiNeteasecloudmusic, SiTencentqq, SiYoutube, SiForgejo } from 'react-icons/si';
|
import { SiNeteasecloudmusic, SiTencentqq, SiYoutube, SiForgejo, SiBluesky } from 'react-icons/si';
|
||||||
import { PiFediverseLogo } from 'react-icons/pi';
|
import { PiFediverseLogo } from 'react-icons/pi';
|
||||||
import { FaTwitter, FaDiscord, FaWeibo } from 'react-icons/fa';
|
import { FaTwitter, FaDiscord, FaWeibo } from 'react-icons/fa';
|
||||||
|
|
||||||
|
@ -15,7 +15,8 @@ const iconMap = {
|
||||||
Discord: FaDiscord,
|
Discord: FaDiscord,
|
||||||
Forgejo: SiForgejo,
|
Forgejo: SiForgejo,
|
||||||
Weibo: FaWeibo,
|
Weibo: FaWeibo,
|
||||||
Home: MdHome
|
Home: MdHome,
|
||||||
|
Bluesky: SiBluesky
|
||||||
};
|
};
|
||||||
|
|
||||||
export default iconMap;
|
export default iconMap;
|
|
@ -131,6 +131,7 @@ export const useUpdates = (page: number = 1, pageSize: number = 10) => {
|
||||||
|
|
||||||
return {
|
return {
|
||||||
getPaginatedUpdates,
|
getPaginatedUpdates,
|
||||||
|
data: allUpdates,
|
||||||
isLoading,
|
isLoading,
|
||||||
error
|
error
|
||||||
};
|
};
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue