
上一篇定下了三条纪律:内容归内容仓,代码归代码仓,改之前先想清楚自己在动哪一层。
这篇全部是 L1 和 L2。一行源码都不用改,改完站点从里到外都是你的。
顺序上我建议先外观后内容。外观改完立刻能看到,正反馈来得快;内容替换是场持久战,适合后面慢慢磨。
第一步:站点身份(config/site.yaml)
打开内容仓的 config/site.yaml,要动的就几项:
| 键 | 作用 | 说明 |
|---|---|---|
title / subtitle | 站点标题与副标题 | 副标题会进浏览器标签页和 SEO,别留着主题默认的那句 |
lang | zh_CN | 不改的话界面固定文案是英文 |
timeZone | Asia/Shanghai | 影响文章时间解析和归档分组 |
themeColor.hue | 主题色相,0–360 | 只改这一个数,整站色调就换了 |
themeColor.style | 配色风格 | tonalSpot(默认)、vibrant、content、expressive、rainbow 等 |
themeColor.spec | 设计规范版本 | 2021 或 2025,观感不同 |
banner.homeText.title | 首页横幅大字 | 默认是 Shirone,必须换 |
banner.homeText.subtitle | 打字机轮播的短语 | 默认五条日文,换成你想说的 |
texture.defaultPreset | 背景纹理 | none、starlight、cyber-dots、topography、geometric、sakura |
wallpaperMode.defaultMode | banner 或 none | none 是纯色底 |
favicon | 站点图标 | 留空用主题默认的 |
themeColor.hue 这一项值得多试几组值。它是个 0 到 360 的数字,拖一圈站点气质能变好几种,改完刷新就见效,很适合在还没想清楚要什么风格的时候瞎试。
第二步:个人资料(config/profile.yaml)
name、bio、avatar,加上 links。
links 是侧栏那排社交图标,默认挂着主题作者的 GitHub。这里有两个细节。
图标名走 Iconify 命名法,比如 fa6-brands:github、simple-icons:bilibili、material-symbols:mail-outline。想找图标去 icon-sets.iconify.design 搜。构建时会本地生成,不用联网。
还有个我自己的做法:还没填的社交链接,我统一先写 "/wip/" 这个站内占位页。这样侧栏图标点进去不会 404,也不至于留一个别人的链接,等有真实地址了再换掉就行。
第三步:换字体
如果只能改一样东西来提升观感,我会选字体。
config/font.yaml 能配置正文字体、中文字体和代码字体。中文字体对阅读手感的影响比想象中大,尤其是长文章。
这里有个和构建有关的点:主题会在构建时对字体做子集化,只打包文章里真正用到的字形。我这站上用的中文字体,源文件 14.52 MB,子集化之后是 360 KB,缩了 97.6%。所以别因为“中文字体动辄十几兆”就不敢用。
其余配置,当参考清单看
内容仓里其余 20 多个 config/*.yaml 我全部保持注释状态,要用哪项就解注释。重点几个:
| 文件 | 管什么 |
|---|---|
nav-bar.yaml | 顶部导航菜单 |
sidebar.yaml | 侧栏布局和组件清单,关掉不想用的页面就靠它 |
post-list.yaml | 文章列表的分页大小、列表还是网格 |
permalink.yaml | 文章永久链接格式 |
article.yaml | 更新提示、延伸阅读、分享与海报 |
license.yaml | 文章底部版权协议 |
expressive-code.yaml | 代码块高亮主题 |
announcement.yaml | 侧栏公告栏 |
fab.yaml | 右下角悬浮按钮 |
nav-bar.yaml 还有它自己的脾气:它是整体替换模式。你写了 links,主题默认那套按条件注入的导航菜单就整个被接管了。想换某一项的链接又保留图标,用 preset 加 url 局部覆盖。
内容替换:文章
文章在 content/posts/。支持两种放法:
content/posts/├── my-post.md # 单文件└── image-grid-demo/ ├── index.md # 目录式,图片和文章放一起 └── cover.webp单文件适合纯文字,目录式适合要配图的。
frontmatter 最小可用这一组就够:
---title: "标题"published: 2026-10-14description: "一句话摘要,会出现在文章卡片和搜索结果里"tags: [标签一, 标签二]category: "分类名"draft: false---published 是 YYYY-MM-DD。要精确到时刻用 publishedAt,它会按 site.yaml 里的时区解析,写本地时间即可,但必须落在 published 当天。
draft: true 的文章在 dev 下会显示、在正式构建里会被排除。这个差异坑过我一次:有篇草稿漏写了 category,分类列表里就多出来一个“未分类”,而它在线上根本不存在,因为正式构建把这个草稿排掉了。只在 dev 里看到的现象,先想想是不是草稿。
内容替换:说说
content/moments/ 下每条一个 md,文件名建议 YYYY-MM-DD-短标题.md,配图放 public/images/moments/,正文里用 /images/moments/xxx.webp 引用。缩略图构建时自动生成,不用自己做。
站上的“动态”页读的就是这里。写起来比文章轻,适合放没长成文章的想法。
内容替换:关于页和数据列表
content/spec/about.md 是访客最常翻的页面之一,值得多花点时间写。
data/ 下那批 .ts 文件是各个列表页的数据源,主题自带的全是作者的演示数据,得换:
friends.ts(友链)、projects.ts(项目)、skills.ts(技能)、timeline.ts(时间线)、devices.ts(设备)、music.ts(歌单)、anime.ts(追番)、compass.ts(站点罗盘)。
图片素材:规格给你,图自己找
这部分我给不了你图,但能把要求写清楚。按这个交,能省掉几轮返工。
首页横幅
这是最讲究的一块。主题用 object-fit: cover 铺满容器,而容器比例跟着窗口高度变,所以“交什么比例”比“交多高清”重要。
| 项 | 要求 |
|---|---|
| 桌面交付比例 | 3:1,自己先裁好,别交原始比例 |
| 手机交付比例 | 0.66:1,同样先裁好(一张图不可能同时适配,接受平板端再裁一点) |
| 交付宽度 | 桌面 2560px / 手机 1080px |
| 格式 | WebP。普通图 q85,压暗过的照片用 q90 |
| 主体位置 | 别放正中,那里是横幅大标题和打字机副标题 |
| 裁切锚点 | site.yaml 里的 banner.position,只有 top / center / bottom 三档,而且桌面手机共用 |
两个我踩过的点。
一是遮罩在浅色模式下实际只有一半强度。dim.opacity 写 0.40,浅色模式实际按 0.40 × 0.55 = 0.22 渲染,深色模式才用原值。所以如果你发现副标题的白字看不清,把 dim 调大是没用的(还会连累桌面端),正确做法是出图时就把压暗烘焙进图片中心区域,叠一层柔和的椭圆高斯就行。
二是手机端比例跨度很大:主流手机落在 0.64–0.66,竖屏平板能到 1.07。一张图覆盖不了,按手机优化,平板端多裁一点是正常的。
头像、歌单封面之类
头像我用的是循环动图,规格是 512×512、8 帧、每帧 40ms、无限循环。静态图当然也可以。
有个细节:assets/ 下的图会走 Astro 的图像管线,产物 URL 带 hash,换图链接就变。如果某个图的 URL 要给别人复制(比如友链申请页展示的头像),得另外在 public/ 下放一份,那里文件名固定。这个坑我在第三篇讲友链页时还会提到。
按需开功能
这些默认都是关的,开了会引入外部依赖(账号、第三方服务、额外请求)。关着的时候不产生任何网络请求和 DOM,所以“先不开”零成本,不用纠结。
| 功能 | 前置 |
|---|---|
| 评论 | Giscus 需要一个公开仓库,Twikoo 要自己托管后端 |
| 访问统计 | Umami,自建或者用官网版 |
| 侧栏音乐 | 音频文件,或接 Meting 接口 |
| 追番 | 本地数据、Bangumi 用户 ID、或 B 站 uid |
/llms.txt | 无,纯静态生成 |
| 备案号页脚 | 需要备案号 |
开完记得在生产构建下也验一遍,不只测 dev。
检查清单
这一轮做完,pnpm dev 起来之后:
- 首页横幅的大字、副标题、背景图都是你的
- 侧栏社交图标点进去是你的主页,没有“别人的 GitHub”
- 标签页标题和副标题是你写的
- 文章列表、归档、分类里只剩你的文章
- 关于页、友链、项目、时间线里找不到主题作者的演示数据
- 全站搜一遍,没有不认识的图
到这里,站点的“内里”和“气质”已经是你的了。下一篇讲真正需要动源码的那几处,以及怎么让这些改动在主题升级后活下来。
分享文章
生成精美分享图或复制链接,与更多人分享本文。
继续阅读
换条路线
从其他文章中稳定抽取
最后更新于 ,距今已过 18 天
部分内容可能已过时