修复压缩产物丢失的代码块样式,并把主题更新源收进主站
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:
@@ -42,3 +42,74 @@ https://github.com/vtrois/kratos
|
||||
```
|
||||
|
||||
就可以了。该问题属于和插件的冲突问题,因此,在额外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` 要在确认所有站点都升级完之后才能下线
|
||||
@@ -575,14 +575,13 @@ button:focus {
|
||||
display: -webkit-box;
|
||||
overflow: hidden;
|
||||
margin: 3px 0 6px;
|
||||
max-height: 25px;
|
||||
text-overflow: ellipsis;
|
||||
/* 下面两条已废弃:新版 Chrome 里 max-height 与 -webkit-line-clamp 同时生效会截断成半行。
|
||||
直接删除而不是注释,因为注释会被 CSS 压缩器剥掉,产物里等于没改。 */
|
||||
-webkit-box-orient: vertical;
|
||||
-webkit-line-clamp: 1;
|
||||
}
|
||||
|
||||
.k-main .board .article-panel .a-post .header .label {
|
||||
position: relative;
|
||||
position: relative;
|
||||
top: -2px;
|
||||
display: inline-block;
|
||||
|
||||
Vendored
+1
-2206
File diff suppressed because one or more lines are too long
+26
-1
@@ -45,7 +45,7 @@
|
||||
$sitename = get_bloginfo('name');
|
||||
$Year = date("Y");
|
||||
echo '<p>' . 'COPYRIGHT © ' . $Year . ' ' . $sitename . ' 版权所有' . '</p>';
|
||||
echo '<p>THEME <a href="https://gitee.com/semoryang/kratos_yang" target="_blank" rel="nofollow">KRATOS YANG</a> Modified BY <a href="https://yangyq.net" target="_blank" rel="nofollow">老杨</a></p>';
|
||||
echo '<p>THEME <a href="https://git.yangyq.net/laoyang/wordpress-kratos-yang" target="_blank" rel="nofollow">KRATOS YANG</a> Modified BY <a href="https://yangyq.net" target="_blank" rel="nofollow">老杨</a></p>';
|
||||
if (kratos_option('s_icp')) {
|
||||
echo '<p><a href="https://beian.miit.gov.cn/" target="_blank" rel="nofollow">' . kratos_option('s_icp') . '</a></p>';
|
||||
}
|
||||
@@ -60,5 +60,30 @@
|
||||
</div>
|
||||
</div>
|
||||
<?php wp_footer(); ?>
|
||||
<?php
|
||||
/**
|
||||
* Prism 代码高亮兜底
|
||||
*
|
||||
* 主题前台是整页跳转,本不需要这段;但 wp-editormd 插件的 Prism autoloader
|
||||
* 依赖 DOMContentLoaded 之后的动态语言包加载,遇到被其它插件延后插入的
|
||||
* 代码块就会漏高亮。这里在</body>前再补一次。
|
||||
*
|
||||
* 语言包路径用 plugins_url() 动态取,不要写死域名:
|
||||
* 站点换了域名或加了 CDN,写死的地址会静默 404(表现为代码块不上色)。
|
||||
*/
|
||||
if (defined('WP_PLUGIN_DIR') && file_exists(WP_PLUGIN_DIR . '/wp-editormd/assets/Prism.js/components/')) {
|
||||
$prism_langs = plugins_url('/wp-editormd/assets/Prism.js/components/');
|
||||
?>
|
||||
<script type="text/javascript">
|
||||
if (window.Prism && Prism.plugins && Prism.plugins.autoloader) {
|
||||
Prism.plugins.autoloader.languages_path = <?php echo wp_json_encode($prism_langs); ?>;
|
||||
}
|
||||
if (window.Prism && typeof Prism.highlightAll === 'function') {
|
||||
Prism.highlightAll();
|
||||
}
|
||||
</script>
|
||||
<?php
|
||||
}
|
||||
?>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
+11
-1
@@ -182,8 +182,18 @@ function get_https_avatar($avatar)
|
||||
add_filter('get_avatar', 'get_https_avatar');
|
||||
|
||||
// 主题更新检测
|
||||
//
|
||||
// 更新元数据放在站点自己的域名下(/theme-update/update.json),不再单独占一个子域名。
|
||||
// 好处是复用主站的证书、备案与 CDN,少维护一套站点。
|
||||
// 注意:update.json 必须能被无条件公开访问。它落在 WordPress 根目录下,但主站 .htaccess
|
||||
// 的重写规则带了 !-f 条件,真实存在的文件不会被送进 index.php,所以能正常直出。
|
||||
// 若以后装了拦截直链的安全插件,先确认这个路径没被拦。
|
||||
if (!defined('YANG_THEME_UPDATE_URL')) {
|
||||
define('YANG_THEME_UPDATE_URL', 'https://yangyq.net/theme-update/update.json');
|
||||
}
|
||||
|
||||
$myUpdateChecker = Puc_v4_Factory::buildUpdateChecker(
|
||||
'https://theme.yangyq.net/update.json',
|
||||
YANG_THEME_UPDATE_URL,
|
||||
get_template_directory() . '/functions.php',
|
||||
'Kratos_Yang'
|
||||
);
|
||||
|
||||
Reference in New Issue
Block a user