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

Version Path
jekyll-2.0.2 lib/jekyll/tags/gist.rb
jekyll-2.0.1 lib/jekyll/tags/gist.rb
jekyll-2.0.0 lib/jekyll/tags/gist.rb
jekyll-2.0.0.rc1 lib/jekyll/tags/gist.rb
jekyll-2.0.0.alpha.3 lib/jekyll/tags/gist.rb
jekyll-1.5.1 lib/jekyll/tags/gist.rb
jekyll-2.0.0.alpha.2 lib/jekyll/tags/gist.rb
jekyll-1.5.0 lib/jekyll/tags/gist.rb
jekyll-2.0.0.alpha.1 lib/jekyll/tags/gist.rb
jekyll-1.4.3 lib/jekyll/tags/gist.rb
jekyll-1.4.2 lib/jekyll/tags/gist.rb
jekyll-1.4.1 lib/jekyll/tags/gist.rb
jekyll-1.4.0 lib/jekyll/tags/gist.rb
jekyll-1.3.1 lib/jekyll/tags/gist.rb
jekyll-1.3.0 lib/jekyll/tags/gist.rb
jekyll-1.3.0.rc lib/jekyll/tags/gist.rb
monad-0.0.3 lib/jekyll/tags/gist.rb