mirror of
https://github.com/mailscope/kumomta.git
synced 2026-08-19 02:48:18 +00:00
42 lines
1.1 KiB
Markdown
42 lines
1.1 KiB
Markdown
# kumo.string.wrap
|
|
|
|
```lua
|
|
local wrapped = kumo.string.wrap(TEXT, SOFT_LIMIT, HARD_LIMIT)
|
|
```
|
|
|
|
{{since('2025.12.02-67ee9e96')}}
|
|
|
|
Ensures that the `TEXT` parameter is no longer than `HARD_LIMIT` by breaking
|
|
around whitespace to try to keep most lines below `SOFT_LIMIT`, but hard
|
|
breaking longer words that exceed `HARD_LIMIT`.
|
|
|
|
Any breaks introduced will be `\r\n\t` (CR, LF, then TAB).
|
|
|
|
`SOFT_LIMIT` defaults to `75`.
|
|
|
|
`HARD_LIMIT` defaults to `900`.
|
|
|
|
Any trailing whitespace will be trimmed from the returned value.
|
|
|
|
## Example
|
|
|
|
```lua
|
|
local kumo = require 'kumo'
|
|
local utils = require 'policy-extras.policy_utils'
|
|
|
|
utils.assert_eq(kumo.string.wrap 'hello', 'hello')
|
|
|
|
local long_string = string.rep('A', 200)
|
|
local expect_wrapped = string.rep('A', 100)
|
|
.. '\r\n\t'
|
|
.. string.rep('A', 100)
|
|
utils.assert_eq(kumo.string.wrap(long_string, 75, 100), expect_wrapped)
|
|
|
|
local long_string_spaced = string.rep('hello there ', 10)
|
|
utils.assert_eq(
|
|
kumo.string.wrap(long_string_spaced, 75, 100),
|
|
'hello there hello there hello there hello there hello there hello there\r\n'
|
|
.. '\thello there hello there hello there hello there'
|
|
)
|
|
```
|