cli-truncate
将字符串截断为终端中的特定宽度
优雅地处理 ANSI逃. 就像一个字符串样式 chalk. 它还支持Unicode代理字符对和全宽字符。
安装
npm install cli-truncate
使用
import cliTruncate from 'cli-truncate';
cliTruncate('unicorn', 4);
//=> 'uni…'
// Truncate at different positions
cliTruncate('unicorn', 4, {position: 'start'});
//=> '…orn'
cliTruncate('unicorn', 4, {position: 'middle'});
//=> 'un…n'
cliTruncate('unicorns rainbow dragons', 6, {position: 'end'});
//=> 'unico…'
cliTruncate('\u001B[31municorn\u001B[39m', 4);
//=> '\u001B[31muni…\u001B[39m'
// Truncate Unicode surrogate pairs
cliTruncate('uni\uD83C\uDE00corn', 6);
//=> 'uni\uD83C\uDE00…'
// Truncate fullwidth characters
cliTruncate('안녕하세요', 3);
//=> '안…'
// Truncate the paragraph to the terminal width
const paragraph = 'Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Aenean massa.';
cliTruncate(paragraph, process.stdout.columns ?? 80);
//=> 'Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula…'
[!请注意) 截断样式文本(ANSI转义)时,截断字符在断点处继承为的样式
position: 'start'和position: 'end'. 这并不适用于position: 'middle'.
API
拼写(文本、列、选项?)
文本
类型: string
要截断的文本。
列
类型: number
在终端中占用的有限列数。
选项
类型: object
位置
类型: string
默认值: 'end'
价值观: 'start' | 'middle' | 'end'
截断字符串的位置。
空间
类型: boolean
默认值: false
在文本和省略号之间添加一个空格。
import cliTruncate from 'cli-truncate';
cliTruncate('unicorns', 5, {space: false});
//=> 'unic…'
cliTruncate('unicorns', 5, {space: true});
//=> 'uni …'
cliTruncate('unicorns', 6, {position: 'start', space: true});
//=> '… orns'
cliTruncate('unicorns', 7, {position: 'middle', space: true});
//=> 'uni … s'
preferTruncationOnSpace
类型: boolean
默认值: false
如果距离实际断点在3个字符以内,则用空格截断字符串。
import cliTruncate from 'cli-truncate';
cliTruncate('unicorns rainbow dragons', 20, {position: 'start', preferTruncationOnSpace: true});
//=> '…rainbow dragons'
// Without preferTruncationOnSpace
cliTruncate('unicorns rainbow dragons', 20, {position: 'start'});
//=> '…rns rainbow dragons'
cliTruncate('unicorns rainbow dragons', 20, {position: 'middle', preferTruncationOnSpace: true});
//=> 'unicorns…dragons'
cliTruncate('unicorns rainbow dragons', 6, {position: 'end', preferTruncationOnSpace: true});
//=> 'unico…'
// preferTruncationOnSpace has no effect if space isn't found within 3 characters
cliTruncate('unicorns rainbow dragons', 6, {position: 'middle', preferTruncationOnSpace: true});
//=> 'uni…ns'
truncationCharacter
类型: string
默认值: …
在断点处使用的字符。
import cliTruncate from 'cli-truncate';
cliTruncate('unicorns', 5, {position: 'end'});
//=> 'unic…'
cliTruncate('unicorns', 5, {position: 'end', truncationCharacter: '.'});
//=> 'unic.'
cliTruncate('unicorns', 5, {position: 'end', truncationCharacter: ''});
//=> 'unico'
相关
- wrap-ansi -用ANSI转义码对字符串进行换行
- slice-ansi -使用ANSI转义码对字符串进行切片
cjser
这个包是由cjser为仍然需要的项目生成的commonjs兼容的构建 require() 支持。源版本与原始的npm包版本匹配,对这个生成的构建带有cjser预发布后缀。
原始存储库: https://github.com/sindresorhus/cli-truncate