class Confluence::MarkdownConverter

By default, all documentation should be written in a normal Markdown format. Later, when we're generating/uploading final documentation, we'll use Confluence::MarkdownConverter to convert normal Markdown into Confluence specific Markdown confluence.atlassian.com/bitbucketserver/markdown-syntax-guide-776639995.html

Constants

CONVERTERS

Public Instance Methods

convert(original_markdown) click to toggle source
# File lib/confluence/markdown_converter.rb, line 24
def convert(original_markdown)
  return if original_markdown.nil?

  output = original_markdown

  CONVERTERS.each do |converter_method|
    output = send(converter_method, output)
  end

  output
end

Private Instance Methods

convert_bold(markdown) click to toggle source
# File lib/confluence/markdown_converter.rb, line 58
def convert_bold(markdown)
  markdown.gsub(/(\*\*)(\w+)(\*\*)/, '*\2*')
end
convert_code(markdown) click to toggle source
# File lib/confluence/markdown_converter.rb, line 66
def convert_code(markdown)
  output_lines = []

  markdown.each_line do |line|
    if line =~ /^\~{3}\w+$/
      language = line.gsub("~~~", "").strip

      output_lines.push("{code:language=#{language}}\n")
    elsif line =~ /^\~{3}$/
      output_lines.push("{code}")
    else
      output_lines.push(line)
    end
  end

  output_lines.join
end
convert_h1(markdown) click to toggle source
# File lib/confluence/markdown_converter.rb, line 38
def convert_h1(markdown)
  markdown.gsub(/^(#)([^#].+)$/, 'h1.\2')
end
convert_h2(markdown) click to toggle source
# File lib/confluence/markdown_converter.rb, line 42
def convert_h2(markdown)
  markdown.gsub(/^(##)([^\#].+)$/, 'h2.\2')
end
convert_h3(markdown) click to toggle source
# File lib/confluence/markdown_converter.rb, line 46
def convert_h3(markdown)
  markdown.gsub(/^(###)([^\#].+)$/, 'h3.\2')
end
convert_h4(markdown) click to toggle source
# File lib/confluence/markdown_converter.rb, line 50
def convert_h4(markdown)
  markdown.gsub(/^(####)([^\#].+)$/, 'h4.\2')
end
convert_h5(markdown) click to toggle source
# File lib/confluence/markdown_converter.rb, line 54
def convert_h5(markdown)
  markdown.gsub(/^(#####)([^\#].+)$/, 'h5.\2')
end
convert_italic(markdown) click to toggle source
# File lib/confluence/markdown_converter.rb, line 62
def convert_italic(markdown)
  markdown.gsub(/(\*)(\w+)(\*)/, '_\2_')
end
convert_unordered_list(markdown) click to toggle source
# File lib/confluence/markdown_converter.rb, line 84
def convert_unordered_list(markdown)
  markdown.gsub(/^\*\s(.+)$/, '- \1')
end