Skip to content

Repository files navigation

BBRuby

Description:

BBRuby is a BBCode implementation for Ruby. It will convert strings with BBCode markup to their HTML equivalent.

Installation:

gem install bb-ruby

Usage:

require 'bb-ruby'

BBRuby has been included directly into the String class for use on any string object:

text="[b]Here is some bold text[/b] followed by some [u]underlined text[/u]"output=text.bbcode_to_htmltext.bbcode_to_html!

BBRuby will auto-escape HTML tags. To prevent this just pass false as the second param:

output=text.bbcode_to_html({},false)

Only allow certain tags:

output=text.bbcode_to_html({},true,:enable,:image,:bold,:quote)

Disable certain tags:

output=text.bbcode_to_html({},true,:disable,:image,:bold,:quote)

Alternative Direct usage:

output=BBRuby.to_html(bbcode_markup)

Define your own translation, in order to be more flexible:

my_blockquote={'Quote'=>[/\[quote(:.*)?=(.*?)\](.*?)\[\/quote\1?\]/mi,'<div class="quote"><p><cite>\2</cite></p><blockquote>\3</blockquote></div>','Quote with citation','[quote=mike]please quote me[/quote]',:quote],}text.bbcode_to_html(my_blockquote)

Define Proc as replacement:

moduleBBRuby@@tags=@@tags.merge({'File'=>[/\[file(:.*)?=(.*?)\](.*?)\[\/file\1?\]/mi,lambda{ |e| "<div class="file"><p><cite>#{e[3]}</cite></p><blockquote>#{file_read_method(e[2])}</blockquote></div>"},'File content with citation','[file=script.rb]Script Caption[/file]',:file],})end

You can also use the simple_format method of ActionPack by using the *_with_formatting methods:

output=text.bbcode_to_html_with_formattingoutput=text.bbcode_to_html_with_formatting!

TAGS PROCESSED:

The following is the list of BBCode tags processed by BBRuby and their associated symbol for enabling/disabling them

[b] :bold
[i] :italics
[u] :underline
[s] :strikeout
[del] :delete
[ins] :insert
[code] :code
[size] :size
[color] :color
[ol] :orderedlist
[ul] :unorderedlist
[li] :listitem
[*] :listitem
[list] :listitem
[list=1] :listitem
[list=a] :listitem
[dl] :definelist
[dt] :defineterm
[dd] :definition
[quote] :quote
[quote=source] :quote
[url=link] :link
[url] :link
[img size=] :image
[img align=] :image
[img=] :image
[img] :image
[youtube] :video
[gvideo] :video
[vimeo] :video
[email] :email
[align] :align
[left] :left
[center] :center
[right] :right
[br] :br

About

BBCode implementation for Ruby

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages