1
0
mirror of https://github.com/kremalicious/blog.git synced 2024-11-25 19:34:48 +01:00

picture_tag plugin update

This commit is contained in:
Matthias Kretschmann 2014-03-07 19:14:27 +01:00
parent 54583faa1b
commit 899a58458f

View File

@ -99,6 +99,8 @@ module Jekyll
# Store keys in an array for ordering the instance sources
source_keys = instance.keys
# used to escape markdown parsing rendering below
markdown_escape = "\ "
# Raise some exceptions before we start expensive processing
raise "Picture Tag can't find the \"#{markup[:preset]}\" preset. Check picture: presets in _config.yml for a list of presets." unless preset
@ -151,33 +153,34 @@ module Jekyll
# Reference: https://github.com/scottjehl/picturefill/issues/79
source_keys.reverse.each { |source|
media = " data-media=\"#{instance[source]['media']}\"" unless source == 'source_default'
source_tags += "<span data-src=\"#{instance[source][:generated_src]}\"#{media}></span>\n"
source_tags += "#{markdown_escape * 4}<span data-src=\"#{instance[source][:generated_src]}\"#{media}></span>\n"
}
# Note: we can't indent html output because markdown parsers will turn 4 spaces into code blocks
# Note: Added backslash+space escapes to bypass markdown parsing of indented code below -WD
picture_tag = "<span #{html_attr_string}>\n"\
"#{source_tags}"\
"<noscript>\n"\
"<img src=\"#{instance['source_default'][:generated_src]}\" alt=\"#{html_attr['data-alt']}\">\n"\
"</noscript>\n"\
"</span>\n"
"#{markdown_escape * 4}<noscript>\n"\
"#{markdown_escape * 6}<img src=\"#{instance['source_default'][:generated_src]}\" alt=\"#{html_attr['data-alt']}\">\n"\
"#{markdown_escape * 4}</noscript>\n"\
"#{markdown_escape * 2}</span>\n"
elsif settings['markup'] == 'picture'
source_tags = ''
source_keys.each { |source|
if source == 'source_default'
source_tags += "<img src=\"#{instance[source][:generated_src]}\" alt=\"#{html_attr['alt']}\">\n"
source_tags += "#{markdown_escape * 4}<img src=\"#{instance[source][:generated_src]}\" alt=\"#{html_attr['alt']}\">\n"
else
source_tags += "<source src=\"#{instance[source][:generated_src]}\" media=\"#{instance[source]['media']}\">\n"
source_tags += "#{markdown_escape * 4}<source src=\"#{instance[source][:generated_src]}\" media=\"#{instance[source]['media']}\">\n"
end
}
# Note: we can't indent html output because markdown parsers will turn 4 spaces into code blocks
picture_tag = "<picture #{html_attr_string}>\n"\
"#{source_tags}"\
"<p>#{html_attr['alt']}</p>\n"\
"</picture>"
"#{markdown_escape * 4}<p>#{html_attr['alt']}</p>\n"\
"#{markdown_escape * 2}</picture>"
end
# Return the markup!
@ -251,4 +254,4 @@ module Jekyll
end
end
Liquid::Template.register_tag('picture', Jekyll::Picture)
Liquid::Template.register_tag('picture', Jekyll::Picture)