Class: RDoc::Generator::Markdown::Conversion

Inherits:
Object
  • Object
show all
Defined in:
lib/rdoc/generator/markdown/conversion.rb

Overview

Converts RDoc HTML and normalizes generated Markdown.

Class Method Summary collapse

Class Method Details

.markdownify(input, heading_level_offset: 0) ⇒ String

Converts RDoc HTML into GitHub-flavored Markdown.



11
12
13
14
15
16
17
18
19
20
21
# File 'lib/rdoc/generator/markdown/conversion.rb', line 11

def self.markdownify(input, heading_level_offset: 0)
  fragment = normalized_html_fragment(input)
  anchor_aliases = tokenize_legacy_anchors(fragment.css("span.legacy-anchor[id]"))
  document = fragment.document
  fragment.css("a").each { |link| normalize_link(link, document) }
  markdown = ReverseMarkdown.convert(fragment, github_flavored: true).dup
  markdown.gsub!(Regexp.union(anchor_aliases.keys), anchor_aliases)
  normalize_definition_list_code_blocks(markdown).rstrip.gsub(/^(#+)(\s)/) do
    "#{"#" * [Regexp.last_match(1).length + heading_level_offset, 6].min}#{Regexp.last_match(2)}"
  end
end