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 +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
|