fix: 修复行缘、切分还原与语言解析并同步文档

保留逐字 margin/jiya.bias 字体后备方案;补齐 demo 重排、量测边界说明及共享规则 1.0.1 反例向量。

验证:完整构建通过,Node 376 项、WKWebView 64 项及原生 demo 9 项通过;Firefox 仍暂缓。
This commit is contained in:
2026-10-03 21:15:54 +08:00
parent 024ad5da93
commit 3a4fa1c932
33 changed files with 983 additions and 140 deletions
+11 -1
View File
@@ -108,24 +108,32 @@
});
}
var jz = makeJz();
var rendered = false;
var statusEl = document.getElementById("status");
function render()
{
jz.revert(document.body); // 先還原(重套政策時清除上次產物;首次為 no-op)
jz = makeJz();
jz.render(document.body);
rendered = true;
statusEl.textContent = "已 render(" + document.querySelectorAll("jz-hws").length + " 间隙、" + document.querySelectorAll("jz-char").length + " 标点原子;繁体政策:"
+ (forceKaiming ? "开明式" : "全角式") + ")";
}
function revert()
{
jz.revert(document.body);
rendered = false;
statusEl.textContent = "已 revert(DOM 还原)";
}
function refreshLayout()
{
// 對齊/寬度改變不一定改變 body 尺寸,須顯式重算;revert 後保持停用。
if (rendered) { jz.rerender(document.body); }
}
document.getElementById("force-kaiming").addEventListener("change", function (e)
{
forceKaiming = e.target.checked;
render();
if (rendered) { render(); }
});
// 量測每個 jz-char 之實際渲染寬度(em)。輸出純 ASCII(碼位+class+數值),
// 並按 lang/codepoint/class 去重,便於回報診斷 halt 是否生效、收哪側。
@@ -167,6 +175,7 @@
document.getElementById("justify").addEventListener("change", function (e)
{
document.body.classList.toggle("justify", e.target.checked);
refreshLayout();
});
document.getElementById("wide").addEventListener("change", function (e)
{
@@ -174,6 +183,7 @@
{
el.style.maxWidth = e.target.checked ? "none" : "";
});
refreshLayout();
});
render();
</script>