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
私はこれらのソリューションをテストしていませんが、あまり面倒なく動作するはずです。
リポジトリをフォークするには、メインのrubyソースコードを 'lib /'に編集しますか? – element119
[link](http://rubydoc.info/gems/bbcoder/0.2.0/frames)これは私が試した別のライブラリですが、スポイラーもサポートしていません。 – RangerMauve
問題は、拡張機能がどのように動作するのか分かりませんし、それを動作させるには十分なhtmlがわかりません。 – RangerMauve