Browse Source

update imagine plugin to support captions

pull/92/head
Kyle Spearrin 6 years ago
parent
commit
6376e65fb7
  1. 48
      _plugins/image.rb

48
_plugins/image.rb

@ -2,11 +2,49 @@ @@ -2,11 +2,49 @@
module Tags
class ImageTag < Liquid::Tag
def render(context)
src = @markup.strip
baseurl = context.registers[:site].config['baseurl']
"<a href=\"#{baseurl}/images/#{src}\" target=\"_blank\" rel=\"lightbox\">
<img class=\"img-responsive img-thumbnail img-tag\" src=\"#{baseurl}/images/#{src}\" />
</a>"
if tag_contents = determine_arguments(@markup.strip)
src, caption = tag_contents[0], tag_contents[1]
baseurl = context.registers[:site].config['baseurl']
img_tag(src, baseurl, caption)
else
raise ArgumentError.new <<-eos
Syntax error in tag 'image' while parsing the following markup:
#{@markup}
Valid syntax:
for image: {% image icon.png %}
for image with caption: {% image icon.png This is a caption. %}
eos
end
end
private
def determine_arguments(input)
matched = input.split(" ", 2)
if matched.length == 0
false
elsif matched.length > 1
[matched[0].to_s.strip, matched[1].to_s.strip]
else
[matched[0].to_s.strip, ""]
end
end
def img_tag(src, baseurl, caption = nil)
if caption.empty?
"<a href=\"#{baseurl}/images/#{src}\" target=\"_blank\" rel=\"lightbox\">
<img class=\"img-responsive img-thumbnail img-tag\" src=\"#{baseurl}/images/#{src}\" />
</a>"
else
"<figure>
<a href=\"#{baseurl}/images/#{src}\" target=\"_blank\" rel=\"lightbox\">
<img class=\"img-responsive img-thumbnail img-tag\" src=\"#{baseurl}/images/#{src}\" alt=\"#{caption}\" />
</a>
<figcaption>#{caption}</figcaption>
</figure>"
end
end
end
end

Loading…
Cancel
Save