Text::Livedoor::WikiでPad(ゲームコントローラ)記法をサポートしました

鉄拳6やってますか!のぽろきぃです。こんにちは。

Text::Livedoor::Wiki Version 0.02公開

昨日公開された、Pad記法Text::Livedoor::Wikiに組み込んでCPANにあげたので報告だYO! それと、画像とかも更新したので、ここからダウンロードすると良いと思う!

Pad記法作った人

実装したのは、フリーエリア研究所オクラホマーさんです。カッコいいですね。はやく100個くらいフリーエリアツール作れよ。このやろうですね。 あ、デザインはザキュさんです。あ、マークアップはカブタン研究所カブタンです。

Pad記法を思いついた人

半年くらい前に「ゲームコントローラの、ボタンをwikiに出したいねー」みたいなことを、clouderさんがつぶやいてたので、勝手にアイデアをパクって実装しました。

まとめ

つまり何が言いたかったかというと、鉄拳6を買って、PAD記法使うとイイよ!パンダかわいいよ!僕は鉄拳6買ってないけどね!買うかも!

はてな記法?それlivedoor Wiki記法でできるお

夜分遅くすいません。ぽろきぃです。弊社の社員もみんな、はてな記法が好きみたいです。livedoor blogではサポートするぐらいですからね!

はてな記法?それ Text::Livedoor::Wikiで

Text::Livedoor::Wiki記法を使えば実は、はてな記法だって簡単にサポートできちゃうんだよね。プラグイン作ればいいだけだよ。

Text::Livedoor::Wiki::PluginX::Block::Hatena

つくってみたよ!3分でできたよ!ラーメンだね!適当なので不具合たぶんあるよ!気をつけて!

package Text::Livedoor::Wiki::PluginX::Block::Hatena;

use strict;
use warnings;
use base qw(Text::Livedoor::Wiki::Plugin::Block);
use Text::Hatena;
our $VERSION = '0.01';

__PACKAGE__->trigger({ 
     start=> '^__HATENA__$' , 
     end  => '^__HATENA__$' , 
     escape => 1 });

sub check {
    my $class        = shift;
    my $line        = shift;
    my $args        = shift;
    my $on_next     = $args->{on_next};
    my $id          = $args->{id};
    my $scratchpad  = $Text::Livedoor::Wiki::scratchpad;
    my $row;
    my $option_str;
    my $processing = $scratchpad->{block}{$id}{processing};

    # header
    if (( ( $row, $option_str ) = $line =~ /^__HATENA__$/) 
     && !$processing  && !$on_next ){
        my $res = { id => $id };
        $scratchpad->{block}{$id}{processing} = 1;
        return $res;
    }
    # end box
    elsif( $line =~ /^__HATENA__$/ && $processing 
     && !$on_next ) {
        $scratchpad->{block}{$id}{processing} = 0;
        return { line => '' } ;
    }
    # finalize
    elsif( $on_next && !$processing ) {
        return ;
    }
    # processing
    elsif( $processing ) {
        return { line => $line  };
    }
    # not much
    return;
}
sub get {
    my $class = shift;
    my $block = shift;
    my $inline = shift;
    my $items = shift;
    my $meta = shift @{$items};
    my $id         = $meta->{id};
    my $data = '';
    $data .= $_->{line} . "\n" for @$items;
    $data =~ s/\n$//;
    return Text::Hatena->parse( $data );
}

使い方

''はてな記法じゃないお''
__HATENA__
*はてな記法だお
>||
はてな記法のすーぱーぷれだお
||<
__HATENA__

出力

こんな感じで変換されてるよ!

<div class="user-area">
<b>はてな記法じゃないお</b><div class="section">
<h3>はてな記法だお</h3>
<pre>
はてな記法のすーぱーぷれだお
</pre>
</div>
</div>

test

use Test::Base qw/no_plan/;
use Text::Livedoor::Wiki;
my $parser = Text::Livedoor::Wiki->new({ 
    block_plugins =>
     [qw/Text::Livedoor::Wiki::PluginX::Block::Hatena/] });

run {
    my $block = shift;
    my $html = $parser->parse( $block->wiki );
    is( $html, $block->html , $block->name );
}

__DATA__

=== basic
--- wiki
''はてな記法じゃないお''
__HATENA__
*はてな記法だお
>||
はてな記法のすーぱーぷれだお
||<
__HATENA__
--- html
<div class="user-area">
<b>はてな記法じゃないお</b><div class="section">
<h3>はてな記法だお</h3>
<pre>
はてな記法のすーぱーぷれだお
</pre>
</div>
</div>

まとめ

ね!簡単でしょ! さぁ Let's cpan insatll Text::Livedoor::Wiki !!

livedoor Wiki記法モジュールを公開しました

こんにちは。ぽろきぃです。昨日、Wiki記法モジュール Text::Livedoor::Wikiを公開しました。CPAN経由で利用することができます。CPAN Authorsの仲間入りですね!

使い方

簡単なサンプルコードです。使い方は至って簡単です。是非御利用ください!

#!/usr/bin/perl

use strict;
use Text::Livedoor::Wiki;

my $wiki_text = "&color(red){こんにちは!}";
my $wiki = Text::Livedoor::Wiki->new();
my $html = $wiki->parse( $wiki_text );
print $html;

詳しくは、Text::Livedoor::Wikiウィキをご確認ください。