jekyll-multiple-languages 2.0.1 → 2.0.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 37014369977d7cae2b4ab030f140d34a36283703
4
- data.tar.gz: d00fd1b80de40d57bd154b30631a17e8e2081b4b
3
+ metadata.gz: dceec3b9f537809ad9a13c1b9365f2e093b9c3a4
4
+ data.tar.gz: e8ae9840c963a672de0336850bc049bcd1c09c3a
5
5
  SHA512:
6
- metadata.gz: 45743cc76873f8e3da56d5ecf46a9c5df647ef38d957a11f3865797ad3a7109373f7e10a7b315736efa74f801dfa89995f8960b402726c58726e8d32567a52f4
7
- data.tar.gz: 296856ed323cecf234dc77598c1fb96c93578c0a2df5e078ad878485fe8b7b0b79af7a171a04f0c23742f3b7d96bb6583be97b96c63bf92a86a91de7d73f7685
6
+ metadata.gz: 0eff793caeb0b12ce11324a0434e5de19c3d12b921a7e6e25ba46242e036c765a029526c0d88d96bbee628247a56e23e4f6c0ea7312f49901d09384086f7a6ea
7
+ data.tar.gz: 38e3ec0a1b021513ce2cbfbc9a3a07535b7dc92314e94e9ba1ef4a3e6fd2338ff5e76949f7f2580b499e2804185c38133e43b3d7f7c0084ee4741820be912e2a
@@ -10,10 +10,15 @@ module Jekyll
10
10
  # xxx.$lang.md / $lang.xxx.md
11
11
  lang = nil
12
12
  site.config['languages'].each{ |item|
13
- lang_str = item + '.'
13
+
14
+ if name.start_with? (item + '.') or name.include? ('/' + item + '.')
15
+ raise RuntimeError, "This kind of name is not supported any longer: '#{name}', which starts with '$lang'"
16
+ end
17
+
18
+ lang_str = '.' + item + '.'
14
19
  if name_no_language.include? lang_str
15
20
  lang = item
16
- name_no_language.slice! lang_str
21
+ name_no_language.slice! lang + '.'
17
22
  end
18
23
  }
19
24
 
@@ -25,6 +30,9 @@ module Jekyll
25
30
  end
26
31
 
27
32
  def url_no_language
33
+ if not @url_no_language
34
+ url
35
+ end
28
36
  @url_no_language
29
37
  end
30
38
 
@@ -3,7 +3,7 @@ module Jekyll
3
3
  # Rewrite Jekyll.site
4
4
  #
5
5
  class Site
6
- attr_accessor :language_default, :languages, :posts_by_language, :pages_by_language, :fill_default_content
6
+ attr_accessor :language_default, :languages, :posts_by_language, :pages_by_language
7
7
 
8
8
  alias :process_org :process
9
9
  def process
@@ -17,54 +17,45 @@ module Jekyll
17
17
  alias :read_org :read
18
18
  def read
19
19
  read_org
20
- group_posts_and_pages
20
+ end
21
+
22
+ alias :generate_org :generate
23
+ def generate
24
+ group_posts
25
+ generate_org
26
+ group_pages
21
27
  end
22
28
 
23
29
  # Group the post by the language
24
30
  #
25
- def group_posts_and_pages
26
- lang_default = self.language_default
27
- langs_remain = self.languages.dup
28
- langs_remain.delete(lang_default)
29
-
30
- @posts_by_language = {}
31
- @pages_by_language = {}
32
-
33
- self.languages.dup.each { |lang|
34
- @posts_by_language[lang] ||= {}
35
- @pages_by_language[lang] ||= {}
36
- }
37
-
31
+ def group_posts
38
32
  self.posts.docs.each {|post|
39
33
  @posts_by_language[post.language][post.url_no_language] = post
40
34
  }
41
- self.pages.each {|page|
42
- # @pages_by_language[page.language][page.url_no_language] = page
43
- }
44
-
45
- if (@fill_default_content)
46
- self.fill_default_content(@posts, @posts_by_language, lang_default, langs_remain, Post)
47
- self.fill_default_content(@pages, @pages_by_language, lang_default, langs_remain, Page)
48
- end
49
35
  end
50
36
 
51
- def fill_default_content(contents, grouped_contents, default, targets, kclass)
52
- grouped_contents[default].select{|k,v| !v.data['no_fill_default_content']}.each{ |k, content|
53
- targets.each{|lang|
54
- if !grouped_contents[lang][k]
55
- c = kclass.new(self, @source, content.dir_source, content.name)
56
- c.language = lang
57
- c.is_default_language = false
58
- grouped_contents[lang][k] = c
59
- contents << c
60
- end
61
- }
37
+ # Group the pages by the language
38
+ #
39
+ def group_pages
40
+ self.pages.each {|page|
41
+ @pages_by_language[page.language][page.url_no_language] = page
62
42
  }
63
43
  end
64
44
 
65
45
  # Only when site is initialized, this plugin will be loaded
66
46
  def begin_inject
47
+
67
48
  self.update_config(self.config)
49
+
50
+ # initialize
51
+ @posts_by_language = {}
52
+ @pages_by_language = {}
53
+
54
+ self.languages.dup.each { |lang|
55
+ @posts_by_language[lang] ||= {}
56
+ @pages_by_language[lang] ||= {}
57
+ }
58
+
68
59
  end
69
60
 
70
61
  # Update config, process languages and language_default options.
@@ -77,7 +68,7 @@ module Jekyll
77
68
  # set the default value of `i18ndir` to `_i18n`
78
69
  config['i18ndir'] ||= "_i18n";
79
70
 
80
- %w[languages language_default fill_default_content].each do |opt|
71
+ %w[languages language_default].each do |opt|
81
72
  self.send("#{opt}=", config[opt])
82
73
  end
83
74
  end
@@ -85,11 +76,20 @@ module Jekyll
85
76
  # add `posts_by_language` and `pages_by_language`
86
77
  alias :site_payload_org :site_payload
87
78
  def site_payload
79
+
88
80
  original = site_payload_org
81
+
82
+ posts_by_language = {}
83
+ pages_by_language = {}
84
+ self.languages.dup.each { |lang|
85
+ posts_by_language[lang] = @posts_by_language[lang].values.sort { |a, b| b <=> a }
86
+ pages_by_language[lang] = @pages_by_language[lang].values
87
+ }
88
+
89
89
  payload = original['site']
90
90
  payload = payload.merge({
91
- 'posts_by_language' => self.posts_by_language,
92
- 'pages_by_language' => self.pages_by_language
91
+ 'posts_by_language' => posts_by_language,
92
+ 'pages_by_language' => pages_by_language
93
93
  })
94
94
  original['site'] = payload
95
95
  original
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: jekyll-multiple-languages
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.1
4
+ version: 2.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - srain