diff --git a/lib/jekyll/filters.rb b/lib/jekyll/filters.rb index bf4cead4..067648b7 100644 --- a/lib/jekyll/filters.rb +++ b/lib/jekyll/filters.rb @@ -14,9 +14,9 @@ module Jekyll # # Returns the HTML formatted String. def markdownify(input) - site = @context.registers[:site] - converter = site.find_converter_instance(Jekyll::Converters::Markdown) - converter.convert(input.to_s) + @context.registers[:site].find_converter_instance( + Jekyll::Converters::Markdown + ).convert(input.to_s) end # Convert quotes into smart quotes. @@ -25,9 +25,9 @@ module Jekyll # # Returns the smart-quotified String. def smartify(input) - site = @context.registers[:site] - converter = site.find_converter_instance(Jekyll::Converters::SmartyPants) - converter.convert(input.to_s) + @context.registers[:site].find_converter_instance( + Jekyll::Converters::SmartyPants + ).convert(input.to_s) end # Convert a Sass string into CSS output. @@ -36,9 +36,9 @@ module Jekyll # # Returns the CSS formatted String. def sassify(input) - site = @context.registers[:site] - converter = site.find_converter_instance(Jekyll::Converters::Sass) - converter.convert(input) + @context.registers[:site].find_converter_instance( + Jekyll::Converters::Sass + ).convert(input) end # Convert a Scss string into CSS output. @@ -47,9 +47,9 @@ module Jekyll # # Returns the CSS formatted String. def scssify(input) - site = @context.registers[:site] - converter = site.find_converter_instance(Jekyll::Converters::Scss) - converter.convert(input) + @context.registers[:site].find_converter_instance( + Jekyll::Converters::Scss + ).convert(input) end # Slugify a filename or title. diff --git a/lib/jekyll/site.rb b/lib/jekyll/site.rb index e74251af..25257a64 100644 --- a/lib/jekyll/site.rb +++ b/lib/jekyll/site.rb @@ -277,10 +277,12 @@ module Jekyll # Get the implementation class for the given Converter. # Returns the Converter instance implementing the given Converter. # klass - The Class of the Converter to fetch. - def find_converter_instance(klass) - converters.find { |klass_| klass_.instance_of?(klass) } || \ - raise("No Converters found for #{klass}") + @find_converter_instance ||= {} + @find_converter_instance[klass] ||= begin + converters.find { |converter| converter.instance_of?(klass) } || \ + raise("No Converters found for #{klass}") + end end # klass - class or module containing the subclasses.