G22 HTML治理件版式
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/.wrap1080px/表头#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)
- 文件内必须存在至少一条
<style>块(或元素级style=属性)中的font-family声明; - 正文(
body)声明的字体族中,至少一个中文字体 ∈ §2.1 白名单; - 禁止
@import、禁止<link rel="stylesheet">外链字体/样式(与html_onefile_gate.py零外链判据一致); - 禁止引用
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 母版读取)
- 表头单元格一律
<th>,背景#f2f1ed、加粗(font-weight:600)、深色文字(#33332f); - 单元格边框
1px solid var(--line)(#dcdcd7),内边距 上下 7px、左右 9px,左对齐、顶对齐; - 每张表必配表题(
<caption>,caption-side:top、左对齐、色--ink3),格式「表 N-M 表名」——表题写在<caption>内,禁写在表外<p>; - 每幅图必配图注(
.figcap),格式「图 N 图名。说明句。制图时点」; - 斑马纹:
tbody tr:nth-child(even)背景#fafaf7(母版baseline.css已含,禁覆盖); - 变更履历表列头逐字为:日期时间/变更文件/变更类型/变更说明/遗留问题;
- 版本清单表列头逐字为:交付物/类型/版本/状态;
- 禁用主题色(含
#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.pyrc=0 /deliverable.check_onefile()返回[]/assert_onefile.pyrc=0 / U07format_gate.py --checkrc=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 复看零压盖、零溢出。后三条后置判据本体零改动 ⇒ 判定强度不变 |
手(施工)· 定标:炳哥 |
宪法 > 基本法 > 行政法规 > 地方法规 > 地方规章