class Minimart::Web::MarkdownParser

MarkdownParser takes a String of Markdown input, and outputs HTML

Attributes

raw_markdown[R]

@return [String] raw Markdown to parse

Public Class Methods

new(raw_markdown) click to toggle source

@param [String] raw_markdown Raw Markdown to parse

# File lib/minimart/web/markdown_parser.rb, line 24
def initialize(raw_markdown)
  @raw_markdown = raw_markdown
end
parse(file) click to toggle source

Parse a file as Markdown. If the file does not contain Markdown, it's contents will be returned. @param [String] file The file to parse @return [String] The parsed Markdown content.

# File lib/minimart/web/markdown_parser.rb, line 12
def self.parse(file)
  if %[.md .markdown].include?(File.extname(file))
    return new(File.open(file).read).parse
  else
    return File.open(file).read
  end
end

Public Instance Methods

parse() click to toggle source

Parse the Markdown contents! @return [String] The parsed Markdown content.

# File lib/minimart/web/markdown_parser.rb, line 30
def parse
  renderer.render(raw_markdown)
end

Private Instance Methods

renderer() click to toggle source
# File lib/minimart/web/markdown_parser.rb, line 36
def renderer
  Redcarpet::Markdown.new(Redcarpet::Render::HTML,
    no_intra_emphasis: true,
    fenced_code_blocks: true,
    autolink: true,
    tables: true,
    link_attributes: {target: '_blank'})
end