Sha256: 696b434d84a67dd29392b2df5fb9f4afca026bc31fa448401cf6c59b2fd06cf1
Contents?: true
Size: 1.17 KB
Versions: 17
Compression:
Stored size: 1.17 KB
Contents
# Gist Liquid Tag # # Example: # {% gist 1234567 %} # {% gist 1234567 file.rb %} module Jekyll class GistTag < Liquid::Tag def render(context) if tag_contents = determine_arguments(@markup.strip) gist_id, filename = tag_contents[0], tag_contents[1] gist_script_tag(gist_id, filename) else raise ArgumentError.new <<-eos Syntax error in tag 'gist' while parsing the following markup: #{@markup} Valid syntax: for public gists: {% gist 1234567 %} for private gists: {% gist user/1234567 %} eos end end private def determine_arguments(input) matched = if input.include?("/") input.match(/\A([a-zA-Z0-9\/\-_]+) ?(\S*)\Z/) else input.match(/\A(\d+) ?(\S*)\Z/) end [matched[1].strip, matched[2].strip] if matched && matched.length >= 3 end def gist_script_tag(gist_id, filename = nil) if filename.empty? "<script src=\"https://gist.github.com/#{gist_id}.js\"> </script>" else "<script src=\"https://gist.github.com/#{gist_id}.js?file=#{filename}\"> </script>" end end end end Liquid::Template.register_tag('gist', Jekyll::GistTag)
Version data entries
17 entries across 17 versions & 2 rubygems