jekyll-bookshop 2.0.0.pre.alpha.52 → 2.0.0.pre.beta.3

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: fb67ec52b3dd76507610c427c5298cd1092e22b1e7a6c50b617a83615d8b29ad
4
- data.tar.gz: de4a0a29b607a7519669dda12142af9aaa5ecbf465ebce4b528b2f14318be288
3
+ metadata.gz: def825f743e2a34dca23d198174bc9aab922ab2e83770b482612dd53a0d14f33
4
+ data.tar.gz: 21089cf78909c334c9e5e2bc332d87b39f03e77a05b7f465243f633766240a4c
5
5
  SHA512:
6
- metadata.gz: 3d1a78126daf3f5c32ae7a2bccc9da5c1b8836e82a3f8ef1f242e93046a74a524b0988d3c333129153dec10fc515908a0b025fba09bb30afcde9525089e67c90
7
- data.tar.gz: 701d79a3ae271d7e76d7ff365d3d92a92002b8643f89ead2949ddf6ba0ff94e38ad0c9d2bd27130610e685553371604683147d898c083de7da3b29e1f38e9ca9
6
+ metadata.gz: 60fe4d163bfabd50f80ff74aca1b50dc8f6ba229c17e606064f846bdb6e979c2434890443f6a0ff4c8f6f82f3ff92c7c1a06c7889824baf9548910841687d3ac
7
+ data.tar.gz: 353d2abc6dec37cb5d37bb3b3e15b8b3558ea8424be42d9ab74f63a0c492dfae848602507a64bf82c50406cc6728ca013b51d6dde2bd7571d51d8936475f024a
@@ -5,12 +5,14 @@ require "pathname"
5
5
  require "dry/inflector"
6
6
 
7
7
  require_relative "jekyll-bookshop/tags/bookshop-tag"
8
+ require_relative "jekyll-bookshop/tags/browser-tag"
8
9
  require_relative "jekyll-bookshop/tags/style-tag"
9
10
  require_relative "jekyll-bookshop/init-styles"
10
11
  require_relative "jekyll-bookshop/site-data"
11
12
 
12
13
  Liquid::Template.register_tag("bookshop", JekyllBookshop::Tag)
13
14
  Liquid::Template.register_tag("bookshop_scss", JekyllBookshop::StyleTag)
15
+ Liquid::Template.register_tag("bookshop_browser", JekyllBookshop::BrowserTag)
14
16
 
15
17
  Jekyll::Hooks.register :site, :after_init do |site|
16
18
  JekyllBookshop::Styles.open_bookshop(site)
@@ -20,6 +20,9 @@ module JekyllBookshop
20
20
  end
21
21
 
22
22
  @site.data["_bookshop_site_data"] = { "site" => payload_collections }
23
+
24
+ update_browser_pages
25
+
23
26
  Jekyll.logger.info "Bookshop:",
24
27
  "Bookshop site data generated"
25
28
  end
@@ -36,5 +39,17 @@ module JekyllBookshop
36
39
  "excerpt" => document.data["excerpt"].output,
37
40
  })
38
41
  end
42
+
43
+ def self.update_browser_pages
44
+ @site.pages.each do |page|
45
+ next unless @site.data["_bookshop_data_pages"]&.include?(page.url)
46
+
47
+ page.output = page.output.gsub(
48
+ %r!bookshop_browser_site_data = null!,
49
+ "bookshop_browser_site_data = #{@site.data["_bookshop_site_data"].to_json}"
50
+ )
51
+ end
52
+ @site.data["_bookshop_data_pages"] = nil
53
+ end
39
54
  end
40
55
  end
@@ -0,0 +1,28 @@
1
+ # frozen_string_literal: true
2
+
3
+ module JekyllBookshop
4
+ class BrowserTag < Liquid::Tag
5
+ def initialize(tag_name, markup, tokens)
6
+ super
7
+ @host = markup.strip
8
+ end
9
+
10
+ def render(context)
11
+ return unless @host
12
+ return if Jekyll.env == "production"
13
+
14
+ site = context.registers[:site]
15
+ page = context.registers[:page]
16
+
17
+ site.data["_bookshop_data_pages"] ||= []
18
+ unless site.data["_bookshop_data_pages"].include?(page["url"])
19
+ site.data["_bookshop_data_pages"].push(page["url"])
20
+ end
21
+
22
+ "<div data-bookshop-browser></div>
23
+ <script>window.bookshop_browser_site_data = null;</script>
24
+ <script src=\"//#{@host}\"></script>
25
+ <script>window.BookshopBrowser = new window.BookshopBrowserClass(); window.BookshopBrowser.render();</script>"
26
+ end
27
+ end
28
+ end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module JekyllBookshop
4
- VERSION = "2.0.0.pre.alpha.52"
4
+ VERSION = "2.0.0.pre.beta.3"
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: jekyll-bookshop
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.0.pre.alpha.52
4
+ version: 2.0.0.pre.beta.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - CloudCannon
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-07-26 00:00:00.000000000 Z
11
+ date: 2021-08-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: jekyll
@@ -89,6 +89,7 @@ files:
89
89
  - lib/jekyll-bookshop/init-styles.rb
90
90
  - lib/jekyll-bookshop/site-data.rb
91
91
  - lib/jekyll-bookshop/tags/bookshop-tag.rb
92
+ - lib/jekyll-bookshop/tags/browser-tag.rb
92
93
  - lib/jekyll-bookshop/tags/style-tag.rb
93
94
  - lib/jekyll-bookshop/version.rb
94
95
  homepage: https://github.com/cloudcannon/bookshop