Text::LineFold~[ja] -
プレインテキストの行折り
use Text::LineFold;
$lf = Text::LineFold->new();
# 行折りする
$folded = $lf->fold($string, 'PLAIN');
$indented = $lf->fold(' ' x 8, ' ' x 4, $string);
# 行折りを戻す
$unfolded = $lf->unfold($string, 'FIXED');
Text::LineFold
は、プレインテキストの行折りをしたり行折りを戻したりする。
電子メールメッセージを主眼に置いており、RFC
3676 の flowed
形式にも対応する。
- new ([KEY => VALUE, ...])
- コンストラクタ。
KEY => VALUE の対については
config
メソッドを参照。
- $self->config (KEY)
- $self->config ([KEY => VAL, ...])
- インスタンスメソッド。
設定を取得または更新する。以下の
KEY => VALUE
対を指定できる。
- Charset => CHARSET
- 入力文字列を符号化しているキャラクタセット。
文字列または MIME::Charset~[ja]
オブジェクト。
初期値は
"UTF-8"。
- Language => LANGUAGE
- Charset
オプションとともに、言語/地域の文脈を決めるのに使える。
初期値は
"XX"。 "Context" in
Unicode::LineBreak~[ja]
オプションも参照。
- Newline => STRING
- 改行の文字列。
初期値は
"\n"。
- OutputCharset => CHARSET
- fold()/unfold()
の結果を符号化するキャラクタセット。
文字列または MIME::Charset~[ja]
オブジェクト。
特殊値 "_UNICODE_"
を指定すると、結果は
Unicode 文字列となる。
初期値は Charset
オプションの値。
- TabSize => NUMBER
- タブストップの桁数。
0
を指定すると、タブストップを無視する。
初期値は 8。
- BreakIndent
- CharMax
- ColMax
- ColMin
- ComplexBreaking
- EAWidth
- HangulAsAL
- LBClass
- LegacyCM
- Prep
- Urgent
- "オプション" in
Unicode::LineBreak~[ja] を参照。
- $self->fold (STRING, [METHOD])
- $self->fold (INITIAL_TAB, SUBSEQUENT_TAB, STRING, ...)
- インスタンスメソッド。
文字列 STRING
を行折りする。
行末の余分な空白文字や水平タブ文字を除去し、
改行の文字列を Newline
オプションで指定したものに置き換え、
テキスト末尾に改行がなければ追加する。
水平タブ文字は TabSize
オプションによる幅のタブストップと見なす。
ひとつめの形式では、METHOD
引数に以下のオプションを指定できる。
- "FIXED"
- ">"
で始まる行は行折りしない。
段落は空行で分かたれる。
- "FLOWED"
- RFC 3676 で定義される
"Format=Flowed; DelSp=Yes"
形式。
- "PLAIN"
- 初期の方法。すべての行を行折りする。
ふたつめの形式は、"wrap()"
in Text::Wrap に似ている。
すべての行を行折りする。段落の先頭には
INITIAL_TAB
を、ほかの行の先頭には
SUBSEQUENT_TAB を挿入する。
- $self->unfold (STRING, METHOD)
- 文字列 STRING
の行折りされた段落をつなぎ直してそれを返す。
METHOD
引数には以下のオプションを指定できる。
- "FIXED"
- 初期の方法。
">"
で始まる行はつなぎ直さない。
空行を段落の区切りとみなす。
- "FLOWED"
- RFC 3676 で定義される
"Format=Flowed; DelSp=Yes"
形式をつなぎ直す。
- "FLOWEDSP"
- RFC 3676 で定義される
"Format=Flowed; DelSp=No"
形式をつなぎ直す。
バグやバグのような動作は開発者に教えてください。
CPAN Request Tracker:
<http://rt.cpan.org/Public/Dist/Display.html?Name=Unicode-LineBreak>.
Unicode::LineBreak~[ja], Text::Wrap.
Copyright (C) 2009-2012 Hatuka*nezumi - IKEDA Soji <hatuka(at)nezumi.nu>.
This program is free software; you can redistribute it and/or
modify it under the same terms as Perl itself.