class Jekyll::Converters::Markdown
Markdown
converter. For more info on converters see jekyllrb.com/docs/plugins/converters/
Public Instance Methods
Logic to do the content conversion.
content - String content of file (without front matter).
Returns a String of the converted content.
# File lib/jekyll/converters/markdown.rb, line 83 def convert(content) setup @cache.getset(content) do @parser.convert(content) end end
# File lib/jekyll/converters/markdown.rb, line 90 def extname_list @extname_list ||= @config["markdown_ext"].split(",").map! { |e| ".#{e.downcase}" } end
RuboCop does not allow reader methods to have names starting with ‘get_` To ensure compatibility, this check has been disabled on this method
rubocop:disable Naming/AccessorMethodName
# File lib/jekyll/converters/markdown.rb, line 35 def get_processor case @config["markdown"].downcase when "kramdown" then KramdownParser.new(@config) else custom_processor end end
Does the given extension match this converter’s list of acceptable extensions? Takes one argument: the file’s extension (including the dot).
ext - The String extension to check.
Returns true if it matches, false otherwise.
# File lib/jekyll/converters/markdown.rb, line 65 def matches(ext) extname_list.include?(ext.downcase) end
Public: The extension to be given to the output file (including the dot).
ext - The String extension or original file.
Returns The String output file extension.
# File lib/jekyll/converters/markdown.rb, line 74 def output_ext(_ext) ".html" end
# File lib/jekyll/converters/markdown.rb, line 12 def setup return if @setup ||= false unless (@parser = get_processor) if @config["safe"] Jekyll.logger.warn "Build Warning:", "Custom processors are not loaded in safe mode" end Jekyll.logger.error "Markdown processor:", "#{@config["markdown"].inspect} is not a valid Markdown processor." Jekyll.logger.error "", "Available processors are: #{valid_processors.join(", ")}" Jekyll.logger.error "" raise Errors::FatalException, "Invalid Markdown processor given: #{@config["markdown"]}" end @cache = Jekyll::Cache.new("Jekyll::Converters::Markdown") @setup = true end
Public: A list of processors that you provide via plugins.
Returns an array of symbols
# File lib/jekyll/converters/markdown.rb, line 55 def third_party_processors self.class.constants - [:KramdownParser, :PRIORITIES] end
Public: Provides you with a list of processors comprised of the ones we support internally and the ones that you have provided to us (if they’re whitelisted for use in safe mode).
Returns an array of symbols.
# File lib/jekyll/converters/markdown.rb, line 48 def valid_processors [:kramdown] + third_party_processors end
Private Instance Methods
Private: Determine whether a class name is an allowed custom
markdown class name.
parser_name - the name of the parser class
Returns true if the parser name contains only alphanumeric characters and is defined within Jekyll::Converters::Markdown
# File lib/jekyll/converters/markdown.rb, line 108 def custom_class_allowed?(parser_name) parser_name !~ %r![^A-Za-z0-9_]! && self.class.constants.include?(parser_name.to_sym) end
# File lib/jekyll/converters/markdown.rb, line 96 def custom_processor converter_name = @config["markdown"] self.class.const_get(converter_name).new(@config) if custom_class_allowed?(converter_name) end