2418 字
12 分钟
页面浏览--访问次数--
返回首页
Shirone 改造记(二):不动一行源码,把它变成自己的站

上一篇定下了三条纪律:内容归内容仓,代码归代码仓,改之前先想清楚自己在动哪一层。

这篇全部是 L1 和 L2。一行源码都不用改,改完站点从里到外都是你的。

顺序上我建议先外观后内容。外观改完立刻能看到,正反馈来得快;内容替换是场持久战,适合后面慢慢磨。

第一步:站点身份(config/site.yaml)#

打开内容仓的 config/site.yaml,要动的就几项:

键作用说明
title / subtitle站点标题与副标题副标题会进浏览器标签页和 SEO,别留着主题默认的那句
langzh_CN不改的话界面固定文案是英文
timeZoneAsia/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.defaultModebanner 或 nonenone 是纯色底
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-14
description: "一句话摘要,会出现在文章卡片和搜索结果里"
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 起来之后:

  1. 首页横幅的大字、副标题、背景图都是你的
  2. 侧栏社交图标点进去是你的主页,没有“别人的 GitHub”
  3. 标签页标题和副标题是你写的
  4. 文章列表、归档、分类里只剩你的文章
  5. 关于页、友链、项目、时间线里找不到主题作者的演示数据
  6. 全站搜一遍,没有不认识的图

到这里,站点的“内里”和“气质”已经是你的了。下一篇讲真正需要动源码的那几处,以及怎么让这些改动在主题升级后活下来。

Shirone 改造记(二):不动一行源码,把它变成自己的站
https://xiaobuhui.xyz/posts/blog-rework-diary/shirone-gaizaoji-2/
作者
xiaobuhui
发布于
2026-10-14
许可协议
CC BY-NC-SA 4.0

分享文章

生成精美分享图或复制链接,与更多人分享本文。

继续阅读

沿着主题读

基于共同的标签与分类

换条路线

从其他文章中稳定抽取