Skill · 主题与品牌
何时用:想换主题、改站名、改副标题、加自定义域名时。
解决什么:把"哪个开关在哪个仓库的哪个文件里"一次说清——避免每次都到处翻。
改这些都在 _gobog.json
sbraveyoung.github.io 仓库根目录有一个 _gobog.json。它不是 gobog 自己读的——是 deploy workflow 在跑之前读这个 JSON 拼出真正的 gobog.toml。所以改它 = 改部署时用的配置。
{
"theme": "minimal",
"domain": "https://sbrave.cn",
"title": "sbraveyoung · 字里行间",
"subtitle": "阅读 · 实践 · 思考",
"author": "sbraveyoung",
"description": "一个程序员的笔记本:技术拆解、踩坑总结、生活随笔。",
"cname": "sbrave.cn",
"comments": { ... } // 见 comment-system skill
}
三套主题
| theme | 风格 |
|---|---|
minimal |
默认,黑白极简,最适合长文阅读 |
sepia |
暖色调,类似纸质书的视觉 |
ocean |
冷蓝调,安静耐看 |
三套都共享同一份 HTML 模板和 JS(floating TOC、code copy、MathJax 加载、theme/lang 切换都在),只是 CSS 颜色 token 不同。所以你预期看到的功能在三套主题里完全一致——切换主题不会丢失某个 UI 细节。
如何切
- 编辑
sbraveyoung.github.io/_gobog.json,把theme改成minimal/sepia/ocean之一。 - commit + push。
- deploy workflow 跑完(1~2 分钟)。
临时预览另一个主题
去 sbraveyoung.github.io 的 Actions → Deploy → Run workflow,里面有个 theme 输入框。填进去(比如 sepia),跑一次。生效后整站就是 sepia——但 _gobog.json 没变,下一次自动 deploy 又会回到 json 里写的那个主题。
适合"诶我想试试看 sepia 长啥样"。试完不喜欢?啥都不用回滚,下次自动 deploy 就回去了。
关于浅色 / 深色
每个主题都自带浅色和深色两个版本:
- 默认跟随系统的
prefers-color-scheme。 - 用户右上角点 ☀ / ☾ 按钮可以手动覆盖,结果存在
localStorage。 - CSS 变量
--bg / --fg / --accent / ...是切换的入口;写自定义 CSS 不要硬编码颜色,统一用变量。
关于 中 / EN 切换
每个主题导航条有 中 / EN 切换按钮:
- 默认
lang="zh-cn"。 - 切换后
<html>的lang属性变en,CSS 用html[lang^="en"]选择子去切某些区域的中英文文本。 - 选择存在
localStorage,下次访问保留。
注意:中 / EN 切换只切主题里的 UI 文本(导航条按钮等),不会翻译文章内容。文章是中文还是英文取决于你写的是什么。
自定义域名 (CNAME)
_gobog.json 里 cname: "sbrave.cn" 会被 gobog 写入 <dist>/CNAME 文件。GitHub Pages 检测到这个文件就把博客挂在 sbrave.cn 上。
把 cname 改成空字符串 = 用 GitHub 默认域 <user>.github.io。
DNS 那边记得把 sbrave.cn 的 A 记录或 CNAME 记录指到 GitHub Pages(185.199.108.153 等四个 A,或 <user>.github.io.)。
什么时候要改 gobog 仓库?
需求超出 token 调色范畴时——比如想加新功能(搜索、归档页、夜间柔光模式之类)、改 HTML 结构、加新模板字段。这是"改渲染逻辑",对应 sbraveyoung/gobog。
改完 commit + push 到 gobog,再去 github.io 仓库手动跑一次 Deploy(或者等下次 schedule 06:00 UTC 自动跑),新代码才会被拉来生成新版站点。