返回板块

G22 HTML治理件版式

V1.2.02026-10-08行政法规 · 技术标准
源文件:C:/Users/xub/.workbuddy/spec/3.行政法规/范式/G22_HTML治理件版式.md

版本:V1.2.0(正式基准 · 已定标)| 本版编制日期:2026-10-08 | 首版:V1.0.0 编制 2026-09-25 | 编制方:手(施工)| 定标:炳哥 2026-10-08
定位:为「skill/专家迭代升版 1 件套治理件(单文件离线 HTML)」提供字体与版式的判据真源,补上「HTML 交付物无字体判据」的空档(G12 V1.1.0 §6 C6 外置指向本件)。
上位准据:宪法 V1.2.0 第 16 条(闸门不自备标准);基本法 V2.3.0(M3.2 国标排版原则);G12《治理件强制交付物断言技术标准》V1.1.0;G07《统一版式规范》V1.0.0(母版同源,见 §0);延伸自 G05/G06《HTML交付自包含技术标准》V1.6.0(走 C 路:出范式 → 定标 → 断言侧实装)。
权威实现:~/.workbuddy/_tools/assert_onefile.py 的 check_html_fonts()(只实现本件判据,不自备标准);常量载体 ~/.workbuddy/_tools/fourpiece.py 顶部 HTML_GB。
不得改动:~/.workbuddy/_tools/html_onefile_gate.py 本体零改动(本件判据由断言侧串联,不侵入结构闸)。


0 与《统一版式规范》G07 的关系(本版新增 · 同源声明)

2026-10-08 炳哥定标:治理件 HTML 的版式判据与全域报告型 HTML 的版式判据同源,唯一母版为 ~/.workbuddy/_assets/统一版式/(母版指纹 a5a14ab3)。

项 口径
同源范围 字号阶梯、行距、留白与容器、表头样式、壳层结构 五项(即本件 §3/§4/§5/§6)一律改从 G07 母版读取,本件不再另立数值
本件独有范围 字体判据(§2) —— 中文字体白名单、「内联 CSS 声明」判据、三态判读;G07 只管版式不管字体,故此项仍为本件真源
数值冲突处理 任一数值与 G07 母版不一致时,以 G07 母版为准,本件为只读派生投影(同「单一真源+只读投影」口径,见基本法 M6-T4)
投影落点同步 本件 §3/§4/§5 数值变更时,须同步 G07 §2/§3 与 _assets/统一版式/baseline.css;三处不一致即视为本件失准
指纹口径 治理件 HTML 的 <style> 段同样须逐字节等于 _assets/统一版式/baseline.css(G07 §1「引用方式」),母版指纹恒 a5a14ab3。治理件不再允许「蓝底 #eaf1ff + 蓝主色 #0b5fff + 版心 1080px」的旧私造配色 —— 该套配色系 V1.0.0 期 fourpiece.py 代码实装态,非本件判据,本版澄清

V1.0.0 期实况说明(历史陈述不改写):V1.0.0 立字体白名单与字号阶梯时,fourpiece.py::_onefile_css() 同时实装了一套独立配色(--blue:#0b5fff/--bluebg:#eaf1ff/.wrap 1080px/表头 #f0f3f7)。该实装早于 2026-10-07 G07 立标,属「两套母版并行」。本版按炳哥 2026-10-08 定标收敛为一套:版式层全部指向 G07 母版,fourpiece.py 的配色为本件不认的存量实装态。


1 适用范围

对象 是否适用 说明
治理件 1 件套(*_治理件.html) 适用 本件主对象
其它单文件离线报告型 HTML 参照适用 结构闸仍由 html_onefile_gate.py 判;字体层可沿用本件白名单;版式层走 G07
存量 4 件套(docx/xlsx) 不适用 走原 docx 字体闸门(deliverable.check_docx_gb_fonts()),行为零变化
其它非 HTML 对象 不适用 契约必须显式判「不适用」(哨兵 NotApplicable),不得静默判通过

2 字体判据(硬 · 本件独有)

2.1 中文字体白名单(正文与标题取用均须 ∈ 本集)

用途 白名单 首选
正文中文 宋体/思源宋体/Noto Serif CJK SC/Source Han Serif SC/SimSun 宋体
标题中文 黑体/思源黑体/Noto Sans CJK SC/Source Han Sans SC/SimHei 黑体
楷体类(如需) 楷体/KaiTi —
仿宋类(如需) 仿宋/FangSong —
西文/数字 Times New Roman/serif 兜底 Times New Roman
等宽 Consolas/ui-monospace/monospace Consolas

白名单兼容子集:G07 母版的 body 字体族为 "Microsoft YaHei","PingFang SC","Hiragino Sans GB","Source Han Sans SC",Arial,sans-serif。其中 Source Han Sans SC ∈ 本表标题中文白名单,故 G07 母版 style 段天然过本件 §2.2 判据(已实测,见 §8 反向证伪栏)。若后续 G07 母版换用白名单外字体族,须先改本表再改母版(本表为字体层真源)。

2.2 「内联 CSS 声明」判据(禁外链、禁 @import)

  1. 文件内必须存在至少一条 <style> 块(或元素级 style= 属性)中的 font-family 声明;
  2. 正文(body)声明的字体族中,至少一个中文字体 ∈ §2.1 白名单;
  3. 禁止 @import、禁止 <link rel="stylesheet"> 外链字体/样式(与 html_onefile_gate.py 零外链判据一致);
  4. 禁止引用 fonts.googleapis.com、fonts.gstatic.com 等在线字体源(离线自包含硬约束)。

判定输出三态:error(不合规,附原因)/pass(合规)/na(对象不适用)。
实装口径(check_html_fonts()):fail-closed —— 未发现任何 font-family 声明即 error;声明中存在任一 ∈ 白名单的中文字体即 pass。


3 字号阶梯与行距(本版改从 G07 母版读取)

层级 选择器 字号 备注
篇/章标题(文档头) .docmeta h1 24px 页眉主标题
节标题 main.article h2 20px 各分区标题,左侧 5px 强调竖条
条标题 main.article h3 16.5px 小节标题,色 #37474f
目次标题 nav.toc li 13.5px 三级 lv3 13px/四级 lv4 12.5px
正文 body/p 15px 行距 1.85,text-align:justify
表体 td 13px —
表题 caption 13px 色 --ink3
图注 .figcap 12.5px 上缘点线分隔
页脚 .doc-foot 12.5px —
  • 正文行距固定 1.85(line-height:1.85,G07 母版 body);表体行距由内容撑开,不设固定值。
  • 标题字重:h1/h2/h3 一律加粗;标题色取自母版变量(--ink #22221f/h3 #37474f/h4 #4a5a63),禁主题蓝。

与 V1.0.0 的差异(明示变更):V1.0.0 为 h1 24 / h2 18 / h3 15.5 / body 15/1.75 / td 13.5 / foot 12.5。本版按 G07 母版改为 h2 20 / h3 16.5 / body 15/1.85 / td 13 / foot 12.5。变更理由:治理件与报告件同源。


4 留白与容器(本版改从 G07 母版读取)

项 规定
内容最大宽度 1060px(.wrap),水平居中
页面内边距(.wrap) 上 0 / 左右 22px / 下 40px
正文容器(main.article) 内边距 上 26px / 左右 30px / 下 34px
页眉(.docmeta) 内边距 16px 20px;左缘 6px 强调竖条;块间距 上 26px / 下 20px
目次(nav.toc) 内边距 14px 20px;下缘间距 24px
卡片圆角 2px(.docmeta/nav.toc/main.article/.doc-foot 同);.figure 亦 2px
页眉/页脚 卡片式;页脚上缘无分隔线(以卡片边框为界),margin-top 22px
响应式断点 @media(max-width:820px):版心左右收至 12px、正文左右收至 14px、表字号降至 12px

与 V1.0.0 的差异(明示变更):V1.0.0 为 1080px/圆角 12px/页脚上缘 1px 分隔线。本版按 G07 母版改为 1060px/圆角 2px/页脚卡片边框。


5 表头样式(本版改从 G07 母版读取)

  1. 表头单元格一律 <th>,背景 #f2f1ed、加粗(font-weight:600)、深色文字(#33332f);
  2. 单元格边框 1px solid var(--line)(#dcdcd7),内边距 上下 7px、左右 9px,左对齐、顶对齐;
  3. 每张表必配表题(<caption>,caption-side:top、左对齐、色 --ink3),格式「表 N-M 表名」——表题写在 <caption> 内,禁写在表外 <p>;
  4. 每幅图必配图注(.figcap),格式「图 N 图名。说明句。制图时点」;
  5. 斑马纹:tbody tr:nth-child(even) 背景 #fafaf7(母版 baseline.css 已含,禁覆盖);
  6. 变更履历表列头逐字为:日期时间/变更文件/变更类型/变更说明/遗留问题;
  7. 版本清单表列头逐字为:交付物/类型/版本/状态;
  8. 禁用主题色(含 #0b5fff 蓝、#eaf1ff 淡蓝)做表头底色或任何版面色。

与 V1.0.0 的差异(明示变更):V1.0.0 为表头 #f0f3f7/文字 #24292f/边框 #d8dee4/无 caption 与 figcap 强制项。本版按 G07 母版改为 #f2f1ed/#33332f/#dcdcd7,并新增 caption/figcap 配平硬判据。


6 壳层与结构(不重复结构闸,仅列契约)

壳层四件必现:header.docmeta(页眉,含 <dl> 网格化头 ≥6 字段)/nav.toc(目次,锚点 ≥8 且与 id 对账)/main.article(正文,含四分区:技术规范要求/当前进展与遗留/已完成/遗留与下一步)/div.doc-foot(页脚,含溯源句)。
另须 <div class="wrap"> 版心容器(§4)与 <html lang="zh-CN"> + viewport meta。

结构层判据以 html_onefile_gate.py 为准,本件不重复判,只声明治理件须过该闸;版式四查合一闸以 G07 的 format_gate.py 为准。


7 判读与错误处理

  • 断言侧统一出口:assert_onefile.py 打印 [字体] ... 条目并计入非零退出;
  • 禁止「读不到声明即默认通过」;读不到即 error(fail-closed);
  • 对 docx/xlsx 对象:check_docx_gb_fonts() 返回 NotApplicable,调用侧按 gb_font_state() 判读为 na,不得当作 pass;
  • 版式层判读由 G07 format_gate.py --check 给出(退出码 0/1/2),本件不复制其判据。

8 验收判据(本次实装口径)

判据 目标
对 HTML 对象 显式给出字体判定(不再沉默)——pass 或 error,附原因
对 docx 对象 行为零变化(原 check_docx_gb_fonts() 路径不受影响)
html_onefile_gate.py 本体零改动
版式层 治理件 HTML 的 style 段逐字节等于 _assets/统一版式/baseline.css,母版指纹 a5a14ab3
反向证伪①(字体) 抽掉 font-family 声明/改成非白名单中文字体 → 断言侧非零退出
反向证伪②(同源) 实测 G07 母版 template_universal.html 的 style 段 → check_html_fonts() 返回 [](pass);另造「白名单外中文字体」变体 → 返回非空(error)

9 「单一真源 + 只读投影」三落点(本版新增)

本版施行后,「HTML 版式」的真源与投影关系如下,三处数值不一致即判本件失准:

# 落点 性质 内容
① _assets/统一版式/baseline.css + _format_baseline.json 单一真源 全部版式数值与母版指纹 a5a14ab3
② G07《统一版式规范》§2/§3 只读投影(说明层) 壳层四件与组件件清单
③ 本件 §3/§4/§5 只读投影(治理件侧) 治理件 HTML 版式数值(从 ① 读,不自行维护)
④ _tools/fourpiece.py(_onefile_css() + 壳层生成) 已收敛(2026-10-08) style 段改为逐字节取用 ①;壳层改为母版口径;原 HTML_GB 常量已删除

④ 的处置(已闭环 · 2026-10-08):fourpiece.py::_onefile_css() 原自持 HTML_GB 常量与独立配色(--blue:#0b5fff / 版心 1080px / 表头 #f0f3f7),属 V1.0.0 期「两套母版并行」的存量实装态。
2026-10-08 炳哥定标后已收敛:① _onefile_css() 改为逐字节读取 _assets/统一版式/baseline.css(母版缺失即 FileNotFoundError,禁回退私造配色);② 壳层改为母版口径五件(.wrap / header.docmeta + <dl> / nav.toc + toc-h + ul / main.article / div.doc-foot);③ 两张表补 <caption> 表题;④ HTML_GB 常量删除。
实测(任务夹 work\闸基收敛_2026-10-08_1650):生成样本 style 段 canon 后与 baseline.css 逐字节一致、实算指纹 a5a14ab3;旧色值 --blue/#0b5fff/#f0f3f7 与旧版心 1080px 全部清零;四条后置判据全过(html_onefile_gate.py rc=0 / deliverable.check_onefile() 返回 [] / assert_onefile.py rc=0 / U07 format_gate.py --check rc=0)。
后三条判据本体零改动(html_onefile_gate.py 未改、check_onefile 未改、check_html_fonts 未改)⇒ 判定强度不变。


版本变更记录

版本 日期 变更说明 编制人
V1.0.0 2026-09-25 首版(2026-09-25 定标为正式基准):立「HTML 治理件」字体/版式判据真源——中文字体白名单、字号阶梯、行距、留白、表头样式、「内联 CSS 声明」判据、三态判读与验收判据。走 C 路(先立标,再实装断言侧)。依据:炳哥 2026-09-25 裁定②(字体国标闸走 C 路)+ 2026-09-25 定标(三项判据全数照收:字体白名单/字号阶梯 24-18-15.5-15px 与行距 1.75/禁 @import 与在线字体源) 手(施工)· 定标:炳哥
V1.1.0 2026-10-08 第二版:版式层与《统一版式规范》G07 同源(炳哥 2026-10-08 定标「统一版式 a5a14ab3,修改 G22」)。变更四点:① 新增 §0「与 G07 的关系(同源声明)」,明确 §3/§4/§5/§6 版式数值从 G07 母版读取,本件只保留 §2 字体判据为独有真源;② §3 字号阶梯改为 G07 口径(h2 18→20、h3 15.5→16.5、行距 1.75→1.85、td 13.5→13);③ §4 留白改为 G07 口径(版心 1080→1060px、圆角 12→2px);④ §5 表头改为 G07 口径(底色 #f0f3f7→#f2f1ed、文字 #24292f→#33332f、边框 #d8dee4→#dcdcd7)并新增 caption/figcap 配平硬判据。另新增 §8 反证证伪②(母版 style 段实测过字体判据)与 §9「单一真源+只读投影」三落点表。判据强度:字体层零变更(§2 逐字未改);版式层数值全量收敛到 G07 母版,属「判定强度不变、数值口径归一」 手(施工)· 定标:炳哥
V1.2.0 2026-10-08 第三版:§9 落点④ 收敛闭环(炳哥 2026-10-08 令「把 fourpiece.py 的旧配色收敛到 baseline.css」)。_tools/fourpiece.py 三处改动:① _onefile_css() 由自建 CSS 段改为逐字节读取 _assets/统一版式/baseline.css(新增 master_css()/master_fingerprint()/master_declared_fingerprint(),母版缺失即 FileNotFoundError);② _onefile_html() 壳层由 .metagrid/.card/nav.toc>ol 改为母版口径(.wrap/header.docmeta+<dl>/nav.toc+toc-h+ul/main.article/div.doc-foot),两张表补 <caption>,并新增 viewport meta;③ 删除 HTML_GB 常量。§9 ④ 由「存量实装态(待收敛)」改标「已收敛」。 实测:样本 style 段 canon 后与 baseline.css 逐字节一致、指纹 a5a14ab3;html_onefile_gate.py rc=0 / check_onefile() [] / assert_onefile.py rc=0 / U07 format_gate.py --check rc=0(治理件首次同时过 U07);桌面 1400px 与移动 390px headless 复看零压盖、零溢出。后三条后置判据本体零改动 ⇒ 判定强度不变 手(施工)· 定标:炳哥
利衡辨 · 全域资料站 | 全域七链元路由 · 一进一出
宪法 > 基本法 > 行政法规 > 地方法规 > 地方规章