Sha256: bad45a2d8f27539244ab8ca8d9c7cfb68eef4c458b958378d1192dbdf6823da2

Contents?: true

Size: 715 Bytes

Versions: 2

Compression:

Stored size: 715 Bytes

Contents

module Jekyll
  class EvalAssignTag < Liquid::Tag
    Syntax = /([^\s]*)\s*=\s*(.*)/

    def initialize(tag_name, markup, tokens)
      if markup =~ Syntax
        @to = $1.to_s.chomp
        @from = $2
      else
        raise SyntaxError.new("SyntaxError in 'evalassign' - Valid syntax: evalassign [var] = [ruby expression]")
      end
      super
    end

    def render(context)
      post = context.scopes[0]["post"] if context.scopes[0]
      site = context.scopes[1]["site"] if context.scopes[1]
      page = context.scopes[1]["page"] if context.scopes[1]
      context.scopes.last[@to.to_s.chomp] = eval(@from)
      ""
    end
  end
end

Liquid::Template.register_tag("evalassign", Jekyll::EvalAssignTag)

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
tkmr-jekyll-0.5.1 lib/jekyll/tags/eval_assign.rb
tkmr-jekyll-0.5.2 lib/jekyll/tags/eval_assign.rb