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 +4 -4
- data/lib/jekyll-multiple-languages/multilang.rb +10 -2
- data/lib/jekyll-multiple-languages/site.rb +37 -37
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: dceec3b9f537809ad9a13c1b9365f2e093b9c3a4
|
4
|
+
data.tar.gz: e8ae9840c963a672de0336850bc049bcd1c09c3a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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
|
-
|
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!
|
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
|
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
|
-
|
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
|
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
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
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
|
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' =>
|
92
|
-
'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
|