Skip to content

tpl: Incorrect truncate output for mix of CJK and non-CJK input text #14039

@oishikazuo

Description

@oishikazuo

What version of Hugo are you using (hugo version)?

$ hugo version
hugo v0.152.0-DEV-4414ef73f3cd490caf93e0d50a6102db9ab28318 linux/amd64 BuildDate=2025-10-05T17:06:46Z

Does this issue reproduce with the latest release?

Yes

Description

Function 'truncate' returns incorrect output for mix of CJK and non-CJK input text.

truncate 11 "" "I use Hugo in Japanese"
=> "I use Hugo" (OK)

truncate 12 "" "I use Hugo in Japanese"
=> "I use Hugo" (OK)

truncate 13 "" "I use Hugo in Japanese"
=> "I use Hugo in" (OK)

truncate 12 "" "日本語でHugoを使います"
=> "日本語でHugoを使いま" (OK)

truncate 12 "" "日本語で Hugo を使います"
=> "日本語で Hugo を使" (OK)

truncate 8 "" "日本語でHugoを使います"
=> "日本語でHugo" (OK)

truncate 10 "" "日本語で Hugo を使います"
=> "日本語で Hugo " (NG: should be "日本語で Hugo")

truncate 9 "" "日本語で Hugo を使います"
=> "日本語で Hugo" (OK)

truncate 7 "" "日本語でHugoを使います"
=> "日本語" (NG: should be "日本語で")

truncate 7 "" "日本語で Hugo を使います"
=> "日本語で Hu" (NG: should be "日本語で")

truncate 6 "" "日本語でHugoを使います"
=> "日本語" (NG: should be "日本語で")

truncate 6 "" "日本語で Hugo を使います"
=> "日本語で H" (NG: should be "日本語で")

truncate 5 "" "日本語でHugoを使います"
=> "日本語" (NG: should be "日本語で")

truncate 5 "" "日本語で Hugo を使います"
=> "日本語で " (NG: should be "日本語で")

truncate 4 "" "日本語でHugoを使います"
=> "日本語" (NG: should be "日本語で")

truncate 4 "" "日本語で Hugo を使います"
=> "日本語で" (OK)

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions