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

@@ -10,6 +10,8 @@ import {
matchStandardPath,
normalizeUrlStyle,
pagePathFromSlug,
snippetPath,
snippetsPath,
standardEntityPath,
type PageKind,
type UrlStyle,
@@ -185,6 +187,7 @@ function couldBeEntityPath(pathname: string): boolean {
pathname.startsWith("/announcement/") ||
pathname.startsWith("/p/") ||
pathname.startsWith("/library") ||
pathname.startsWith("/snippets") ||
pathname.startsWith("/leaderboard") ||
pathname.endsWith(".html")
);
@@ -199,6 +202,8 @@ function standardTarget(m: { kind: PageKind; id?: number; slug?: string }): stri
if (m.kind === "libraryDoc") return `/library/${m.slug ?? ""}`;
if (m.kind === "libraryRead") return `/library/${m.slug ?? ""}/read?c=${m.id ?? 0}`;
if (m.kind === "library") return "/library";
if (m.kind === "snippets") return "/snippets";
if (m.kind === "snippet") return `/snippets/${m.id ?? 0}`;
if (m.kind === "leaderboard") return "/leaderboard";
return standardEntityPath(m.kind, m.id ?? 0);
}
@@ -216,6 +221,8 @@ function styledPath(
return libraryDocReadPath(style, m.slug ?? "", chapterNo ?? m.id ?? 1);
}
if (m.kind === "library") return libraryPath(style);
if (m.kind === "snippets") return snippetsPath(style);
if (m.kind === "snippet") return snippetPath(style, m.id ?? 0);
if (m.kind === "leaderboard") return leaderboardPath(style);
return entityPath(style, m.kind, m.id ?? 0);
}