Skip to content

训点:竖排分带不再留单列(浣溪沙 390 宽结句孤列等 22 处) - #73

Merged
HanpuLi merged 1 commit into
mainfrom
fix/kunten-orphan-column
Oct 22, 2026
Merged

HanpuLi merged 1 commit into
mainfrom
fix/kunten-orphan-column

Conversation

@HanpuLi

@HanpuLi HanpuLi commented Oct 22, 2026 •

Copy link
Copy Markdown
Owner

Cait 说「浣溪沙的训点排版不好看」,选定方案 B。

根因

  • 训点竖排每句一列,片间空一列;body 分带时,一带排满后只在回退不超过 2 列时才在片间换带(STANZA_PULL = 2)。
  • 《浣溪沙》补了三段小序后,390 宽的题块移到正文上方,每带能排 6 列。片间断点离带尾 3 列,超出回退范围,于是第一带成了「上片 3 列|空列|下片 2 列」,结句「臠杯未舉目先濛」单独落到第二带。
  • 全站同类情形 22 处。

改法(方案 B)

  • 一带排满后若只剩一列:先在带内的片间断点换带(断点距带头至少两列,免得反而造出单列带);带内没有片间断点时,从满带让一列给末带。
  • 文档 docs/poetry-kunten-renderer.md 同步。

实测(线上页面拦截换渲染器,等宿主握手完成后取 DOM;16 个日文页 × 7 种宽度,共 224 个训点框)

  • 改动 22 处,单列带 22 → 0;没有新造出夹在中间的单列带。
  • 按片换带的 8 处:浣溪沙 390「3|2 / 1」→「3 / 3」、菩薩蠻 1280「4|3 / 1」→「4 / 4」、甲一/甲三/甲六/甲十/鵲橋仙 768、臨江仙引 1280。
  • 单片超长让一列的 14 处:「4 / 4 / 1」→「4 / 3 / 2」(朝中措 390/360/320、九月鷓鴣天 430/320、二更候車 320、甲三/甲六/甲九 320、甲三/甲六 1024);乙四 1280、乙六 1024、臨江仙引 430 的末带由 1 列变 2 列。
  • 逐处看过截图,没有比改前更难看的。最短的是臨江仙引 1280 第二带的 2 列:上片末两句单成一带,下片 6 列完整。

测试

  • 新增 qa:poetry-kunten-bands:16 页 × 7 种宽度(238 个训点框,含汇总页重复的),断言没有单列带,并钉住浣溪沙 390 宽为上片一带、下片一带。用旧渲染器跑会报错(乙四 1280「8,7,8,1」)。
  • poetrykuntenmultilinecheck 同加单列带断言(Chromium、WebKit × 320/390/768/1280)。
  • 本机 npm run qa 30 项一次全过。

- 渲染器 bandKanbunColumns:一带排满后若只剩一列,先在带内的片间断点换带(断点距带头至少两列);带内没有片间断点时,从满带让一列给末带
- 全站 16 个日文页 × 7 种宽度共 224 个训点框,改动 22 处,单列带由 22 处降为 0;浣溪沙 390 宽改为上片一带、下片一带
- 新增 qa:poetry-kunten-bands:16 页 × 7 种宽度全扫,断言无单列带,并钉住浣溪沙 390 宽按片分带;多行检查(Chromium、WebKit × 4 种宽度)同加单列带断言
- 同步更新 docs/poetry-kunten-renderer.md;渲染器指纹随生成页更新
@HanpuLi
HanpuLi merged commit 89c213b into main Oct 22, 2026
6 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant