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。
115 lines
5.7 KiB
Markdown
115 lines
5.7 KiB
Markdown
该项目是原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` 要在确认所有站点都升级完之后才能下线 |