jekyll-multiple-languages 1.0.11 → 2.0.1
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 +5 -13
- data/lib/jekyll-multiple-languages.rb +6 -276
- data/lib/jekyll-multiple-languages/document.rb +51 -0
- data/lib/jekyll-multiple-languages/multilang.rb +70 -0
- data/lib/jekyll-multiple-languages/page.rb +40 -0
- data/lib/jekyll-multiple-languages/pagination.rb +2 -1
- data/lib/jekyll-multiple-languages/site.rb +99 -0
- data/lib/jekyll-multiple-languages/tags.rb +2 -1
- metadata +9 -5
checksums.yaml
CHANGED
@@ -1,15 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
|
5
|
-
data.tar.gz: !binary |-
|
6
|
-
ZWNhMzk3MDZlN2Y0ZDk2NjE1ZjM3OWJkMmRlYzQyYWJiZTEzYWI3MA==
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 37014369977d7cae2b4ab030f140d34a36283703
|
4
|
+
data.tar.gz: d00fd1b80de40d57bd154b30631a17e8e2081b4b
|
7
5
|
SHA512:
|
8
|
-
metadata.gz:
|
9
|
-
|
10
|
-
MmRlMTUxZDY1NjQ4NTg3NTcwYTM1YzQ5YzgxNThlMDA0MjdiYzdkNDI5ZTI2
|
11
|
-
NWJmZTk1MDk5MzczMjIwY2Y1YmM4NTJhYzY2M2JkZjBhMzFmZTA=
|
12
|
-
data.tar.gz: !binary |-
|
13
|
-
ZDZiNDFlYTFjMTI5NGUyYTRkZDIwYzcxMjIxMTc4OGI3ZjRiYTFhNWQ4OTdm
|
14
|
-
MmI3NWZkYmRmY2I1YmZlNjgwYTFiMjBmNGRjMWFlNjBhOWFlOTc1NDRkMTI3
|
15
|
-
YjVhN2U4ZWM1MDk0ZTYzYTg5ZjU3YmNjNmMzYjAwZjhmZjNlZjU=
|
6
|
+
metadata.gz: 45743cc76873f8e3da56d5ecf46a9c5df647ef38d957a11f3865797ad3a7109373f7e10a7b315736efa74f801dfa89995f8960b402726c58726e8d32567a52f4
|
7
|
+
data.tar.gz: 296856ed323cecf234dc77598c1fb96c93578c0a2df5e078ad878485fe8b7b0b79af7a171a04f0c23742f3b7d96bb6583be97b96c63bf92a86a91de7d73f7685
|
@@ -1,278 +1,8 @@
|
|
1
|
-
require "jekyll-multiple-languages/
|
1
|
+
require "jekyll-multiple-languages/multilang"
|
2
|
+
require "jekyll-multiple-languages/site"
|
3
|
+
require "jekyll-multiple-languages/document"
|
4
|
+
require "jekyll-multiple-languages/page"
|
5
|
+
|
2
6
|
require "jekyll-multiple-languages/pagination"
|
7
|
+
require "jekyll-multiple-languages/pager"
|
3
8
|
require "jekyll-multiple-languages/tags"
|
4
|
-
module Jekyll
|
5
|
-
module MultiLang
|
6
|
-
attr_accessor :language, :name_no_language, :is_default_language, :url_no_language, :dir_source, :next_in_language, :previous_in_language
|
7
|
-
|
8
|
-
# rewirte initialize
|
9
|
-
def process_initialize(site, base, dir, name)
|
10
|
-
name_no_language = name.dup
|
11
|
-
|
12
|
-
lang = ''
|
13
|
-
# xxx.$lang.md / $lang.xxx.md
|
14
|
-
site.config['languages'].each{ |item|
|
15
|
-
lang_str = item + '.'
|
16
|
-
if name_no_language.include? lang_str
|
17
|
-
lang = item
|
18
|
-
name_no_language.slice! lang_str
|
19
|
-
end
|
20
|
-
}
|
21
|
-
|
22
|
-
!lang || lang == '' && lang = site.config['language_default']
|
23
|
-
@language = lang
|
24
|
-
@dir_source = dir
|
25
|
-
@name_no_language = name_no_language
|
26
|
-
@is_default_language = lang == site.config['language_default']
|
27
|
-
|
28
|
-
initialize_org(site, base, dir, name)
|
29
|
-
end
|
30
|
-
|
31
|
-
def url_no_language
|
32
|
-
if !@url_no_language
|
33
|
-
process_url
|
34
|
-
end
|
35
|
-
@url_no_language
|
36
|
-
end
|
37
|
-
|
38
|
-
def next_in_language
|
39
|
-
posts = site.posts_by_language[@language].values
|
40
|
-
pos = posts.index { |post| post.equal?(self) }
|
41
|
-
if pos && pos < posts.length - 1
|
42
|
-
posts[pos + 1]
|
43
|
-
else
|
44
|
-
nil
|
45
|
-
end
|
46
|
-
end
|
47
|
-
|
48
|
-
def previous_in_language
|
49
|
-
posts = site.posts_by_language[@language].values
|
50
|
-
pos = posts.index { |post| post.equal?(self) }
|
51
|
-
if pos && pos > 0
|
52
|
-
posts[pos - 1]
|
53
|
-
else
|
54
|
-
nil
|
55
|
-
end
|
56
|
-
end
|
57
|
-
|
58
|
-
# rewirte url
|
59
|
-
def process_url
|
60
|
-
if !@url
|
61
|
-
url = self.url_org
|
62
|
-
@url_no_language = url
|
63
|
-
lang_prefix = '/' + self.language
|
64
|
-
if !self.is_default_language && (url && url.index(lang_prefix) != 0)
|
65
|
-
url = lang_prefix + url
|
66
|
-
end
|
67
|
-
@url = url
|
68
|
-
end
|
69
|
-
@url
|
70
|
-
end
|
71
|
-
|
72
|
-
# rewirte to_liquid
|
73
|
-
def process_to_liquid(attrs = nil)
|
74
|
-
data_for_liquid = self.to_liquid_org(attrs)
|
75
|
-
attrs_for_lang = self.language_attributes_for_liquid || []
|
76
|
-
attrs_for_lang.concat(%w[language is_default_language url_no_language previous_in_language next_in_language])
|
77
|
-
further_data = Hash[attrs_for_lang.map { |attribute|
|
78
|
-
[attribute, send(attribute)]
|
79
|
-
}]
|
80
|
-
data_for_liquid = Utils.deep_merge_hashes(data_for_liquid, further_data)
|
81
|
-
end
|
82
|
-
end
|
83
|
-
|
84
|
-
# Rewrite Jekyll.site
|
85
|
-
#
|
86
|
-
class Site
|
87
|
-
attr_accessor :language_default, :languages, :posts_by_language, :pages_by_language, :fill_default_content
|
88
|
-
alias :process_org :process
|
89
|
-
def process
|
90
|
-
self.begin_inject
|
91
|
-
process_org
|
92
|
-
rescue Exception => e
|
93
|
-
print e.message, "\n"
|
94
|
-
print e.backtrace.join("\n")
|
95
|
-
end
|
96
|
-
|
97
|
-
alias :read_org :read
|
98
|
-
def read
|
99
|
-
read_org
|
100
|
-
group_posts_and_pages
|
101
|
-
end
|
102
|
-
|
103
|
-
# Group the post by the language
|
104
|
-
#
|
105
|
-
def group_posts_and_pages
|
106
|
-
lang_default = self.language_default
|
107
|
-
langs_remain = self.languages.dup
|
108
|
-
langs_remain.delete(lang_default)
|
109
|
-
|
110
|
-
@posts_by_language = {}
|
111
|
-
@pages_by_language = {}
|
112
|
-
|
113
|
-
self.languages.dup.each { |lang|
|
114
|
-
@posts_by_language[lang] ||= {}
|
115
|
-
@pages_by_language[lang] ||= {}
|
116
|
-
}
|
117
|
-
|
118
|
-
self.posts.each {|post|
|
119
|
-
@posts_by_language[post.language][post.url_no_language] = post
|
120
|
-
}
|
121
|
-
self.pages.each {|page|
|
122
|
-
@pages_by_language[page.language][page.url_no_language] = page
|
123
|
-
}
|
124
|
-
|
125
|
-
if (@fill_default_content)
|
126
|
-
self.fill_default_content(@posts, @posts_by_language, lang_default, langs_remain, Post)
|
127
|
-
self.fill_default_content(@pages, @pages_by_language, lang_default, langs_remain, Page)
|
128
|
-
end
|
129
|
-
end
|
130
|
-
|
131
|
-
def fill_default_content(contents, grouped_contents, default, targets, kclass)
|
132
|
-
grouped_contents[default].select{|k,v| !v.data['no_fill_default_content']}.each{ |k, content|
|
133
|
-
targets.each{|lang|
|
134
|
-
if !grouped_contents[lang][k]
|
135
|
-
c = kclass.new(self, @source, content.dir_source, content.name)
|
136
|
-
c.language = lang
|
137
|
-
c.is_default_language = false
|
138
|
-
grouped_contents[lang][k] = c
|
139
|
-
contents << c
|
140
|
-
end
|
141
|
-
}
|
142
|
-
}
|
143
|
-
end
|
144
|
-
|
145
|
-
# Only when site is initialized, this plugin will be loaded
|
146
|
-
def begin_inject
|
147
|
-
self.update_config(self.config)
|
148
|
-
end
|
149
|
-
|
150
|
-
# Public: Update site config, process languages and language_default options.
|
151
|
-
#
|
152
|
-
def update_config(config)
|
153
|
-
!config['languages'] && config['languages'] = []
|
154
|
-
!config['language_default'] && config['language_default'] = config['languages'].first;
|
155
|
-
!config['i18ndir'] && config['i18ndir'] = "_i18n";
|
156
|
-
|
157
|
-
%w[languages language_default fill_default_content].each do |opt|
|
158
|
-
self.send("#{opt}=", config[opt])
|
159
|
-
end
|
160
|
-
end
|
161
|
-
|
162
|
-
alias :site_payload_org :site_payload
|
163
|
-
def site_payload
|
164
|
-
original = site_payload_org
|
165
|
-
payload = original['site']
|
166
|
-
payload = payload.merge({
|
167
|
-
'posts_by_language' => self.posts_by_language,
|
168
|
-
'pages_by_language' => self.pages_by_language
|
169
|
-
})
|
170
|
-
original['site'] = payload
|
171
|
-
original
|
172
|
-
end
|
173
|
-
|
174
|
-
end
|
175
|
-
|
176
|
-
class Page
|
177
|
-
|
178
|
-
include MultiLang
|
179
|
-
|
180
|
-
LANGUAGE_ATTRIBUTES_FOR_LIQUID = %w[]
|
181
|
-
|
182
|
-
alias :initialize_org :initialize
|
183
|
-
def initialize(site, base, dir, name)
|
184
|
-
process_initialize(site, base, dir, name)
|
185
|
-
end
|
186
|
-
|
187
|
-
alias :url_org :url
|
188
|
-
def url
|
189
|
-
if @language
|
190
|
-
process_url
|
191
|
-
else
|
192
|
-
url_org
|
193
|
-
end
|
194
|
-
end
|
195
|
-
|
196
|
-
alias :process_org :process
|
197
|
-
def process(name)
|
198
|
-
if @language
|
199
|
-
process_org(@name_no_language)
|
200
|
-
else
|
201
|
-
process_org(name)
|
202
|
-
end
|
203
|
-
end
|
204
|
-
|
205
|
-
alias :to_liquid_org :to_liquid
|
206
|
-
def to_liquid(attrs = nil)
|
207
|
-
if @language
|
208
|
-
process_to_liquid(attrs)
|
209
|
-
else
|
210
|
-
to_liquid_org(attrs)
|
211
|
-
end
|
212
|
-
end
|
213
|
-
|
214
|
-
def language_attributes_for_liquid
|
215
|
-
LANGUAGE_ATTRIBUTES_FOR_LIQUID
|
216
|
-
end
|
217
|
-
|
218
|
-
def inspect
|
219
|
-
"#<Jekyll:Page @name=#{self.name.inspect} @url=#{self.url.inspect}>"
|
220
|
-
end
|
221
|
-
|
222
|
-
end
|
223
|
-
|
224
|
-
class Post
|
225
|
-
include MultiLang
|
226
|
-
|
227
|
-
MATCHER_WITH_LANG = /^(.+\/)*(?:.+\.)*(\d+-\d+-\d+)-(.*)(\.[^.]+)$/
|
228
|
-
|
229
|
-
alias :initialize_org :initialize
|
230
|
-
def initialize(site, source, dir, name)
|
231
|
-
process_initialize(site, source, dir, name)
|
232
|
-
end
|
233
|
-
|
234
|
-
alias :url_org :url
|
235
|
-
def url
|
236
|
-
if @language
|
237
|
-
process_url
|
238
|
-
else
|
239
|
-
url_org
|
240
|
-
end
|
241
|
-
end
|
242
|
-
|
243
|
-
alias :process_org :process
|
244
|
-
def process(name)
|
245
|
-
if @language
|
246
|
-
process_org(@name_no_language)
|
247
|
-
else
|
248
|
-
process_org(name)
|
249
|
-
end
|
250
|
-
end
|
251
|
-
|
252
|
-
def inspect
|
253
|
-
"<Post: id: #{self.id} url: #{self.url} language: #{self.language}>"
|
254
|
-
end
|
255
|
-
|
256
|
-
# For match /blog/$lang.2014-02-14-the-blog-name.md
|
257
|
-
# or /blog/2014-02-14-the-blog-name.$lang.md
|
258
|
-
#
|
259
|
-
def self.valid?(name)
|
260
|
-
name =~ MATCHER_WITH_LANG
|
261
|
-
end
|
262
|
-
|
263
|
-
def language_attributes_for_liquid
|
264
|
-
|
265
|
-
end
|
266
|
-
|
267
|
-
alias :to_liquid_org :to_liquid
|
268
|
-
def to_liquid(attrs = nil)
|
269
|
-
if @language
|
270
|
-
process_to_liquid(attrs)
|
271
|
-
else
|
272
|
-
to_liquid_org(attrs)
|
273
|
-
end
|
274
|
-
end
|
275
|
-
|
276
|
-
end
|
277
|
-
|
278
|
-
end
|
@@ -0,0 +1,51 @@
|
|
1
|
+
# encoding: UTF-8
|
2
|
+
module Jekyll
|
3
|
+
class Document
|
4
|
+
include MultiLang
|
5
|
+
|
6
|
+
alias :initialize_org :initialize
|
7
|
+
def initialize(path, relations)
|
8
|
+
detect_language(relations[:site], path)
|
9
|
+
initialize_org(path, relations)
|
10
|
+
end
|
11
|
+
|
12
|
+
# remove `.$lang` from slug
|
13
|
+
alias :post_read_org :post_read
|
14
|
+
def post_read
|
15
|
+
post_read_org
|
16
|
+
if not @is_default_language and data and data['slug']
|
17
|
+
data['slug'] ['.' + @language] = ''
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
# remove `.$lang` from basename_without_ext
|
22
|
+
def basename_without_ext
|
23
|
+
if not @basename_without_ext
|
24
|
+
@basename_without_ext = File.basename(path, '.*')
|
25
|
+
if not @is_default_language
|
26
|
+
@basename_without_ext ['.' + @language] = ''
|
27
|
+
end
|
28
|
+
end
|
29
|
+
@basename_without_ext
|
30
|
+
end
|
31
|
+
|
32
|
+
# append `/$lang/ before path for non-default language document
|
33
|
+
alias :url_org :url
|
34
|
+
def url
|
35
|
+
rewrite_url(url_org)
|
36
|
+
end
|
37
|
+
|
38
|
+
def inspect
|
39
|
+
"<Post: id: #{self.id} url: #{self.url} language: #{self.language}>"
|
40
|
+
end
|
41
|
+
|
42
|
+
def language_attributes_for_liquid
|
43
|
+
end
|
44
|
+
|
45
|
+
alias :to_liquid_org :to_liquid
|
46
|
+
def to_liquid()
|
47
|
+
data = to_liquid_org
|
48
|
+
append_data_for_liquid(data)
|
49
|
+
end
|
50
|
+
end
|
51
|
+
end
|
@@ -0,0 +1,70 @@
|
|
1
|
+
# encoding: UTF-8
|
2
|
+
module Jekyll
|
3
|
+
module MultiLang
|
4
|
+
attr_accessor :language, :is_default_language, :url_no_language, :next_in_language, :previous_in_language
|
5
|
+
|
6
|
+
def detect_language(site, name)
|
7
|
+
name_no_language = name.dup
|
8
|
+
|
9
|
+
# detect language
|
10
|
+
# xxx.$lang.md / $lang.xxx.md
|
11
|
+
lang = nil
|
12
|
+
site.config['languages'].each{ |item|
|
13
|
+
lang_str = item + '.'
|
14
|
+
if name_no_language.include? lang_str
|
15
|
+
lang = item
|
16
|
+
name_no_language.slice! lang_str
|
17
|
+
end
|
18
|
+
}
|
19
|
+
|
20
|
+
lang ||= site.config['language_default']
|
21
|
+
|
22
|
+
@language = lang
|
23
|
+
@name_no_language = name_no_language
|
24
|
+
@is_default_language = lang == site.config['language_default']
|
25
|
+
end
|
26
|
+
|
27
|
+
def url_no_language
|
28
|
+
@url_no_language
|
29
|
+
end
|
30
|
+
|
31
|
+
def next_in_language
|
32
|
+
posts = site.posts_by_language[@language].values
|
33
|
+
pos = posts.index { |post| post.equal?(self) }
|
34
|
+
if pos && pos < posts.length - 1
|
35
|
+
posts[pos + 1]
|
36
|
+
else
|
37
|
+
nil
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
41
|
+
def previous_in_language
|
42
|
+
posts = site.posts_by_language[@language].values
|
43
|
+
pos = posts.index { |post| post.equal?(self) }
|
44
|
+
if pos && pos > 0
|
45
|
+
posts[pos - 1]
|
46
|
+
else
|
47
|
+
nil
|
48
|
+
end
|
49
|
+
end
|
50
|
+
|
51
|
+
# rewrite url
|
52
|
+
def rewrite_url(url)
|
53
|
+
@url_no_language = url
|
54
|
+
if not @is_default_language
|
55
|
+
url = '/' + language + url
|
56
|
+
end
|
57
|
+
url
|
58
|
+
end
|
59
|
+
|
60
|
+
def append_data_for_liquid(data_for_liquid)
|
61
|
+
attrs_for_lang = self.language_attributes_for_liquid || []
|
62
|
+
attrs_for_lang.concat(%w[language is_default_language url_no_language previous_in_language next_in_language])
|
63
|
+
further_data = Hash[attrs_for_lang.map { |attribute|
|
64
|
+
[attribute, send(attribute)]
|
65
|
+
}]
|
66
|
+
data_for_liquid = Utils.deep_merge_hashes(data_for_liquid, further_data)
|
67
|
+
end
|
68
|
+
|
69
|
+
end
|
70
|
+
end
|
@@ -0,0 +1,40 @@
|
|
1
|
+
# encoding: UTF-8
|
2
|
+
module Jekyll
|
3
|
+
class Page
|
4
|
+
include MultiLang
|
5
|
+
|
6
|
+
attr_accessor :dir_org
|
7
|
+
|
8
|
+
alias :initialize_org :initialize
|
9
|
+
def initialize(site, base, dir, name)
|
10
|
+
detect_language(site, name)
|
11
|
+
@dir_org = dir
|
12
|
+
initialize_org(site, base, dir, name)
|
13
|
+
end
|
14
|
+
|
15
|
+
# remove `.$lang` for basename
|
16
|
+
alias :process_org :process
|
17
|
+
def process(name)
|
18
|
+
@ext = File.extname(name)
|
19
|
+
@basename = name[0 .. -ext.length - 1]
|
20
|
+
if not @is_default_language
|
21
|
+
@basename ['.' + @language] = ''
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
# append `/$lang/ before path for non-default language document
|
26
|
+
alias :url_org :url
|
27
|
+
def url
|
28
|
+
rewrite_url(url_org)
|
29
|
+
end
|
30
|
+
|
31
|
+
def language_attributes_for_liquid
|
32
|
+
end
|
33
|
+
|
34
|
+
alias :to_liquid_org :to_liquid
|
35
|
+
def to_liquid()
|
36
|
+
data = to_liquid_org
|
37
|
+
append_data_for_liquid(data)
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
@@ -6,6 +6,7 @@ module Jekyll
|
|
6
6
|
# => /$lang/... /...
|
7
7
|
#
|
8
8
|
class Pagination < Generator
|
9
|
+
|
9
10
|
def generate(site)
|
10
11
|
if Pager.pagination_enabled?(site)
|
11
12
|
pages = find_template_pages(site)
|
@@ -26,7 +27,7 @@ module Jekyll
|
|
26
27
|
(1..pages).each do |num_page|
|
27
28
|
pager = Pager.new(site, the_template_page, num_page, all_posts, pages)
|
28
29
|
if num_page > 1
|
29
|
-
newpage = Page.new(site, site.source, the_template_page.
|
30
|
+
newpage = Page.new(site, site.source, the_template_page.dir_org, the_template_page.name)
|
30
31
|
newpage.pager = pager
|
31
32
|
newpage.dir = Pager.calc_paginate_path(site, the_template_page, num_page)
|
32
33
|
site.pages << newpage
|
@@ -0,0 +1,99 @@
|
|
1
|
+
# encoding: UTF-8
|
2
|
+
module Jekyll
|
3
|
+
# Rewrite Jekyll.site
|
4
|
+
#
|
5
|
+
class Site
|
6
|
+
attr_accessor :language_default, :languages, :posts_by_language, :pages_by_language, :fill_default_content
|
7
|
+
|
8
|
+
alias :process_org :process
|
9
|
+
def process
|
10
|
+
self.begin_inject
|
11
|
+
process_org
|
12
|
+
rescue Exception => e
|
13
|
+
print e.message, "\n"
|
14
|
+
print e.backtrace.join("\n")
|
15
|
+
end
|
16
|
+
|
17
|
+
alias :read_org :read
|
18
|
+
def read
|
19
|
+
read_org
|
20
|
+
group_posts_and_pages
|
21
|
+
end
|
22
|
+
|
23
|
+
# Group the post by the language
|
24
|
+
#
|
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
|
+
|
38
|
+
self.posts.docs.each {|post|
|
39
|
+
@posts_by_language[post.language][post.url_no_language] = post
|
40
|
+
}
|
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
|
+
end
|
50
|
+
|
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
|
+
}
|
62
|
+
}
|
63
|
+
end
|
64
|
+
|
65
|
+
# Only when site is initialized, this plugin will be loaded
|
66
|
+
def begin_inject
|
67
|
+
self.update_config(self.config)
|
68
|
+
end
|
69
|
+
|
70
|
+
# Update config, process languages and language_default options.
|
71
|
+
#
|
72
|
+
def update_config(config)
|
73
|
+
|
74
|
+
config['languages'] ||= []
|
75
|
+
config['language_default'] ||= config['languages'].first;
|
76
|
+
|
77
|
+
# set the default value of `i18ndir` to `_i18n`
|
78
|
+
config['i18ndir'] ||= "_i18n";
|
79
|
+
|
80
|
+
%w[languages language_default fill_default_content].each do |opt|
|
81
|
+
self.send("#{opt}=", config[opt])
|
82
|
+
end
|
83
|
+
end
|
84
|
+
|
85
|
+
# add `posts_by_language` and `pages_by_language`
|
86
|
+
alias :site_payload_org :site_payload
|
87
|
+
def site_payload
|
88
|
+
original = site_payload_org
|
89
|
+
payload = original['site']
|
90
|
+
payload = payload.merge({
|
91
|
+
'posts_by_language' => self.posts_by_language,
|
92
|
+
'pages_by_language' => self.pages_by_language
|
93
|
+
})
|
94
|
+
original['site'] = payload
|
95
|
+
original
|
96
|
+
end
|
97
|
+
|
98
|
+
end
|
99
|
+
end
|
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:
|
4
|
+
version: 2.0.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- srain
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2015-
|
12
|
+
date: 2015-12-24 00:00:00.000000000 Z
|
13
13
|
dependencies: []
|
14
14
|
description: ''
|
15
15
|
email: srain@php.net
|
@@ -18,8 +18,12 @@ extensions: []
|
|
18
18
|
extra_rdoc_files: []
|
19
19
|
files:
|
20
20
|
- lib/jekyll-multiple-languages.rb
|
21
|
+
- lib/jekyll-multiple-languages/document.rb
|
22
|
+
- lib/jekyll-multiple-languages/multilang.rb
|
23
|
+
- lib/jekyll-multiple-languages/page.rb
|
21
24
|
- lib/jekyll-multiple-languages/pager.rb
|
22
25
|
- lib/jekyll-multiple-languages/pagination.rb
|
26
|
+
- lib/jekyll-multiple-languages/site.rb
|
23
27
|
- lib/jekyll-multiple-languages/tags.rb
|
24
28
|
homepage: http://jekyll-langs.liaohuqiu.net/
|
25
29
|
licenses:
|
@@ -31,17 +35,17 @@ require_paths:
|
|
31
35
|
- lib
|
32
36
|
required_ruby_version: !ruby/object:Gem::Requirement
|
33
37
|
requirements:
|
34
|
-
- -
|
38
|
+
- - ">="
|
35
39
|
- !ruby/object:Gem::Version
|
36
40
|
version: '0'
|
37
41
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
38
42
|
requirements:
|
39
|
-
- -
|
43
|
+
- - ">="
|
40
44
|
- !ruby/object:Gem::Version
|
41
45
|
version: '0'
|
42
46
|
requirements: []
|
43
47
|
rubyforge_project:
|
44
|
-
rubygems_version: 2.4.
|
48
|
+
rubygems_version: 2.4.8
|
45
49
|
signing_key:
|
46
50
|
specification_version: 4
|
47
51
|
summary: Another Multiple Languages Plugin for Jekyll!
|