feat: 代码片段功能与 Markdown 内嵌片段渲染、文档截图等

This commit is contained in:
2026-10-09 18:53:38 +08:00
parent 5598e1cbb7
commit da72843c70
64 changed files with 7047 additions and 248 deletions

View File

@@ -3,7 +3,7 @@
import { useState } from "react";
import Link from "next/link";
import { CalendarDays, CalendarCheck, LogIn, Loader2 } from "lucide-react";
import { apiDoCheckin, type CheckinStatus } from "@/lib/api";
import { apiDoCheckin, apiGetCheckin, type CheckinStatus } from "@/lib/api";
/**
* 每日签到紧凑条,内嵌在右栏「站点数据」卡底部。
@@ -24,7 +24,17 @@ export function PulseCheckin({ initial }: { initial?: CheckinStatus | null }) {
try {
setStatus(await apiDoCheckin());
} catch (e) {
setError(e instanceof Error ? e.message : "签到失败");
const msg = e instanceof Error ? e.message : "签到失败";
// 本地状态滞后(缓存/多标签页)导致后端判重时,回拉真实状态,避免按钮仍显示「签到」
if (msg.includes("已签到")) {
try {
setStatus(await apiGetCheckin());
return;
} catch {
// 回拉失败,回落为错误提示
}
}
setError(msg);
} finally {
setLoading(false);
}