jekyll-polyglot 1.0.1 → 1.1.1

Sign up to get free protection for your applications and to get access to all the features.
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: []