lib/jekyll/converters/markdown.rb in jekyll-4.2.0 vs lib/jekyll/converters/markdown.rb in jekyll-4.2.1
- old
+ new
@@ -1,113 +1,113 @@
-# frozen_string_literal: true
-
-module Jekyll
- module Converters
- # Markdown converter.
- # For more info on converters see https://jekyllrb.com/docs/plugins/converters/
- class Markdown < Converter
- highlighter_prefix "\n"
- highlighter_suffix "\n"
- safe true
-
- 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
-
- # 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
- def get_processor
- case @config["markdown"].downcase
- when "kramdown" then KramdownParser.new(@config)
- else
- custom_processor
- end
- end
- # rubocop:enable Naming/AccessorMethodName
-
- # 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.
- def valid_processors
- [:kramdown] + third_party_processors
- end
-
- # Public: A list of processors that you provide via plugins.
- #
- # Returns an array of symbols
- def third_party_processors
- self.class.constants - [:KramdownParser, :PRIORITIES]
- 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.
- 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.
- def output_ext(_ext)
- ".html"
- end
-
- # Logic to do the content conversion.
- #
- # content - String content of file (without front matter).
- #
- # Returns a String of the converted content.
- def convert(content)
- setup
- @cache.getset(content) do
- @parser.convert(content)
- end
- end
-
- def extname_list
- @extname_list ||= @config["markdown_ext"].split(",").map! { |e| ".#{e.downcase}" }
- end
-
- private
-
- def custom_processor
- converter_name = @config["markdown"]
- self.class.const_get(converter_name).new(@config) if custom_class_allowed?(converter_name)
- end
-
- # 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
- def custom_class_allowed?(parser_name)
- parser_name !~ %r![^A-Za-z0-9_]! && self.class.constants.include?(parser_name.to_sym)
- end
- end
- end
-end
+# frozen_string_literal: true
+
+module Jekyll
+ module Converters
+ # Markdown converter.
+ # For more info on converters see https://jekyllrb.com/docs/plugins/converters/
+ class Markdown < Converter
+ highlighter_prefix "\n"
+ highlighter_suffix "\n"
+ safe true
+
+ 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
+
+ # 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
+ def get_processor
+ case @config["markdown"].downcase
+ when "kramdown" then KramdownParser.new(@config)
+ else
+ custom_processor
+ end
+ end
+ # rubocop:enable Naming/AccessorMethodName
+
+ # 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.
+ def valid_processors
+ [:kramdown] + third_party_processors
+ end
+
+ # Public: A list of processors that you provide via plugins.
+ #
+ # Returns an array of symbols
+ def third_party_processors
+ self.class.constants - [:KramdownParser, :PRIORITIES]
+ 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.
+ 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.
+ def output_ext(_ext)
+ ".html"
+ end
+
+ # Logic to do the content conversion.
+ #
+ # content - String content of file (without front matter).
+ #
+ # Returns a String of the converted content.
+ def convert(content)
+ setup
+ @cache.getset(content) do
+ @parser.convert(content)
+ end
+ end
+
+ def extname_list
+ @extname_list ||= @config["markdown_ext"].split(",").map! { |e| ".#{e.downcase}" }
+ end
+
+ private
+
+ def custom_processor
+ converter_name = @config["markdown"]
+ self.class.const_get(converter_name).new(@config) if custom_class_allowed?(converter_name)
+ end
+
+ # 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
+ def custom_class_allowed?(parser_name)
+ parser_name !~ %r![^A-Za-z0-9_]! && self.class.constants.include?(parser_name.to_sym)
+ end
+ end
+ end
+end