Opsi Lanjutan
Dalam TextWrap, metode wrap()
, fill()
, dan shorten()
dirancang untuk menawarkan pemformatan teks yang fleksibel. Di luar penggunaan dasar, fungsi-fungsi ini menyediakan opsi lanjutan yang memberikan Anda kontrol yang baik atas bagaimana teks diproses dan diformat.
Opsi yang Didukung
width
(default:70
) – Panjang maksimum baris yang dibungkus. Selama tidak ada kata dalam teks input yang lebih panjang dariwidth
, TextWrap menjamin bahwa tidak ada baris output yang lebih panjang dari karakterwidth
.expand_tabs
(default:true
) – Jikatrue
, maka semua karakter tab pada teks akan diperluas menjadi spasi dengan menggunakan metode teksexpandTabs()
.tabsize
(default:8
) – Jikaexpand_tabs
bernilaitrue
, maka semua karakter tab pada teks akan diperluas hingga nol spasi atau lebih, tergantung pada kolom saat ini dan ukuran tab yang diberikan.replace_whitespace
(default:true
) – Jikatrue
, setelah perluasan tab tetapi sebelum pembungkusan, metodewrap ()
,fill ()
, ataushorten ()
akan mengganti setiap karakter spasi dengan spasi tunggal. Karakter spasi yang diganti adalah sebagai berikut: tab, baris baru, tab vertikal, formfeed, dan carriage return ('\t\n\v\f\r'
).ℹ️Jikaexpand_tabs
bernilaifalse
danreplace_whitespace
bernilaitrue
, setiap karakter tab akan digantikan oleh satu spasi, yang tidak sama dengan perluasan tab.ℹ️Jikareplace_whitespace
bernilaifalse
, baris baru dapat muncul di tengah-tengah baris dan menyebabkan output yang aneh. Untuk alasan ini, teks harus dipecah menjadi beberapa paragraf (menggunakanString.splitLines()
atau sejenisnya) yang dibungkus secara terpisah.drop_whitespace
(default:true
) – Jikatrue
, spasi pada awal dan akhir setiap baris (setelah pembungkusan tetapi sebelum indentasi) dihilangkan. Namun, spasi di awal paragraf tidak akan dihilangkan jika tidak ada spasi yang mengikutinya. Jika spasi yang dibuang memenuhi seluruh baris, seluruh baris akan dibuang.initial_indent
(default:''
) – String yang akan ditambahkan ke baris pertama output yang dibungkus. Dihitung sebagai panjang baris pertama. String kosong tidak diindentasi.subsequent_indent
(default:''
) – String yang akan ditambahkan ke semua baris output yang dibungkus kecuali baris pertama. Dihitung berdasarkan panjang setiap baris kecuali baris pertama.fix_sentence_endings
(default:false
) – Jikatrue
, TextWrap mencoba mendeteksi akhiran kalimat dan memastikan bahwa kalimat selalu dipisahkan oleh dua spasi. This is generally desired for text in a monospaced font. Namun, algoritma pendeteksian kalimat ini tidak sempurna: algoritma ini mengasumsikan bahwa akhiran kalimat terdiri dari huruf kecil yang diikuti oleh salah satu dari'.'
,'!'
, atau'?'
, mungkin diikuti oleh salah satu dari'"'
atau"'"
, yang diikuti oleh spasi. Salah satu masalah dengan algoritme ini adalah bahwa algoritme ini tidak dapat mendeteksi perbedaan antara “Dr.” dalam[...] Dr. Frankenstein's monster [...]
[...] See Spot. See Spot run [...]
fix_sentence_endings
bernilaifalse
secara default.Karena algoritme pendeteksian kalimat bergantung padaString.toLowerCase
untuk definisi “huruf kecil”, dan konvensi penggunaan dua spasi setelah titik untuk memisahkan kalimat di baris yang sama, algoritme ini khusus untuk teks berbahasa Inggris.break_long_words
(default:true
) – Jikatrue
, maka kata yang lebih panjang dariwidth
akan diputus untuk memastikan tidak ada baris yang lebih panjang dariwidth
. Jikafalse
, kata yang panjang tidak akan diputus, dan beberapa baris mungkin lebih panjang dariwidth
. (Kata-kata yang panjang akan diletakkan pada satu baris dengan sendirinya, untuk meminimalkan jumlah yang melebihiwidth
).break_on_hyphens
(default:true
) – Jikatrue
, pemenggalan akan terjadi sebaiknya pada spasi dan tepat setelah tanda penghubung pada kata majemuk, seperti yang biasa terjadi dalam bahasa Inggris. Jikafalse
, hanya spasi yang akan dianggap sebagai tempat yang baik untuk pemenggalan baris, tetapi Anda perlu mengaturbreak_long_words
kefalse
jika Anda menginginkan kata-kata yang benar-benar tidak dapat dipenggal. Perilaku default pada versi sebelumnya adalah selalu memperbolehkan pemenggalan kata yang diberi tanda hubung.max_lines
(default:null
) – Jika bukannull
, maka output akan berisi paling banyak barismax_lines
, dengan placeholder yang muncul di akhir output.placeholder
(default:' [...]'
) – String yang akan muncul di akhir teks keluaran jika telah terpotong.
Penggunaan Dasar
const text = "This is a long line of text that needs\tto be wrapped properly\twithout cutting\twords in half.";
const options = {
replace_whitespace: false,
tabsize: 12,
initial_indent: "[!] "
}
const wrapped = textwrap.wrap(text, 20, options)
console.log(wrapped);
Hasil:
[
'[!] This is a long',
'line of text that',
'needs to be',
'wrapped properly',
'without cutting',
'words in half.'
]
Contoh lainnya:
const text = "This is a long piece of text that needs to be shortened for display purposes.";
const options = {
placeholder: " (...)"
};
const shortened = textwrap.shorten(text, 30, options);
console.log(shortened);
Hasil:
This is a long piece of (...)