/jp-wrap

日本語の禁則処理に対応したword-wrap

Primary LanguageCoffeeScriptMIT LicenseMIT

jp-wrap

日本語の禁則処理に対応したword-wrap

example

made out of meat in Japanese

var wrap = require('jp-wrap')(20);
console.log(wrap('「僕らはみんな、肉だ」とかって、substackが言ってたよ。'));

output:

「僕らはみんな、肉
だ」とかって、
substackが言ってた
よ。

centered

var wrap = require('jp-wrap')(20, 60);

console.log(wrap(
    'CureAppは、アプリを薬のように医師が処方する時代を創っていく会社です。' +
    '20世紀の医学は感染症をcontrollableなものとしました。' +
    '平均寿命が延伸するにつれて見えてきた、21世紀の医療の大きな課題は生活習慣病です。' +
    'しかし生活習慣は、当たり前のことですが、病院の中にはありません。' +
    '医療が介入しにくい場所にあった生活習慣。そこに24時間介入できるのが、' +
    'アプリでしょう。最新のevidenceやガイドラインに沿った指導を毎日行います。' +
    '「アプリの治療が当たり前になる」そんな未来を創っていきたいのです。'
));

output:

                    CureAppは、アプリを薬のように医師が処方                     
                    する時代を創っていく会社です。20世紀の医                    
                    学は感染症をcontrollableなものとしまし                      
                    た。平均寿命が延伸するにつれて見えてき                      
                    た、21世紀の医療の大きな課題は生活習慣病                    
                    です。しかし生活習慣は、当たり前のことで                    
                    すが、病院の中にはありません。医療が介入                    
                    しにくい場所にあった生活習慣。そこに24時                    
                    間介入できるのが、アプリでしょう。最新の                    
                    evidenceやガイドラインに沿った指導を毎日                    
                    行います。「アプリの治療が当たり前にな                      
                    る」そんな未来を創っていきたいのです。                      

install

npm install jp-wrap

methods

substack/node-wordwrapと似たAPIにしました。

var jpWrap = require('jp-wrap');

jpWrap(stop, options)

文字列を受け取って、新しい文字列を返す関数 を返す. stopは文字の幅。

jpWrap(start, stop, options)

2つの数字が与えられたときは 文字列を与えるとstop - startの幅でwrapし、左右にstartだけのpaddingをつける関数 を返す.

options

name type 意味 デフォルト
trim boolean 入力文字列の改行を利用しないときtrue false
half boolean 半角文字の行頭禁則処理を行うかどうか false
breakAll boolean trueだとcssのword-break:break-allと同じ挙動 false
fullWidthSpace boolean 全角スペースが行頭にあった場合削除するか true
sameWidth boolean 全角と半角文字の両方を幅2として計算するか false
regexs array 幅の計算方法を正規表現で指定する []

optionsの例

小文字のアルファベットを幅3として計算する

new JpWrap(100, {regExs: [{pattern:/[a-z]/, width: 3}]});

小文字のアルファベットを幅3、大文字のアルファベットを幅5として計算する

new JpWrap(100, {regExs: [{pattern:/[a-z]/, width: 3}, {pattern:/[A-Z]/, width: 5}]});

もっと内部をさわりたい方

var JpWrap = require('jp-wrap').JpWrap;

クラスが取れます。 こちらの仕様は API docs にあります。

LICENSE

MIT

thanks to

下記を参考にし、改変しました。

Copyright(c) 2014-2015 IGARASHI Makoto https://raw.githubusercontent.com/raccy/japanese-wrap/master/LICENSE.md Copyright(c) 2013-2015 James Halliday https://raw.githubusercontent.com/substack/node-wordwrap/master/LICENSE