lib/milestoner/renderers/markdown.rb
# frozen_string_literal: true require "redcarpet" require "refinements/module" require "rouge" require "rouge/plugins/redcarpet" module Milestoner module Renderers # Renders Markdown as HTML. class Markdown using Refinements::Module CLIENT = Redcarpet::Markdown.new Class.new(Redcarpet::Render::HTML) .include(Rouge::Plugins::Redcarpet) .pseudonym("redcarpet_html_rouge") .new, disable_indented_code_blocks: true, fenced_code_blocks: true, footnotes: true, highlight: true, superscript: true, tables: true def initialize client: CLIENT @client = client end def call(content) = client.render content private attr_reader :client end end end