module FujiMarkdown

Constants

Error
InvalidPresetError
VERSION

Public Class Methods

parse(text, preset = :HTML) click to toggle source
# File lib/fuji_markdown.rb, line 14
def parse(text, preset = :HTML)
  options = build_options_from_preset(preset)
  Processor.new(**options).parse(text)
end
render(text, preset = :HTML) click to toggle source
# File lib/fuji_markdown.rb, line 19
def render(text, preset = :HTML)
  options = build_options_from_preset(preset)
  Processor.new(**options).render(text)
end

Private Class Methods

build_options_from_preset(preset) click to toggle source
# File lib/fuji_markdown.rb, line 26
def build_options_from_preset(preset) # rubocop:disable Metrics/MethodLength
  case preset
  when :HTML
    {
      preprocessors: [Preprocessors::Ruby.new],
      renderer: CommonMarker::HtmlRenderer.new(options: %i[HARDBREAKS UNSAFE])
    }
  when :KAKUYOMU
    {
      preprocessors: [Preprocessors::Ruby.new, proc { |text| text.gsub(/《/, '|《') }],
      postprocessors: [Postprocessors::Ruby.new],
      renderer: Renderers::KakuyomuRenderer.new
    }
  when :NAROU
    {
      preprocessors: [Preprocessors::Ruby.new, Preprocessors::EscapeNarou.new],
      postprocessors: [Postprocessors::Ruby.new],
      renderer: Renderers::NarouRenderer.new
    }
  else
    raise InvalidPresetError, "Invalid preset: #{preset}"
  end
end