« use utf8なら\sは全角スペースもmatchする | メイン | Catalyst::View::JSON »

Femoで全角スペースでのタグの切り分けをサポートしました。

Femoで全角スペースでのタグの切り分けをサポートしました。

全角 スペース

というように全角で区切っても 全角 スペース の2つのタグになります。
もちろん今まで通り半角スペースでも動きますです。

FemoはTagがつけられるメモ帳Webアプリケーションです。ぜひお試しください。ご意見もくださいませ。


ちなみに、タグを切り分ける部分のPerlのコードは以下のようになってます。

my @tags;
my $tagtext = $self->tagtext;

utf8::decode($tagtext) unless utf8::is_utf8($tagtext);
my %seen;
while ($tagtext =~ /\G [\p{Zs}\t\r\n\f,]* (?:
        (") ([^"]*) (?: " | $) |
        (') ([^']*) (?: ' | $) |
        ([^\p{Zs}\t\r\n\f,]+)
    )/gx){
    my $tag = $+;
    my $is_quoted = $1 || $3;
    next unless length $tag;
        
    $tag =~ s/^[\ \t\r\n\f]+//;
    $tag =~ s/[\ \t\r\n\f]+$//;
    $tag =~ s/[\ \t\r\n\f]+/ /g;
    
    utf8::encode($tag) if utf8::is_utf8($tag);
    if(my $ds = Date::Simple->new($tag)){
        $tag = $ds->as_iso;
    }
    push @tags,$tag unless $seen{$tag}++;
}
return \@tags;

いままでText::Tagsというモジュールを使ってきましたが、今回のアップデートから独自の実装(かなりそのままコピー&ペーストですが)になりました。全角でもタグがsplitされるようになった以外はText::Tagsと互換性があります。