jekyll-contentful 0.1.4 → 0.1.5.pre2

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 637ee259884f12976d992cafd510bc4f1afb0a86
4
- data.tar.gz: a979832be89ce18ad4d143e838fb080d118b25ec
3
+ metadata.gz: 1da7a9d5781e7e2b4e4e3df79d1dc3cbd64c24aa
4
+ data.tar.gz: 3481be3efe344fe79dcec661c54a551c7e6c5ff2
5
5
  SHA512:
6
- metadata.gz: a917a98be702cd8099132fba82fab900b2767c7e8fb9e57ec7d46f0eca6bc1aafa1d2459e6cb5578294b18c53970afb939ccede3262db57e15bc5aabd71fc0cb
7
- data.tar.gz: f2aaa90fc7e0024c3c1082c0042ee60820bfda7fc02fa201580930ba6fb635b1bd07443d742ec24fdffbedeb938e46e2ab9d6a8e43de70811bebaae55f9f6de5
6
+ metadata.gz: 048abc0e3b9a9ef9a00bcf73104cae4cec0f555f826f47b640dcc17853824fada1d7f81f28793d01025cf8821f008e65cf2751fe243885ec9cd396d988ffd132
7
+ data.tar.gz: fc35a1bf337cae4fcf13c8bf7bd40a56bf9a4ca0e821571b32ff37f091b8b829f929fec967f2090d4bee40eee09c492d85a7d7be4c1d61de95e0c22b744e5c2b
data/README.md CHANGED
@@ -31,6 +31,7 @@ gems: [jekyll-contentful]
31
31
 
32
32
  Configure in your _config.yml file
33
33
 
34
+
34
35
  ```yaml
35
36
  contentful:
36
37
  preview: No
@@ -40,6 +41,7 @@ contentful:
40
41
  content_types:
41
42
  - "First Content Type"
42
43
  - "Second Content Type"
44
+ published_locales_field: "published_languages"
43
45
  localization:
44
46
  - locale: en-US
45
47
  url_prefix: ""
@@ -47,15 +49,32 @@ contentful:
47
49
  - locale: de-DE
48
50
  url_prefix: "de/"
49
51
  lang: "Deutsch"
50
- ```
52
+ ```
53
+
51
54
 
55
+ ### Translations
56
+ You can globally specify the languages/locales that you want to generate pages for.
57
+ See the ``localization`` array in the ``_config.yml`` example above. You need to set the ``locale``, a string that this locale's urls will be prefixed with (``url_prefix``) and the language name (``lang``). The ``lang`` setting is used by the language switcher.
52
58
 
53
59
  #### Language switcher
54
60
  you can use the tag ``{% language_switcher %}`` in your templates to insert a link to the translations of the current page.
55
61
 
62
+ #### Selective Translations
63
+ By default the plugin will – for every entry – generate a page for every locale you specified in your ``_config.yml``.
64
+
65
+ You can also **specify** which **locales** should be published **on the entry level**:
66
+
67
+ 1. Add a Content Type called "Languages" to your space (you can name it differently).
68
+ 2. Add a field called "locale" to that content type (this field has to be called "locale" and nothing else).
69
+ 3. Add an entry of that content type for every locale you have enabled in your space. Set those entries' "locale" field accordingly.
70
+ 4. Add a reference field (many) to the content type you want to selectively translate. Call it "published_languages" (you can name it differently but it has to match the name in the next step). Set the validations to allow only the content type "Languages" to be referenced.
71
+ 5. Add ``published_locales_field: "published_languages"`` in the ``contentful:``section of your ``_config.yml``
72
+
73
+ Now for every entry you can specify the languages you want to generate pages for by adding them to your entries "published_languages" list.
56
74
 
57
75
  #### Content Fields:
58
- All Entry fields can be used inside the layout templates as {{ page.fieldname }}
76
+ All Entry fields can be used inside the layout templates as ``{{ page.fieldname }}``.
77
+ The plugin adds two fields to pages generated from Contentful entries: ``{ page.contentful_id }}`` and ``{{ page.locale }}``.
59
78
 
60
79
  #### ULRs and Layouts:
61
80
 
@@ -60,19 +60,23 @@ module Jekyll
60
60
  throw "Content_type \'#{content_type_name}\' does not exist." if content_type.nil?
61
61
 
62
62
 
63
- localization = site.config['contentful']['localization'] || [{locale: nil, url_prefix: ""}]
64
-
65
- # Get all entries of content type
66
-
67
-
63
+ localization = site.config['contentful']['localization'] || [{locale: nil, url_prefix: ""}]
68
64
  localization.each do |loc|
65
+
69
66
  entries = client.entries(content_type: content_type.id, locale: loc["locale"], limit: 1000)
67
+
70
68
  entries.each do |entry|
71
- site.pages << ContentfulEntryPage.new(site, entry, content_type_name, "#{loc['url_prefix']}") unless entry.fields.nil?
69
+ next if entry.fields.nil?
70
+
71
+ pub_langs = entry.fields[site.config['contentful']['published_locales_field'].to_sym]
72
+
73
+ if pub_langs.nil? or pub_langs.map{|x| x.fields[:locale]}.include?(loc["locale"])
74
+ site.pages << ContentfulEntryPage.new(site, entry, content_type_name, "#{loc['url_prefix']}")
75
+ end
76
+
72
77
  end
73
78
  end
74
79
 
75
-
76
80
  end
77
81
  end
78
82
  end
@@ -16,19 +16,21 @@ module Jekyll
16
16
  that_page["contentful_id"] == this_page["contentful_id"] and that_page["locale"] != this_page["locale"]
17
17
  end
18
18
 
19
- if translated_pages.length > 1
19
+ if translated_pages.length == 0
20
+ return
21
+ elsif translated_pages.length > 1
20
22
  list = translated_pages.dup.map do |tp|
21
23
  "<li translation-item>#{anchor(tp)}</li>"
22
24
  end.join(' ,')
23
25
  return "<ul class='translation-list'>#{list}</uL>"
24
- else
26
+ elsif translated_pages.length == 1
25
27
  return anchor(translated_pages[0])
26
28
  end
27
29
  end
28
30
 
29
31
  def anchor(page)
30
- lang = @site.config['contentful']['localization'].detect{ |loc| loc["locale"] == page['locale']}["lang"]
31
- "<a class='translation-link lang-#{page['locale']}' href='#{ page['url']}'>#{ lang }</a>"
32
+ localization = @site.config['contentful']['localization'].detect{ |loc| loc["locale"] == page['locale']}
33
+ "<a class='translation-link lang-#{page['locale']}' href='#{ page['url']}'>#{ localization["lang"] }</a>"
32
34
  end
33
35
  end
34
36
  end
@@ -1,5 +1,5 @@
1
1
  module Jekyll
2
2
  module Contentful
3
- VERSION = "0.1.4"
3
+ VERSION = "0.1.5.pre2"
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: jekyll-contentful
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.4
4
+ version: 0.1.5.pre2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dommmel
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-08-20 00:00:00.000000000 Z
11
+ date: 2015-08-21 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: jekyll
@@ -97,9 +97,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
97
97
  version: '0'
98
98
  required_rubygems_version: !ruby/object:Gem::Requirement
99
99
  requirements:
100
- - - ">="
100
+ - - ">"
101
101
  - !ruby/object:Gem::Version
102
- version: '0'
102
+ version: 1.3.1
103
103
  requirements: []
104
104
  rubyforge_project:
105
105
  rubygems_version: 2.4.5