Class: RDoc::Generator::Markdown

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

Overview

Generates Markdown output and a CSV search index from an RDoc store.

Defined Under Namespace

Modules: OptionsExtension

Constant Summary collapse

TEMPLATE_DIR =

Directory containing ERB templates.

File.expand_path(File.join(File.dirname(__FILE__), "..", "..", "templates"))
MARKDOWN_UNKNOWN_TAGS =

Supported reverse_markdown unknown-tag modes.

%i[pass_through drop bypass raise].freeze

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(store, rdoc_options) ⇒ Markdown

Creates a generator for an RDoc store and options.

Parameters:

  • store (RDoc::Store)

    Source documentation store.

  • rdoc_options (RDoc::Options)

    Generator options.



98
99
100
101
102
103
# File 'lib/rdoc/generator/markdown.rb', line 98

def initialize(store, rdoc_options)
  @store = store
  @options = rdoc_options
  @source_dir = File.expand_path(rdoc_options.root.to_s)
  @markdown_unknown_tags = self.class.validate_markdown_unknown_tags(rdoc_options.markdown_unknown_tags)
end

Instance Attribute Details

#classesArray<RDoc::Context>? (readonly)

Classes and modules selected for output.

Returns:

  • (Array<RDoc::Context>, nil)


87
88
89
# File 'lib/rdoc/generator/markdown.rb', line 87

def classes
  @classes
end

#pagesArray<RDoc::TopLevel>? (readonly)

Text files selected for output.

Returns:

  • (Array<RDoc::TopLevel>, nil)


92
93
94
# File 'lib/rdoc/generator/markdown.rb', line 92

def pages
  @pages
end

#storeRDoc::Store (readonly)

Source store for generated content.

Returns:

  • (RDoc::Store)


82
83
84
# File 'lib/rdoc/generator/markdown.rb', line 82

def store
  @store
end

Class Method Details

.setup_options(rdoc_options) ⇒ void

This method returns an undefined value.

Registers markdown generator-specific RDoc options.

Parameters:



57
58
59
60
61
62
63
64
# File 'lib/rdoc/generator/markdown.rb', line 57

def self.setup_options(rdoc_options)
  rdoc_options.option_parser.on(
    "--markdown-unknown-tags=MODE",
    "How to handle unknown HTML tags: #{MARKDOWN_UNKNOWN_TAGS.join(", ")}."
  ) do |value|
    rdoc_options.markdown_unknown_tags = value.to_sym
  end
end

.validate_markdown_unknown_tags(value) ⇒ Symbol

Validates the configured reverse_markdown unknown-tag mode.

Parameters:

  • value (Symbol)

    Unknown-tag mode.

Returns:

  • (Symbol)

    Validated unknown-tag mode.

Raises:

  • (OptionParser::InvalidArgument)


71
72
73
74
75
76
77
# File 'lib/rdoc/generator/markdown.rb', line 71

def self.validate_markdown_unknown_tags(value)
  return value if MARKDOWN_UNKNOWN_TAGS.include?(value)

  expected = MARKDOWN_UNKNOWN_TAGS.map { |mode| ":#{mode}" }.join(", ")
  raise OptionParser::InvalidArgument,
    "invalid markdown_unknown_tags: #{value.inspect} (expected one of: #{expected})"
end

Instance Method Details

#generatevoid

This method returns an undefined value.

Writes class files, page files, and the search index.



108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
# File 'lib/rdoc/generator/markdown.rb', line 108

def generate
  debug("Setting things up ")

  setup

  debug("Generate documentation in #{@output_dir}")

  emit_classfiles

  debug("Generate pages in #{@output_dir}")

  emit_pagefiles

  debug("Generate index file in #{@output_dir}")

  emit_csv_index
end