mirror of
https://github.com/bitwarden/help
synced 2025-12-06 00:03:30 +00:00
update imagine plugin to support captions
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user