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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: e3f7773339c45333233f02e73f7e7c96e87a6609ebdb6e6c1082b3adebf679d0
4
- data.tar.gz: 5d8bdce1424b3be47d4e1dc07d1dba638436c2c65674e00845c354352b118387
3
+ metadata.gz: b1df66cac375456100227a3f62c2771280b12b20523650adf5aed2b0f71537a3
4
+ data.tar.gz: dd7c651028a836017807fdeda58600e576132b950c9b4dca17dcbeb4ab7d2af3
5
5
  SHA512:
6
- metadata.gz: 154f29a20360f6db96f4be7c8584158c9d71c723ae306ad4093ab306eb6b52877bf75ebd5cf222251ebbadfada6c075d1dda06b65f0108b0eddbc8621e05b016
7
- data.tar.gz: 240fdec79c5f4188d46a3ec160b17b8fc57fd5341564e105464bf877aa0d8bfe7b69d1f1bbc51c56d03c2a85499f33143ed77eb9131e62891e2c7f76147065c1
6
+ metadata.gz: 12562b7c0f8ab337c4195d1b664a8cfc1e93e2f53d2571dacfffc67d58958f2c262bbc74ec9aa8dc63f670f10b2381e8b1ddec07b0fe1edb88d9d532f6c4c916
7
+ data.tar.gz: 0c5152c2d45eead027c8a0cef88b8482f87841def83d56924d6118cb7bc157a3b6bea14a5a32f18273688a18e6cc5bf54de3b5dd078ae551c8dc6478f5dcfd41
data/README.md CHANGED
@@ -1,7 +1,7 @@
1
- :abc: Polyglot
1
+ 🔤 Polyglot
2
2
  ---
3
3
  [![Gem Version](https://badge.fury.io/rb/jekyll-polyglot.svg)](https://badge.fury.io/rb/jekyll-polyglot)
4
- [![Build Status](https://travis-ci.org/untra/polyglot.svg?branch=master)](https://travis-ci.org/untra/polyglot)
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", "README.md"]
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
- If you don't want a url to be relativized, you can add a space explicitly into the href to prevents a url from being relativized by polyglot.
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="http://mywebsite.com/about"
121
- href="/about"
118
+ <a {% static_href %}href="/about"{% endstatic_href %}>click this static link</a>
122
119
  ```
123
120
 
124
- and the following urls will be left alone:
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
- ```html
127
- href=" http://mywebsite.com/about"
128
- href=" /about"
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
- combine with a [html minifier](https://github.com/digitalsparky/jekyll-minifier) for a polished and production ready website.
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 thread for each language you intend to process the site for. Each of those threads 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.
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
- let us know if you make a multilingual blog you want to share:
160
- * [Polyglot project website](http://polyglot.untra.io)
161
- * [LogRhythm Corporate Website](http://logrhythm.com)
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 (for the most part)
180
+ Currently supports Jekyll 3.0 , and Jekyll 4.0
168
181
 
169
- * *Windows users will need to disable parallel_localization on their machines by setting `parallel_localization: false` in the `_config.yml`
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 rhe following to your `config.yml` will disable sourcemap generation:
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 2020. License: MIT
207
+ Copyright (c) Samuel Volin 2021. License: MIT
@@ -1,3 +1,2 @@
1
- require_relative 'hooks/assets-toggle'
2
1
  require_relative 'hooks/coordinate'
3
2
  require_relative 'hooks/process'
@@ -1,7 +1,8 @@
1
1
  module Jekyll
2
2
  module Polyglot
3
3
  module Liquid
4
- require_relative 'liquid/tags/i18n-headers'
4
+ require_relative 'liquid/tags/i18n_headers'
5
+ require_relative 'liquid/tags/static_href'
5
6
  end
6
7
  end
7
8
  end
@@ -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=\" #{site_url}#{permalink}\"/>\n"
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) and e[-1] != '/'
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
- all_langs.each do |lang|
37
- pids[lang] = fork do
38
- process_language lang
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
- end
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
- and segments.length > 2 \
106
- and segments[1] =~ /^[a-z]{2,3}(:?[_-](:?[A-Za-z]{2}){1,2}){0,2}$/
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
- and segments[0] =~ /^[a-z]{2,3}(:?[_-](:?[A-Za-z]{2}){1,2}){0,2}$/
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
- then relativize_absolute_urls(doc, abs_regex, url)
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
- (@exclude).each do |x|
168
- regex += "(?!#{x})"
169
- end
170
- (@languages).each do |x|
171
- regex += "(?!#{x}\/)"
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
- %r{href=\"?#{@baseurl}\/((?:#{regex}[^,'\"\s\/?\.#]+\.?)*(?:\/[^\]\[\)\(\"\'\s]*)?)\"}
192
+ start = disabled ? 'ferh' : 'href'
193
+ %r{#{start}=\"?#{@baseurl}\/((?:#{regex}[^,'\"\s\/?\.#]+\.?)*(?:\/[^\]\[\)\(\"\'\s]*)?)\"}
174
194
  end
175
195
 
176
- def absolute_url_regex(url)
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
- (@exclude).each do |x|
179
- regex += "(?!#{x})"
180
- end
181
- (@languages).each do |x|
182
- regex += "(?!#{x}\/)"
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
- %r{href=\"?#{url}#{@baseurl}\/((?:#{regex}[^,'\"\s\/?\.#]+\.?)*(?:\/[^\]\[\)\(\"\'\s]*)?)\"}
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
@@ -1,5 +1,5 @@
1
1
  module Jekyll
2
2
  module Polyglot
3
- VERSION = '1.3.2'.freeze
3
+ VERSION = '1.3.3'.freeze
4
4
  end
5
5
  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.3.2
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: 2020-04-28 00:00:00.000000000 Z
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/i18n-headers.rb
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: http://untra.github.io/polyglot
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: '0'
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: '0'
65
+ version: 2.7.0
65
66
  requirements: []
66
- rubygems_version: 3.1.2
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