0

我正在做一个需要一些 bbcode 的小东西,我真的需要它有剧透标签。我通读了将我自己的标签添加到库中的示例,但我并不真正了解它是如何工作的。我想要扰流板标签做的只是有一个隐藏一些文本的可切换按钮。

4

1 回答 1

0

对于 bb-ruby,当您调用 bbcode_to_html 作为第一个参数时,您似乎可以发送自己的标签定义......所以:

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

my_spoiler 是:

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
  ]
}

您需要将输出更改为您需要的内容,并且还需要使用 javascript 在 jQuery 中显示剧透:

$('.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

我还没有测试过这些解决方案,但它们应该可以毫不费力地工作。

于 2012-04-13T03:50:04.960 回答