Module: MdToBbcode

Defined in:
lib/md_to_bbcode.rb,
lib/md_to_bbcode/version.rb,
lib/md_to_bbcode/bbcode_renderer.rb,
lib/md_to_bbcode/core_extensions/string/md_to_bbcode.rb

Defined Under Namespace

Modules: CoreExtensions Classes: BbcodeRenderer

Constant Summary collapse

VERSION =
'2.0.0'

Class Method Summary collapse

Class Method Details

.md_to_bbcode(markdown) ⇒ Object

Convert a Markdown string to Bbcode

Parameters
  • markdown (String): The Markdown string

Result
  • String: BBCode converted string



13
14
15
16
17
18
19
20
21
22
23
24
25
26
# File 'lib/md_to_bbcode.rb', line 13

def self.md_to_bbcode(markdown)
  bbcode = Redcarpet::Markdown.new(
    BbcodeRenderer,
    fenced_code_blocks: true,
    lax_spacing: false
  ).render(markdown)
  if markdown.end_with?("\n")
    # Sometimes redcarpet removes new lines (after lists), so add them back if needed
    bbcode.end_with?("\n") ? bbcode : "#{bbcode}\n"
  else
    # Sometimes redcarpet adds new lines (after bold markers), so strip them if needed
    bbcode.end_with?("\n") ? bbcode.strip : bbcode
  end
end