class Qiita::Markdown::BaseProcessor

An abstract base processor for rendering a Markdown document.

Public Class Methods

default_context() click to toggle source

@return [Hash] the default context for HTML::Pipeline

# File lib/qiita/markdown/base_processor.rb, line 6
def self.default_context
  raise NotImplementedError
end
default_fiters() click to toggle source

@return [Array<Class>] the default HTML::Pipeline filter classes

# File lib/qiita/markdown/base_processor.rb, line 11
def self.default_fiters
  raise NotImplementedError
end
new(context = {}) click to toggle source

@param [Hash] context Optional context for HTML::Pipeline.

# File lib/qiita/markdown/base_processor.rb, line 16
def initialize(context = {})
  @context = self.class.default_context.merge(context)
end

Public Instance Methods

call(input, context = {}) click to toggle source

Converts Markdown text into HTML string with extracted metadata.

@param [String] input Markdown text. @param [Hash] context Optional context merged into default context. @return [Hash] Process result. @example

Qiita::Markdown::Processor.new.call(markdown) #=> {
  codes: [...],
  mentioned_usernames: [...],
  output: "...",
}
# File lib/qiita/markdown/base_processor.rb, line 31
def call(input, context = {})
  HTML::Pipeline.new(filters, @context).call(input, context)
end
filters() click to toggle source

@note Modify filters if you want. @return [Array<HTML::Pipeline::Filter>]

# File lib/qiita/markdown/base_processor.rb, line 37
def filters
  @filters ||= self.class.default_filters
end