jekyll-polyglot 1.0.1 → 1.1.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.
Files changed (3) hide show
  1. checksums.yaml +4 -4
  2. data/lib/polyglot.rb +26 -28
  3. metadata +3 -23
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 804d1b4413eead1b3cb2ba61cf7756cf1ca5b474
4
- data.tar.gz: f128e8f07eb56bcb3efe4c4e9f2c5190d1c5b759
3
+ metadata.gz: ca5555c293e66a474d1e376be77e2734c3306f4a
4
+ data.tar.gz: 4c4c2f6caa77f7571ba4274964873e598ff7cb29
5
5
  SHA512:
6
- metadata.gz: 9aaaf216dfc22f58e87f45ec21c8b8e7e03009374b4600ddee87b3576270f4c4c902a56ceb5a65e8c154a3ae3a8c7cffa7414c430a6801d66b2125ea07574abd
7
- data.tar.gz: 47b49166bb5fc8a3eee76a86d6ebd9ac4ecd096028443d99fb38306ee95956e029465c10ac5d4aa5ace94b54daea072139ef5b137ff669240d86dc6e3839399c
6
+ metadata.gz: e4a344bd2433929d60bd767747a8366e3beefef1152e1ee0fe2f5e8ee2be5fed005ed14875b3f99e9f94197eb8c9f8b147c38433d7578b84ca6e1917b7d2cba8
7
+ data.tar.gz: af745ab17521284b5dfc294de4666dc80b8a0eaca237817d61099e7bb342c460bb69fffdb169b5b2926c51371d68043fcd521526c20cbbe7f3bb7079357a0713
@@ -1,3 +1,8 @@
1
+ # Jekyll Polyglot v1.1.1
2
+ # Fast, painless, open source i18n plugin for Jekyll 3.0 Blogs.
3
+ # author: Samuel Volin (@untra)
4
+ # github: https://github.com/untra/polyglot
5
+ # license: MIT
1
6
  include Process
2
7
  module Jekyll
3
8
  # Alteration to Jekyll Site class
@@ -8,7 +13,6 @@ module Jekyll
8
13
  attr_accessor :file_langs, :active_lang
9
14
 
10
15
  def prepare
11
- @start_time = time
12
16
  @file_langs = {}
13
17
  @default_lang = config['default_lang'] || 'en'
14
18
  @languages = config['languages'] || ['en']
@@ -50,44 +54,38 @@ module Jekyll
50
54
  def process_language(lang)
51
55
  @active_lang = lang
52
56
  config['active_lang'] = @active_lang
53
- return build_language(@active_lang) if @active_lang == @default_lang
57
+ return process_orig if @active_lang == @default_lang
54
58
  process_active_language
55
59
  end
56
60
 
57
61
  def process_active_language
58
- dest_orig = dest
59
- exclude_orig = exclude
60
62
  @dest = @dest + '/' + @active_lang
61
63
  @exclude += config['exclude_from_localization']
62
- build_language(@active_lang)
63
- @dest = dest_orig
64
- @exclude = exclude_orig
64
+ process_orig
65
65
  end
66
66
 
67
- def build_language(lang)
68
- reset
69
- read
70
- filter
71
- generate
72
- render
73
- cleanup
74
- puts "Building #{lang} Site"
75
- write
76
- end
77
-
78
- def filter
67
+ # hook to coordinate blog posts into distinct urls,
68
+ # and remove duplicate multilanguage posts
69
+ Jekyll::Hooks.register :site, :post_read do |site|
79
70
  langs = {}
80
71
  approved = {}
81
- posts.each do |post|
82
- language = post.data['lang'] || @default_lang
83
- next if langs[post.url] == @active_lang
84
- if langs[post.url] == @default_lang
85
- next if language != @active_lang
72
+ n = ''
73
+ site.languages.each do |lang|
74
+ n += "([\/\.]#{lang}[\/\.])|"
75
+ end
76
+ n.chomp! '|'
77
+ site.posts.docs.each do |doc|
78
+ language = doc.data['lang'] || site.default_lang
79
+ url = doc.url.gsub(%r{#{n}}, '/')
80
+ doc.data['permalink'] = url
81
+ next if langs[url] == site.active_lang
82
+ if langs[url] == site.default_lang
83
+ next if language != site.active_lang
86
84
  end
87
- approved[post.url] = post
88
- langs[post.url] = language
85
+ approved[url] = doc
86
+ langs[url] = language
89
87
  end
90
- @posts = approved.values
88
+ site.posts.docs = approved.values
91
89
  end
92
90
  end
93
91
 
@@ -143,7 +141,7 @@ module Jekyll
143
141
  n += "(?!#{x}\/)"
144
142
  end
145
143
  # regex that looks for all relative urls except for excluded files
146
- %r{href=\"\/#{site.baseurl.gsub(%r{\/}, '')}\/((?:#{n}[^,'\"\s\/?\.#-]+\.?)*(?:\/[^\]\[\)\(\"\'\s]*)?)\"}
144
+ %r{href=\"#{site.baseurl}\/((?:#{n}[^,'\"\s\/?\.#-]+\.?)*(?:\/[^\]\[\)\(\"\'\s]*)?)\"}
147
145
  end
148
146
  end
149
147
 
metadata CHANGED
@@ -1,35 +1,15 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: jekyll-polyglot
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.1
4
+ version: 1.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Samuel Volin
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-09-24 00:00:00.000000000 Z
12
- dependencies:
13
- - !ruby/object:Gem::Dependency
14
- name: listen
15
- requirement: !ruby/object:Gem::Requirement
16
- requirements:
17
- - - "~>"
18
- - !ruby/object:Gem::Version
19
- version: '3.0'
20
- - - ">="
21
- - !ruby/object:Gem::Version
22
- version: 3.0.0
23
- type: :development
24
- prerelease: false
25
- version_requirements: !ruby/object:Gem::Requirement
26
- requirements:
27
- - - "~>"
28
- - !ruby/object:Gem::Version
29
- version: '3.0'
30
- - - ">="
31
- - !ruby/object:Gem::Version
32
- version: 3.0.0
11
+ date: 2015-12-20 00:00:00.000000000 Z
12
+ dependencies: []
33
13
  description: Fast open source internationalization plugin for Jekyll blogs.
34
14
  email: untra.sam@gmail.com
35
15
  executables: []