2012-04-05 9 views
0

私はいくつかのbbcodeが必要な小さなことに取り組んでいます。本当にスポイラータグを持つ必要があります。ライブラリに自分のタグを追加する例を読みましたが、実際の動作は分かりません。スポイラータグにしたいのは、テキストを隠すトグル可能なボタンだけです。スポイラータグを使ってbb-ruby gemを拡張するにはどうすればよいですか?

"Your string with [spoiler]spoiler[/spoiler]".bbcode_to_html(my_spoiler) 

my_spoilerのビーイングで:あなたが最初の引数としてbbcode_to_html呼び出すときにそう...独自のタグ定義を送ることができるように見えるBB-rubyに関する

+0

リポジトリをフォークするには、メインのrubyソースコードを 'lib /'に編集しますか? – element119

+0

[link](http://rubydoc.info/gems/bbcoder/0.2.0/frames)これは私が試した別のライブラリですが、スポイラーもサポートしていません。 – RangerMauve

+1

問題は、拡張機能がどのように動作するのか分かりませんし、それを動作させるには十分なhtmlがわかりません。 – RangerMauve

答えて

0

my_spoiler = { 
    'Spoiler' => [ 
    /\[spoiler\](.*?)\[\/spoiler\]/mi, # regex to match spoiler 
    '<div class="spoiler"><a>Show Spoiler</a><p>\1</p></div>', # what to output, change this if needed 
    'Spoiler text',     # description 
    '[spoiler]this is a spoiler[/spoiler]', # sample 
    :spoiler       # actual tag used 
    ] 
} 

あなたは出力を必要なものに変更し、jQueryでスポイラーを表示するためのjavascriptも必要です。

$('.spoiler').each(function() { 
    $(this).find('p').hide(); 
    $(this).find('a').click(function() { 
    $(this).find('p').toggle(); 
    }); 
}); 

あなたはbbcoderもやってみたことに気付きました。私は作者であるので、それをやる方法も投稿します。 bbcoderのためには、アプリケーションの初期化中またはあなたは、実際の文字列を解析を開始する前にこのような何かを置く必要があります。

BBCoder.configure do 
    tag :spoiler do 
    <<-EOS 
<div class="spoiler"> 
    <a>Show Spoiler</a> 
    <p>#{content}</p> 
</div> 
    EOS 
    end 
end 

あなたがBBCoderを設定した後、あなたが行ってもいいですし、それはそれ以降のスポイラータグについて知っているだろうし、あなただけのためにそれを解析してください。

"My [spoiler]spoiler string[/spoiler]".bbcode_to_html 

私はこれらのソリューションをテストしていませんが、あまり面倒なく動作するはずです。

関連する問題