正文 h1/h2/h3 标题自动加编号(无 h1 时 h2 即一级),与目录编号对齐 #30

Closed
opened 2026-10-28 00:03:53 +00:00 by laoyang · 3 comments
Owner

现象

目录里的条目是带编号的(1 / 1.1 / 2 / 2.1…),但正文里的标题一个编号都没有,两边对不上,读文章时没法照着目录找。

用户原话:

这个标题,h1,h2,h3,能不能加上编号?如果 h1 没有,就是 h2 是一级编号,因为目录是有编号的,正文没有编号,给人的感觉很奇怪。

已实测确认的现状(线上真实页面,不是源码推断)

目录侧的编号规则:已经是「按实际最高级别归一」

抓线上真实 HTML 里的 <span class="yang-toc-num">:

文章 正文标题构成 目录编号
#5240 RIME 配置 h2×4 + h3×6 1 / 2 / 3 / 3.1~3.6 / 4
#2182 武林外传 只有 h3×7 1~7
#5131 NLP 概念 h1×2 + h2×8 1 / 1.1~1.6 / 2 / 2.1~2.2

即 yang_toc_build_list() 里的 lstack/depth 归一化已经做到了「没 h1 就让 h2 当一级」。所以编号算法本身不用改,正文复用同一份结果即可,这样两边天然一致,不会出现两套算法漂移。

正文标题的级别分布(近 300 篇)

有标题的只有 24 篇,标题总数 112
h1 = 2 个(全在 #5131 一篇里)
h2 = 93 个   ← 绝对主流
h3 = 17 个
h4/h5/h6 = 0

绝大多数文章就是「没有 h1,h2 当一级」,与用户描述一致。

隐患:已有手写编号的标题

#5240 的 6 个 h3 标题是手写的:

1. 自定义短语   2. 候选词竖排显示   3. 翻页功能
4. 候选词个数   5. Shift键上屏      6. 词库的同步

自动编号后会变成 3.1 1. 自定义短语 —— 双层编号。

方案(用户三项选择已确认)

决策点 选定
编号视觉样式 灰色小号弱化(比标题小 2~4px,不抢标题重心;与目录 .yang-toc-num 的灰色小字风格一致)
编号范围 跟着目录收录级别走(后台 toc_levels 勾哪几级就编哪几级,现在默认 1/2/3)
已有手写编号 检测到就跳过该条,不叠加(不动 post_content)

验收标准

  1. 正文标题前出现编号,且与目录里同一标题的编号逐条一致(同一个 depth 算法,一份结果两处用)。
  2. 无 h1 时 h2 是一级:h2/h3 的文章得到 1 / 2 / 2.1 / 3,不是 2 / 3 / 3.1 / 4。
  3. 只有 h3 时不出现「从 2 开始」:h3×7 得到 1~7。
  4. h1+h2 混合时 h1=1、h2=1.1,与 #5131 现有目录编号一致。
  5. 跳级/回退不出错:h2→h4→h3→h2 这种顺序,编号连续、不重号、不跳号。
  6. 已有手写编号的标题跳过:#5240 的 6 个 h3 保持原样,不加前缀。
  7. 不改 post_content:编号在渲染时(the_content 过滤器)加上,不写库、不进编辑器、不影响 RSS/搜索/摘录。
  8. 关掉目录收录该级 ⇒ 该级也不编号,与目录保持一致。
  9. 归档页 h3.ar-year 与评论区 h3 不受影响(3.2.60 已建立的两处让路规则必须继续成立)。
  10. 锚点 id 不变:编号是视觉层,id 仍由标题原文生成,已有外链不失效。

待确认的边界(实现中若发现,回来补评论)

  • 纯符号/emoji 标题(yang_toc_make_id 已有 section 兜底)如何编号。
  • 编号是否要把 h3 里已有的 1. 这类识别得更宽(一、/(一)/第一章 等已列入检测规则)。

为什么单独建单

#28 是图片缩进几何问题、#29 是标题字号字重层级;本条是标题文本内容加编号,与两者无重叠

## 现象 目录里的条目是带编号的(1 / 1.1 / 2 / 2.1…),但**正文里的标题一个编号都没有**,两边对不上,读文章时没法照着目录找。 用户原话: > 这个标题,h1,h2,h3,能不能加上编号?如果 h1 没有,就是 h2 是一级编号,因为目录是有编号的,正文没有编号,给人的感觉很奇怪。 ## 已实测确认的现状(线上真实页面,不是源码推断) ### 目录侧的编号规则:已经是「按实际最高级别归一」 抓线上真实 HTML 里的 `<span class="yang-toc-num">`: | 文章 | 正文标题构成 | 目录编号 | |---|---|---| | #5240 RIME 配置 | h2×4 + h3×6 | `1 / 2 / 3 / 3.1~3.6 / 4` | | #2182 武林外传 | **只有 h3**×7 | `1~7` | | #5131 NLP 概念 | h1×2 + h2×8 | `1 / 1.1~1.6 / 2 / 2.1~2.2` | 即 `yang_toc_build_list()` 里的 `lstack`/`depth` 归一化已经做到了「没 h1 就让 h2 当一级」。**所以编号算法本身不用改,正文复用同一份结果即可**,这样两边天然一致,不会出现两套算法漂移。 ### 正文标题的级别分布(近 300 篇) ``` 有标题的只有 24 篇,标题总数 112 h1 = 2 个(全在 #5131 一篇里) h2 = 93 个 ← 绝对主流 h3 = 17 个 h4/h5/h6 = 0 ``` 绝大多数文章就是「没有 h1,h2 当一级」,与用户描述一致。 ### 隐患:已有手写编号的标题 #5240 的 6 个 h3 标题是手写的: ``` 1. 自定义短语 2. 候选词竖排显示 3. 翻页功能 4. 候选词个数 5. Shift键上屏 6. 词库的同步 ``` 自动编号后会变成 `3.1 1. 自定义短语` —— 双层编号。 ## 方案(用户三项选择已确认) | 决策点 | 选定 | |---|---| | 编号视觉样式 | **灰色小号弱化**(比标题小 2~4px,不抢标题重心;与目录 `.yang-toc-num` 的灰色小字风格一致) | | 编号范围 | **跟着目录收录级别走**(后台 `toc_levels` 勾哪几级就编哪几级,现在默认 1/2/3) | | 已有手写编号 | **检测到就跳过该条**,不叠加(不动 `post_content`) | ## 验收标准 1. **正文标题前出现编号**,且与目录里同一标题的编号**逐条一致**(同一个 `depth` 算法,一份结果两处用)。 2. **无 h1 时 h2 是一级**:`h2/h3` 的文章得到 `1 / 2 / 2.1 / 3`,不是 `2 / 3 / 3.1 / 4`。 3. **只有 h3 时不出现「从 2 开始」**:`h3×7` 得到 `1~7`。 4. **h1+h2 混合**时 h1=1、h2=1.1,与 #5131 现有目录编号一致。 5. **跳级/回退不出错**:`h2→h4→h3→h2` 这种顺序,编号连续、不重号、不跳号。 6. **已有手写编号的标题跳过**:#5240 的 6 个 h3 保持原样,不加前缀。 7. **不改 `post_content`**:编号在渲染时(`the_content` 过滤器)加上,不写库、不进编辑器、不影响 RSS/搜索/摘录。 8. **关掉目录收录该级 ⇒ 该级也不编号**,与目录保持一致。 9. **归档页 `h3.ar-year` 与评论区 h3 不受影响**(3.2.60 已建立的两处让路规则必须继续成立)。 10. **锚点 id 不变**:编号是视觉层,`id` 仍由标题原文生成,已有外链不失效。 ## 待确认的边界(实现中若发现,回来补评论) - 纯符号/emoji 标题(`yang_toc_make_id` 已有 `section` 兜底)如何编号。 - 编号是否要把 `h3` 里已有的 `1.` 这类识别得更宽(`一、`/`(一)`/`第一章` 等已列入检测规则)。 --- ### 为什么单独建单 #28 是图片缩进几何问题、#29 是标题字号字重层级;本条是标题文本内容加编号,与两者无重叠
Author
Owner

实现完成(3.2.62,已发到 /theme-update/)

commit 76c69b3,已推送。服务器主题仍是 3.2.61,等后台点升级(更新缓存已清,后台「更新」页现在能看到 3.2.62)。

编号规则

文章形态 实际编号
h2×4 + h3×6(#5240) 1 2 3 3.1~3.6 4
只有 h3×7(#2182) 1~7
h1×2 + h2×8(#5131) 1 1.1~1.6 2 2.1 2.2
h2 + h3 混排(#5273) 1 2 2.1~2.4 3 4

「没有 h1 时 h2 就是一级」是按 深度归一 实现的,不是按绝对 level:h2 的 level 是 2,若拿它当编号首段就会编成 "2"。归一后最外层深度恒为 0 ⇒ 首段恒为 1。

三项决策的落地

  • 灰色小号:0.62em(h2 上是 14.88px、h3 上 12.41px),颜色 #a8abb2,字重 400。与目录 .yang-toc-num 同风格。
  • 范围跟目录走:共用后台 toc_levels 那一份(现默认 1/2/3,故 h4 及以下不编号)。
  • 手写编号跳过:能识别 1. 1、 1) 1) 1.2 1.2.3 一、 (一) (1) 第一章/节/部分。线上 124 个标题精准命中 6 个(#5240 那 6 条),零误伤;2026 年展望(数字后无分隔符)不误判。

⚠️ 一点需要你确认:跳过的那些条目仍占着编号位置。所以 #5240 正文里那 6 个自己写了编号的 h3 不会出现 3.13.6,但后面那个 h2 依然是 4 —— 序列不错位。正文与目录在那一段看起来会"对不上"(目录有 3.13.6、正文是你自己写的 1.~6.)。这是你选的「跳过」策略的必然结果。如果看着别扭,可以改成「手写编号的也照插」(会叠成 3.1 1. xxx),或者改成「正文不插、只在目录里显示」,都只改一个开关。

中途修掉一个我自己造的问题

编号把标题撑高 3px(h2 46→49、h3 37→40)。第一反应是行高,写了 line-height: inherit —— 无效;写死 46px 也无效;vertical-align: baseline/middle 也不对(48.52px)。

真因是反直觉的:同行高下,行内盒的上下边界由半行距决定,而半行距把 content-area 居中塞进 line-height —— 字号越小半行距越大,盒底反而越往下探:

h2  (fs=24,   L=46): 0.25×24    + (46−24)/2    = 17.00
span(fs=14.88,L=46): 0.25×14.88 + (46−14.88)/2 = 19.28   ← 多探 2.28

所以"让两者共用行高"不是解药,恰恰是病根。改成 display:inline-block + line-height:1(原子行内盒,只按自身内容高度参与排版)后实测 46→46、37→37,一分不多。

验证

项 结果
正向判据(A~K 共 11 组) 43 / 0
反证(10 组注入) 22 / 0(均红在预期条目)
线上 4 篇真实文章 20 / 0
新旧两版目录 HTML 逐字节比对 7 / 0(4/4 篇完全相同 ⇒ 重构没改坏老行为)
几何判据(桌面 1440 + 手机 390) 68 / 0
打包自检 + 4 组注入反证 59 / 0,注入全红

几何判据里两条反证值得记:

  • 回到 inline + inherit ⇒ 高度差 3.00px(G5 如期报红,数值正是原 bug)
  • 编号 display:block 独占一行 ⇒ G3 差 14.88px(如期报红)

第二条是改了三版才写对的:前两版分别用「下沉量 < 行高一半」和「落在文字行 ± 字号」,都被 12px 的容差吃掉(实测基线编号顶本来就在文字行顶下方 12px),编号真掉行也不报红。最终改成判「编号与首行文字的垂直区间是否有交叠」——这是"在同一行"最直接的定义,且不受字体度量影响。

附带说明

编号是页面上的样式,不动 post_content:编辑器、RSS、搜索结果、摘要里都不会出现编号。后台开关一关即全部消失,文章内容一个字不用改。

## 实现完成(3.2.62,已发到 /theme-update/) commit `76c69b3`,已推送。**服务器主题仍是 3.2.61,等后台点升级**(更新缓存已清,后台「更新」页现在能看到 3.2.62)。 ### 编号规则 | 文章形态 | 实际编号 | |---|---| | h2×4 + h3×6(#5240) | `1` `2` `3` `3.1`~`3.6` `4` | | 只有 h3×7(#2182) | `1`~`7` | | h1×2 + h2×8(#5131) | `1` `1.1`~`1.6` `2` `2.1` `2.2` | | h2 + h3 混排(#5273) | `1` `2` `2.1`~`2.4` `3` `4` | 「没有 h1 时 h2 就是一级」是按 **深度归一** 实现的,不是按绝对 level:h2 的 level 是 2,若拿它当编号首段就会编成 "2"。归一后最外层深度恒为 0 ⇒ 首段恒为 1。 ### 三项决策的落地 - **灰色小号**:`0.62em`(h2 上是 14.88px、h3 上 12.41px),颜色 `#a8abb2`,字重 400。与目录 `.yang-toc-num` 同风格。 - **范围跟目录走**:共用后台 `toc_levels` 那一份(现默认 1/2/3,故 h4 及以下不编号)。 - **手写编号跳过**:能识别 `1.` `1、` `1)` `1)` `1.2` `1.2.3` `一、` `(一)` `(1)` `第一章/节/部分`。线上 124 个标题精准命中 6 个(#5240 那 6 条),零误伤;`2026 年展望`(数字后无分隔符)不误判。 ⚠️ 一点需要你确认:**跳过的那些条目仍占着编号位置**。所以 #5240 正文里那 6 个自己写了编号的 h3 不会出现 3.1~3.6,但后面那个 h2 依然是 4 —— 序列不错位。正文与目录在那一段看起来会"对不上"(目录有 3.1~3.6、正文是你自己写的 1.~6.)。这是你选的「跳过」策略的必然结果。**如果看着别扭,可以改成「手写编号的也照插」(会叠成 3.1 1. xxx),或者改成「正文不插、只在目录里显示」**,都只改一个开关。 ### 中途修掉一个我自己造的问题 编号把标题**撑高 3px**(h2 46→49、h3 37→40)。第一反应是行高,写了 `line-height: inherit` —— **无效**;写死 46px 也无效;`vertical-align: baseline/middle` 也不对(48.52px)。 真因是反直觉的:**同行高下,行内盒的上下边界由半行距决定,而半行距把 content-area 居中塞进 line-height** —— 字号越小半行距越大,盒底反而越往下探: ``` h2 (fs=24, L=46): 0.25×24 + (46−24)/2 = 17.00 span(fs=14.88,L=46): 0.25×14.88 + (46−14.88)/2 = 19.28 ← 多探 2.28 ``` 所以"让两者共用行高"不是解药,恰恰是病根。改成 `display:inline-block` + `line-height:1`(原子行内盒,只按自身内容高度参与排版)后实测 **46→46、37→37**,一分不多。 ### 验证 | 项 | 结果 | |---|---| | 正向判据(A~K 共 11 组) | **43 / 0** | | 反证(10 组注入) | **22 / 0**(均红在预期条目) | | 线上 4 篇真实文章 | **20 / 0** | | **新旧两版目录 HTML 逐字节比对** | **7 / 0**(4/4 篇完全相同 ⇒ 重构没改坏老行为) | | 几何判据(桌面 1440 + 手机 390) | **68 / 0** | | 打包自检 + 4 组注入反证 | **59 / 0**,注入全红 | 几何判据里两条反证值得记: - 回到 `inline` + `inherit` ⇒ 高度差 **3.00px**(G5 如期报红,数值正是原 bug) - 编号 `display:block` 独占一行 ⇒ G3 差 **14.88px**(如期报红) 第二条是改了三版才写对的:前两版分别用「下沉量 < 行高一半」和「落在文字行 ± 字号」,都被 12px 的容差吃掉(实测基线编号顶本来就在文字行顶下方 12px),编号真掉行也不报红。最终改成判「编号与首行文字的垂直区间**是否有交叠**」——这是"在同一行"最直接的定义,且不受字体度量影响。 ### 附带说明 编号是**页面上的样式**,不动 `post_content`:编辑器、RSS、搜索结果、摘要里都不会出现编号。后台开关一关即全部消失,文章内容一个字不用改。
Author
Owner

3.2.63:字号改成与各级标题一致

用户原话:

编号,灰色弱化可以,但是字体不能太小,要不然很不协调,看着难受,字号改成和每一级的标题一样吧,我再看看效果。

拆成三条:① 灰色弱化保留;② 字号不能太小(否掉 0.62em);③ 字号改成和每一级标题一样。

改了什么

assets/css/site.css 里 .yang-h-num 两处属性值:

属性 3.2.62 3.2.63
font-size 0.62em(h2 上 14.88px) 1em(h2 24 / h3 20 / h4 17px)
margin-right 0.35em(5.2px) 0.25em(6.0px)

⚠️ margin-right 为什么必须跟着改:em 是相对编号自身字号的。字号从 14.88px 变 24px 后,同一个 0.35em 会从 5.2px 涨到 8.4px,编号和标题之间像被硬拉开。收到 0.25em 后是 6.0px,与原来的 5.2px 观感接近。

display:inline-block + line-height:1 保留,但理由变了:

  • 实测发现,字号改成 1em 之后同字号本身已经不撑高了(inline + inherit 也是 46px),因为撑高的根源是「小字号的半行距更大」;
  • 仍保留两个理由:① 防回归 —— 以后谁把字号改回小号,不会立刻复发 3px;② 编号成为原子盒,永不跨行断开。

实测(线上真实文章页,桌面 1440 + 手机 390)

h2  编号 24px  vs 标题 24px
h3  编号 20px  vs 标题 20px
h4  编号 17px  vs 标题 17px
标题高度:加编号 46.0 / 不加 46.0 → 差 0.00px

判据

检查 结果
几何(_geom362.js,G8 改为判「相等」) 71 / 0
编号逻辑(_toc30_number_check.php,J3 方向反转) 44 / 0
真实数据(_toc30_real_check.php) 20 / 0
目录与正文等价(_toc30_equiv.php) 7 / 0
编号反证(_toc30_falsify.php) 22 / 0
打包自检(_mkzip363.py) 61 / 0
打包注入反证(_mkzip363_falsify.py) 8 / 0
PHP 语法(97 个文件) 0 错

这一轮踩到的三个判据坑(都已修)

  1. 反证 R1 失效 —— 字号改 1em 后,光回退 display+line-height 不再撑高了(实测仍 46px),反证报「仍是绿,判据无效」。根因不是判据没牙齿,而是注入形态不完整:撑高需要「小字号」这个前提。改成三条同时回退(0.62em + inline + inherit)后红出 3.00px。

  2. G8 判据方向失效 —— 原来是「编号字号 < 标题」,字号改同大后恒假。改成 Math.abs(n - h) < 0.01(用容差不用严格 ===,防浏览器返回 23.999)。

  3. 两处旧断言会假红 —— _toc30_number_check.php 的 J3、_preview362.js 第 120 行、_mkzip363 第 6 节,都还写着 0.62em。这类「判据脚本自身过期」在相邻判据整齐报红时最容易误判成产品坏了(pitfalls #459)。

交付

  • 包:kratos_yang-3.2.63.zip,md5 ce757f325c0928f44d0e053d834c7da7
  • 已发到 /theme-update/(zip + readme 13 节),update.json 已切 3.2.63
  • 已清 puc_external_updates_theme-Kratos_Yang 并 checkForUpdates(),实测 wp sees: kratos_yang -> 3.2.63,后台可见更新
  • commit 0c8cee9
  • 未动服务器 wp-content/themes/kratos_yang/,只走 /theme-update/

待用户确认

请在后台点升级到 3.2.63,然后看一眼长文章的标题编号字号是否顺眼。升级后我再量一次线上真实几何做收尾。

另:#5240 那 6 个手写编号的 h3 仍是「无编号」而目录显示 3.1~3.6 —— 这是「检测到已有编号就跳过」的既定行为。若觉得正文与目录在该段对不上,可以改成「手写编号也加前缀」或「手写编号的条目从目录里也去掉」,等您的意见。

## 3.2.63:字号改成与各级标题一致 用户原话: > 编号,灰色弱化可以,但是字体不能太小,要不然很不协调,看着难受,字号改成和每一级的标题一样吧,我再看看效果。 拆成三条:① 灰色弱化**保留**;② 字号不能太小(否掉 0.62em);③ 字号改成和每一级标题一样。 ### 改了什么 `assets/css/site.css` 里 `.yang-h-num` 两处属性值: | 属性 | 3.2.62 | 3.2.63 | |---|---|---| | `font-size` | `0.62em`(h2 上 14.88px) | `1em`(h2 24 / h3 20 / h4 17px) | | `margin-right` | `0.35em`(5.2px) | `0.25em`(6.0px) | **⚠️ `margin-right` 为什么必须跟着改**:`em` 是相对**编号自身**字号的。字号从 14.88px 变 24px 后,同一个 `0.35em` 会从 5.2px 涨到 8.4px,编号和标题之间像被硬拉开。收到 `0.25em` 后是 6.0px,与原来的 5.2px 观感接近。 **`display:inline-block` + `line-height:1` 保留**,但理由变了: - 实测发现,字号改成 1em 之后**同字号本身已经不撑高了**(`inline` + `inherit` 也是 46px),因为撑高的根源是「小字号的半行距更大」; - 仍保留两个理由:① **防回归** —— 以后谁把字号改回小号,不会立刻复发 3px;② 编号成为原子盒,永不跨行断开。 ### 实测(线上真实文章页,桌面 1440 + 手机 390) ``` h2 编号 24px vs 标题 24px h3 编号 20px vs 标题 20px h4 编号 17px vs 标题 17px 标题高度:加编号 46.0 / 不加 46.0 → 差 0.00px ``` ### 判据 | 检查 | 结果 | |---|---| | 几何(`_geom362.js`,G8 改为判「相等」) | **71 / 0** | | 编号逻辑(`_toc30_number_check.php`,J3 方向反转) | **44 / 0** | | 真实数据(`_toc30_real_check.php`) | **20 / 0** | | 目录与正文等价(`_toc30_equiv.php`) | **7 / 0** | | 编号反证(`_toc30_falsify.php`) | **22 / 0** | | 打包自检(`_mkzip363.py`) | **61 / 0** | | 打包注入反证(`_mkzip363_falsify.py`) | **8 / 0** | | PHP 语法(97 个文件) | **0 错** | ### 这一轮踩到的三个判据坑(都已修) 1. **反证 R1 失效** —— 字号改 1em 后,光回退 `display`+`line-height` **不再撑高**了(实测仍 46px),反证报「仍是绿,判据无效」。根因不是判据没牙齿,而是**注入形态不完整**:撑高需要「小字号」这个前提。改成三条同时回退(`0.62em` + `inline` + `inherit`)后红出 **3.00px**。 2. **G8 判据方向失效** —— 原来是「编号字号 < 标题」,字号改同大后恒假。改成 `Math.abs(n - h) < 0.01`(用容差不用严格 `===`,防浏览器返回 23.999)。 3. **两处旧断言会假红** —— `_toc30_number_check.php` 的 `J3`、`_preview362.js` 第 120 行、`_mkzip363` 第 6 节,都还写着 `0.62em`。这类「判据脚本自身过期」在相邻判据整齐报红时最容易误判成产品坏了(pitfalls #459)。 ### 交付 - 包:`kratos_yang-3.2.63.zip`,md5 `ce757f325c0928f44d0e053d834c7da7` - 已发到 `/theme-update/`(zip + readme 13 节),`update.json` 已切 3.2.63 - 已清 `puc_external_updates_theme-Kratos_Yang` 并 `checkForUpdates()`,实测 `wp sees: kratos_yang -> 3.2.63`,后台可见更新 - commit `0c8cee9` - **未动**服务器 `wp-content/themes/kratos_yang/`,只走 `/theme-update/` ### 待用户确认 请在后台点升级到 3.2.63,然后看一眼长文章的标题编号字号是否顺眼。升级后我再量一次线上真实几何做收尾。 另:`#5240` 那 6 个手写编号的 h3 仍是「无编号」而目录显示 3.1~3.6 —— 这是「检测到已有编号就跳过」的既定行为。若觉得正文与目录在该段对不上,可以改成「手写编号也加前缀」或「手写编号的条目从目录里也去掉」,等您的意见。
Author
Owner

线上复验通过,关闭

用户已在后台升级到 3.2.63,本次复验不拦截 CSS,直接量服务器上真实生效的样式(_live363.js)。

复验结果:53 条 / 0 失败

桌面 1440 与手机 390 各测了 4 个带编号的 h2:

编号字号 = 标题字号     24 vs 24   ✅ 逐条
编号颜色             rgb(168,171,178)  ✅
编号字重             400              ✅
编号与文字间距        6.00px           ✅(0.25em × 24 = 6.0)
编号与文字不重叠      编号右 124.08 / 文字左 130.08  ✅
编号与文字同一行      垂直交叠 24.00px  ✅

前置判据也验了:线上 style.css 的 Version 确实是 3.2.63,且 site.css 是真实加载(不是缓存未命中)。

本工单三版回顾

版本 做了什么 结果
3.2.62 正文标题自动编号,目录与正文共用同一份深度计数;作者手写编号的条目跳过;修掉小字号撑高 3px 已上线
3.2.63 编号字号 0.62em → 1em(各级与标题同大),margin-right 同步 0.35em → 0.25em 已上线并复验

用户对 3.2.62 的反馈是「字体不能太小,很不协调,看着难受」,3.2.63 已按「字号和每一级标题一样」改完,弱化只靠颜色 + 字重。

遗留(不阻塞关单)

#5240 那 6 个手写编号的 h3 在正文里不显示编号(目录显示 3.1~3.6),因为「检测到已有编号就跳过」是当初选定的策略。若日后觉得该段正文与目录对不上,可改策略,另开单处理。

打包 kratos_yang-3.2.63.zip(md5 ce757f325c0928f44d0e053d834c7da7),commit 0c8cee9。

## 线上复验通过,关闭 用户已在后台升级到 3.2.63,本次复验**不拦截 CSS**,直接量服务器上真实生效的样式(`_live363.js`)。 ### 复验结果:53 条 / 0 失败 桌面 1440 与手机 390 各测了 4 个带编号的 h2: ``` 编号字号 = 标题字号 24 vs 24 ✅ 逐条 编号颜色 rgb(168,171,178) ✅ 编号字重 400 ✅ 编号与文字间距 6.00px ✅(0.25em × 24 = 6.0) 编号与文字不重叠 编号右 124.08 / 文字左 130.08 ✅ 编号与文字同一行 垂直交叠 24.00px ✅ ``` 前置判据也验了:线上 `style.css` 的 `Version` 确实是 **3.2.63**,且 `site.css` 是真实加载(不是缓存未命中)。 ### 本工单三版回顾 | 版本 | 做了什么 | 结果 | |---|---|---| | 3.2.62 | 正文标题自动编号,目录与正文共用同一份深度计数;作者手写编号的条目跳过;修掉小字号撑高 3px | 已上线 | | 3.2.63 | 编号字号 `0.62em` → `1em`(各级与标题同大),`margin-right` 同步 `0.35em` → `0.25em` | 已上线并复验 | 用户对 3.2.62 的反馈是「字体不能太小,很不协调,看着难受」,3.2.63 已按「字号和每一级标题一样」改完,弱化只靠颜色 + 字重。 ### 遗留(不阻塞关单) `#5240` 那 6 个手写编号的 h3 在正文里不显示编号(目录显示 3.1~3.6),因为「检测到已有编号就跳过」是当初选定的策略。若日后觉得该段正文与目录对不上,可改策略,另开单处理。 打包 `kratos_yang-3.2.63.zip`(md5 `ce757f325c0928f44d0e053d834c7da7`),commit `0c8cee9`。
Sign in to join this conversation.
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: laoyang/wordpress-kratos-yang#30