Sha256: ca87ce17a5422eb03697b714cff3af63524808f6b28324e61ca1dfdae773b543

Contents?: true

Size: 1.19 KB

Versions: 3

Compression:

Stored size: 1.19 KB

Contents

module Jekyll
  module Tags
    class LanguageTag < Liquid::Tag
      def initialize(tag_name, markup, tokens)
        super
        @params = markup.gsub(/\s+/m, ' ').strip.split(" ")
        @lkey = @params.shift
      end

      def get_language_data(context, language)
        language_data = context['site']['language_data'].strip
        traverse = language_data.gsub("%%", language).split('.')

        data = context['site']
        traverse.each { |t| data = data[t] }
        data
      end

      def get_language_string(context, key)
        page_language = context['page']['language']

        if not page_language
          return ""
        end

        page_alias = context['page']['alias']

        data = get_language_data(context, page_language)
        if page_alias and data.include?(page_alias) and data[page_alias].include?(key)
          "#{data[page_alias][key]}"
        elsif data.include?(key)
          "#{data[key]}"
        else
          ""
        end
      end

      def render(context)
        str = get_language_string(context, @lkey)
        @params.each { |p| str.sub!("%%", p) }
        str
      end
    end
  end
end

Liquid::Template.register_tag('t', Jekyll::Tags::LanguageTag)

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
jekyll-language-plugin-1.0.2 lib/jekyll/tags/language.rb
jekyll-language-plugin-1.0.1 lib/jekyll-language-plugin/tags/language.rb
jekyll-language-plugin-1.0.0 lib/jekyll-language-plugin/tags/language.rb