jekyll-contentful 0.1.3 → 0.1.4

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
  SHA1:
3
- metadata.gz: 5743688a84602c14bad1cc37a06c589d4d664bf0
4
- data.tar.gz: 6ecd3ce5bf9e010546917d8494ca9d41b13e2b6f
3
+ metadata.gz: 637ee259884f12976d992cafd510bc4f1afb0a86
4
+ data.tar.gz: a979832be89ce18ad4d143e838fb080d118b25ec
5
5
  SHA512:
6
- metadata.gz: 4fd2e6533e12fc42461177105eefe15858b0ffff461fcc8846037cdc63eb44c7b7ac7df14074baa825054b1bcc308eef401bb0623014ebe7a1a818790ac9d6d8
7
- data.tar.gz: 2bc8f11dcd8d2b3a2c921edabc1301b3ca8b3a0c979f6b0b30712eefb807cef5fc31b567874dc8e25cdae011d0823189d126cc74e3112a08d2f55603b573626d
6
+ metadata.gz: a917a98be702cd8099132fba82fab900b2767c7e8fb9e57ec7d46f0eca6bc1aafa1d2459e6cb5578294b18c53970afb939ccede3262db57e15bc5aabd71fc0cb
7
+ data.tar.gz: f2aaa90fc7e0024c3c1082c0042ee60820bfda7fc02fa201580930ba6fb635b1bd07443d742ec24fdffbedeb938e46e2ab9d6a8e43de70811bebaae55f9f6de5
data/README.md CHANGED
@@ -42,11 +42,18 @@ contentful:
42
42
  - "Second Content Type"
43
43
  localization:
44
44
  - locale: en-US
45
- url_prefix: ""
45
+ url_prefix: ""
46
+ lang: "English"
46
47
  - locale: de-DE
47
- url_prefix: "de/"
48
+ url_prefix: "de/"
49
+ lang: "Deutsch"
48
50
  ```
49
-
51
+
52
+
53
+ #### Language switcher
54
+ you can use the tag ``{% language_switcher %}`` in your templates to insert a link to the translations of the current page.
55
+
56
+
50
57
  #### Content Fields:
51
58
  All Entry fields can be used inside the layout templates as {{ page.fieldname }}
52
59
 
@@ -1,10 +1,11 @@
1
- require "jekyll-contentful/version"
2
1
  require "jekyll"
3
2
  require "contentful"
3
+ require "jekyll-contentful/version"
4
+ require "jekyll-contentful/language_switcher_tag"
4
5
 
5
6
  module Jekyll
6
7
  class ContentfulEntryPage < Page
7
- def initialize(site, fields, content_type_name, prefix)
8
+ def initialize(site, entry, content_type_name, prefix)
8
9
 
9
10
  @site = site
10
11
  @base = site.source
@@ -16,11 +17,14 @@ module Jekyll
16
17
  self.read_yaml(File.join(@base, '_layouts'), layout_filename)
17
18
 
18
19
  # stringify hash keys
19
- fields = fields.inject({}){|x,(k,v)| x[k.to_s] = v; x}
20
+ fields = entry.fields.inject({}){|x,(k,v)| x[k.to_s] = v; x}
20
21
 
21
22
  # merge data
22
23
  self.data.merge!(fields)
23
24
 
25
+ self.data["contentful_id"] = entry.id
26
+ self.data["locale"] = entry.locale
27
+
24
28
  # If there is a title fields make it the url
25
29
  page_title_slug = Utils.slugify(self.data["title"] || "")
26
30
  @dir = "/#{prefix}#{content_type_slug}/#{page_title_slug}"
@@ -64,7 +68,7 @@ module Jekyll
64
68
  localization.each do |loc|
65
69
  entries = client.entries(content_type: content_type.id, locale: loc["locale"], limit: 1000)
66
70
  entries.each do |entry|
67
- site.pages << ContentfulEntryPage.new(site, entry.fields, content_type_name, "#{loc['url_prefix']}") unless entry.fields.nil?
71
+ site.pages << ContentfulEntryPage.new(site, entry, content_type_name, "#{loc['url_prefix']}") unless entry.fields.nil?
68
72
  end
69
73
  end
70
74
 
@@ -0,0 +1,36 @@
1
+ module Jekyll
2
+ class LanguageSwitcherTag < Liquid::Tag
3
+
4
+ def initialize(tag_name, text, tokens)
5
+ super
6
+ @text = text
7
+ end
8
+
9
+ def render(context)
10
+ @site = context.registers[:site]
11
+ this_page = context.registers[:page]
12
+
13
+ return "" if @site.config['contentful']['localization'].nil? || this_page["contentful_id"].nil?
14
+
15
+ translated_pages = @site.pages.flatten.select do |that_page|
16
+ that_page["contentful_id"] == this_page["contentful_id"] and that_page["locale"] != this_page["locale"]
17
+ end
18
+
19
+ if translated_pages.length > 1
20
+ list = translated_pages.dup.map do |tp|
21
+ "<li translation-item>#{anchor(tp)}</li>"
22
+ end.join(' ,')
23
+ return "<ul class='translation-list'>#{list}</uL>"
24
+ else
25
+ return anchor(translated_pages[0])
26
+ end
27
+ end
28
+
29
+ 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
+ end
33
+ end
34
+ end
35
+
36
+ Liquid::Template.register_tag('language_switcher', Jekyll::LanguageSwitcherTag)
@@ -1,5 +1,5 @@
1
1
  module Jekyll
2
2
  module Contentful
3
- VERSION = "0.1.3"
3
+ VERSION = "0.1.4"
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: jekyll-contentful
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.3
4
+ version: 0.1.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dommmel
@@ -80,6 +80,7 @@ files:
80
80
  - Rakefile
81
81
  - jekyll-contentful.gemspec
82
82
  - lib/jekyll-contentful.rb
83
+ - lib/jekyll-contentful/language_switcher_tag.rb
83
84
  - lib/jekyll-contentful/version.rb
84
85
  homepage: https://github.com/dommmel/jekyll-contentful
85
86
  licenses: