Class: Jekyll::Tags::LanguageTag

Inherits:
Liquid::Tag
  • Object
show all
Defined in:
lib/jekyll/tags/language.rb

Instance Method Summary collapse

Constructor Details

#initialize(tag_name, markup, tokens) ⇒ LanguageTag

Returns a new instance of LanguageTag.



4
5
6
7
8
# File 'lib/jekyll/tags/language.rb', line 4

def initialize(tag_name, markup, tokens)
  super
  @params = markup.gsub(/\s+/m, ' ').strip.split(" ")
  @lkey = @params.shift
end

Instance Method Details

#get_language_data(context, language) ⇒ Object



10
11
12
13
14
15
16
17
# File 'lib/jekyll/tags/language.rb', line 10

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

#get_language_string(context, key) ⇒ Object



19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
# File 'lib/jekyll/tags/language.rb', line 19

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

#render(context) ⇒ Object



38
39
40
41
42
# File 'lib/jekyll/tags/language.rb', line 38

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