Class: Qiita::Markdown::Processor

Inherits:
Object
  • Object
show all
Defined in:
lib/qiita/markdown/processor.rb

Direct Known Subclasses

SummaryProcessor

Constant Summary collapse

DEFAULT_CONTEXT =
{
  asset_root: "/images",
}
DEFAULT_FILTERS =
[
  Filters::Greenmat,
  Filters::Footnote,
  Filters::Code,
  Filters::Checkbox,
  HTML::Pipeline::EmojiFilter,
  Filters::SyntaxHighlight,
  Filters::Mention,
  Filters::Sanitize,
]

Instance Method Summary collapse

Constructor Details

#initialize(context = {}) ⇒ Processor



20
21
22
# File 'lib/qiita/markdown/processor.rb', line 20

def initialize(context = {})
  @context = DEFAULT_CONTEXT.merge(context)
end

Instance Method Details

#call(input, context = {}) ⇒ Hash

Converts Markdown text into HTML string with extracted metadata.

Examples:

Qiita::Markdown::Processor.new.call(markdown) #=> {
  codes: [...],
  mentioned_usernames: [...],
  output: "...",
}


35
36
37
# File 'lib/qiita/markdown/processor.rb', line 35

def call(input, context = {})
  HTML::Pipeline.new(filters, @context).call(input, context)
end

#filtersArray<HTML::Pipeline::Filter>

Note:

Modify filters if you want.



41
42
43
# File 'lib/qiita/markdown/processor.rb', line 41

def filters
  @filters ||= DEFAULT_FILTERS.clone
end