Files
wordpress-kratos-yang/README.md
T
laoyang ffbe1b9b73 修复压缩产物丢失的代码块样式,并把主题更新源收进主站
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。
2026-10-23 09:06:16 +08:00

115 lines
5.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
该项目是原kratos的一个分支。
原主题的地址是:
https://github.com/vtrois/kratos
因为我需要一些定制的功能,就fork出来一个新的分支,自己用。如果你对原有的主题开发也有不满意的地方,欢迎使用我的这个版本。当然,版权仍然是属于原主题。
主题预览:<a href="https://yangyq.net" target="_blank">老杨说话的地方</a>。
该仓库已同步到多个git托管平台,包括<a href="https://github.com/dryangyq/wordpress-kratos-yang.git" target="_blank">Github</a>、<a href="https://gitee.com/dryangyq/wordpress-kratos-yang.git" target="_blank">Gitee</a>、
<a href="https://gitlab.com/dryangyq/wordpress-kratos-yang.git" target="_blank">Gitlab</a>和<a href="https://code.aliyun.com/dryangyq/wordpress-kratos-yang.git" target="_blank">阿里云Code</a>。这些代码库都和<a href="https://git.yangyq.net/laoyang/wordpress-kratos-yang.git" target="_blank">源库</a>保持一致和同步,在任何平台上关注都可以。
**Github因为网络原因,同步会出现失败情况,无法保证最新。**
主要修改的地方主要包括:
1. 为移动端增加了侧边栏显示。之前的版本,在移动端无法看到最近评论,这个版本加入了这个功能。当然只是在首页,在文章页面,为了减少数据传输,仍然没有侧边栏。
2. 文章聚合widget,将最新文章优先显示。原来的版本,是显示最热门文章,但是不知道什么原因,热点文章总是没几个,而且我认为,大部分人上来,应该时主要为了看最新文章的吧。
3. 删除了配置页面中的关于主题,精简、精简、精简。
4. 删除了资源托管选项,删除了媒体托管选项。
5. 文章配置中,删除了文章版权信息,删除了网易云音乐。
6. 删除了社交相关配置选项。
7. 增加了在页脚显示国旗的选项。
# 修复Bug
1. 如果使用了插件,会改变comment的div名称,class="comments" 变成了comments-area,因此,评论的样式不好用了。
此时,在主题的额外CSS中添加:
```
.k-main .details .comments-area {
margin-top: 16px;
padding: 1.6px 16px 16px;
border-radius: 2px;
background-color: #fff;
-webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1);
-moz-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1);
box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1);
}
.k-main .details .post-2 .comments-area {
-webkit-box-shadow: none;
-moz-box-shadow: none;
box-shadow: none;
}
```
就可以了。该问题属于和插件的冲突问题,因此,在额外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` 要在确认所有站点都升级完之后才能下线