jekyll-multiple-languages 2.0.1 → 2.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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