feat(cms): 首页四项可配 + 开源页项目可见性 + GitHub README 开篇
- 首页:subtitle(markdown 短文本)|latestPhotos 0-6(0 隐藏)|
perTrackLimit 4-8|sections{tracks,photos,heatmap,projects} 开关,
访问器 homeConfig() 夹取越界值,字段级回落默认(零配置=原形态)
- 开源页项目可见性:mode all|only|exclude + include[]/exclude[] +
sort pinned-first|stars|updated + perSource both|github|gitea;
projects.ts 加 LoadProjectsOptions + arrange()(来源→可见性→排序)
- 开源页开篇支持 GitHub README:intro_from off|github-readme,构建期
取 wait4xx/wait4xx README(token 复用宿主 0600 文件)→ 缓存
content/.github-readme.md 入仓 → renderMarkdown;失败逐级回落
(缓存 → yaml blurb)。实测取到 3117 字符,现状仍 off 待用户开启
- 修既有 bug:orderPinned 内硬 slice(0,6) 把开源页 limit=99 也截到 6 条
→ 移除,开源页恢复全量 16 条
- 文档:写作指南加首页/项目墙两张字段表(含 YAML 1.1 `off` 需加引号坑、
README 行为与外部徽章风险说明)
车道:op-gitea(3/3);收编复验:构建 48 页 + E2E 37/37 + 开源页 16 条 +
首页默认形态(2 轨/热力图/项目墙)无回归
验证: node v26.13.0 构建 48 页 exit 0;E2E 37/37 PASS;playwright 实测
Spec: none (首页与开源页后台扩展,车道级交付)
Co-authored-by: GLM-5.3
This commit is contained in:
1 parent
8d221ab36e
commit
859cac19a2
11 files changed
+387
-26
No files matched your search
@@ -84,6 +84,21 @@ export const collections = {
|
||||
avatar: image().optional(),
|
||||
/** 站点图标:public 下的路径(.svg/.ico 直出,不经图片管线);缺省回退 /favicon.svg */
|
||||
favicon: z.string().optional(),
|
||||
/** 副标题(markdown 短文本,渲染在身份语下);空 = 不渲染 */
|
||||
subtitle: bilingual.optional(),
|
||||
/** 最新影像张数:0 隐藏区块,1-6 有效(越界由访问器夹取) */
|
||||
latestPhotos: z.number().int().optional(),
|
||||
/** 首页每轨条数:4-8(越界由访问器夹取,缺省 6) */
|
||||
perTrackLimit: z.number().int().optional(),
|
||||
/** 区块开关:缺省全开 */
|
||||
sections: z
|
||||
.object({
|
||||
tracks: z.boolean().optional(),
|
||||
photos: z.boolean().optional(),
|
||||
heatmap: z.boolean().optional(),
|
||||
projects: z.boolean().optional(),
|
||||
})
|
||||
.optional(),
|
||||
/** 社交链接,顺序即展示顺序;icon 为内置图标集键(github/rss/email/...) */
|
||||
socials: z
|
||||
.array(
|
||||
@@ -110,6 +125,16 @@ export const collections = {
|
||||
repo_label: z.string().optional(),
|
||||
/** 置顶仓短名,顺序即展示顺序(原 projects.ts 硬编码名单迁于此) */
|
||||
pinned: z.array(z.string()).optional(),
|
||||
/** 项目墙可见性:all=全部 / only=仅 include / exclude=排除 exclude */
|
||||
mode: z.enum(['all', 'only', 'exclude']).optional(),
|
||||
include: z.array(z.string()).optional(),
|
||||
exclude: z.array(z.string()).optional(),
|
||||
/** 排序:pinned-first(默认)/ stars / updated */
|
||||
sort: z.enum(['pinned-first', 'stars', 'updated']).optional(),
|
||||
/** 来源过滤:both(默认)/ github / gitea */
|
||||
perSource: z.enum(['both', 'github', 'gitea']).optional(),
|
||||
/** 开篇文案来源:off(默认,用本文件 blurb)/ github-readme(构建期取 profile 仓 README) */
|
||||
intro_from: z.enum(['off', 'github-readme']).optional(),
|
||||
}),
|
||||
}),
|
||||
// slug 即文件名(glob loader 默认按文件名生成 id)
|
||||
|
||||
Reference in new issue
Block a user