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 细节。

如何切

  1. 编辑 sbraveyoung.github.io/_gobog.json,把 theme 改成 minimal / sepia / ocean 之一。
  2. commit + push。
  3. 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 自动跑),新代码才会被拉来生成新版站点。