Text wrapping and filling
npm install @barudakrosul/textwraptextwrap yang tersedia di Python, yang menyediakan beberapa fungsi untuk membungkus dan memformat paragraf teks dengan panjang baris yang dibatasi. Modul ini berguna untuk memformat teks agar lebih mudah dibaca atau untuk kebutuhan tampilan.
wrap, tetapi mengembalikan teks yang sudah dibungkus sebagai satu string, dengan baris-baris dipisahkan oleh karakter _newline_ (\n).
predicate dapat digunakan untuk mengontrol baris mana yang akan diberi _prefix_.
shell
npm install @barudakrosul/textwrap
`
Penggunaan
Untuk memulai menggunakan TextWrap, import modulnya terlebuh dahulu:
1\. CommonJS
`javascript
const textwrap = require("@barudakrosul/textwrap");
`
2\. ESM (ECMAScript Modules)
`javascript
import textwrap from "@barudakrosul/textwrap";
`
Contoh penggunaan:
$3
`javascript
console.log(textwrap.wrap("Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.", 11))
// Result:
// [
// 'Lorem ipsum', 'dolor sit',
// 'amet,', 'consectetur',
// 'adipisicing', 'elit, sed',
// 'do eiusmod', 'tempor',
// 'incididunt', 'ut labore',
// 'et dolore', 'magna',
// 'aliqua.'
// ]
`
$3
`javascript
console.log(textwrap.fill("Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.", 11))
// Result:
// Lorem ipsum
// dolor sit
// amet,
// consectetur
// adipisicing
// elit, sed
// do eiusmod
// tempor
// incididunt
// ut labore
// et dolore
// magna
// aliqua.
`
$3
`javascript
console.log(textwrap.shorten("Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.", 59))
// Result:
// Lorem ipsum dolor sit amet, consectetur adipisicing [...]
`
$3
`javascript
console.log(textwrap.dedent("Lorem ipsum dolor sit amet,\nconsectetur adipisicing elit,\nsed do eiusmod tempor incididunt ut labore et dolore magna aliqua."))
// Result:
// Lorem ipsum dolor sit amet,
// consectetur adipisicing elit,
// sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
`
$3
`javascript
console.log(textwrap.indent("Lorem ipsum dolor sit amet,\nconsectetur adipisicing elit,\nsed do eiusmod tempor incididunt ut labore et dolore magna aliqua.", "> "))
// Result:
// > Lorem ipsum dolor sit amet,
// > consectetur adipisicing elit,
// > sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
`
Contoh menambahkan _prefix_ untuk setiap newline, termasuk yang kosong:
`javascript
console.log(textwrap.indent("Lorem ipsum dolor sit amet,\n\n\nconsectetur adipisicing elit,\nsed do eiusmod tempor incididunt ut labore et dolore magna aliqua.", "> ", lines => true))
// Result:
// > Lorem ipsum dolor sit amet,
// >
// >
// > consectetur adipisicing elit,
// > sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
`
Contoh menambahkan _prefix_ untuk setiap baris yang dimulai dengan string tertentu secara spesifik:
`javascript
console.log(textwrap.indent("Lorem ipsum dolor sit amet,\nconsectetur adipisicing elit,\nsed do eiusmod tempor incididunt ut labore et dolore magna aliqua.", "> ", lines => lines.startsWith("Lorem")))
// Result:
// > Lorem ipsum dolor sit amet,
// consectetur adipisicing elit,
// sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
`
Contoh menambahkan _prefix_ untuk setiap baris yang terdapat string tertentu secara spesifik:
`javascript
console.log(textwrap.indent("Lorem ipsum dolor sit amet,\nconsectetur adipisicing elit,\nsed do eiusmod tempor incididunt ut labore et dolore magna aliqua.", "> ", lines => lines.includes(",")))
// Result:
// > Lorem ipsum dolor sit amet,
// consectetur adipisicing elit,
// sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
`
Contoh menambahkan _prefix_ untuk setiap baris yang yang memiliki batas panjang tertentu:
`javascript
console.log(textwrap.indent("Lorem ipsum dolor sit amet,\nconsectetur adipisicing elit,\nsed do eiusmod tempor incididunt ut labore et dolore magna aliqua.", "> ", lines => lines.length > 28))
// Result:
// Lorem ipsum dolor sit amet,
// > consectetur adipisicing elit,
// > sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
`
Untuk fungsi wrap(), fill(), dan shorten() mempunyai opsi tambahan. Adapun, opsi yang didukung di antaranya:
Nama
Keterangan
Tipe
Nilai default
width
Lebar maksimum baris yang dibungkus (kecuali break_long_words adalah false).
number
70
initial_indent
String indentasi untuk baris pertama.
string
""
subsequent_indent
String indentasi untuk baris-baris berikutnya.
string
""
expand_tabs
Jika true, tab akan digantikan dengan spasi.
boolean
true
replace_whitespace
Jika true, karakter whitespace akan digantikan dengan spasi.
boolean
true
fix_sentence_endings
Jika true, dua spasi akan ditambahkan setelah tanda titik di akhir kalimat.
boolean
false
break_long_words
Jika true, kata-kata yang lebih panjang dari lebar baris akan dipecah.
boolean
true
drop_whitespace
Jika true, whitespace di awal dan akhir baris akan dihapus.
boolean
true
break_on_hyphens
Jika true, teks akan dipecah pada tanda hubung.
boolean
true
tabsize
Ukuran tab dalam karakter.
number
8
max_lines
Jumlah maksimum baris.
number | null
null
placeholder
String yang digunakan untuk menggantikan bagian akhir teks jika terlalu panjang.
string
[...]
Contoh dasar penggunaan opsi tersebut:
`javascript
const text = "Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.";
const width = 20;
const options = {
fix_sentence_endings: true,
break_long_words: false
};
console.log(textwrap.wrap(text, width, options));
``