pub fn collapse_white_space(s: &str, white_space: &str) -> StringExpand description
CSS white-space に従って空白を畳む(CSS Text 3 §4.1 の簡略版)。
normal/nowrap(未指定含む): 空白・タブ・改行の連続を半角空白 1 つに。pre-line: 空白・タブの連続は 1 つに、改行は残し、改行の前後の空白は捨てる。pre/pre-wrap/break-spaces: 何もしない(保持)。
対象は ASCII の空白(U+0020/U+0009/U+000A/U+000D/U+000C)のみ。全角空白 U+3000 は 文字として残す。先頭・末尾の空白も 1 つに畳むだけで消さない(隣接要素との区切りに なりうるため。行頭・行末の除去は折り返し側で行う)。
【2026-09-26】HTML の字下げ(改行+タブ 6 個)が畳まれずタブ展開までされ、 www.sugi-lab.net の段落で「IoT」が行頭の空白に押されて 1 行に孤立していた。