jekyll-polyglot 1.3.2 → 1.5.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +54 -24
- data/lib/jekyll/polyglot/hooks.rb +0 -1
- data/lib/jekyll/polyglot/liquid.rb +2 -1
- data/lib/jekyll/polyglot/liquid/tags/{i18n-headers.rb → i18n_headers.rb} +3 -1
- data/lib/jekyll/polyglot/liquid/tags/static_href.rb +27 -0
- data/lib/jekyll/polyglot/patches/jekyll/site.rb +78 -35
- data/lib/jekyll/polyglot/version.rb +1 -1
- metadata +9 -7
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b1df66cac375456100227a3f62c2771280b12b20523650adf5aed2b0f71537a3
|
4
|
+
data.tar.gz: dd7c651028a836017807fdeda58600e576132b950c9b4dca17dcbeb4ab7d2af3
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 12562b7c0f8ab337c4195d1b664a8cfc1e93e2f53d2571dacfffc67d58958f2c262bbc74ec9aa8dc63f670f10b2381e8b1ddec07b0fe1edb88d9d532f6c4c916
|
7
|
+
data.tar.gz: 0c5152c2d45eead027c8a0cef88b8482f87841def83d56924d6118cb7bc157a3b6bea14a5a32f18273688a18e6cc5bf54de3b5dd078ae551c8dc6478f5dcfd41
|
data/README.md
CHANGED
@@ -1,7 +1,7 @@
|
|
1
|
-
|
1
|
+
🔤 Polyglot
|
2
2
|
---
|
3
3
|
[![Gem Version](https://badge.fury.io/rb/jekyll-polyglot.svg)](https://badge.fury.io/rb/jekyll-polyglot)
|
4
|
-
[![
|
4
|
+
[![CircleCI](https://circleci.com/gh/untra/polyglot/tree/master.svg?style=svg)](https://circleci.com/gh/untra/polyglot/?branch=master)
|
5
5
|
|
6
6
|
__Polyglot__ is a fast, painless, open-source internationalization plugin for [Jekyll](http://jekyllrb.com) blogs. Polyglot is easy to setup and use with any Jekyll project, and it scales to the languages you want to support. With fallback support for missing content, automatic url relativization, and powerful SEO tools, Polyglot allows any multi-language jekyll blog to focus on content without the cruft.
|
7
7
|
|
@@ -27,14 +27,14 @@ In your `_config.yml` file, add the following preferences
|
|
27
27
|
```YAML
|
28
28
|
languages: ["en", "sv", "de", "fr"]
|
29
29
|
default_lang: "en"
|
30
|
-
exclude_from_localization: ["javascript", "images", "css", "
|
30
|
+
exclude_from_localization: ["javascript", "images", "css", "public"]
|
31
31
|
parallel_localization: true
|
32
32
|
```
|
33
33
|
These configuration preferences indicate
|
34
34
|
- what i18n languages you wish to support
|
35
35
|
- what is your default "fallback" language for your content
|
36
36
|
- what root level files/folders are excluded from localization, based
|
37
|
-
on if their paths start with any of the excluded regexp substrings
|
37
|
+
on if their paths start with any of the excluded regexp substrings. (this is different than the jekyll `exclude: [ .gitignore ]` ; you should `exclude` files and directories in your repo you dont want in your built site at all, and `exclude_from_localization` files and directories you want to see in your built site, but not in your sublanguage sites.)
|
38
38
|
- whether to run language processing in parallel or serial
|
39
39
|
|
40
40
|
The optional `lang_from_path: true` option enables getting page
|
@@ -94,8 +94,7 @@ becomes
|
|
94
94
|
```
|
95
95
|
Notice the link `<a href="/fr/menu/">...` directs to the french website.
|
96
96
|
|
97
|
-
Even if you are falling back to `default_lang` page, relative links built on the *french* site will
|
98
|
-
still link to *french* pages.
|
97
|
+
Even if you are falling back to `default_lang` page, relative links built on the *french* site will still link to *french* pages.
|
99
98
|
|
100
99
|
#### Relativized Absolute Urls
|
101
100
|
If you defined a site `url` in your `_config.yaml`, polyglot will automatically relativize absolute links pointing to your website directory:
|
@@ -112,23 +111,34 @@ becomes
|
|
112
111
|
```
|
113
112
|
|
114
113
|
#### Disabling Url Relativizing
|
115
|
-
|
116
|
-
|
117
|
-
For example, the following urls will be relativized:
|
114
|
+
_New in 1.4.0_
|
115
|
+
If you dont want a href attribute to be relativized (such as for making [a language switcher](https://github.com/untra/polyglot/blob/master/site/_includes/sidebar.html#L40)), you can use the `{% static_href %}href="..."{% endstatic_href %}` block tag.
|
118
116
|
|
119
117
|
```html
|
120
|
-
href="
|
121
|
-
href="/about"
|
118
|
+
<a {% static_href %}href="/about"{% endstatic_href %}>click this static link</a>
|
122
119
|
```
|
123
120
|
|
124
|
-
|
121
|
+
that will generate `<a href="/about">click this static link</a>` which is what you would normally use to create a url unmangled by invisible language relativization.
|
125
122
|
|
126
|
-
|
127
|
-
|
128
|
-
|
123
|
+
Combine with a [html minifier](https://github.com/digitalsparky/jekyll-minifier) for a polished and production ready website.
|
124
|
+
|
125
|
+
#### Exclusive site language generation
|
126
|
+
_New in 1.4.0_
|
127
|
+
|
128
|
+
If you want to control which languages a document can be generated for, you can specify `lang-exclusive: [ ]` frontmatter.
|
129
|
+
If you include this frontmatter in your post, it will only generate for the specified site languages.
|
130
|
+
|
131
|
+
For Example, the following frontmatter will only generate in the `en` and `fr` site language builds:
|
132
|
+
```
|
133
|
+
---
|
134
|
+
lang-exclusive: ['en', 'fr']
|
135
|
+
---
|
129
136
|
```
|
130
137
|
|
131
|
-
|
138
|
+
#### Machine-aware site building
|
139
|
+
_New in 1.5.0_
|
140
|
+
|
141
|
+
Polyglot will only start builds after it confirms there is a cpu core ready to accept the build thread. This ensures that jekll will build large sites efficiently streamlining build processes instead of overloading machines with process thrash.
|
132
142
|
|
133
143
|
#### Localized site.data
|
134
144
|
|
@@ -137,7 +147,7 @@ For instance: you might need to localize `_data/navigation.yml` that holds "navi
|
|
137
147
|
In order to localize it, just place language-specific files in `_data/:lang/...` folder, and Polyglot will bring those keys to the top level.
|
138
148
|
|
139
149
|
## How It Works
|
140
|
-
This plugin makes modifications to existing Jekyll classes and modules, namely `Jekyll::StaticFile` and `Jekyll::Site`. These changes are as lightweight and slim as possible. The biggest change is in `Jekyll::Site.process`. Polyglot overwrites this method to instead spawn a separate
|
150
|
+
This plugin makes modifications to existing Jekyll classes and modules, namely `Jekyll::StaticFile` and `Jekyll::Site`. These changes are as lightweight and slim as possible. The biggest change is in `Jekyll::Site.process`. Polyglot overwrites this method to instead spawn a separate process for each language you intend to process the site for. Each of those processes calls the original `Jekyll::Site.process` method with its language in mind, ensuring your website scales to support any number of languages, while building all of your site languages simultaneously.
|
141
151
|
|
142
152
|
`Jekyll::Site.process` is the entry point for the Jekyll build process. Take care whatever other plugins you use do not also attempt to overwrite this method. You may have problems.
|
143
153
|
|
@@ -149,6 +159,7 @@ This plugin stands out from other I18n Jekyll plugins.
|
|
149
159
|
- provides the liquid tag `{{ site.default_lang }}` to get the default_lang I18n string.
|
150
160
|
- provides the liquid tag `{{ site.active_lang }}` to get the I18n language string the website was built for. Alternative names for `active_lang` can be configured via `config.lang_vars`.
|
151
161
|
- provides the liquid tag `{{ I18n_Headers https://yourwebsite.com/ }}` to append SEO bonuses to your website.
|
162
|
+
- provides the liquid tag `{{ Unrelativized_Link href="/hello" }}` to make urls that do not get influenced by url correction regexs.
|
152
163
|
- provides `site.data` localization for efficient rich text replacement.
|
153
164
|
- a creator that will answer all of your questions and issues.
|
154
165
|
|
@@ -156,22 +167,41 @@ This plugin stands out from other I18n Jekyll plugins.
|
|
156
167
|
Jekyll-polyglot has a few spectacular [Search Engine Optimization techniques](https://untra.github.io/polyglot/seo) to ensure your Jekyll blog gets the most out of it's multilingual audience. Check them out!
|
157
168
|
|
158
169
|
### Other Websites Built with Polyglot
|
159
|
-
|
160
|
-
|
161
|
-
* [
|
170
|
+
Feel free to open a PR and list your multilingual blog here you may want to share:
|
171
|
+
|
172
|
+
* [Polyglot project website](https://polyglot.untra.io)
|
173
|
+
* [LogRhythm Corporate Website](https://logrhythm.com)
|
162
174
|
* [All Over Earth](https://allover.earth/)
|
163
175
|
* [Hanare Cafe in Toshijima, Japan](https://hanarecafe.com)
|
164
176
|
* [F-Droid](https://f-droid.org)
|
177
|
+
* [Ubuntu MATE](https://ubuntu-mate.org)
|
165
178
|
|
166
179
|
## Compatibility
|
167
|
-
Currently supports Jekyll 3.0 , and Jekyll 4.0
|
180
|
+
Currently supports Jekyll 3.0 , and Jekyll 4.0
|
168
181
|
|
169
|
-
*
|
170
|
-
* In Jekyll 4.0 , SCSS source maps will generate improperly due to how Polyglot operates. The workaround is to disable the CSS sourcemaps. Adding
|
182
|
+
* Windows users will need to disable parallel_localization on their machines by setting `parallel_localization: false` in the `_config.yml`
|
183
|
+
* In Jekyll 4.0 , SCSS source maps will generate improperly due to how Polyglot operates. The workaround is to disable the CSS sourcemaps. Adding the following to your `config.yml` will disable sourcemap generation:
|
171
184
|
```yaml
|
172
185
|
sass:
|
173
186
|
sourcemap: never
|
174
187
|
```
|
175
188
|
|
189
|
+
## Contributions
|
190
|
+
Please! I need all the support I can get! 🙏
|
191
|
+
|
192
|
+
But for real I would appreciate any contributions and support. This started as an open-source side-project and has gotten bigger than I'd ever imagine!
|
193
|
+
If you have something you'd like to contribute to jekyll-polyglot, please open a PR!
|
194
|
+
|
195
|
+
|
196
|
+
## 2.0 Roadmap
|
197
|
+
* [ ] - **site language**: portuguese `pt_BR` `pt_PT`
|
198
|
+
* [ ] - **site language**: arabic `ar`
|
199
|
+
* [ ] - **site language**: japanese `ja`
|
200
|
+
* [x] - **site language**: russian `ru`
|
201
|
+
* [ ] - **site language**: korean `ko`
|
202
|
+
* [ ] - **site language**: hebrew `he`
|
203
|
+
* [ ] - get whitelisted as an official github-pages jekyll plugin
|
204
|
+
* [x] - update CI provider
|
205
|
+
|
176
206
|
## Copyright
|
177
|
-
Copyright (c) Samuel Volin
|
207
|
+
Copyright (c) Samuel Volin 2021. License: MIT
|
@@ -15,9 +15,10 @@ module Jekyll
|
|
15
15
|
site_url = @url.empty? ? site.config['url'] : @url
|
16
16
|
i18n = "<meta http-equiv=\"Content-Language\" content=\"#{site.active_lang}\">\n"
|
17
17
|
i18n += "<link rel=\"alternate\" hreflang=\"#{site.default_lang}\" "\
|
18
|
-
"href=\"
|
18
|
+
"href=\"#{site_url}#{permalink}\"/>\n"
|
19
19
|
site.languages.each do |lang|
|
20
20
|
next if lang == site.default_lang
|
21
|
+
|
21
22
|
i18n += "<link rel=\"alternate\" hreflang=\"#{lang}\" "\
|
22
23
|
"href=\"#{site_url}/#{lang}#{permalink}\"/>\n"
|
23
24
|
end
|
@@ -29,3 +30,4 @@ module Jekyll
|
|
29
30
|
end
|
30
31
|
|
31
32
|
Liquid::Template.register_tag('I18n_Headers', Jekyll::Polyglot::Liquid::I18nHeadersTag)
|
33
|
+
Liquid::Template.register_tag('i18n_headers', Jekyll::Polyglot::Liquid::I18nHeadersTag)
|
@@ -0,0 +1,27 @@
|
|
1
|
+
module Jekyll
|
2
|
+
module Polyglot
|
3
|
+
module Liquid
|
4
|
+
class StaticHrefTag < :: Liquid::Block
|
5
|
+
def initialize(tag_name, params, tokens)
|
6
|
+
super
|
7
|
+
end
|
8
|
+
|
9
|
+
def render(context)
|
10
|
+
text = super
|
11
|
+
href_attrs = text.strip.split '='
|
12
|
+
valid = (href_attrs.length == 2 && href_attrs[0] == 'href') && href_attrs[1].start_with?('"') && href_attrs[1].end_with?('"')
|
13
|
+
unless valid
|
14
|
+
raise Liquid::SyntaxError, "static_href parameters must include match href=\"...\" attribute param, eg. href=\"http://example.com\, href=\"/about\", href=\"/\" , instead got:\n#{text}"
|
15
|
+
end
|
16
|
+
|
17
|
+
href_value = href_attrs[1]
|
18
|
+
# href writes out as ferh="..." explicitly wrong, to be cauaght by seperate processor for nonrelativized links
|
19
|
+
"ferh=#{href_value}"
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
Liquid::Template.register_tag('Static_Href', Jekyll::Polyglot::Liquid::StaticHrefTag)
|
27
|
+
Liquid::Template.register_tag('static_href', Jekyll::Polyglot::Liquid::StaticHrefTag)
|
@@ -1,3 +1,5 @@
|
|
1
|
+
require 'etc'
|
2
|
+
|
1
3
|
include Process
|
2
4
|
module Jekyll
|
3
5
|
class Site
|
@@ -10,18 +12,17 @@ module Jekyll
|
|
10
12
|
@parallel_localization = config.fetch('parallel_localization', true)
|
11
13
|
@lang_from_path = config.fetch('lang_from_path', false)
|
12
14
|
@exclude_from_localization = config.fetch('exclude_from_localization', []).map do |e|
|
13
|
-
if File.directory?(e)
|
15
|
+
if File.directory?(e) && e[-1] != '/'
|
14
16
|
e + '/'
|
15
17
|
else
|
16
18
|
e
|
17
19
|
end
|
18
20
|
end
|
19
|
-
|
20
21
|
end
|
21
22
|
|
22
23
|
def fetch_languages
|
23
24
|
@default_lang = config.fetch('default_lang', 'en')
|
24
|
-
@languages = config.fetch('languages', ['en'])
|
25
|
+
@languages = config.fetch('languages', ['en']).uniq
|
25
26
|
@keep_files += (@languages - [@default_lang])
|
26
27
|
@active_lang = @default_lang
|
27
28
|
@lang_vars = config.fetch('lang_vars', [])
|
@@ -32,22 +33,27 @@ module Jekyll
|
|
32
33
|
prepare
|
33
34
|
all_langs = (@languages + [@default_lang]).uniq
|
34
35
|
if @parallel_localization
|
36
|
+
nproc = Etc.nprocessors
|
35
37
|
pids = {}
|
36
|
-
|
37
|
-
|
38
|
-
|
38
|
+
begin
|
39
|
+
all_langs.each do |lang|
|
40
|
+
pids[lang] = fork do
|
41
|
+
process_language lang
|
42
|
+
end
|
43
|
+
while pids.length >= (lang == all_langs[-1] ? 1 : nproc)
|
44
|
+
sleep 0.1
|
45
|
+
pids.map do |lang, pid|
|
46
|
+
pids.delete lang if waitpid pid, Process::WNOHANG
|
47
|
+
end
|
48
|
+
end
|
39
49
|
end
|
40
|
-
|
41
|
-
Signal.trap('INT') do
|
50
|
+
rescue Interrupt
|
42
51
|
all_langs.each do |lang|
|
52
|
+
next unless pids.key? lang
|
43
53
|
puts "Killing #{pids[lang]} : #{lang}"
|
44
54
|
kill('INT', pids[lang])
|
45
55
|
end
|
46
56
|
end
|
47
|
-
all_langs.each do |lang|
|
48
|
-
waitpid pids[lang]
|
49
|
-
detach pids[lang]
|
50
|
-
end
|
51
57
|
else
|
52
58
|
all_langs.each do |lang|
|
53
59
|
process_language lang
|
@@ -102,11 +108,11 @@ module Jekyll
|
|
102
108
|
end
|
103
109
|
segments = doc.relative_path.split('/')
|
104
110
|
if doc.relative_path[0] == '_' \
|
105
|
-
|
106
|
-
|
111
|
+
&& segments.length > 2 \
|
112
|
+
&& segments[1] =~ /^[a-z]{2,3}(:?[_-](:?[A-Za-z]{2}){1,2}){0,2}$/
|
107
113
|
return segments[1]
|
108
114
|
elsif segments.length > 1 \
|
109
|
-
|
115
|
+
&& segments[0] =~ /^[a-z]{2,3}(:?[_-](:?[A-Za-z]{2}){1,2}){0,2}$/
|
110
116
|
return segments[0]
|
111
117
|
else
|
112
118
|
return nil
|
@@ -122,10 +128,16 @@ module Jekyll
|
|
122
128
|
approved = {}
|
123
129
|
docs.each do |doc|
|
124
130
|
lang = doc.data['lang'] || derive_lang_from_path(doc) || @default_lang
|
131
|
+
lang_exclusive = doc.data['lang-exclusive'] || []
|
125
132
|
url = doc.url.gsub(regex, '/')
|
126
133
|
doc.data['permalink'] = url
|
134
|
+
# skip this document if it has already been processed
|
127
135
|
next if @file_langs[url] == @active_lang
|
136
|
+
# skip this document if it has a fallback and it isn't assigned to the active language
|
128
137
|
next if @file_langs[url] == @default_lang && lang != @active_lang
|
138
|
+
# skip this document if it has lang-exclusive defined and the active_lang is not included
|
139
|
+
next if !lang_exclusive.empty? && !lang_exclusive.include?(@active_lang)
|
140
|
+
|
129
141
|
approved[url] = doc
|
130
142
|
@file_langs[url] = lang
|
131
143
|
end
|
@@ -134,14 +146,19 @@ module Jekyll
|
|
134
146
|
|
135
147
|
# performs any necesarry operations on the documents before rendering them
|
136
148
|
def process_documents(docs)
|
137
|
-
return if @active_lang == @default_lang
|
149
|
+
# return if @active_lang == @default_lang
|
150
|
+
|
138
151
|
url = config.fetch('url', false)
|
139
|
-
rel_regex = relative_url_regex
|
140
|
-
abs_regex = absolute_url_regex(url)
|
152
|
+
rel_regex = relative_url_regex(false)
|
153
|
+
abs_regex = absolute_url_regex(url, false)
|
154
|
+
non_rel_regex = relative_url_regex(true)
|
155
|
+
non_abs_regex = absolute_url_regex(url, true)
|
141
156
|
docs.each do |doc|
|
142
|
-
relativize_urls(doc, rel_regex)
|
157
|
+
unless @active_lang == @default_lang then relativize_urls(doc, rel_regex) end
|
158
|
+
correct_nonrelativized_urls(doc, non_rel_regex)
|
143
159
|
if url
|
144
|
-
|
160
|
+
unless @active_lang == @default_lang then relativize_absolute_urls(doc, abs_regex, url) end
|
161
|
+
correct_nonrelativized_absolute_urls(doc, non_abs_regex, url)
|
145
162
|
end
|
146
163
|
end
|
147
164
|
end
|
@@ -159,37 +176,63 @@ module Jekyll
|
|
159
176
|
end
|
160
177
|
|
161
178
|
# a regex that matches relative urls in a html document
|
162
|
-
# matches href="baseurl/foo/bar-baz" and others like it
|
179
|
+
# matches href="baseurl/foo/bar-baz" href="/foo/bar-baz" and others like it
|
163
180
|
# avoids matching excluded files. prepare makes sure
|
164
181
|
# that all @exclude dirs have a trailing slash.
|
165
|
-
def relative_url_regex
|
182
|
+
def relative_url_regex(disabled = false)
|
166
183
|
regex = ''
|
167
|
-
|
168
|
-
|
169
|
-
|
170
|
-
|
171
|
-
|
184
|
+
unless disabled
|
185
|
+
@exclude.each do |x|
|
186
|
+
regex += "(?!#{x})"
|
187
|
+
end
|
188
|
+
@languages.each do |x|
|
189
|
+
regex += "(?!#{x}\/)"
|
190
|
+
end
|
172
191
|
end
|
173
|
-
|
192
|
+
start = disabled ? 'ferh' : 'href'
|
193
|
+
%r{#{start}=\"?#{@baseurl}\/((?:#{regex}[^,'\"\s\/?\.#]+\.?)*(?:\/[^\]\[\)\(\"\'\s]*)?)\"}
|
174
194
|
end
|
175
195
|
|
176
|
-
|
196
|
+
# a regex that matches absolute urls in a html document
|
197
|
+
# matches href="http://baseurl/foo/bar-baz" and others like it
|
198
|
+
# avoids matching excluded files. prepare makes sure
|
199
|
+
# that all @exclude dirs have a trailing slash.
|
200
|
+
def absolute_url_regex(url, disabled = false)
|
177
201
|
regex = ''
|
178
|
-
|
179
|
-
|
180
|
-
|
181
|
-
|
182
|
-
|
202
|
+
unless disabled
|
203
|
+
@exclude.each do |x|
|
204
|
+
regex += "(?!#{x})"
|
205
|
+
end
|
206
|
+
@languages.each do |x|
|
207
|
+
regex += "(?!#{x}\/)"
|
208
|
+
end
|
183
209
|
end
|
184
|
-
|
210
|
+
start = disabled ? 'ferh' : 'href'
|
211
|
+
%r{(?<!hreflang="#{@default_lang}" )#{start}=\"?#{url}#{@baseurl}\/((?:#{regex}[^,'\"\s\/?\.#]+\.?)*(?:\/[^\]\[\)\(\"\'\s]*)?)\"}
|
185
212
|
end
|
186
213
|
|
187
214
|
def relativize_urls(doc, regex)
|
215
|
+
return if doc.output.nil?
|
216
|
+
|
188
217
|
doc.output.gsub!(regex, "href=\"#{@baseurl}/#{@active_lang}/" + '\1"')
|
189
218
|
end
|
190
219
|
|
191
220
|
def relativize_absolute_urls(doc, regex, url)
|
221
|
+
return if doc.output.nil?
|
222
|
+
|
192
223
|
doc.output.gsub!(regex, "href=\"#{url}#{@baseurl}/#{@active_lang}/" + '\1"')
|
193
224
|
end
|
225
|
+
|
226
|
+
def correct_nonrelativized_absolute_urls(doc, regex, url)
|
227
|
+
return if doc.output.nil?
|
228
|
+
|
229
|
+
doc.output.gsub!(regex, "href=\"#{url}#{@baseurl}/" + '\1"')
|
230
|
+
end
|
231
|
+
|
232
|
+
def correct_nonrelativized_urls(doc, regex)
|
233
|
+
return if doc.output.nil?
|
234
|
+
|
235
|
+
doc.output.gsub!(regex, "href=\"#{@baseurl}/" + '\1"')
|
236
|
+
end
|
194
237
|
end
|
195
238
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: jekyll-polyglot
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.5.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Samuel Volin
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2021-07-17 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: jekyll
|
@@ -39,12 +39,13 @@ files:
|
|
39
39
|
- lib/jekyll/polyglot/hooks/coordinate.rb
|
40
40
|
- lib/jekyll/polyglot/hooks/process.rb
|
41
41
|
- lib/jekyll/polyglot/liquid.rb
|
42
|
-
- lib/jekyll/polyglot/liquid/tags/
|
42
|
+
- lib/jekyll/polyglot/liquid/tags/i18n_headers.rb
|
43
|
+
- lib/jekyll/polyglot/liquid/tags/static_href.rb
|
43
44
|
- lib/jekyll/polyglot/patches.rb
|
44
45
|
- lib/jekyll/polyglot/patches/jekyll/site.rb
|
45
46
|
- lib/jekyll/polyglot/patches/jekyll/static_file.rb
|
46
47
|
- lib/jekyll/polyglot/version.rb
|
47
|
-
homepage:
|
48
|
+
homepage: https://polyglot.untra.io/
|
48
49
|
licenses:
|
49
50
|
- MIT
|
50
51
|
metadata: {}
|
@@ -56,14 +57,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
56
57
|
requirements:
|
57
58
|
- - ">="
|
58
59
|
- !ruby/object:Gem::Version
|
59
|
-
version:
|
60
|
+
version: 2.4.0
|
60
61
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
61
62
|
requirements:
|
62
63
|
- - ">="
|
63
64
|
- !ruby/object:Gem::Version
|
64
|
-
version:
|
65
|
+
version: 2.7.0
|
65
66
|
requirements: []
|
66
|
-
|
67
|
+
rubyforge_project:
|
68
|
+
rubygems_version: 2.7.6
|
67
69
|
signing_key:
|
68
70
|
specification_version: 4
|
69
71
|
summary: I18n plugin for Jekyll Blogs
|