Store and retrieve converter instances for Jekyll::Filters via a hash (#6856)
Merge pull request 6856
This commit is contained in:
parent
bfdd26fdcc
commit
29dc190fcb
|
@ -14,9 +14,9 @@ module Jekyll
|
||||||
#
|
#
|
||||||
# Returns the HTML formatted String.
|
# Returns the HTML formatted String.
|
||||||
def markdownify(input)
|
def markdownify(input)
|
||||||
site = @context.registers[:site]
|
@context.registers[:site].find_converter_instance(
|
||||||
converter = site.find_converter_instance(Jekyll::Converters::Markdown)
|
Jekyll::Converters::Markdown
|
||||||
converter.convert(input.to_s)
|
).convert(input.to_s)
|
||||||
end
|
end
|
||||||
|
|
||||||
# Convert quotes into smart quotes.
|
# Convert quotes into smart quotes.
|
||||||
|
@ -25,9 +25,9 @@ module Jekyll
|
||||||
#
|
#
|
||||||
# Returns the smart-quotified String.
|
# Returns the smart-quotified String.
|
||||||
def smartify(input)
|
def smartify(input)
|
||||||
site = @context.registers[:site]
|
@context.registers[:site].find_converter_instance(
|
||||||
converter = site.find_converter_instance(Jekyll::Converters::SmartyPants)
|
Jekyll::Converters::SmartyPants
|
||||||
converter.convert(input.to_s)
|
).convert(input.to_s)
|
||||||
end
|
end
|
||||||
|
|
||||||
# Convert a Sass string into CSS output.
|
# Convert a Sass string into CSS output.
|
||||||
|
@ -36,9 +36,9 @@ module Jekyll
|
||||||
#
|
#
|
||||||
# Returns the CSS formatted String.
|
# Returns the CSS formatted String.
|
||||||
def sassify(input)
|
def sassify(input)
|
||||||
site = @context.registers[:site]
|
@context.registers[:site].find_converter_instance(
|
||||||
converter = site.find_converter_instance(Jekyll::Converters::Sass)
|
Jekyll::Converters::Sass
|
||||||
converter.convert(input)
|
).convert(input)
|
||||||
end
|
end
|
||||||
|
|
||||||
# Convert a Scss string into CSS output.
|
# Convert a Scss string into CSS output.
|
||||||
|
@ -47,9 +47,9 @@ module Jekyll
|
||||||
#
|
#
|
||||||
# Returns the CSS formatted String.
|
# Returns the CSS formatted String.
|
||||||
def scssify(input)
|
def scssify(input)
|
||||||
site = @context.registers[:site]
|
@context.registers[:site].find_converter_instance(
|
||||||
converter = site.find_converter_instance(Jekyll::Converters::Scss)
|
Jekyll::Converters::Scss
|
||||||
converter.convert(input)
|
).convert(input)
|
||||||
end
|
end
|
||||||
|
|
||||||
# Slugify a filename or title.
|
# Slugify a filename or title.
|
||||||
|
|
|
@ -277,10 +277,12 @@ module Jekyll
|
||||||
# Get the implementation class for the given Converter.
|
# Get the implementation class for the given Converter.
|
||||||
# Returns the Converter instance implementing the given Converter.
|
# Returns the Converter instance implementing the given Converter.
|
||||||
# klass - The Class of the Converter to fetch.
|
# klass - The Class of the Converter to fetch.
|
||||||
|
|
||||||
def find_converter_instance(klass)
|
def find_converter_instance(klass)
|
||||||
converters.find { |klass_| klass_.instance_of?(klass) } || \
|
@find_converter_instance ||= {}
|
||||||
raise("No Converters found for #{klass}")
|
@find_converter_instance[klass] ||= begin
|
||||||
|
converters.find { |converter| converter.instance_of?(klass) } || \
|
||||||
|
raise("No Converters found for #{klass}")
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
# klass - class or module containing the subclasses.
|
# klass - class or module containing the subclasses.
|
||||||
|
|
Loading…
Reference in New Issue