修复压缩产物丢失的代码块样式,并把主题更新源收进主站

1. kratos.min.css 补回 6 条代码块样式
   上次为了注释掉 max-height 把单行压缩版手工展开,展开时整组丢了
   .content 下的 pre / code / kbd / pre code / pre ol / pre li,
   而未压缩的 kratos.css 里它们都在,源与产物从此不一致。
   表现是行内 code 与 kbd 没有样式(代码块因插件主题覆盖才没露馅)。
   改为用 clean-css 从 kratos.css 重新生成,不再手工维护产物。

2. 删掉 max-height / text-overflow 两条声明,而不是注释掉
   注释会被压缩器剥掉,产物里等于没改过。

3. 补上 Prism 代码高亮兜底(此前只存在于线上,仓库里没有)
   语言包路径改用 plugins_url() 动态生成,换域名或加 CDN 不会静默 404。

4. 主题更新元数据从独立子域名迁到主站 /theme-update/
   地址可用 wp-config.php 的 YANG_THEME_UPDATE_URL 覆盖,换域名不必改主题代码。

5. footer 的主题链接指向自建源库;补文档说明自动升级会覆盖主题目录、
   以及发布新版本必须"先打包再改版本号"的顺序。

6. 顺带去掉 .a-post .header .label 里重复声明的 position。
This commit is contained in:
2026-10-23 09:06:16 +08:00
parent 61d0111e0b
commit ffbe1b9b73
5 changed files with 113 additions and 2213 deletions
+72 -1
View File
@@ -41,4 +41,75 @@ https://github.com/vtrois/kratos
}
```
就可以了。该问题属于和插件的冲突问题,因此,在额外CSS中添加,不修改主题本身。
就可以了。该问题属于和插件的冲突问题,因此,在额外CSS中添加,不修改主题本身。
# 代码块样式
主题的 `assets/css/kratos.css` 里有一组 `.k-main .details .article .content` 下的
`pre` / `code` / `kbd` / `pre code` / `pre ol` / `pre li` 规则,负责代码块与行内代码的底色和间距。
**这六条曾经在压缩产物里整组丢失过**:某次改动把单行压缩版 `kratos.min.css` 手工展开成可读格式,
展开时漏掉了这一整段,而原始未压缩的 `kratos.css` 里它们是齐全的,导致源与产物对不上。
表现是行内 `code` 与 `kbd` 没有样式(代码块因为插件 Prism 主题的覆盖才没露馅)。
改完 CSS 后请用压缩器重新生成产物,不要手工维护 `kratos.min.css`:
```bash
npx clean-css-cli@5.6.3 -o assets/css/kratos.min.css assets/css/kratos.css
```
# 主题自动更新
更新走的是一份静态 JSON + 一个 zip 包,由 `inc/update-checker/`(Plugin Update Checker 4.9)消费。
- 元数据地址:`https://yangyq.net/theme-update/update.json`
(定义在 `inc/theme-core.php`,可用 `wp-config.php` 里的 `YANG_THEME_UPDATE_URL` 覆盖)
- 发布目录:站点根下的 `theme-update/`,内容只有三样:
```
theme-update/update.json # 版本元数据
theme-update/kratos_yang.zip # 主题包,解压后是 kratos_yang/ 目录
theme-update/readme.html # 「详情」页,可省
```
`update.json` 格式(`version` 与 `details_url` 必填):
```json
{
"version": "3.3.0",
"details_url": "https://yangyq.net/theme-update/readme.html",
"download_url": "https://yangyq.net/theme-update/kratos_yang.zip"
}
```
## 发布新版本的顺序
**先改 `style.css` 里的 `Version`,再打包**,否则 WordPress 认为没有新版本,不会提示升级。
1. 改 `style.css` 的 `Version`(例如 3.2.0 → 3.3.0)
2. 打包:`zip -r kratos_yang.zip kratos_yang -x "*.DS_Store" "*/.git/*"`
3. 传 `kratos_yang.zip` 到 `theme-update/`
4. **最后**才改 `update.json` 里的 `version`
第 4 步放最后,是因为 WordPress 见到新版本号就会立刻允许升级;
若此时 zip 还是旧的,等于发了个指向旧包的更新,装完版本号没变(或者直接坏掉)。
## ⚠️ 自动升级会覆盖主题目录
WordPress 升级主题的做法是**删掉整个 `kratos_yang/` 再解压新包**。
所以任何直接改在服务器主题目录里的东西都会丢,包括:
- `custom/custom.css`、`custom/custom.js`(放本地自定义样式的常用位置)
- 手工打的补丁(例如曾经直接在 `footer.php` 里加的 Prism 脚本)
把自定义内容放主题目录外,或者在升级后重新部署。本仓库的 `custom/` 已经纳入版本管理,
修改请改仓库再发布新版本,不要在服务器上直接编辑。
## 换域名 / 退役旧域名
以前更新元数据放在独立子域名上,现在收进主站,省掉一个站点、一套证书和一份备案。
切换时注意:
1. 先把 `theme-update/` 部署到主站并确认 `update.json` 能直接访问(返回 JSON,不是 404 或首页)
2. 再发布带新地址的主题版本
3. **旧版本的主题仍会去老地址拉更新**,所以旧域名的 `update.json` 要在确认所有站点都升级完之后才能下线