/usr/lib/ruby/vendor_ruby/redcarpet/compat.rb is in ruby-redcarpet 3.3.4-2build1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 | require 'redcarpet'
# Creates an instance of Redcarpet with the RedCloth API.
class RedcarpetCompat
attr_accessor :text
def initialize(text, *exts)
exts_hash, render_hash = *parse_extensions_and_renderer_options(exts)
@text = text
renderer = Redcarpet::Render::HTML.new(render_hash)
@markdown = Redcarpet::Markdown.new(renderer, exts_hash)
end
def to_html(*_dummy)
@markdown.render(text)
end
private
EXTENSION_MAP = {
# old name => new name
:autolink => :autolink,
:fenced_code => :fenced_code_blocks,
:filter_html => :filter_html,
:hard_wrap => :hard_wrap,
:prettify => :prettify,
:lax_htmlblock => :lax_spacing,
:no_image => :no_images,
:no_intraemphasis => :no_intra_emphasis,
:no_links => :no_links,
:filter_styles => :no_styles,
:safelink => :safe_links_only,
:space_header => :space_after_headers,
:strikethrough => :strikethrough,
:tables => :tables,
:generate_toc => :with_toc_data,
:xhtml => :xhtml,
# old names with no new mapping
:gh_blockcode => nil,
:no_tables => nil,
:smart => nil,
:strict => nil
}
RENDERER_OPTIONS = [:filter_html, :no_images, :no_links, :no_styles,
:safe_links_only, :with_toc_data, :hard_wrap, :prettify, :xhtml]
def rename_extensions(exts)
exts.map do |old_name|
if new_name = EXTENSION_MAP[old_name]
new_name
else
old_name
end
end.compact
end
# Returns two hashes, the extensions and renderer options
# given the extension list
def parse_extensions_and_renderer_options(exts)
exts = rename_extensions(exts)
exts.partition {|ext| !RENDERER_OPTIONS.include?(ext) }.
map {|list| list_to_truthy_hash(list) }
end
# Turns a list of symbols into a hash of <tt>symbol => true</tt>.
def list_to_truthy_hash(list)
list.inject({}) {|h, k| h[k] = true; h }
end
end
Markdown = RedcarpetCompat unless defined? Markdown
|