- schema:siteAbout 增 layout{showIdCard} + blocks(z.discriminatedUnion
九类:prose/tracks/cards/timeline/quote/figure/linklist/cta/divider,
图片字段走 Astro image());对未知块型用 z.union([knownUnion,
z.looseObject({type})]) 复合——已知块严格校验,未知块落宽松分支再由
访问器 WARN+丢弃(容错与严格校验的张力取舍)
- page-blocks.ts:enabled:false 过滤、未知 type WARN+skip、pickBi 回落
zh 并 WARN、上限(块≤24/单块文本≤4000,超限截断并 WARN)
- BlockRenderer 统一外壳 `<section class="blk" data-block={type}>`(E2E
抓手)+ 九个块组件(样式自 AboutPage 原 <style> 搬迁,只吃既有 token)
- AboutPage 三级回落:blocks → intro markdown → 内置默认;legacy
tracks/build 段整体挪入回退分支(文案逐字一致,零回归)
- 图标白名单 src/lib/icons.ts(12 键,未登记回退首字占位)
- 后台 about 单例四段结构(blocks/layout/intro/typography),块为
list+types+typeKey,每块带「显示」开关与中文标签
协调报备:车道修了一处跨车道插入事故(T3 把 typography 插进了 intro
的 widget 内导致字段错位),重写为四段正确结构;并发构建擦 dist 的
假失败改用「build→快照 dist→快照起服务跑 E2E」规避(37/37 稳定)
验证: 构建 48 页 exit 0;E2E 37/37(快照口径);九类块顺序与配置一致、
figure 走 /_astro/*.webp 管线、未知块与外链图被拦并 WARN、
终版 3 块零回归、en 同构、admin about 四段字段齐全
Spec: 2026-11-02_blog-5g-pages (T1/T2)
Co-authored-by: GLM-5.3
88 lines
3.9 KiB
YAML
88 lines
3.9 KiB
YAML
# 关于页(后台「页面文案 → 关于页」可改)
|
||
# ── 一级:blocks 块式正文(按顺序渲染,可拖拽排序;某块 enabled: false 即隐藏)
|
||
# ── 二级:intro 多段 markdown(仅在 blocks 为空时使用)
|
||
# ── 三级:内置默认文案(两者都空时兜底,构建永不炸)
|
||
layout:
|
||
# 名片区(头像/名字/身份语/社交)开关:头像等数据事实源在「主页设置」
|
||
showIdCard: true
|
||
|
||
blocks:
|
||
- type: prose
|
||
width: narrow
|
||
body:
|
||
zh: |
|
||
<span class="font-huiwen c-red">写作者</span> · 读者 · 快门按压者,拥抱开源。
|
||
|
||
这里是我三条轨道的公开工作台:**读过的书**留下评注,**写过的代码**进项目墙,**按下的快门**收入图库。
|
||
|
||
所有内容都有一个明确去处:
|
||
|
||
- 长文沉淀在文章与书架
|
||
- 短句与随手拍落在瞬间
|
||
- 影像收进图库,配一点 EXIF 与一句策展
|
||
|
||
本站本身即开源,构建与发布全链都在仓里。
|
||
en: |
|
||
<span class="font-huiwen c-red">Writer</span> · Reader · Shutter-presser, embracing open source.
|
||
|
||
This is the public workbench of my three tracks: **books** that left notes, **code** that reaches the project wall, and **shutters** I pressed that land in the gallery.
|
||
|
||
Everything has a clear destination:
|
||
|
||
- Long-form writing goes to posts and the bookshelf
|
||
- Short lines and snapshots land in moments
|
||
- Images go to the gallery, with a bit of EXIF and one line of curation
|
||
|
||
This site is itself open source — the full build and deploy pipeline lives in the repo.
|
||
|
||
- type: tracks
|
||
title:
|
||
zh: 兴趣版图
|
||
en: Interests
|
||
items:
|
||
- icon: book
|
||
name:
|
||
zh: 阅读
|
||
en: Reading
|
||
desc:
|
||
zh: 文学与戏剧为主,读到哪写到哪。
|
||
en: Mostly literature and drama; I write as I read.
|
||
- icon: terminal
|
||
name:
|
||
zh: 技术
|
||
en: Tech
|
||
desc:
|
||
zh: Linux、容器与自托管,把家里的小机器折腾成顺手的工具。
|
||
en: Linux, containers, and self-hosting — turning the little machines at home into handy tools.
|
||
- icon: camera
|
||
name:
|
||
zh: 摄影
|
||
en: Photography
|
||
desc:
|
||
zh: 街拍与山野,随身一台无反,在等光的间隙按快门。
|
||
en: Street and landscapes with a mirrorless camera, pressing the shutter while waiting for the light.
|
||
|
||
- type: prose
|
||
title:
|
||
zh: 本站如何构建
|
||
en: How this site is built
|
||
body:
|
||
zh: 页面由 Astro 静态生成,不含运行时框架 JS;内容住在自托管 gitea——本地编辑器与 gitea 网页写的是同一个 git 仓库,push 之后由 homelab 自动构建发布;评论走自托管 Artalk。页脚 built from 一行链到本次构建对应的 commit,构建过程透明可追溯。
|
||
en: Pages are statically generated by Astro with no runtime framework JS. Content lives on a self-hosted gitea — my local editor and the gitea web UI write to the same git repository, and each push is built and published automatically by the homelab. Comments run on self-hosted Artalk. The built-from line in the footer links to the commit behind this build, keeping the process transparent and traceable.
|
||
|
||
# ---- 二级回退(blocks 为空时使用)----
|
||
intro:
|
||
zh: |
|
||
写作者 · 读者 · 快门按压者,拥抱开源。
|
||
|
||
这里是我三条轨道的公开工作台:**读过的书**留下评注,**写过的代码**进项目墙,**按下的快门**收入图库。
|
||
en: |
|
||
Writer · Reader · Shutter-presser, embracing open source.
|
||
|
||
This is the public workbench of my three tracks: **books** that left notes, **code** that reaches the project wall, and **shutters** I pressed that land in the gallery.
|
||
|
||
# 页面级排版覆盖(层 2)
|
||
typography:
|
||
font: font-huiwen
|
||
accent: c-red
|