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
@@ -123,6 +123,39 @@ collections:
|
||||
fields:
|
||||
- { label: 中文, name: zh, widget: string, required: false }
|
||||
- { label: 英文, name: en, widget: string, required: false }
|
||||
- label: 副标题(可选,markdown 短文本)
|
||||
name: subtitle
|
||||
widget: object
|
||||
hint: 渲染在身份语下方;留空不渲染
|
||||
fields:
|
||||
- { label: 中文, name: zh, widget: string, required: false }
|
||||
- { label: 英文, name: en, widget: string, required: false }
|
||||
- label: 最新影像张数
|
||||
name: latestPhotos
|
||||
widget: number
|
||||
required: false
|
||||
default: 4
|
||||
min: 0
|
||||
max: 6
|
||||
hint: '1-6;填 0 = 隐藏「最新影像」区块。留空默认 4'
|
||||
- label: 首页每轨文章条数
|
||||
name: perTrackLimit
|
||||
widget: number
|
||||
required: false
|
||||
default: 6
|
||||
min: 4
|
||||
max: 8
|
||||
hint: 阅读轨/技术轨各显示条数,留空默认 6
|
||||
- label: 区块开关
|
||||
name: sections
|
||||
widget: object
|
||||
required: false
|
||||
hint: 关掉的区块不渲染(默认全开)
|
||||
fields:
|
||||
- { label: 文章列表, name: tracks, widget: boolean, required: false, default: true }
|
||||
- { label: 最新影像, name: photos, widget: boolean, required: false, default: true }
|
||||
- { label: 贡献热力图, name: heatmap, widget: boolean, required: false, default: true }
|
||||
- { label: 项目墙, name: projects, widget: boolean, required: false, default: true }
|
||||
- label: 头像(可选)
|
||||
name: avatar
|
||||
widget: image
|
||||
@@ -181,3 +214,44 @@ collections:
|
||||
widget: list
|
||||
required: false
|
||||
hint: '如 blog;留空则回落默认 blog。填写的名字须与仓库短名一致'
|
||||
- label: 项目墙模式
|
||||
name: mode
|
||||
widget: select
|
||||
required: false
|
||||
default: all
|
||||
options: [{ label: 全部, value: all }, { label: 仅白名单, value: only }, { label: 排除黑名单, value: exclude }]
|
||||
hint: only/exclude 需配合下面的名单
|
||||
- label: 白名单(仓库短名)
|
||||
name: include
|
||||
widget: list
|
||||
required: false
|
||||
hint: 'mode=仅白名单时生效,如 pi-board'
|
||||
- label: 黑名单(仓库短名)
|
||||
name: exclude
|
||||
widget: list
|
||||
required: false
|
||||
hint: 'mode=排除黑名单时生效,如 blog'
|
||||
- label: 排序
|
||||
name: sort
|
||||
widget: select
|
||||
required: false
|
||||
default: pinned-first
|
||||
options:
|
||||
- { label: 置顶优先,其余按星数, value: pinned-first }
|
||||
- { label: 星数降序, value: stars }
|
||||
- { label: 最近更新, value: updated }
|
||||
- label: 来源过滤
|
||||
name: perSource
|
||||
widget: select
|
||||
required: false
|
||||
default: both
|
||||
options: [{ label: 双源合并, value: both }, { label: 仅 GitHub, value: github }, { label: 仅自托管 gitea, value: gitea }]
|
||||
- label: 开篇文案来源
|
||||
name: intro_from
|
||||
widget: select
|
||||
required: false
|
||||
default: 'off'
|
||||
options:
|
||||
- { label: 用本页叙述(默认), value: 'off' }
|
||||
- { label: GitHub profile README, value: github-readme }
|
||||
hint: 'github-readme = 构建期取 wait4xx/wait4xx 的 README 渲染为开篇;缓存入仓 content/.github-readme.md,取不到自动回落叙述'
|
||||
Reference in new issue
Block a user