karin-plugin-kkk 2.20.2 → 2.21.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +69 -0
- package/config/default_config/app.yaml +6 -6
- package/config/default_config/bilibili.yaml +3 -3
- package/config/default_config/douyin.yaml +0 -3
- package/config/default_config/kuaishou.yaml +0 -3
- package/config/default_config/xiaohongshu.yaml +0 -3
- package/lib/apps/admin.js +4 -4
- package/lib/apps/help.js +3 -3
- package/lib/apps/push.js +3 -3
- package/lib/apps/qrlogin.js +3 -3
- package/lib/apps/tools.js +3 -3
- package/lib/apps/update.js +3 -3
- package/lib/build-metadata.json +5 -5
- package/lib/core_chunk/{main-Du8yBcGG.js → main-eqK3KHoJ.js} +988 -328
- package/lib/core_chunk/{template-CQ-u6h09.js → template-n3eb7E79.js} +757 -360
- package/lib/core_chunk/template.d.mts +25 -6
- package/lib/core_chunk/template.js +2 -2
- package/lib/core_chunk/{vendor-B3KhGHI_.js → vendor-CYCcUtqE.js} +137541 -136555
- package/lib/index.js +3 -3
- package/lib/karin-plugin-kkk.css +189 -100
- package/lib/root.js +1 -1
- package/lib/web.config.js +3 -3
- package/package.json +3 -4
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { n as __esmMin, o as __toESM, r as __export } from "./rolldown-runtime-BMXAG3ag.js";
|
|
2
|
-
import { $ as
|
|
2
|
+
import { $ as init_date_fns, $t as BookOpen, A as RiHeart2Line, At as Play, B as RiRobot2Fill, Bt as Eye, C as init_ai, Ct as ShieldCheck, D as RiBellFill, Dt as Quote, E as RiArrowRightFill, Et as Radio, F as RiLiveLine, Ft as Heart, G as RiStarLine, Gt as Clock, H as RiShareForwardFill, Ht as Crown, I as RiLoginCircleFill, It as Hash, J as RiUserFollowLine, Jt as CircleCheckBig, K as RiThumbUpFill, Kt as CircleFadingArrowUp, L as RiMessage3Fill, Lt as Gift, M as RiHeart3Line, Mt as MessageCircle, N as RiLinkM, Nt as MapPin, O as RiGroupLine, Ot as QrCode, P as RiListCheck2, Pt as Info, Q as init_lu, Qt as Bookmark, R as RiQuestionFill, Rt as Gamepad2, S as AiFillStar, St as Shield, T as zhCN, Tt as ScanLine, U as RiSparkling2Fill, Ut as CornerDownLeft, V as RiSendPlaneFill, Vt as ExternalLink, W as RiStarFill, Wt as Coins, X as init_ri, Xt as ChartColumn, Y as RiVideoLine, Yt as CircleAlert, Z as LuFullscreen, Zt as Calendar, _ as init_hi, _t as TriangleAlert, at as code_default, b as init_fa6, bt as Star, c as init_react_markdown, ct as HeroUIProvider, d as init_md, dt as init_io5, en as Bell, f as SiBilibili, ft as init_lucide_react, g as HiOutlineMenuAlt2, gt as UserPlus, h as init_tb, ht as User, in as require_react, it as init_dist, j as RiHeart3Fill, jt as Music, k as RiHashtag, kt as Plug2, l as Markdown, lt as require_jsx_runtime, m as TbScan, mt as Users, nn as init_clsx, nt as format, o as init_rehype_highlight, ot as chip_default, p as init_si, pt as Zap, q as RiTiktokFill, qt as CircleEllipsis, rn as require_server_node, s as rehypeHighlight, st as button_default, tn as clsx_default, tt as formatDistanceToNow, u as MdAccessTime, ut as IoSearch, v as FaCodeBranch, vt as ThumbsUp, w as init_locale, wt as Share2, x as AiFillHeart, xt as Smartphone, y as FaCommentDots, yt as Terminal, z as RiRefreshLine, zt as FileText } from "./vendor-CYCcUtqE.js";
|
|
3
3
|
import { logger as logger$1 } from "node-karin";
|
|
4
4
|
import fs from "node:fs";
|
|
5
5
|
import path from "node:path";
|
|
@@ -3965,13 +3965,17 @@ var Comment_exports$2 = __export({
|
|
|
3965
3965
|
BilibiliComment: () => BilibiliComment,
|
|
3966
3966
|
default: () => Comment_default$2
|
|
3967
3967
|
}, 1);
|
|
3968
|
-
var import_react$22, import_jsx_runtime$20, processCommentHTML$1, ImageWithSkeleton, QRCodeSection$1, VideoInfoHeader, CommentItemComponent$1, BilibiliComment, Comment_default$2;
|
|
3968
|
+
var import_react$22, import_jsx_runtime$20, TopBadge, processCommentHTML$1, ImageWithSkeleton, QRCodeSection$1, VideoInfoHeader, CommentItemComponent$1, BilibiliComment, Comment_default$2;
|
|
3969
3969
|
var init_Comment$2 = __esmMin(() => {
|
|
3970
3970
|
init_clsx();
|
|
3971
3971
|
init_lucide_react();
|
|
3972
3972
|
import_react$22 = __toESM(require_react(), 1);
|
|
3973
3973
|
init_DefaultLayout();
|
|
3974
3974
|
import_jsx_runtime$20 = __toESM(require_jsx_runtime(), 1);
|
|
3975
|
+
TopBadge = () => (0, import_jsx_runtime$20.jsx)("span", {
|
|
3976
|
+
className: clsx_default("inline-flex justify-center items-center", "px-4 py-2 mr-4 mb-1 rounded-xl", "text-[45px] font-light leading-none", "align-baseline", "bg-[#ffedf5] text-[#ff799e]", "dark:bg-[#321b26] dark:text-[#cb5775]"),
|
|
3977
|
+
children: "置顶"
|
|
3978
|
+
});
|
|
3975
3979
|
processCommentHTML$1 = (htmlContent) => htmlContent.replace(/<img([^>]*?)>/gi, "<img$1 referrerpolicy=\"no-referrer\" crossorigin=\"anonymous\">");
|
|
3976
3980
|
ImageWithSkeleton = ({ src, alt, className = "", placeholder }) => {
|
|
3977
3981
|
const [hasError, setHasError] = (0, import_react$22.useState)(false);
|
|
@@ -4197,22 +4201,42 @@ var init_Comment$2 = __esmMin(() => {
|
|
|
4197
4201
|
})
|
|
4198
4202
|
]
|
|
4199
4203
|
}),
|
|
4200
|
-
(0, import_jsx_runtime$20.
|
|
4201
|
-
className: "text-[60px] tracking-[0.5px] leading-[1.6] text-foreground mb-5 select-text [&_img]:mb-3 [&_img]:inline [&_img]:h-[1.4em] [&_img]:w-auto [&_img]:align-middle [&_img]:mx-1 [&_img]:max-w-[1.7em]",
|
|
4204
|
+
(0, import_jsx_runtime$20.jsxs)("div", {
|
|
4205
|
+
className: "items-center text-[60px] tracking-[0.5px] leading-[1.6] text-foreground mb-5 select-text [&_img]:mb-3 [&_img]:inline [&_img]:h-[1.4em] [&_img]:w-auto [&_img]:align-middle [&_img]:mx-1 [&_img]:max-w-[1.7em] flex flex-wrap",
|
|
4202
4206
|
style: {
|
|
4203
4207
|
wordBreak: "break-word",
|
|
4204
4208
|
overflowWrap: "break-word"
|
|
4205
4209
|
},
|
|
4206
|
-
|
|
4210
|
+
children: [props.isTop && (0, import_jsx_runtime$20.jsx)(TopBadge, {}), (0, import_jsx_runtime$20.jsx)("span", { dangerouslySetInnerHTML: { __html: processCommentHTML$1(props.message) } })]
|
|
4207
4211
|
}),
|
|
4208
|
-
|
|
4209
|
-
className: "flex
|
|
4210
|
-
children: (0, import_jsx_runtime$20.jsx)(
|
|
4211
|
-
|
|
4212
|
-
|
|
4213
|
-
|
|
4214
|
-
|
|
4215
|
-
|
|
4212
|
+
props.pictures && props.pictures.length > 0 && (0, import_jsx_runtime$20.jsx)("div", {
|
|
4213
|
+
className: "flex gap-5 my-5 w-[95%]",
|
|
4214
|
+
children: props.pictures.length === 1 ? (0, import_jsx_runtime$20.jsx)("div", {
|
|
4215
|
+
className: "overflow-hidden rounded-[25px] shadow-large w-full",
|
|
4216
|
+
children: (0, import_jsx_runtime$20.jsx)(ImageWithSkeleton, {
|
|
4217
|
+
src: props.pictures[0],
|
|
4218
|
+
alt: "评论图片",
|
|
4219
|
+
className: "rounded-[25px] object-contain w-full h-full",
|
|
4220
|
+
placeholder: "评论图片"
|
|
4221
|
+
})
|
|
4222
|
+
}) : props.pictures.slice(0, 2).map((picUrl, idx) => (0, import_jsx_runtime$20.jsxs)("div", {
|
|
4223
|
+
className: "relative overflow-hidden rounded-[25px] shadow-large flex-1 aspect-square",
|
|
4224
|
+
children: [(0, import_jsx_runtime$20.jsx)(ImageWithSkeleton, {
|
|
4225
|
+
src: picUrl,
|
|
4226
|
+
alt: `评论图片${idx + 1}`,
|
|
4227
|
+
className: "rounded-[25px] object-cover w-full h-full",
|
|
4228
|
+
placeholder: "评论图片"
|
|
4229
|
+
}), idx === 1 && props.pictures.length > 2 && (0, import_jsx_runtime$20.jsx)("div", {
|
|
4230
|
+
className: "absolute bottom-3 right-3",
|
|
4231
|
+
children: (0, import_jsx_runtime$20.jsx)("div", {
|
|
4232
|
+
className: "flex items-center justify-center bg-black px-4 py-3 rounded-2xl opacity-80 backdrop-blur-sm",
|
|
4233
|
+
children: (0, import_jsx_runtime$20.jsxs)("span", {
|
|
4234
|
+
className: "text-white text-4xl font-bold leading-none",
|
|
4235
|
+
children: ["+ ", props.pictures.length - 2]
|
|
4236
|
+
})
|
|
4237
|
+
})
|
|
4238
|
+
})]
|
|
4239
|
+
}, idx))
|
|
4216
4240
|
}),
|
|
4217
4241
|
(0, import_jsx_runtime$20.jsxs)("div", {
|
|
4218
4242
|
className: "flex items-center justify-between mt-[37.5px] whitespace-nowrap text-foreground-500",
|
|
@@ -4339,14 +4363,35 @@ var init_Comment$2 = __esmMin(() => {
|
|
|
4339
4363
|
},
|
|
4340
4364
|
dangerouslySetInnerHTML: { __html: processCommentHTML$1(subReply.message) }
|
|
4341
4365
|
}),
|
|
4342
|
-
subReply.
|
|
4343
|
-
className: "flex
|
|
4344
|
-
children: (0, import_jsx_runtime$20.jsx)(
|
|
4345
|
-
|
|
4346
|
-
|
|
4347
|
-
|
|
4348
|
-
|
|
4349
|
-
|
|
4366
|
+
subReply.pictures && subReply.pictures.length > 0 && (0, import_jsx_runtime$20.jsx)("div", {
|
|
4367
|
+
className: "flex gap-5 my-5 w-[95%]",
|
|
4368
|
+
children: subReply.pictures.length === 1 ? (0, import_jsx_runtime$20.jsx)("div", {
|
|
4369
|
+
className: "overflow-hidden rounded-[25px] shadow-large w-full",
|
|
4370
|
+
children: (0, import_jsx_runtime$20.jsx)(ImageWithSkeleton, {
|
|
4371
|
+
src: subReply.pictures[0],
|
|
4372
|
+
alt: "评论图片",
|
|
4373
|
+
className: "rounded-[25px] object-contain w-full h-full",
|
|
4374
|
+
placeholder: "评论图片"
|
|
4375
|
+
})
|
|
4376
|
+
}) : subReply.pictures.slice(0, 2).map((picUrl, idx) => (0, import_jsx_runtime$20.jsxs)("div", {
|
|
4377
|
+
className: "relative overflow-hidden rounded-[25px] shadow-large flex-1 aspect-square",
|
|
4378
|
+
children: [(0, import_jsx_runtime$20.jsx)(ImageWithSkeleton, {
|
|
4379
|
+
src: picUrl,
|
|
4380
|
+
alt: `评论图片${idx + 1}`,
|
|
4381
|
+
className: "rounded-[25px] object-cover w-full h-full",
|
|
4382
|
+
placeholder: "评论图片"
|
|
4383
|
+
}), idx === 1 && subReply.pictures.length > 2 && (0, import_jsx_runtime$20.jsx)("div", {
|
|
4384
|
+
className: "absolute bottom-10 right-10",
|
|
4385
|
+
children: (0, import_jsx_runtime$20.jsx)("div", {
|
|
4386
|
+
className: "flex items-center justify-center px-8 py-6 rounded-[18px] shadow-xl",
|
|
4387
|
+
style: { backgroundColor: "rgba(0, 0, 0, 0.7)" },
|
|
4388
|
+
children: (0, import_jsx_runtime$20.jsxs)("span", {
|
|
4389
|
+
className: "text-white text-[60px] font-bold leading-none",
|
|
4390
|
+
children: ["+", subReply.pictures.length - 2]
|
|
4391
|
+
})
|
|
4392
|
+
})
|
|
4393
|
+
})]
|
|
4394
|
+
}, idx))
|
|
4350
4395
|
}),
|
|
4351
4396
|
(0, import_jsx_runtime$20.jsxs)("div", {
|
|
4352
4397
|
className: "flex items-center justify-between mt-[37.5px] whitespace-nowrap text-foreground-500",
|
|
@@ -6099,12 +6144,12 @@ var init_DYNAMIC_TYPE_AV = __esmMin(() => {
|
|
|
6099
6144
|
}),
|
|
6100
6145
|
(0, import_jsx_runtime$13.jsx)("div", { className: "h-20" })
|
|
6101
6146
|
] });
|
|
6102
|
-
BilibiliVideoDynamicContent = (props) => (0, import_jsx_runtime$13.jsxs)(import_jsx_runtime$13.Fragment, { children: [props.image_url && (0, import_jsx_runtime$13.jsxs)(import_jsx_runtime$13.Fragment, { children: [(0, import_jsx_runtime$13.jsx)("div", {
|
|
6147
|
+
BilibiliVideoDynamicContent = (props) => (0, import_jsx_runtime$13.jsxs)(import_jsx_runtime$13.Fragment, { children: [props.data.image_url && (0, import_jsx_runtime$13.jsxs)(import_jsx_runtime$13.Fragment, { children: [(0, import_jsx_runtime$13.jsx)("div", {
|
|
6103
6148
|
className: "flex flex-col items-center",
|
|
6104
6149
|
children: (0, import_jsx_runtime$13.jsxs)("div", {
|
|
6105
6150
|
className: "flex overflow-hidden relative flex-col flex-1 items-center w-11/12 rounded-3xl shadow-large",
|
|
6106
6151
|
children: [(0, import_jsx_runtime$13.jsx)(EnhancedImage, {
|
|
6107
|
-
src: props.image_url,
|
|
6152
|
+
src: props.data.image_url,
|
|
6108
6153
|
alt: "封面",
|
|
6109
6154
|
className: "object-contain w-full h-full rounded-3xl"
|
|
6110
6155
|
}), (0, import_jsx_runtime$13.jsx)("div", {
|
|
@@ -6123,7 +6168,7 @@ var init_DYNAMIC_TYPE_AV = __esmMin(() => {
|
|
|
6123
6168
|
className: "relative items-center text-8xl font-bold tracking-wider wrap-break-word text-foreground",
|
|
6124
6169
|
children: (0, import_jsx_runtime$13.jsx)(CommentText, {
|
|
6125
6170
|
className: "text-[80px] font-bold tracking-[1.5px] leading-normal whitespace-pre-wrap text-foreground select-text",
|
|
6126
|
-
content: props.text,
|
|
6171
|
+
content: props.data.text,
|
|
6127
6172
|
style: {
|
|
6128
6173
|
wordBreak: "break-word",
|
|
6129
6174
|
overflowWrap: "break-word"
|
|
@@ -6135,7 +6180,7 @@ var init_DYNAMIC_TYPE_AV = __esmMin(() => {
|
|
|
6135
6180
|
className: "text-6xl text-default-500",
|
|
6136
6181
|
children: (0, import_jsx_runtime$13.jsx)(CommentText, {
|
|
6137
6182
|
className: "text-[60px] leading-normal whitespace-pre-wrap text-default-500 select-text",
|
|
6138
|
-
content: props.desc,
|
|
6183
|
+
content: props.data.desc,
|
|
6139
6184
|
style: {
|
|
6140
6185
|
wordBreak: "break-word",
|
|
6141
6186
|
overflowWrap: "break-word"
|
|
@@ -6157,7 +6202,7 @@ var init_DYNAMIC_TYPE_AV = __esmMin(() => {
|
|
|
6157
6202
|
className: "text-like"
|
|
6158
6203
|
}), (0, import_jsx_runtime$13.jsxs)("span", {
|
|
6159
6204
|
className: "select-text",
|
|
6160
|
-
children: [props.dianzan, "点赞"]
|
|
6205
|
+
children: [props.data.dianzan, "点赞"]
|
|
6161
6206
|
})]
|
|
6162
6207
|
}),
|
|
6163
6208
|
(0, import_jsx_runtime$13.jsxs)("div", {
|
|
@@ -6167,7 +6212,7 @@ var init_DYNAMIC_TYPE_AV = __esmMin(() => {
|
|
|
6167
6212
|
className: "text-comment"
|
|
6168
6213
|
}), (0, import_jsx_runtime$13.jsxs)("span", {
|
|
6169
6214
|
className: "select-text",
|
|
6170
|
-
children: [props.pinglun, "评论"]
|
|
6215
|
+
children: [props.data.pinglun, "评论"]
|
|
6171
6216
|
})]
|
|
6172
6217
|
}),
|
|
6173
6218
|
(0, import_jsx_runtime$13.jsxs)("div", {
|
|
@@ -6177,7 +6222,7 @@ var init_DYNAMIC_TYPE_AV = __esmMin(() => {
|
|
|
6177
6222
|
className: "text-success"
|
|
6178
6223
|
}), (0, import_jsx_runtime$13.jsxs)("span", {
|
|
6179
6224
|
className: "select-text",
|
|
6180
|
-
children: [props.share, "分享"]
|
|
6225
|
+
children: [props.data.share, "分享"]
|
|
6181
6226
|
})]
|
|
6182
6227
|
})
|
|
6183
6228
|
]
|
|
@@ -6191,7 +6236,7 @@ var init_DYNAMIC_TYPE_AV = __esmMin(() => {
|
|
|
6191
6236
|
className: "text-warning"
|
|
6192
6237
|
}), (0, import_jsx_runtime$13.jsxs)("span", {
|
|
6193
6238
|
className: "select-text",
|
|
6194
|
-
children: [props.coin, "硬币"]
|
|
6239
|
+
children: [props.data.coin, "硬币"]
|
|
6195
6240
|
})]
|
|
6196
6241
|
}),
|
|
6197
6242
|
(0, import_jsx_runtime$13.jsxs)("div", {
|
|
@@ -6201,7 +6246,7 @@ var init_DYNAMIC_TYPE_AV = __esmMin(() => {
|
|
|
6201
6246
|
className: "text-default-400 text-view"
|
|
6202
6247
|
}), (0, import_jsx_runtime$13.jsxs)("span", {
|
|
6203
6248
|
className: "select-text",
|
|
6204
|
-
children: [props.view, "浏览"]
|
|
6249
|
+
children: [props.data.view, "浏览"]
|
|
6205
6250
|
})]
|
|
6206
6251
|
}),
|
|
6207
6252
|
(0, import_jsx_runtime$13.jsxs)("div", {
|
|
@@ -6211,7 +6256,7 @@ var init_DYNAMIC_TYPE_AV = __esmMin(() => {
|
|
|
6211
6256
|
className: "text-time"
|
|
6212
6257
|
}), (0, import_jsx_runtime$13.jsxs)("span", {
|
|
6213
6258
|
className: "select-text",
|
|
6214
|
-
children: ["视频时长: ", props.duration_text]
|
|
6259
|
+
children: ["视频时长: ", props.data.duration_text]
|
|
6215
6260
|
})]
|
|
6216
6261
|
})
|
|
6217
6262
|
]
|
|
@@ -6226,7 +6271,7 @@ var init_DYNAMIC_TYPE_AV = __esmMin(() => {
|
|
|
6226
6271
|
className: "text-time"
|
|
6227
6272
|
}), (0, import_jsx_runtime$13.jsxs)("span", {
|
|
6228
6273
|
className: "select-text",
|
|
6229
|
-
children: ["发布于", props.create_time]
|
|
6274
|
+
children: ["发布于", props.data.create_time]
|
|
6230
6275
|
})]
|
|
6231
6276
|
}),
|
|
6232
6277
|
(0, import_jsx_runtime$13.jsxs)("div", {
|
|
@@ -6243,7 +6288,7 @@ var init_DYNAMIC_TYPE_AV = __esmMin(() => {
|
|
|
6243
6288
|
className: "text-default-400"
|
|
6244
6289
|
}), (0, import_jsx_runtime$13.jsxs)("span", {
|
|
6245
6290
|
className: "select-text",
|
|
6246
|
-
children: ["动态ID: ", props.dynamic_id]
|
|
6291
|
+
children: ["动态ID: ", props.data.dynamic_id]
|
|
6247
6292
|
})]
|
|
6248
6293
|
})
|
|
6249
6294
|
]
|
|
@@ -6252,151 +6297,202 @@ var init_DYNAMIC_TYPE_AV = __esmMin(() => {
|
|
|
6252
6297
|
(0, import_jsx_runtime$13.jsx)("div", { className: "h-40" })
|
|
6253
6298
|
]
|
|
6254
6299
|
})] });
|
|
6255
|
-
BilibiliVideoDynamicFooter = (props) =>
|
|
6256
|
-
|
|
6257
|
-
|
|
6258
|
-
|
|
6259
|
-
|
|
6260
|
-
|
|
6261
|
-
|
|
6262
|
-
|
|
6263
|
-
|
|
6264
|
-
|
|
6265
|
-
|
|
6266
|
-
|
|
6267
|
-
|
|
6268
|
-
|
|
6269
|
-
|
|
6270
|
-
|
|
6271
|
-
|
|
6272
|
-
|
|
6273
|
-
|
|
6274
|
-
|
|
6275
|
-
|
|
6276
|
-
|
|
6277
|
-
|
|
6278
|
-
|
|
6279
|
-
className: "flex
|
|
6280
|
-
children: [(0, import_jsx_runtime$13.jsx)(Hash, {
|
|
6281
|
-
size: 32,
|
|
6282
|
-
className: "text-default-400"
|
|
6283
|
-
}), (0, import_jsx_runtime$13.jsxs)("span", {
|
|
6284
|
-
className: "select-text",
|
|
6285
|
-
children: ["UID: ", props.user_shortid]
|
|
6286
|
-
})]
|
|
6287
|
-
})]
|
|
6288
|
-
})]
|
|
6289
|
-
}), (0, import_jsx_runtime$13.jsxs)("div", {
|
|
6290
|
-
className: "text-3xl flex gap-6 items-center text-default-600",
|
|
6291
|
-
children: [
|
|
6292
|
-
(0, import_jsx_runtime$13.jsxs)("div", {
|
|
6293
|
-
className: "flex flex-col gap-1 items-start px-6 py-3 rounded-2xl bg-default-100",
|
|
6300
|
+
BilibiliVideoDynamicFooter = (props) => {
|
|
6301
|
+
const otherStaff = props.data.staff?.filter((member) => member.mid !== Number(props.data.user_shortid)) || [];
|
|
6302
|
+
const currentUserRole = props.data.staff?.find((member) => member.mid === Number(props.data.user_shortid))?.title;
|
|
6303
|
+
const listRef = import_react$15.useRef(null);
|
|
6304
|
+
const [visibleCount, setVisibleCount] = import_react$15.useState(otherStaff.length);
|
|
6305
|
+
import_react$15.useEffect(() => {
|
|
6306
|
+
const calc = () => {
|
|
6307
|
+
const el = listRef.current;
|
|
6308
|
+
if (!el || otherStaff.length === 0) return;
|
|
6309
|
+
const containerWidth = el.offsetWidth;
|
|
6310
|
+
const capacity = Math.floor(containerWidth / 200);
|
|
6311
|
+
setVisibleCount(otherStaff.length > capacity ? Math.max(0, capacity - 1) : otherStaff.length);
|
|
6312
|
+
};
|
|
6313
|
+
calc();
|
|
6314
|
+
window.addEventListener("resize", calc);
|
|
6315
|
+
return () => window.removeEventListener("resize", calc);
|
|
6316
|
+
}, [otherStaff.length]);
|
|
6317
|
+
return (0, import_jsx_runtime$13.jsxs)(import_jsx_runtime$13.Fragment, { children: [
|
|
6318
|
+
otherStaff.length > 0 && (0, import_jsx_runtime$13.jsx)("div", {
|
|
6319
|
+
className: "flex flex-col px-20 w-full",
|
|
6320
|
+
children: (0, import_jsx_runtime$13.jsxs)("div", {
|
|
6321
|
+
ref: listRef,
|
|
6322
|
+
className: "flex overflow-hidden gap-8 py-1 w-full",
|
|
6323
|
+
children: [otherStaff.slice(0, visibleCount).map((member) => (0, import_jsx_runtime$13.jsxs)("div", {
|
|
6324
|
+
className: "flex flex-col items-center min-w-42 w-42 shrink-0",
|
|
6294
6325
|
children: [
|
|
6295
|
-
(0, import_jsx_runtime$13.
|
|
6296
|
-
className: "flex
|
|
6297
|
-
children:
|
|
6298
|
-
|
|
6299
|
-
|
|
6300
|
-
|
|
6301
|
-
|
|
6302
|
-
|
|
6303
|
-
})]
|
|
6326
|
+
(0, import_jsx_runtime$13.jsx)("div", {
|
|
6327
|
+
className: "flex justify-center items-center bg-white rounded-full w-30 h-30",
|
|
6328
|
+
children: (0, import_jsx_runtime$13.jsx)(EnhancedImage, {
|
|
6329
|
+
src: member.face,
|
|
6330
|
+
alt: member.name,
|
|
6331
|
+
className: "object-cover w-28 h-28 rounded-full",
|
|
6332
|
+
isCircular: true
|
|
6333
|
+
})
|
|
6304
6334
|
}),
|
|
6305
|
-
(0, import_jsx_runtime$13.jsx)("div", {
|
|
6306
|
-
|
|
6307
|
-
|
|
6308
|
-
|
|
6335
|
+
(0, import_jsx_runtime$13.jsx)("div", {
|
|
6336
|
+
className: "overflow-hidden mt-6 w-full text-3xl font-medium leading-tight text-center truncate whitespace-nowrap select-text text-foreground",
|
|
6337
|
+
children: member.name
|
|
6338
|
+
}),
|
|
6339
|
+
(0, import_jsx_runtime$13.jsx)("div", {
|
|
6340
|
+
className: "overflow-hidden mt-2 w-full text-3xl leading-tight text-center truncate whitespace-nowrap select-text text-default-500",
|
|
6341
|
+
children: member.title
|
|
6309
6342
|
})
|
|
6310
6343
|
]
|
|
6311
|
-
}),
|
|
6312
|
-
|
|
6313
|
-
className: "flex flex-col gap-1 items-start px-6 py-3 rounded-2xl bg-default-100",
|
|
6344
|
+
}, member.mid)), otherStaff.length > visibleCount && (0, import_jsx_runtime$13.jsxs)("div", {
|
|
6345
|
+
className: "flex flex-col items-center min-w-42 w-42 shrink-0",
|
|
6314
6346
|
children: [
|
|
6347
|
+
(0, import_jsx_runtime$13.jsx)("div", {
|
|
6348
|
+
className: "flex justify-center items-center rounded-full bg-default-200 w-30 h-30",
|
|
6349
|
+
children: (0, import_jsx_runtime$13.jsx)("span", {
|
|
6350
|
+
className: "text-[42px] leading-none text-default-500",
|
|
6351
|
+
children: "···"
|
|
6352
|
+
})
|
|
6353
|
+
}),
|
|
6315
6354
|
(0, import_jsx_runtime$13.jsxs)("div", {
|
|
6316
|
-
className: "
|
|
6317
|
-
children: [
|
|
6318
|
-
|
|
6319
|
-
|
|
6320
|
-
|
|
6321
|
-
|
|
6322
|
-
children: "关注"
|
|
6323
|
-
})]
|
|
6355
|
+
className: "overflow-hidden mt-6 w-full text-3xl font-medium leading-tight text-center truncate whitespace-nowrap select-text text-foreground",
|
|
6356
|
+
children: [
|
|
6357
|
+
"还有",
|
|
6358
|
+
otherStaff.length - visibleCount,
|
|
6359
|
+
"人"
|
|
6360
|
+
]
|
|
6324
6361
|
}),
|
|
6325
|
-
(0, import_jsx_runtime$13.jsx)("div", {
|
|
6326
|
-
|
|
6327
|
-
|
|
6328
|
-
children: props.following_count
|
|
6362
|
+
(0, import_jsx_runtime$13.jsx)("div", {
|
|
6363
|
+
className: "overflow-hidden mt-2 w-full text-3xl leading-tight text-center truncate whitespace-nowrap select-text text-default-500",
|
|
6364
|
+
children: "共创"
|
|
6329
6365
|
})
|
|
6330
6366
|
]
|
|
6331
|
-
})
|
|
6332
|
-
|
|
6333
|
-
|
|
6367
|
+
})]
|
|
6368
|
+
})
|
|
6369
|
+
}),
|
|
6370
|
+
(0, import_jsx_runtime$13.jsx)("div", { className: "h-15" }),
|
|
6371
|
+
(0, import_jsx_runtime$13.jsxs)("div", {
|
|
6372
|
+
className: "flex justify-between items-start px-20 pb-20",
|
|
6373
|
+
children: [(0, import_jsx_runtime$13.jsxs)("div", {
|
|
6374
|
+
className: "flex flex-col gap-12",
|
|
6375
|
+
children: [(0, import_jsx_runtime$13.jsxs)("div", {
|
|
6376
|
+
className: "flex gap-12 items-start",
|
|
6377
|
+
children: [(0, import_jsx_runtime$13.jsxs)("div", {
|
|
6378
|
+
className: "relative shrink-0",
|
|
6379
|
+
children: [(0, import_jsx_runtime$13.jsx)(EnhancedImage, {
|
|
6380
|
+
src: props.data.avatar_url,
|
|
6381
|
+
alt: "头像",
|
|
6382
|
+
className: "rounded-full shadow-medium w-35 h-auto",
|
|
6383
|
+
isCircular: true
|
|
6384
|
+
}), props.data.frame && (0, import_jsx_runtime$13.jsx)(EnhancedImage, {
|
|
6385
|
+
src: props.data.frame,
|
|
6386
|
+
alt: "头像框",
|
|
6387
|
+
className: "absolute inset-0 transform scale-180"
|
|
6388
|
+
})]
|
|
6389
|
+
}), (0, import_jsx_runtime$13.jsxs)("div", {
|
|
6390
|
+
className: "flex flex-col gap-5",
|
|
6391
|
+
children: [(0, import_jsx_runtime$13.jsx)("div", {
|
|
6392
|
+
className: "text-7xl font-bold select-text text-foreground",
|
|
6393
|
+
children: (0, import_jsx_runtime$13.jsx)("span", { dangerouslySetInnerHTML: { __html: props.data.username } })
|
|
6394
|
+
}), (0, import_jsx_runtime$13.jsxs)("div", {
|
|
6395
|
+
className: "flex gap-2 items-center text-4xl text-default-500",
|
|
6396
|
+
children: [
|
|
6397
|
+
(0, import_jsx_runtime$13.jsx)(Hash, { size: 32 }),
|
|
6398
|
+
(0, import_jsx_runtime$13.jsxs)("span", { children: ["UID: ", props.data.user_shortid] }),
|
|
6399
|
+
currentUserRole && (0, import_jsx_runtime$13.jsx)("span", {
|
|
6400
|
+
className: "ml-5 px-3 py-1 rounded-xl bg-default-200 text-3xl",
|
|
6401
|
+
children: currentUserRole
|
|
6402
|
+
})
|
|
6403
|
+
]
|
|
6404
|
+
})]
|
|
6405
|
+
})]
|
|
6406
|
+
}), (0, import_jsx_runtime$13.jsxs)("div", {
|
|
6407
|
+
className: "text-3xl flex gap-6 items-center text-default-600",
|
|
6334
6408
|
children: [
|
|
6335
6409
|
(0, import_jsx_runtime$13.jsxs)("div", {
|
|
6336
|
-
className: "flex gap-1 items-
|
|
6337
|
-
children: [
|
|
6338
|
-
|
|
6339
|
-
|
|
6340
|
-
|
|
6341
|
-
|
|
6342
|
-
|
|
6343
|
-
|
|
6410
|
+
className: "flex flex-col gap-1 items-start px-6 py-3 rounded-2xl bg-default-100",
|
|
6411
|
+
children: [
|
|
6412
|
+
(0, import_jsx_runtime$13.jsxs)("div", {
|
|
6413
|
+
className: "flex gap-1 items-center",
|
|
6414
|
+
children: [(0, import_jsx_runtime$13.jsx)(Heart, {
|
|
6415
|
+
size: 28,
|
|
6416
|
+
className: "text-like"
|
|
6417
|
+
}), (0, import_jsx_runtime$13.jsx)("span", {
|
|
6418
|
+
className: "text-default-400",
|
|
6419
|
+
children: "获赞"
|
|
6420
|
+
})]
|
|
6421
|
+
}),
|
|
6422
|
+
(0, import_jsx_runtime$13.jsx)("div", { className: "w-full h-px bg-default-300" }),
|
|
6423
|
+
(0, import_jsx_runtime$13.jsx)("span", {
|
|
6424
|
+
className: "select-text font-medium text-4xl",
|
|
6425
|
+
children: props.data.total_favorited
|
|
6426
|
+
})
|
|
6427
|
+
]
|
|
6344
6428
|
}),
|
|
6345
|
-
(0, import_jsx_runtime$13.
|
|
6346
|
-
|
|
6347
|
-
|
|
6348
|
-
|
|
6429
|
+
(0, import_jsx_runtime$13.jsxs)("div", {
|
|
6430
|
+
className: "flex flex-col gap-1 items-start px-6 py-3 rounded-2xl bg-default-100",
|
|
6431
|
+
children: [
|
|
6432
|
+
(0, import_jsx_runtime$13.jsxs)("div", {
|
|
6433
|
+
className: "flex gap-1 items-center",
|
|
6434
|
+
children: [(0, import_jsx_runtime$13.jsx)(Eye, {
|
|
6435
|
+
size: 28,
|
|
6436
|
+
className: "text-view"
|
|
6437
|
+
}), (0, import_jsx_runtime$13.jsx)("span", {
|
|
6438
|
+
className: "text-default-400",
|
|
6439
|
+
children: "关注"
|
|
6440
|
+
})]
|
|
6441
|
+
}),
|
|
6442
|
+
(0, import_jsx_runtime$13.jsx)("div", { className: "w-full h-px bg-default-300" }),
|
|
6443
|
+
(0, import_jsx_runtime$13.jsx)("span", {
|
|
6444
|
+
className: "select-text font-medium text-4xl",
|
|
6445
|
+
children: props.data.following_count
|
|
6446
|
+
})
|
|
6447
|
+
]
|
|
6448
|
+
}),
|
|
6449
|
+
(0, import_jsx_runtime$13.jsxs)("div", {
|
|
6450
|
+
className: "flex flex-col gap-1 items-start px-6 py-3 rounded-2xl bg-default-100",
|
|
6451
|
+
children: [
|
|
6452
|
+
(0, import_jsx_runtime$13.jsxs)("div", {
|
|
6453
|
+
className: "flex gap-1 items-center",
|
|
6454
|
+
children: [(0, import_jsx_runtime$13.jsx)(Users, {
|
|
6455
|
+
size: 28,
|
|
6456
|
+
className: "text-primary"
|
|
6457
|
+
}), (0, import_jsx_runtime$13.jsx)("span", {
|
|
6458
|
+
className: "text-default-400",
|
|
6459
|
+
children: "粉丝"
|
|
6460
|
+
})]
|
|
6461
|
+
}),
|
|
6462
|
+
(0, import_jsx_runtime$13.jsx)("div", { className: "w-full h-px bg-default-300" }),
|
|
6463
|
+
(0, import_jsx_runtime$13.jsx)("span", {
|
|
6464
|
+
className: "select-text font-medium text-4xl",
|
|
6465
|
+
children: props.data.fans
|
|
6466
|
+
})
|
|
6467
|
+
]
|
|
6349
6468
|
})
|
|
6350
6469
|
]
|
|
6470
|
+
})]
|
|
6471
|
+
}), (0, import_jsx_runtime$13.jsx)("div", {
|
|
6472
|
+
className: "flex flex-col items-center gap-4",
|
|
6473
|
+
children: props.qrCodeDataUrl ? (0, import_jsx_runtime$13.jsx)("img", {
|
|
6474
|
+
src: props.qrCodeDataUrl,
|
|
6475
|
+
alt: "二维码",
|
|
6476
|
+
className: "h-auto w-75 rounded-xl"
|
|
6477
|
+
}) : (0, import_jsx_runtime$13.jsx)("div", {
|
|
6478
|
+
className: "flex justify-center items-center rounded-xl bg-default-100 w-100 h-100",
|
|
6479
|
+
children: (0, import_jsx_runtime$13.jsx)("span", {
|
|
6480
|
+
className: "text-default-400",
|
|
6481
|
+
children: "二维码"
|
|
6482
|
+
})
|
|
6351
6483
|
})
|
|
6352
|
-
]
|
|
6353
|
-
})]
|
|
6354
|
-
}), (0, import_jsx_runtime$13.jsx)("div", {
|
|
6355
|
-
className: "flex flex-col items-center gap-4",
|
|
6356
|
-
children: props.qrCodeDataUrl ? (0, import_jsx_runtime$13.jsx)("img", {
|
|
6357
|
-
src: props.qrCodeDataUrl,
|
|
6358
|
-
alt: "二维码",
|
|
6359
|
-
className: "h-auto w-75 rounded-xl"
|
|
6360
|
-
}) : (0, import_jsx_runtime$13.jsx)("div", {
|
|
6361
|
-
className: "flex justify-center items-center rounded-xl bg-default-100 w-100 h-100",
|
|
6362
|
-
children: (0, import_jsx_runtime$13.jsx)("span", {
|
|
6363
|
-
className: "text-default-400",
|
|
6364
|
-
children: "二维码"
|
|
6365
|
-
})
|
|
6484
|
+
})]
|
|
6366
6485
|
})
|
|
6367
|
-
})
|
|
6368
|
-
}
|
|
6486
|
+
] });
|
|
6487
|
+
};
|
|
6369
6488
|
BilibiliVideoDynamic = import_react$15.memo((props) => (0, import_jsx_runtime$13.jsx)(DefaultLayout, {
|
|
6370
6489
|
...props,
|
|
6371
6490
|
children: (0, import_jsx_runtime$13.jsxs)("div", {
|
|
6372
6491
|
className: "p-4",
|
|
6373
6492
|
children: [
|
|
6374
6493
|
(0, import_jsx_runtime$13.jsx)(BilibiliVideoDynamicHeader, {}),
|
|
6375
|
-
(0, import_jsx_runtime$13.jsx)(BilibiliVideoDynamicContent, {
|
|
6376
|
-
|
|
6377
|
-
desc: props.data.desc,
|
|
6378
|
-
image_url: props.data.image_url,
|
|
6379
|
-
dianzan: props.data.dianzan,
|
|
6380
|
-
pinglun: props.data.pinglun,
|
|
6381
|
-
share: props.data.share,
|
|
6382
|
-
coin: props.data.coin,
|
|
6383
|
-
view: props.data.view,
|
|
6384
|
-
duration_text: props.data.duration_text,
|
|
6385
|
-
create_time: props.data.create_time,
|
|
6386
|
-
dynamic_id: props.data.dynamic_id
|
|
6387
|
-
}),
|
|
6388
|
-
(0, import_jsx_runtime$13.jsx)(BilibiliVideoDynamicFooter, {
|
|
6389
|
-
avatar_url: props.data.avatar_url,
|
|
6390
|
-
frame: props.data.frame,
|
|
6391
|
-
username: props.data.username,
|
|
6392
|
-
user_shortid: props.data.user_shortid,
|
|
6393
|
-
total_favorited: props.data.total_favorited,
|
|
6394
|
-
following_count: props.data.following_count,
|
|
6395
|
-
fans: props.data.fans,
|
|
6396
|
-
dynamicTYPE: props.data.dynamicTYPE,
|
|
6397
|
-
share_url: props.data.share_url,
|
|
6398
|
-
qrCodeDataUrl: props.qrCodeDataUrl
|
|
6399
|
-
})
|
|
6494
|
+
(0, import_jsx_runtime$13.jsx)(BilibiliVideoDynamicContent, { ...props }),
|
|
6495
|
+
(0, import_jsx_runtime$13.jsx)(BilibiliVideoDynamicFooter, { ...props })
|
|
6400
6496
|
]
|
|
6401
6497
|
})
|
|
6402
6498
|
}));
|
|
@@ -9881,8 +9977,8 @@ var init_changelog = __esmMin(() => {
|
|
|
9881
9977
|
},
|
|
9882
9978
|
children: (0, import_jsx_runtime$2.jsxs)("div", {
|
|
9883
9979
|
className: "relative px-20 pt-5 pb-0 w-full max-w-none prose prose-lg prose-invert from-default-50 to-default-100",
|
|
9884
|
-
children: [
|
|
9885
|
-
(0, import_jsx_runtime$2.jsxs)("div", {
|
|
9980
|
+
children: [
|
|
9981
|
+
props.data.Tip === true ? (0, import_jsx_runtime$2.jsxs)(import_jsx_runtime$2.Fragment, { children: [(0, import_jsx_runtime$2.jsxs)("div", {
|
|
9886
9982
|
className: "inline-block relative mt-20",
|
|
9887
9983
|
children: [
|
|
9888
9984
|
(0, import_jsx_runtime$2.jsx)("div", { className: "absolute inset-0 bg-black rounded-2xl opacity-50 blur-xl translate-y-6 -z-10" }),
|
|
@@ -9899,166 +9995,246 @@ var init_changelog = __esmMin(() => {
|
|
|
9899
9995
|
})
|
|
9900
9996
|
})
|
|
9901
9997
|
]
|
|
9998
|
+
}), (0, import_jsx_runtime$2.jsxs)("div", {
|
|
9999
|
+
className: "py-12 pb-6",
|
|
10000
|
+
children: [(0, import_jsx_runtime$2.jsx)("div", {
|
|
10001
|
+
className: "text-4xl leading-relaxed text-center mb-8 opacity-50 text-default-600",
|
|
10002
|
+
children: "以下任意方式均可更新"
|
|
10003
|
+
}), (0, import_jsx_runtime$2.jsxs)("div", {
|
|
10004
|
+
className: "flex flex-col gap-6 text-[2.8em] leading-relaxed text-default-700",
|
|
10005
|
+
children: [
|
|
10006
|
+
(0, import_jsx_runtime$2.jsxs)("div", {
|
|
10007
|
+
className: "flex items-center gap-5",
|
|
10008
|
+
children: [
|
|
10009
|
+
(0, import_jsx_runtime$2.jsx)("span", {
|
|
10010
|
+
className: "text-warning text-[1.2em]",
|
|
10011
|
+
children: "•"
|
|
10012
|
+
}),
|
|
10013
|
+
(0, import_jsx_runtime$2.jsx)("span", { children: "引用回复此消息包含" }),
|
|
10014
|
+
(0, import_jsx_runtime$2.jsx)(GlowText, {
|
|
10015
|
+
className: "inline-block text-[1.15em] font-bold text-warning",
|
|
10016
|
+
blurRadius: 15,
|
|
10017
|
+
glowStrength: 2,
|
|
10018
|
+
scale: 1.1,
|
|
10019
|
+
children: "更新"
|
|
10020
|
+
}),
|
|
10021
|
+
(0, import_jsx_runtime$2.jsx)("span", { children: "字眼" })
|
|
10022
|
+
]
|
|
10023
|
+
}),
|
|
10024
|
+
(0, import_jsx_runtime$2.jsxs)("div", {
|
|
10025
|
+
className: "flex items-center gap-5",
|
|
10026
|
+
children: [
|
|
10027
|
+
(0, import_jsx_runtime$2.jsx)("span", {
|
|
10028
|
+
className: "text-warning text-[1.2em]",
|
|
10029
|
+
children: "•"
|
|
10030
|
+
}),
|
|
10031
|
+
(0, import_jsx_runtime$2.jsx)("span", { children: "Karin 的" }),
|
|
10032
|
+
(0, import_jsx_runtime$2.jsx)(GlowText, {
|
|
10033
|
+
blurRadius: 10,
|
|
10034
|
+
glowStrength: 1.5,
|
|
10035
|
+
scale: 1.05,
|
|
10036
|
+
children: (0, import_jsx_runtime$2.jsx)(code_default, {
|
|
10037
|
+
radius: "lg",
|
|
10038
|
+
color: "warning",
|
|
10039
|
+
className: "text-[0.9em]",
|
|
10040
|
+
children: "WebUI"
|
|
10041
|
+
})
|
|
10042
|
+
}),
|
|
10043
|
+
(0, import_jsx_runtime$2.jsx)("span", { children: "→" }),
|
|
10044
|
+
(0, import_jsx_runtime$2.jsx)(GlowText, {
|
|
10045
|
+
blurRadius: 10,
|
|
10046
|
+
glowStrength: 1.5,
|
|
10047
|
+
scale: 1.05,
|
|
10048
|
+
children: (0, import_jsx_runtime$2.jsx)(code_default, {
|
|
10049
|
+
radius: "lg",
|
|
10050
|
+
color: "warning",
|
|
10051
|
+
className: "text-[0.9em]",
|
|
10052
|
+
children: "插件管理"
|
|
10053
|
+
})
|
|
10054
|
+
}),
|
|
10055
|
+
(0, import_jsx_runtime$2.jsx)("span", { children: "→" }),
|
|
10056
|
+
(0, import_jsx_runtime$2.jsx)(GlowText, {
|
|
10057
|
+
blurRadius: 10,
|
|
10058
|
+
glowStrength: 1.5,
|
|
10059
|
+
scale: 1.05,
|
|
10060
|
+
children: (0, import_jsx_runtime$2.jsx)(code_default, {
|
|
10061
|
+
radius: "lg",
|
|
10062
|
+
color: "warning",
|
|
10063
|
+
className: "text-[0.9em]",
|
|
10064
|
+
children: "已安装"
|
|
10065
|
+
})
|
|
10066
|
+
})
|
|
10067
|
+
]
|
|
10068
|
+
}),
|
|
10069
|
+
(0, import_jsx_runtime$2.jsxs)("div", {
|
|
10070
|
+
className: "flex items-center gap-5",
|
|
10071
|
+
children: [
|
|
10072
|
+
(0, import_jsx_runtime$2.jsx)("span", {
|
|
10073
|
+
className: "text-warning text-[1.2em]",
|
|
10074
|
+
children: "•"
|
|
10075
|
+
}),
|
|
10076
|
+
(0, import_jsx_runtime$2.jsx)("span", { children: "Karin 目录运行" }),
|
|
10077
|
+
(0, import_jsx_runtime$2.jsx)(GlowText, {
|
|
10078
|
+
blurRadius: 10,
|
|
10079
|
+
glowStrength: 1.5,
|
|
10080
|
+
scale: 1.05,
|
|
10081
|
+
children: (0, import_jsx_runtime$2.jsxs)(code_default, {
|
|
10082
|
+
radius: "lg",
|
|
10083
|
+
color: "warning",
|
|
10084
|
+
className: "text-[0.85em] whitespace-nowrap",
|
|
10085
|
+
children: [
|
|
10086
|
+
"pnpm add karin-plugin-kkk@",
|
|
10087
|
+
props.data.remoteVersion,
|
|
10088
|
+
" -w"
|
|
10089
|
+
]
|
|
10090
|
+
})
|
|
10091
|
+
})
|
|
10092
|
+
]
|
|
10093
|
+
})
|
|
10094
|
+
]
|
|
10095
|
+
})]
|
|
10096
|
+
})] }) : null,
|
|
10097
|
+
(0, import_jsx_runtime$2.jsx)("div", {
|
|
10098
|
+
className: "changelog-content",
|
|
10099
|
+
children: (0, import_jsx_runtime$2.jsx)(Markdown, {
|
|
10100
|
+
rehypePlugins: [rehypeHighlight],
|
|
10101
|
+
components: {
|
|
10102
|
+
h1: ({ children, ...props$1 }) => (0, import_jsx_runtime$2.jsx)("h1", {
|
|
10103
|
+
className: "text-[5.28em] font-semibold mb-8 pb-2 border-b-2 border-default-400 text-default-900",
|
|
10104
|
+
...props$1,
|
|
10105
|
+
children
|
|
10106
|
+
}),
|
|
10107
|
+
h2: ({ children, ...props$1 }) => (0, import_jsx_runtime$2.jsxs)("div", {
|
|
10108
|
+
className: "relative mt-20 mb-5",
|
|
10109
|
+
children: [
|
|
10110
|
+
(0, import_jsx_runtime$2.jsx)("div", {
|
|
10111
|
+
className: "absolute -top-13 left-0 text-[11em] font-black text-default-200/50 select-none pointer-events-none uppercase leading-none",
|
|
10112
|
+
"aria-hidden": "true",
|
|
10113
|
+
children: typeof children === "string" ? children : "H2"
|
|
10114
|
+
}),
|
|
10115
|
+
(0, import_jsx_runtime$2.jsx)("h2", {
|
|
10116
|
+
className: "ml-15 relative z-10 text-[3.8em] pb-2 text-default-900 font-medium",
|
|
10117
|
+
...props$1,
|
|
10118
|
+
children
|
|
10119
|
+
}),
|
|
10120
|
+
(0, import_jsx_runtime$2.jsx)("div", { className: "w-full border-b border-default-400" })
|
|
10121
|
+
]
|
|
10122
|
+
}),
|
|
10123
|
+
h3: ({ children, ...props$1 }) => (0, import_jsx_runtime$2.jsxs)("h3", {
|
|
10124
|
+
className: "flex items-baseline gap-3 text-[3.3em] font-semibold mb-6 text-default-900",
|
|
10125
|
+
...props$1,
|
|
10126
|
+
children: [children, (0, import_jsx_runtime$2.jsx)(CornerDownLeft, {
|
|
10127
|
+
strokeWidth: 2.5,
|
|
10128
|
+
className: "w-[1em] h-[1em] text-default-200"
|
|
10129
|
+
})]
|
|
10130
|
+
}),
|
|
10131
|
+
h4: ({ children, ...props$1 }) => (0, import_jsx_runtime$2.jsx)("h4", {
|
|
10132
|
+
className: "text-[2.64em] font-semibold mb-5 text-default-900",
|
|
10133
|
+
...props$1,
|
|
10134
|
+
children
|
|
10135
|
+
}),
|
|
10136
|
+
h5: ({ children, ...props$1 }) => (0, import_jsx_runtime$2.jsx)("h5", {
|
|
10137
|
+
className: "text-[2.38em] font-semibold mb-5 text-default-900",
|
|
10138
|
+
...props$1,
|
|
10139
|
+
children
|
|
10140
|
+
}),
|
|
10141
|
+
h6: ({ children, ...props$1 }) => (0, import_jsx_runtime$2.jsx)("h6", {
|
|
10142
|
+
className: "text-[2.11em] font-semibold mb-4 text-default-600",
|
|
10143
|
+
...props$1,
|
|
10144
|
+
children
|
|
10145
|
+
}),
|
|
10146
|
+
p: ({ children, ...props$1 }) => (0, import_jsx_runtime$2.jsx)("p", {
|
|
10147
|
+
className: "text-[2.64em] leading-[1.75] mb-[2.64em] text-default-900",
|
|
10148
|
+
...props$1,
|
|
10149
|
+
children
|
|
10150
|
+
}),
|
|
10151
|
+
ul: ({ children, ...props$1 }) => (0, import_jsx_runtime$2.jsx)("ul", {
|
|
10152
|
+
className: "pl-[5em] mb-[2em] list-disc text-default-900",
|
|
10153
|
+
...props$1,
|
|
10154
|
+
children
|
|
10155
|
+
}),
|
|
10156
|
+
ol: ({ children, ...props$1 }) => (0, import_jsx_runtime$2.jsx)("ol", {
|
|
10157
|
+
className: "pl-[3.6em] mb-[1.8em] list-decimal text-default-900",
|
|
10158
|
+
...props$1,
|
|
10159
|
+
children
|
|
10160
|
+
}),
|
|
10161
|
+
li: ({ children, ...props$1 }) => (0, import_jsx_runtime$2.jsx)("li", {
|
|
10162
|
+
className: "text-[2.6em] leading-[1.6] text-default-900",
|
|
10163
|
+
...props$1,
|
|
10164
|
+
children
|
|
10165
|
+
}),
|
|
10166
|
+
blockquote: ({ children, ...props$1 }) => (0, import_jsx_runtime$2.jsx)("blockquote", {
|
|
10167
|
+
className: "border-l-4 border-default-500 pl-[1.8em] py-[0.9em] mb-[1.8em] text-default-700 bg-default-100",
|
|
10168
|
+
...props$1,
|
|
10169
|
+
children
|
|
10170
|
+
}),
|
|
10171
|
+
code: ({ children }) => (0, import_jsx_runtime$2.jsx)(code_default, {
|
|
10172
|
+
radius: "lg",
|
|
10173
|
+
color: "warning",
|
|
10174
|
+
className: "inline align-text-bottom leading-inherit text-[0.8em] whitespace-normal break-all box-decoration-slice",
|
|
10175
|
+
children
|
|
10176
|
+
}),
|
|
10177
|
+
pre: ({ children, ...props$1 }) => (0, import_jsx_runtime$2.jsx)("pre", {
|
|
10178
|
+
className: "p-[1.8em] mb-[1.8em] bg-default-200 rounded overflow-x-auto font-mono",
|
|
10179
|
+
...props$1,
|
|
10180
|
+
children
|
|
10181
|
+
}),
|
|
10182
|
+
a: ({ children, href, ...props$1 }) => (0, import_jsx_runtime$2.jsxs)("a", {
|
|
10183
|
+
className: "inline-flex gap-3 items-baseline cursor-pointer text-warning hover:underline",
|
|
10184
|
+
onClick: (e) => e.preventDefault(),
|
|
10185
|
+
...props$1,
|
|
10186
|
+
children: [(0, import_jsx_runtime$2.jsx)(GlowText, {
|
|
10187
|
+
blurRadius: 10,
|
|
10188
|
+
glowStrength: 3,
|
|
10189
|
+
scale: 1.2,
|
|
10190
|
+
children
|
|
10191
|
+
}), (0, import_jsx_runtime$2.jsx)(GlowText, {
|
|
10192
|
+
blurRadius: 10,
|
|
10193
|
+
glowStrength: 3,
|
|
10194
|
+
scale: 1.2,
|
|
10195
|
+
children: (0, import_jsx_runtime$2.jsx)(ExternalLink, { className: "w-[1.1em] h-[1.1em] -mb-[0.1em]" })
|
|
10196
|
+
})]
|
|
10197
|
+
}),
|
|
10198
|
+
img: ({ ...props$1 }) => (0, import_jsx_runtime$2.jsx)("img", {
|
|
10199
|
+
className: "max-w-full h-auto rounded",
|
|
10200
|
+
...props$1
|
|
10201
|
+
}),
|
|
10202
|
+
table: ({ children, ...props$1 }) => (0, import_jsx_runtime$2.jsx)("table", {
|
|
10203
|
+
className: "w-full border-collapse mb-[1.8em] text-default-900",
|
|
10204
|
+
...props$1,
|
|
10205
|
+
children
|
|
10206
|
+
}),
|
|
10207
|
+
th: ({ children, ...props$1 }) => (0, import_jsx_runtime$2.jsx)("th", {
|
|
10208
|
+
className: "px-5 py-3 font-semibold text-left border text-default-900 bg-default-200 border-default-400",
|
|
10209
|
+
...props$1,
|
|
10210
|
+
children
|
|
10211
|
+
}),
|
|
10212
|
+
td: ({ children, ...props$1 }) => (0, import_jsx_runtime$2.jsx)("td", {
|
|
10213
|
+
className: "px-5 py-3 border text-default-900 border-default-400",
|
|
10214
|
+
...props$1,
|
|
10215
|
+
children
|
|
10216
|
+
})
|
|
10217
|
+
},
|
|
10218
|
+
children: props.data?.markdown ?? ""
|
|
10219
|
+
})
|
|
9902
10220
|
}),
|
|
9903
|
-
(0, import_jsx_runtime$2.jsxs)("div", {
|
|
9904
|
-
className: "py-
|
|
9905
|
-
children: [
|
|
9906
|
-
"引用回复此消息包含",
|
|
9907
|
-
(0, import_jsx_runtime$2.jsx)("span", {
|
|
9908
|
-
className: "text-7xl",
|
|
9909
|
-
children: "「"
|
|
9910
|
-
}),
|
|
9911
|
-
(0, import_jsx_runtime$2.jsx)(GlowText, {
|
|
9912
|
-
className: "text-7xl font-bold text-warning",
|
|
9913
|
-
blurRadius: 20,
|
|
9914
|
-
glowStrength: 2,
|
|
9915
|
-
scale: 1.2,
|
|
9916
|
-
children: "更新"
|
|
9917
|
-
}),
|
|
9918
|
-
(0, import_jsx_runtime$2.jsx)("span", {
|
|
9919
|
-
className: "text-7xl",
|
|
9920
|
-
children: "」"
|
|
9921
|
-
}),
|
|
9922
|
-
"字眼,即可开始更新"
|
|
9923
|
-
]
|
|
9924
|
-
}),
|
|
9925
|
-
props.data.buildTime && (0, import_jsx_runtime$2.jsxs)("div", {
|
|
9926
|
-
className: "flex gap-4 opacity-50",
|
|
10221
|
+
props.data.Tip === true && props.data.buildTime && (0, import_jsx_runtime$2.jsxs)("div", {
|
|
10222
|
+
className: "flex gap-8 justify-center py-12 mt-16 border-t-2 border-default-300 opacity-60",
|
|
9927
10223
|
children: [(0, import_jsx_runtime$2.jsxs)("div", {
|
|
9928
|
-
className: "text-4xl
|
|
10224
|
+
className: "text-4xl",
|
|
9929
10225
|
children: ["更新频道:", (0, import_jsx_runtime$2.jsx)("span", {
|
|
9930
10226
|
className: "font-bold text-warning-200",
|
|
9931
10227
|
children: " 正式版"
|
|
9932
10228
|
})]
|
|
9933
10229
|
}), (0, import_jsx_runtime$2.jsxs)("div", {
|
|
9934
|
-
className: "text-4xl
|
|
10230
|
+
className: "text-4xl",
|
|
9935
10231
|
children: ["编译于:", (0, import_jsx_runtime$2.jsxs)("span", {
|
|
9936
10232
|
className: "font-bold text-warning-200",
|
|
9937
10233
|
children: [" ", props.data.buildTime]
|
|
9938
10234
|
})]
|
|
9939
10235
|
})]
|
|
9940
10236
|
})
|
|
9941
|
-
]
|
|
9942
|
-
rehypePlugins: [rehypeHighlight],
|
|
9943
|
-
components: {
|
|
9944
|
-
h1: ({ children, ...props$1 }) => (0, import_jsx_runtime$2.jsx)("h1", {
|
|
9945
|
-
className: "text-[5.28em] font-semibold mb-8 pb-2 border-b-2 border-default-400 text-default-900",
|
|
9946
|
-
...props$1,
|
|
9947
|
-
children
|
|
9948
|
-
}),
|
|
9949
|
-
h2: ({ children, ...props$1 }) => (0, import_jsx_runtime$2.jsxs)("div", {
|
|
9950
|
-
className: "relative mt-20 mb-5",
|
|
9951
|
-
children: [
|
|
9952
|
-
(0, import_jsx_runtime$2.jsx)("div", {
|
|
9953
|
-
className: "absolute -top-13 left-0 text-[11em] font-black text-default-200/50 select-none pointer-events-none uppercase leading-none",
|
|
9954
|
-
"aria-hidden": "true",
|
|
9955
|
-
children: typeof children === "string" ? children : "H2"
|
|
9956
|
-
}),
|
|
9957
|
-
(0, import_jsx_runtime$2.jsx)("h2", {
|
|
9958
|
-
className: "ml-15 relative z-10 text-[3.8em] pb-2 text-default-900 font-medium",
|
|
9959
|
-
...props$1,
|
|
9960
|
-
children
|
|
9961
|
-
}),
|
|
9962
|
-
(0, import_jsx_runtime$2.jsx)("div", { className: "w-full border-b border-default-400" })
|
|
9963
|
-
]
|
|
9964
|
-
}),
|
|
9965
|
-
h3: ({ children, ...props$1 }) => (0, import_jsx_runtime$2.jsxs)("h3", {
|
|
9966
|
-
className: "flex items-baseline gap-3 text-[3.3em] font-semibold mb-6 text-default-900",
|
|
9967
|
-
...props$1,
|
|
9968
|
-
children: [children, (0, import_jsx_runtime$2.jsx)(CornerDownLeft, {
|
|
9969
|
-
strokeWidth: 2.5,
|
|
9970
|
-
className: "w-[1em] h-[1em] text-default-200"
|
|
9971
|
-
})]
|
|
9972
|
-
}),
|
|
9973
|
-
h4: ({ children, ...props$1 }) => (0, import_jsx_runtime$2.jsx)("h4", {
|
|
9974
|
-
className: "text-[2.64em] font-semibold mb-5 text-default-900",
|
|
9975
|
-
...props$1,
|
|
9976
|
-
children
|
|
9977
|
-
}),
|
|
9978
|
-
h5: ({ children, ...props$1 }) => (0, import_jsx_runtime$2.jsx)("h5", {
|
|
9979
|
-
className: "text-[2.38em] font-semibold mb-5 text-default-900",
|
|
9980
|
-
...props$1,
|
|
9981
|
-
children
|
|
9982
|
-
}),
|
|
9983
|
-
h6: ({ children, ...props$1 }) => (0, import_jsx_runtime$2.jsx)("h6", {
|
|
9984
|
-
className: "text-[2.11em] font-semibold mb-4 text-default-600",
|
|
9985
|
-
...props$1,
|
|
9986
|
-
children
|
|
9987
|
-
}),
|
|
9988
|
-
p: ({ children, ...props$1 }) => (0, import_jsx_runtime$2.jsx)("p", {
|
|
9989
|
-
className: "text-[2.64em] leading-[1.75] mb-[2.64em] text-default-900",
|
|
9990
|
-
...props$1,
|
|
9991
|
-
children
|
|
9992
|
-
}),
|
|
9993
|
-
ul: ({ children, ...props$1 }) => (0, import_jsx_runtime$2.jsx)("ul", {
|
|
9994
|
-
className: "pl-[5em] mb-[2em] list-disc text-default-900",
|
|
9995
|
-
...props$1,
|
|
9996
|
-
children
|
|
9997
|
-
}),
|
|
9998
|
-
ol: ({ children, ...props$1 }) => (0, import_jsx_runtime$2.jsx)("ol", {
|
|
9999
|
-
className: "pl-[3.6em] mb-[1.8em] list-decimal text-default-900",
|
|
10000
|
-
...props$1,
|
|
10001
|
-
children
|
|
10002
|
-
}),
|
|
10003
|
-
li: ({ children, ...props$1 }) => (0, import_jsx_runtime$2.jsx)("li", {
|
|
10004
|
-
className: "text-[2.6em] leading-[1.6] text-default-900",
|
|
10005
|
-
...props$1,
|
|
10006
|
-
children
|
|
10007
|
-
}),
|
|
10008
|
-
blockquote: ({ children, ...props$1 }) => (0, import_jsx_runtime$2.jsx)("blockquote", {
|
|
10009
|
-
className: "border-l-4 border-default-500 pl-[1.8em] py-[0.9em] mb-[1.8em] text-default-700 bg-default-100",
|
|
10010
|
-
...props$1,
|
|
10011
|
-
children
|
|
10012
|
-
}),
|
|
10013
|
-
code: ({ children }) => (0, import_jsx_runtime$2.jsx)(code_default, {
|
|
10014
|
-
radius: "lg",
|
|
10015
|
-
color: "warning",
|
|
10016
|
-
className: "inline align-text-bottom leading-inherit text-[0.8em] whitespace-normal break-all box-decoration-slice",
|
|
10017
|
-
children
|
|
10018
|
-
}),
|
|
10019
|
-
pre: ({ children, ...props$1 }) => (0, import_jsx_runtime$2.jsx)("pre", {
|
|
10020
|
-
className: "p-[1.8em] mb-[1.8em] bg-default-200 rounded overflow-x-auto font-mono",
|
|
10021
|
-
...props$1,
|
|
10022
|
-
children
|
|
10023
|
-
}),
|
|
10024
|
-
a: ({ children, href, ...props$1 }) => (0, import_jsx_runtime$2.jsxs)("a", {
|
|
10025
|
-
className: "inline-flex gap-3 items-baseline cursor-pointer text-warning hover:underline",
|
|
10026
|
-
onClick: (e) => e.preventDefault(),
|
|
10027
|
-
...props$1,
|
|
10028
|
-
children: [(0, import_jsx_runtime$2.jsx)(GlowText, {
|
|
10029
|
-
blurRadius: 10,
|
|
10030
|
-
glowStrength: 3,
|
|
10031
|
-
scale: 1.2,
|
|
10032
|
-
children
|
|
10033
|
-
}), (0, import_jsx_runtime$2.jsx)(GlowText, {
|
|
10034
|
-
blurRadius: 10,
|
|
10035
|
-
glowStrength: 3,
|
|
10036
|
-
scale: 1.2,
|
|
10037
|
-
children: (0, import_jsx_runtime$2.jsx)(ExternalLink, { className: "w-[1.1em] h-[1.1em] -mb-[0.1em]" })
|
|
10038
|
-
})]
|
|
10039
|
-
}),
|
|
10040
|
-
img: ({ ...props$1 }) => (0, import_jsx_runtime$2.jsx)("img", {
|
|
10041
|
-
className: "max-w-full h-auto rounded",
|
|
10042
|
-
...props$1
|
|
10043
|
-
}),
|
|
10044
|
-
table: ({ children, ...props$1 }) => (0, import_jsx_runtime$2.jsx)("table", {
|
|
10045
|
-
className: "w-full border-collapse mb-[1.8em] text-default-900",
|
|
10046
|
-
...props$1,
|
|
10047
|
-
children
|
|
10048
|
-
}),
|
|
10049
|
-
th: ({ children, ...props$1 }) => (0, import_jsx_runtime$2.jsx)("th", {
|
|
10050
|
-
className: "px-5 py-3 font-semibold text-left border text-default-900 bg-default-200 border-default-400",
|
|
10051
|
-
...props$1,
|
|
10052
|
-
children
|
|
10053
|
-
}),
|
|
10054
|
-
td: ({ children, ...props$1 }) => (0, import_jsx_runtime$2.jsx)("td", {
|
|
10055
|
-
className: "px-5 py-3 border text-default-900 border-default-400",
|
|
10056
|
-
...props$1,
|
|
10057
|
-
children
|
|
10058
|
-
})
|
|
10059
|
-
},
|
|
10060
|
-
children: props.data?.markdown ?? ""
|
|
10061
|
-
})]
|
|
10237
|
+
]
|
|
10062
10238
|
})
|
|
10063
10239
|
}));
|
|
10064
10240
|
Changelog.displayName = "Changelog";
|
|
@@ -10084,7 +10260,7 @@ var init_VersionWarning = __esmMin(() => {
|
|
|
10084
10260
|
className: "relative overflow-hidden",
|
|
10085
10261
|
style: {
|
|
10086
10262
|
backgroundColor: bgColor,
|
|
10087
|
-
height: "
|
|
10263
|
+
height: "2450px"
|
|
10088
10264
|
},
|
|
10089
10265
|
children: [
|
|
10090
10266
|
(0, import_jsx_runtime$1.jsxs)("div", {
|
|
@@ -10179,7 +10355,7 @@ var init_VersionWarning = __esmMin(() => {
|
|
|
10179
10355
|
(0, import_jsx_runtime$1.jsx)("h1", {
|
|
10180
10356
|
className: "text-[180px] font-black leading-none",
|
|
10181
10357
|
style: { color: accentColor },
|
|
10182
|
-
children: "
|
|
10358
|
+
children: "请升级你的"
|
|
10183
10359
|
}),
|
|
10184
10360
|
(0, import_jsx_runtime$1.jsx)("h1", {
|
|
10185
10361
|
className: "text-[120px] font-black leading-none",
|
|
@@ -10317,7 +10493,7 @@ var init_VersionWarning = __esmMin(() => {
|
|
|
10317
10493
|
(0, import_jsx_runtime$1.jsx)("span", {
|
|
10318
10494
|
className: "text-[28px] font-medium",
|
|
10319
10495
|
style: { color: mutedColor },
|
|
10320
|
-
children: "
|
|
10496
|
+
children: "需要/建议的版本"
|
|
10321
10497
|
}),
|
|
10322
10498
|
(0, import_jsx_runtime$1.jsx)(chip_default, {
|
|
10323
10499
|
className: "text-lg font-bold",
|
|
@@ -10341,37 +10517,188 @@ var init_VersionWarning = __esmMin(() => {
|
|
|
10341
10517
|
className: "h-0.5 rounded-full mb-10",
|
|
10342
10518
|
style: { backgroundColor: isDark ? "rgba(251,146,60,0.2)" : "rgba(180,83,9,0.15)" }
|
|
10343
10519
|
}),
|
|
10344
|
-
(0, import_jsx_runtime$1.jsxs)("div", {
|
|
10345
|
-
className: "
|
|
10346
|
-
children: [(0, import_jsx_runtime$1.
|
|
10347
|
-
className: "
|
|
10520
|
+
(0, import_jsx_runtime$1.jsxs)("div", {
|
|
10521
|
+
className: "space-y-20",
|
|
10522
|
+
children: [(0, import_jsx_runtime$1.jsxs)("div", { children: [(0, import_jsx_runtime$1.jsxs)("div", {
|
|
10523
|
+
className: "flex items-center space-x-4 mb-6",
|
|
10524
|
+
children: [
|
|
10525
|
+
(0, import_jsx_runtime$1.jsx)("div", {
|
|
10526
|
+
className: "flex items-center justify-center w-10 h-10 rounded-lg",
|
|
10527
|
+
style: { backgroundColor: isDark ? "rgba(251,146,60,0.15)" : "rgba(194,65,12,0.1)" },
|
|
10528
|
+
children: (0, import_jsx_runtime$1.jsx)("span", {
|
|
10529
|
+
className: "text-[28px] font-black",
|
|
10530
|
+
style: { color: accentColor },
|
|
10531
|
+
children: "1"
|
|
10532
|
+
})
|
|
10533
|
+
}),
|
|
10534
|
+
(0, import_jsx_runtime$1.jsxs)("svg", {
|
|
10535
|
+
className: "w-8 h-8",
|
|
10536
|
+
viewBox: "0 0 24 24",
|
|
10537
|
+
fill: "none",
|
|
10538
|
+
stroke: mutedColor,
|
|
10539
|
+
strokeWidth: "2",
|
|
10540
|
+
children: [(0, import_jsx_runtime$1.jsx)("rect", {
|
|
10541
|
+
x: "3",
|
|
10542
|
+
y: "3",
|
|
10543
|
+
width: "18",
|
|
10544
|
+
height: "18",
|
|
10545
|
+
rx: "2",
|
|
10546
|
+
strokeLinecap: "round",
|
|
10547
|
+
strokeLinejoin: "round"
|
|
10548
|
+
}), (0, import_jsx_runtime$1.jsx)("path", {
|
|
10549
|
+
d: "M9 3v18M3 9h18M3 15h18",
|
|
10550
|
+
strokeLinecap: "round",
|
|
10551
|
+
strokeLinejoin: "round"
|
|
10552
|
+
})]
|
|
10553
|
+
}),
|
|
10554
|
+
(0, import_jsx_runtime$1.jsx)("span", {
|
|
10555
|
+
className: "text-[32px] font-bold",
|
|
10556
|
+
style: { color: mutedColor },
|
|
10557
|
+
children: "Web 控制台更新"
|
|
10558
|
+
}),
|
|
10559
|
+
(0, import_jsx_runtime$1.jsx)(chip_default, {
|
|
10560
|
+
className: "text-[20px] font-semibold px-4",
|
|
10561
|
+
style: {
|
|
10562
|
+
backgroundColor: isDark ? "rgba(251,146,60,0.2)" : "rgba(194,65,12,0.15)",
|
|
10563
|
+
color: accentColor
|
|
10564
|
+
},
|
|
10565
|
+
size: "lg",
|
|
10566
|
+
children: "推荐"
|
|
10567
|
+
})
|
|
10568
|
+
]
|
|
10569
|
+
}), (0, import_jsx_runtime$1.jsxs)("div", {
|
|
10570
|
+
className: "ml-14 space-y-4",
|
|
10571
|
+
children: [
|
|
10572
|
+
(0, import_jsx_runtime$1.jsxs)("div", {
|
|
10573
|
+
className: "flex items-start space-x-4",
|
|
10574
|
+
children: [(0, import_jsx_runtime$1.jsx)("div", {
|
|
10575
|
+
className: "w-3 h-3 rounded-full mt-3 flex-shrink-0",
|
|
10576
|
+
style: { backgroundColor: mutedColor }
|
|
10577
|
+
}), (0, import_jsx_runtime$1.jsx)("span", {
|
|
10578
|
+
className: "text-[28px] leading-relaxed",
|
|
10579
|
+
style: { color: secondaryColor },
|
|
10580
|
+
children: "访问 Karin Web 控制台首页,查看 Karin 版本信息"
|
|
10581
|
+
})]
|
|
10582
|
+
}),
|
|
10583
|
+
(0, import_jsx_runtime$1.jsxs)("div", {
|
|
10584
|
+
className: "flex items-start space-x-4",
|
|
10585
|
+
children: [(0, import_jsx_runtime$1.jsx)("div", {
|
|
10586
|
+
className: "w-3 h-3 rounded-full mt-3 flex-shrink-0",
|
|
10587
|
+
style: { backgroundColor: mutedColor }
|
|
10588
|
+
}), (0, import_jsx_runtime$1.jsx)("span", {
|
|
10589
|
+
className: "text-[28px] leading-relaxed",
|
|
10590
|
+
style: { color: secondaryColor },
|
|
10591
|
+
children: "当有新版本时会高亮提示,点击查看更新日志"
|
|
10592
|
+
})]
|
|
10593
|
+
}),
|
|
10594
|
+
(0, import_jsx_runtime$1.jsxs)("div", {
|
|
10595
|
+
className: "flex items-start space-x-4",
|
|
10596
|
+
children: [(0, import_jsx_runtime$1.jsx)("div", {
|
|
10597
|
+
className: "w-3 h-3 rounded-full mt-3 flex-shrink-0",
|
|
10598
|
+
style: { backgroundColor: mutedColor }
|
|
10599
|
+
}), (0, import_jsx_runtime$1.jsx)("span", {
|
|
10600
|
+
className: "text-[28px] leading-relaxed",
|
|
10601
|
+
style: { color: secondaryColor },
|
|
10602
|
+
children: "点击「更新」按钮,系统将自动完成更新并重启"
|
|
10603
|
+
})]
|
|
10604
|
+
})
|
|
10605
|
+
]
|
|
10606
|
+
})] }), (0, import_jsx_runtime$1.jsxs)("div", { children: [(0, import_jsx_runtime$1.jsxs)("div", {
|
|
10607
|
+
className: "flex items-center space-x-4 mb-6",
|
|
10608
|
+
children: [
|
|
10609
|
+
(0, import_jsx_runtime$1.jsx)("div", {
|
|
10610
|
+
className: "flex items-center justify-center w-10 h-10 rounded-lg",
|
|
10611
|
+
style: { backgroundColor: isDark ? "rgba(251,146,60,0.15)" : "rgba(194,65,12,0.1)" },
|
|
10612
|
+
children: (0, import_jsx_runtime$1.jsx)("span", {
|
|
10613
|
+
className: "text-[28px] font-black",
|
|
10614
|
+
style: { color: accentColor },
|
|
10615
|
+
children: "2"
|
|
10616
|
+
})
|
|
10617
|
+
}),
|
|
10618
|
+
(0, import_jsx_runtime$1.jsx)("svg", {
|
|
10619
|
+
className: "w-8 h-8",
|
|
10620
|
+
viewBox: "0 0 24 24",
|
|
10621
|
+
fill: "none",
|
|
10622
|
+
stroke: mutedColor,
|
|
10623
|
+
strokeWidth: "2",
|
|
10624
|
+
children: (0, import_jsx_runtime$1.jsx)("path", {
|
|
10625
|
+
d: "M4 17l6-6-6-6M12 19h8",
|
|
10626
|
+
strokeLinecap: "round",
|
|
10627
|
+
strokeLinejoin: "round"
|
|
10628
|
+
})
|
|
10629
|
+
}),
|
|
10630
|
+
(0, import_jsx_runtime$1.jsx)("span", {
|
|
10631
|
+
className: "text-[32px] font-bold",
|
|
10632
|
+
style: { color: mutedColor },
|
|
10633
|
+
children: "命令行更新"
|
|
10634
|
+
})
|
|
10635
|
+
]
|
|
10636
|
+
}), (0, import_jsx_runtime$1.jsxs)("div", {
|
|
10637
|
+
className: "ml-14 space-y-4",
|
|
10638
|
+
children: [
|
|
10639
|
+
(0, import_jsx_runtime$1.jsx)("p", {
|
|
10640
|
+
className: "text-[28px]",
|
|
10641
|
+
style: { color: secondaryColor },
|
|
10642
|
+
children: "在 Karin 根目录下执行以下命令"
|
|
10643
|
+
}),
|
|
10644
|
+
(0, import_jsx_runtime$1.jsx)("div", {
|
|
10645
|
+
className: "rounded-xl p-6",
|
|
10646
|
+
style: { backgroundColor: isDark ? "rgba(0,0,0,0.4)" : "rgba(255,255,255,0.7)" },
|
|
10647
|
+
children: (0, import_jsx_runtime$1.jsxs)("code", {
|
|
10648
|
+
className: "text-[40px] font-mono font-bold block",
|
|
10649
|
+
style: { color: accentColor },
|
|
10650
|
+
children: [
|
|
10651
|
+
"pnpm add node-karin@",
|
|
10652
|
+
props.data.requireVersion,
|
|
10653
|
+
" -w"
|
|
10654
|
+
]
|
|
10655
|
+
})
|
|
10656
|
+
}),
|
|
10657
|
+
(0, import_jsx_runtime$1.jsx)("p", {
|
|
10658
|
+
className: "text-[28px] opacity-80",
|
|
10659
|
+
style: { color: secondaryColor },
|
|
10660
|
+
children: "更新完成后手动重启 Karin 即可"
|
|
10661
|
+
})
|
|
10662
|
+
]
|
|
10663
|
+
})] })]
|
|
10664
|
+
}),
|
|
10665
|
+
(0, import_jsx_runtime$1.jsx)("div", {
|
|
10666
|
+
className: "h-0.5 rounded-full my-10",
|
|
10667
|
+
style: { backgroundColor: isDark ? "rgba(251,146,60,0.2)" : "rgba(180,83,9,0.15)" }
|
|
10668
|
+
}),
|
|
10669
|
+
(0, import_jsx_runtime$1.jsxs)("div", {
|
|
10670
|
+
className: "rounded-2xl p-6 flex items-start space-x-5",
|
|
10671
|
+
style: { backgroundColor: isDark ? "rgba(251,146,60,0.08)" : "rgba(194,65,12,0.08)" },
|
|
10672
|
+
children: [(0, import_jsx_runtime$1.jsxs)("svg", {
|
|
10673
|
+
className: "w-10 h-10 mt-1 flex-shrink-0",
|
|
10348
10674
|
viewBox: "0 0 24 24",
|
|
10349
|
-
fill:
|
|
10350
|
-
|
|
10351
|
-
|
|
10352
|
-
|
|
10353
|
-
|
|
10354
|
-
strokeLinecap: "round"
|
|
10355
|
-
|
|
10356
|
-
|
|
10357
|
-
|
|
10358
|
-
|
|
10359
|
-
|
|
10360
|
-
|
|
10675
|
+
fill: accentColor,
|
|
10676
|
+
children: [(0, import_jsx_runtime$1.jsx)("path", { d: "M12 2L22 20H2L12 2Z" }), (0, import_jsx_runtime$1.jsx)("path", {
|
|
10677
|
+
d: "M12 9v4M12 17h.01",
|
|
10678
|
+
stroke: bgColor,
|
|
10679
|
+
strokeWidth: "2",
|
|
10680
|
+
strokeLinecap: "round"
|
|
10681
|
+
})]
|
|
10682
|
+
}), (0, import_jsx_runtime$1.jsxs)("div", {
|
|
10683
|
+
className: "flex-1",
|
|
10684
|
+
children: [(0, import_jsx_runtime$1.jsx)("p", {
|
|
10685
|
+
className: "text-[28px] font-semibold mb-2",
|
|
10686
|
+
style: { color: accentColor },
|
|
10687
|
+
children: "版本兼容性提示"
|
|
10688
|
+
}), (0, import_jsx_runtime$1.jsxs)("p", {
|
|
10689
|
+
className: "text-[26px] leading-relaxed",
|
|
10690
|
+
style: { color: secondaryColor },
|
|
10691
|
+
children: [
|
|
10692
|
+
"当前插件版本基于 ",
|
|
10693
|
+
(0, import_jsx_runtime$1.jsxs)("span", {
|
|
10694
|
+
className: "font-bold font-mono",
|
|
10695
|
+
style: { color: accentColor },
|
|
10696
|
+
children: ["node-karin v", props.data.requireVersion]
|
|
10697
|
+
}),
|
|
10698
|
+
" 开发,低版本运行时可能出现功能异常或兼容性问题,请及时更新以获得最佳体验"
|
|
10699
|
+
]
|
|
10700
|
+
})]
|
|
10361
10701
|
})]
|
|
10362
|
-
}), (0, import_jsx_runtime$1.jsxs)("code", {
|
|
10363
|
-
className: "text-[40px] font-mono font-bold",
|
|
10364
|
-
style: { color: accentColor },
|
|
10365
|
-
children: [
|
|
10366
|
-
"pnpm add node-karin@",
|
|
10367
|
-
props.data.requireVersion,
|
|
10368
|
-
" -w"
|
|
10369
|
-
]
|
|
10370
|
-
})] }),
|
|
10371
|
-
(0, import_jsx_runtime$1.jsx)("p", {
|
|
10372
|
-
className: "text-[28px] mt-10 opacity-70",
|
|
10373
|
-
style: { color: secondaryColor },
|
|
10374
|
-
children: "插件基于较新版本开发,低版本运行可能存在兼容问题"
|
|
10375
10702
|
})
|
|
10376
10703
|
]
|
|
10377
10704
|
})
|
|
@@ -11137,7 +11464,10 @@ var init_DevDataManager = __esmMin(() => {
|
|
|
11137
11464
|
if (!fs.existsSync(dirPath)) fs.mkdirSync(dirPath, { recursive: true });
|
|
11138
11465
|
}
|
|
11139
11466
|
static getTemplateDataDir(platform, templateName) {
|
|
11140
|
-
if (!devDataDir)
|
|
11467
|
+
if (!devDataDir) {
|
|
11468
|
+
logger$1.debug("DevDataManager: 当前不在开发环境,数据保存功能将被禁用");
|
|
11469
|
+
return "";
|
|
11470
|
+
}
|
|
11141
11471
|
const dir = path.join(devDataDir, platform, templateName);
|
|
11142
11472
|
this.ensureDir(dir);
|
|
11143
11473
|
return dir;
|
|
@@ -11190,6 +11520,7 @@ var init_DevDataManager = __esmMin(() => {
|
|
|
11190
11520
|
if (!this.isDevEnvironment()) return false;
|
|
11191
11521
|
try {
|
|
11192
11522
|
const dir = this.getTemplateDataDir(platform, templateName);
|
|
11523
|
+
if (!dir) return false;
|
|
11193
11524
|
const defaultFilePath = path.join(dir, "default.json");
|
|
11194
11525
|
let versionsData = this.readVersionsFile(dir);
|
|
11195
11526
|
if (fs.existsSync(defaultFilePath)) {
|
|
@@ -11298,18 +11629,18 @@ var init_main = __esmMin(() => {
|
|
|
11298
11629
|
packageDir;
|
|
11299
11630
|
NODE_ENV;
|
|
11300
11631
|
static initialized = false;
|
|
11632
|
+
isDevelopment;
|
|
11301
11633
|
constructor() {
|
|
11302
11634
|
this.NODE_ENV = process.env.NODE_ENV || "production";
|
|
11635
|
+
this.isDevelopment = this.NODE_ENV === "development";
|
|
11303
11636
|
this.packageDir = this.getPackageDir();
|
|
11304
11637
|
ResourcePathManager.initialized = true;
|
|
11305
11638
|
}
|
|
11306
11639
|
getPackageDir() {
|
|
11307
11640
|
const cwd = process.cwd();
|
|
11308
|
-
|
|
11309
|
-
|
|
11310
|
-
|
|
11311
|
-
default: return this.getPackageDirFromImportMeta();
|
|
11312
|
-
}
|
|
11641
|
+
const metaDir = this.getPackageDirFromImportMeta();
|
|
11642
|
+
if (this.isDevelopment) return this.findDevelopmentDir(cwd) || metaDir;
|
|
11643
|
+
return metaDir;
|
|
11313
11644
|
}
|
|
11314
11645
|
findDevelopmentDir(cwd) {
|
|
11315
11646
|
let currentDir = cwd;
|
|
@@ -11321,7 +11652,8 @@ var init_main = __esmMin(() => {
|
|
|
11321
11652
|
}
|
|
11322
11653
|
currentDir = path.dirname(currentDir);
|
|
11323
11654
|
}
|
|
11324
|
-
|
|
11655
|
+
if (!ResourcePathManager.initialized) logger$1.debug("开发模式:未找到 render 目录,将使用生产模式路径");
|
|
11656
|
+
return null;
|
|
11325
11657
|
}
|
|
11326
11658
|
getPackageDirFromImportMeta() {
|
|
11327
11659
|
try {
|
|
@@ -11389,21 +11721,86 @@ var init_main = __esmMin(() => {
|
|
|
11389
11721
|
return hasPluginsInPath && pluginResourcesExists && npmPackageExists;
|
|
11390
11722
|
}
|
|
11391
11723
|
getResourcePaths() {
|
|
11392
|
-
|
|
11393
|
-
|
|
11394
|
-
|
|
11395
|
-
|
|
11396
|
-
|
|
11397
|
-
|
|
11398
|
-
default: if (this.isPluginMode()) return {
|
|
11399
|
-
cssDir: fs.existsSync(path.join(this.packageDir, "node_modules", "karin-plugin-kkk", "lib")) ? path.join(this.packageDir, "node_modules", "karin-plugin-kkk", "lib") : path.join(this.packageDir, "lib"),
|
|
11400
|
-
imageDir: path.join(this.packageDir, "resources", "image")
|
|
11401
|
-
};
|
|
11402
|
-
else return {
|
|
11403
|
-
cssDir: path.join(this.packageDir, "node_modules", "karin-plugin-kkk", "lib"),
|
|
11404
|
-
imageDir: path.join(this.packageDir, "node_modules", "karin-plugin-kkk", "resources", "image")
|
|
11405
|
-
};
|
|
11724
|
+
const possiblePaths = this.getPossibleResourcePaths();
|
|
11725
|
+
let cssDir = "";
|
|
11726
|
+
for (const cssPath of possiblePaths.cssPaths) if (fs.existsSync(cssPath)) {
|
|
11727
|
+
cssDir = cssPath;
|
|
11728
|
+
if (!ResourcePathManager.initialized) logger$1.debug("找到 CSS 目录:", cssDir);
|
|
11729
|
+
break;
|
|
11406
11730
|
}
|
|
11731
|
+
let imageDir = "";
|
|
11732
|
+
for (const imagePath of possiblePaths.imagePaths) if (fs.existsSync(imagePath)) {
|
|
11733
|
+
imageDir = imagePath;
|
|
11734
|
+
if (!ResourcePathManager.initialized) logger$1.debug("找到图片目录:", imageDir);
|
|
11735
|
+
break;
|
|
11736
|
+
}
|
|
11737
|
+
if (!cssDir) {
|
|
11738
|
+
cssDir = possiblePaths.cssPaths[0];
|
|
11739
|
+
if (!ResourcePathManager.initialized) logger$1.warn("未找到 CSS 目录,使用默认路径:", cssDir);
|
|
11740
|
+
}
|
|
11741
|
+
if (!imageDir) {
|
|
11742
|
+
imageDir = possiblePaths.imagePaths[0];
|
|
11743
|
+
if (!ResourcePathManager.initialized) logger$1.warn("未找到图片目录,使用默认路径:", imageDir);
|
|
11744
|
+
}
|
|
11745
|
+
return {
|
|
11746
|
+
cssDir,
|
|
11747
|
+
imageDir
|
|
11748
|
+
};
|
|
11749
|
+
}
|
|
11750
|
+
getPossibleResourcePaths() {
|
|
11751
|
+
const cssPaths = [];
|
|
11752
|
+
const imagePaths = [];
|
|
11753
|
+
const karinPluginPath = this.findKarinPluginKkkPackage();
|
|
11754
|
+
if (karinPluginPath) {
|
|
11755
|
+
cssPaths.push(path.join(karinPluginPath, "lib"));
|
|
11756
|
+
imagePaths.push(path.join(karinPluginPath, "resources", "image"));
|
|
11757
|
+
}
|
|
11758
|
+
if (this.isDevelopment) {
|
|
11759
|
+
const parentDir = path.dirname(this.packageDir);
|
|
11760
|
+
cssPaths.push(path.join(parentDir, "core", "lib"), path.join(this.packageDir, "../core/lib"));
|
|
11761
|
+
imagePaths.push(path.join(parentDir, "core", "resources", "image"), path.join(this.packageDir, "../core/resources/image"));
|
|
11762
|
+
}
|
|
11763
|
+
if (this.isPluginMode()) {
|
|
11764
|
+
cssPaths.push(path.join(this.packageDir, "node_modules", "karin-plugin-kkk", "lib"), path.join(this.packageDir, "lib"));
|
|
11765
|
+
imagePaths.push(path.join(this.packageDir, "resources", "image"));
|
|
11766
|
+
}
|
|
11767
|
+
cssPaths.push(path.join(this.packageDir, "node_modules", "karin-plugin-kkk", "lib"), path.join(this.packageDir, "lib"), path.join(this.packageDir, "dist"));
|
|
11768
|
+
imagePaths.push(path.join(this.packageDir, "node_modules", "karin-plugin-kkk", "resources", "image"), path.join(this.packageDir, "resources", "image"), path.join(this.packageDir, "public", "image"));
|
|
11769
|
+
return {
|
|
11770
|
+
cssPaths,
|
|
11771
|
+
imagePaths
|
|
11772
|
+
};
|
|
11773
|
+
}
|
|
11774
|
+
findKarinPluginKkkPackage() {
|
|
11775
|
+
try {
|
|
11776
|
+
const currentModuleUrl = import.meta.url;
|
|
11777
|
+
const currentModulePath = new URL(currentModuleUrl).pathname;
|
|
11778
|
+
const normalizedPath = process.platform === "win32" ? currentModulePath.slice(1) : currentModulePath;
|
|
11779
|
+
let currentDir = path.dirname(normalizedPath);
|
|
11780
|
+
for (let i = 0; i < 10; i++) {
|
|
11781
|
+
const packageJsonPath = path.join(currentDir, "package.json");
|
|
11782
|
+
if (fs.existsSync(packageJsonPath)) try {
|
|
11783
|
+
if (JSON.parse(fs.readFileSync(packageJsonPath, "utf-8")).name === "karin-plugin-kkk") {
|
|
11784
|
+
if (!ResourcePathManager.initialized) logger$1.debug("找到 karin-plugin-kkk 包:", currentDir);
|
|
11785
|
+
return currentDir;
|
|
11786
|
+
}
|
|
11787
|
+
} catch {}
|
|
11788
|
+
const nodeModulesPath = path.join(currentDir, "node_modules", "karin-plugin-kkk");
|
|
11789
|
+
if (fs.existsSync(nodeModulesPath)) {
|
|
11790
|
+
const packageJsonPath$1 = path.join(nodeModulesPath, "package.json");
|
|
11791
|
+
if (fs.existsSync(packageJsonPath$1)) {
|
|
11792
|
+
if (!ResourcePathManager.initialized) logger$1.debug("在 node_modules 中找到 karin-plugin-kkk:", nodeModulesPath);
|
|
11793
|
+
return nodeModulesPath;
|
|
11794
|
+
}
|
|
11795
|
+
}
|
|
11796
|
+
const parentDir = path.dirname(currentDir);
|
|
11797
|
+
if (parentDir === currentDir) break;
|
|
11798
|
+
currentDir = parentDir;
|
|
11799
|
+
}
|
|
11800
|
+
} catch (error) {
|
|
11801
|
+
if (!ResourcePathManager.initialized) logger$1.debug("查找 karin-plugin-kkk 包失败:", error);
|
|
11802
|
+
}
|
|
11803
|
+
return null;
|
|
11407
11804
|
}
|
|
11408
11805
|
};
|
|
11409
11806
|
HtmlWrapper = class {
|
|
@@ -11421,7 +11818,7 @@ var init_main = __esmMin(() => {
|
|
|
11421
11818
|
const fontRelativePath = path.relative(htmlDir, fontDir).replace(/\\/g, "/");
|
|
11422
11819
|
const bilifontUrl = path.join(fontRelativePath, "bilifont/font.css").replace(/\\/g, "/");
|
|
11423
11820
|
const monoFontUrl = path.join(fontRelativePath, "mono/font.css").replace(/\\/g, "/");
|
|
11424
|
-
|
|
11821
|
+
let processedHtml = htmlContent.replace(/src="\/image\//g, `src="${imageRelativePath}/`).replace(/src='\/image\//g, `src='${imageRelativePath}/`).replace(/src="image\//g, `src="${imageRelativePath}/`);
|
|
11425
11822
|
return `\n <!DOCTYPE html>\n <html lang="zh-CN">\n <head>\n <meta charset="UTF-8">\n <meta name="viewport" content="width=device-width">\n <link rel="stylesheet" href="${bilifontUrl}">\n <link rel="stylesheet" href="${monoFontUrl}">\n <link rel="stylesheet" href="${cssUrl}">\n <style>\n html, body {\n margin: 0;\n padding: 0;\n background: transparent !important;\n }\n body {\n display: flex;\n align-items: flex-start;\n justify-content: flex-start;\n }\n #container {\n border-radius: 3rem;\n overflow: hidden;\n background-clip: padding-box;\n }\n </style>\n </head>\n <body class="${isDark ? "dark" : ""}">\n ${processedHtml}\n </body>\n </html>\n `;
|
|
11426
11823
|
}
|
|
11427
11824
|
};
|
|
@@ -11483,7 +11880,7 @@ var init_main = __esmMin(() => {
|
|
|
11483
11880
|
plugins,
|
|
11484
11881
|
outputDir
|
|
11485
11882
|
}).render(request);
|
|
11486
|
-
if (
|
|
11883
|
+
if (process.env.NODE_ENV === "development") DevDataManager.saveRenderData(request.templateType, request.templateName, request.data);
|
|
11487
11884
|
return result;
|
|
11488
11885
|
};
|
|
11489
11886
|
});
|