class Jekyll::SrcsetTag::SrcsetSourceTag
Public Class Methods
new(tag_name, markup, tokens)
click to toggle source
Calls superclass method
# File lib/jekyll/srcset_tag/srcset_source_tag.rb, line 7 def initialize(tag_name, markup, tokens) @markup = markup super end
Public Instance Methods
render(context)
click to toggle source
# File lib/jekyll/srcset_tag/srcset_source_tag.rb, line 12 def render(context) render_markup = Liquid::Template.parse(@markup) .render(context) .gsub(/\\\{\\\{|\\\{\\%/, '\{\{' => '{{', '\{\%' => '{%') hash = markup_to_hash(render_markup) markup = hash.map { |(key, value)| "#{key}=\"#{CGI.escape_html(value)}\""} '<source ' + markup.join(' ') + ' />' end
Protected Instance Methods
markup_regex()
click to toggle source
# File lib/jekyll/srcset_tag/srcset_source_tag.rb, line 31 def markup_regex %r{ \w+ \s* \: \s* (?: "(?:[^"\\]|\\.)*" | '(?:[^'\\]|\\.)*' | [^\s]+ ) }x end
markup_to_hash(markup)
click to toggle source
# File lib/jekyll/srcset_tag/srcset_source_tag.rb, line 23 def markup_to_hash(markup) matches = markup.scan(markup_regex) matches.each_with_object({}) do |match, memo| key, value = match.split(':', 2) memo[key.strip] = value.gsub(/\A("|')|("|')\Z/, '') end end