# Title: jsFiddle tag for Jekyll # Author: Brian Arnold (@brianarn) # Description: # Given a jsFiddle shortcode, outputs the jsFiddle iframe code. # Using 'default' will preserve defaults as specified by jsFiddle. # # Syntax: {% jsfiddle shorttag [tabs] [skin] [height] [width] %} # # Examples: # # Input: {% jsfiddle ccWP7 %} # Output: # # Input: {% jsfiddle ccWP7 js,html,result %} # Output: # module Jekyll class JsFiddle < Liquid::Tag def initialize(tag_name, markup, tokens) if /(?\w+)(?:\s+(?[\w,]+))?(?:\s+(?\w+))?(?:\s+(?\w+))?(?:\s+(?\w+))?/ =~ markup @fiddle = fiddle @sequence = (sequence unless sequence == 'default') || 'js,resources,html,css,result' @skin = (skin unless skin == 'default') || 'light' @width = width || '100%' @height = height || '300px' end end def render(context) if @fiddle "" else "Error processing input, expected syntax: {% jsfiddle shorttag [tabs] [skin] [height] [width] %}" end end end end Liquid::Template.register_tag('jsfiddle', Jekyll::JsFiddle)