# Lightbox tag plugin for Jekyll # Usage: {% lightbox [position] [filename] [alt/title] %} # Usage sample: {% lightbox left sample.jpg "This is the sample" %} require "mini_magick" module Jekyll class LightBox < Liquid::Tag def initialize(tag_name, markup, tokens) @image = nil @error = nil results = markup.scan(/^(?left|right|center)\s(?.+)\.(?jpg|jpeg|jpe|gif|png|bmp)\s["]?(?.+)["]?$/i) unless results then @error = "Image lightbox: Error processing input." return end return @image['file'] = results[2] + '.' + results[3] @image['thumbnail'] = results[2] + '_thumb.' + results[3] @image['position'] = results[1] @image['description'] = results[4] unless File.exist?(@image['file']) then @error = "Image lightbox: File not found." end super end def render(context) if @error then return @error end return %Q! #{@image['description']} ! end end end Liquid::Template.register_tag('lightbox', Jekyll::LightBox)