jekyll-bookshop 2.0.0.pre.beta.6 → 2.0.0.pre.beta.10
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/jekyll-bookshop.rb +5 -2
- data/lib/jekyll-bookshop/{init-styles.rb → opener.rb} +10 -2
- data/lib/jekyll-bookshop/tags/bookshop-common-tag.rb +45 -0
- data/lib/jekyll-bookshop/tags/bookshop-include-tag.rb +18 -0
- data/lib/jekyll-bookshop/tags/bookshop-tag.rb +2 -39
- data/lib/jekyll-bookshop/tags/browser-tag.rb +6 -1
- data/lib/jekyll-bookshop/version.rb +1 -1
- metadata +4 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: fa7ab939ab5d6e4a3605cd5ea3ce609928874b7bc608bb8ba65105ea91c64d01
|
4
|
+
data.tar.gz: 24108b66b51e30fe1f61659df6bd32750d57c1e3cfbc66af0d5088d25ec6eb15
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f2f07baad90111ae1b08a04f0a5fd8df6d558f11205f9a4f2fc0cb9fff971262cd443e731adaa614e336940ef754e37ed5550b6f1aea2f61d508c7d922129a22
|
7
|
+
data.tar.gz: d36ad44716d84e9723386beefba6f54fadb35fb418fd5446e3e6d103d8e99ba2c8d8355029751d8cb2755ee227ae7d5396347a7f9ce2f4ad9f506b04b0c66600
|
data/lib/jekyll-bookshop.rb
CHANGED
@@ -4,18 +4,21 @@ require "jekyll"
|
|
4
4
|
require "pathname"
|
5
5
|
require "dry/inflector"
|
6
6
|
|
7
|
+
require_relative "jekyll-bookshop/tags/bookshop-common-tag"
|
8
|
+
require_relative "jekyll-bookshop/tags/bookshop-include-tag"
|
7
9
|
require_relative "jekyll-bookshop/tags/bookshop-tag"
|
8
10
|
require_relative "jekyll-bookshop/tags/browser-tag"
|
9
11
|
require_relative "jekyll-bookshop/tags/style-tag"
|
10
|
-
require_relative "jekyll-bookshop/
|
12
|
+
require_relative "jekyll-bookshop/opener"
|
11
13
|
require_relative "jekyll-bookshop/site-data"
|
12
14
|
|
13
15
|
Liquid::Template.register_tag("bookshop", JekyllBookshop::Tag)
|
16
|
+
Liquid::Template.register_tag("bookshop_include", JekyllBookshop::IncludeTag)
|
14
17
|
Liquid::Template.register_tag("bookshop_scss", JekyllBookshop::StyleTag)
|
15
18
|
Liquid::Template.register_tag("bookshop_browser", JekyllBookshop::BrowserTag)
|
16
19
|
|
17
20
|
Jekyll::Hooks.register :site, :after_init do |site|
|
18
|
-
JekyllBookshop::
|
21
|
+
JekyllBookshop::Opener.open_bookshop(site)
|
19
22
|
end
|
20
23
|
|
21
24
|
Jekyll::Hooks.register :site, :post_render do |site|
|
@@ -1,13 +1,14 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
module JekyllBookshop
|
4
|
-
class
|
5
|
-
# Add the paths to find bookshop
|
4
|
+
class Opener
|
5
|
+
# Add the paths to find bookshop(s)
|
6
6
|
def self.open_bookshop(site)
|
7
7
|
return unless site.config["bookshop_locations"]
|
8
8
|
|
9
9
|
bookshop_base_locations = filter_bookshops(site.source, site.config["bookshop_locations"])
|
10
10
|
bookshop_component_locations = bookshop_component_locations(bookshop_base_locations)
|
11
|
+
bookshop_shared_locations = bookshop_shared_locations(bookshop_base_locations)
|
11
12
|
|
12
13
|
site.config["sass"] ||= {}
|
13
14
|
|
@@ -16,6 +17,7 @@ module JekyllBookshop
|
|
16
17
|
apply_array(site.config, "watch_dirs", bookshop_base_locations)
|
17
18
|
apply_array(site.config, "bookshop_base_locations", bookshop_base_locations)
|
18
19
|
apply_array(site.config, "bookshop_component_locations", bookshop_component_locations)
|
20
|
+
apply_array(site.config, "bookshop_shared_locations", bookshop_shared_locations)
|
19
21
|
end
|
20
22
|
|
21
23
|
def self.filter_bookshops(src, locations)
|
@@ -33,6 +35,12 @@ module JekyllBookshop
|
|
33
35
|
end
|
34
36
|
end
|
35
37
|
|
38
|
+
def self.bookshop_shared_locations(locations)
|
39
|
+
locations&.collect do |location|
|
40
|
+
Pathname.new("#{location}/shared/jekyll/").cleanpath.to_s
|
41
|
+
end
|
42
|
+
end
|
43
|
+
|
36
44
|
def self.apply_array(hash, key, arr)
|
37
45
|
hash[key] ||= []
|
38
46
|
hash[key].push(*arr)
|
@@ -0,0 +1,45 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module JekyllBookshop
|
4
|
+
class CommonTag < Jekyll::Tags::IncludeTag
|
5
|
+
# Support the bind syntax, spreading an object into params
|
6
|
+
def parse_params(context)
|
7
|
+
params = super
|
8
|
+
|
9
|
+
params.each do |key, value|
|
10
|
+
next unless key == "bind" && value.is_a?(Hash)
|
11
|
+
|
12
|
+
value_hash = {}.merge(value)
|
13
|
+
params = value_hash.merge(params)
|
14
|
+
next
|
15
|
+
end
|
16
|
+
|
17
|
+
params.delete("bind")
|
18
|
+
|
19
|
+
params
|
20
|
+
end
|
21
|
+
|
22
|
+
def render_once_found(context, file)
|
23
|
+
site = context.registers[:site]
|
24
|
+
validate_file_name(file)
|
25
|
+
|
26
|
+
path = locate_include_file(context, file, site.safe)
|
27
|
+
return unless path
|
28
|
+
|
29
|
+
add_include_to_dependency(site, path, context)
|
30
|
+
|
31
|
+
partial = load_cached_partial(path, context)
|
32
|
+
|
33
|
+
context.stack do
|
34
|
+
context["include"] = parse_params(context) if @params
|
35
|
+
begin
|
36
|
+
partial.render!(context)
|
37
|
+
rescue Liquid::Error => e
|
38
|
+
e.template_name = path
|
39
|
+
e.markup_context = "included " if e.markup_context.nil?
|
40
|
+
raise e
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module JekyllBookshop
|
4
|
+
class IncludeTag < JekyllBookshop::CommonTag
|
5
|
+
# Look for includes in the built bookshop directory
|
6
|
+
def tag_includes_dirs(context)
|
7
|
+
context["site"]["bookshop_shared_locations"].freeze
|
8
|
+
end
|
9
|
+
|
10
|
+
# Map include names to the .jekyll.html files found in bookshop
|
11
|
+
def render(context)
|
12
|
+
file = render_variable(context) || @file
|
13
|
+
|
14
|
+
file = "#{file}.jekyll.html"
|
15
|
+
render_once_found(context, file)
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
@@ -1,56 +1,19 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
module JekyllBookshop
|
4
|
-
class Tag <
|
4
|
+
class Tag < JekyllBookshop::CommonTag
|
5
5
|
# Look for includes in the built bookshop directory
|
6
6
|
def tag_includes_dirs(context)
|
7
7
|
context["site"]["bookshop_component_locations"].freeze
|
8
8
|
end
|
9
9
|
|
10
|
-
# Support the bind syntax, spreading an object into params
|
11
|
-
def parse_params(context)
|
12
|
-
params = super
|
13
|
-
|
14
|
-
params.each do |key, value|
|
15
|
-
next unless key == "bind" && value.is_a?(Hash)
|
16
|
-
|
17
|
-
value_hash = {}.merge(value)
|
18
|
-
params = value_hash.merge(params)
|
19
|
-
next
|
20
|
-
end
|
21
|
-
|
22
|
-
params.delete("bind")
|
23
|
-
|
24
|
-
params
|
25
|
-
end
|
26
|
-
|
27
10
|
# Map component names to the .jekyll.html files found in bookshop
|
28
11
|
def render(context)
|
29
|
-
site = context.registers[:site]
|
30
|
-
|
31
12
|
file = render_variable(context) || @file
|
32
13
|
|
33
14
|
cname = file.strip.split("/").last
|
34
15
|
file = "#{file}/#{cname}.jekyll.html"
|
35
|
-
|
36
|
-
|
37
|
-
path = locate_include_file(context, file, site.safe)
|
38
|
-
return unless path
|
39
|
-
|
40
|
-
add_include_to_dependency(site, path, context)
|
41
|
-
|
42
|
-
partial = load_cached_partial(path, context)
|
43
|
-
|
44
|
-
context.stack do
|
45
|
-
context["include"] = parse_params(context) if @params
|
46
|
-
begin
|
47
|
-
partial.render!(context)
|
48
|
-
rescue Liquid::Error => e
|
49
|
-
e.template_name = path
|
50
|
-
e.markup_context = "included " if e.markup_context.nil?
|
51
|
-
raise e
|
52
|
-
end
|
53
|
-
end
|
16
|
+
render_once_found(context, file)
|
54
17
|
end
|
55
18
|
end
|
56
19
|
end
|
@@ -22,7 +22,12 @@ module JekyllBookshop
|
|
22
22
|
"<div data-bookshop-browser></div>
|
23
23
|
<script>window.bookshop_browser_site_data = null;</script>
|
24
24
|
<script src=\"//#{@host}\"></script>
|
25
|
-
<script>
|
25
|
+
<script>
|
26
|
+
window.BookshopBrowser = new window.BookshopBrowserClass({
|
27
|
+
globals: [window.bookshop_browser_site_data]
|
28
|
+
});
|
29
|
+
window.BookshopBrowser.render();
|
30
|
+
</script>"
|
26
31
|
end
|
27
32
|
end
|
28
33
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: jekyll-bookshop
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.0.0.pre.beta.
|
4
|
+
version: 2.0.0.pre.beta.10
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- CloudCannon
|
@@ -86,8 +86,10 @@ extensions: []
|
|
86
86
|
extra_rdoc_files: []
|
87
87
|
files:
|
88
88
|
- lib/jekyll-bookshop.rb
|
89
|
-
- lib/jekyll-bookshop/
|
89
|
+
- lib/jekyll-bookshop/opener.rb
|
90
90
|
- lib/jekyll-bookshop/site-data.rb
|
91
|
+
- lib/jekyll-bookshop/tags/bookshop-common-tag.rb
|
92
|
+
- lib/jekyll-bookshop/tags/bookshop-include-tag.rb
|
91
93
|
- lib/jekyll-bookshop/tags/bookshop-tag.rb
|
92
94
|
- lib/jekyll-bookshop/tags/browser-tag.rb
|
93
95
|
- lib/jekyll-bookshop/tags/style-tag.rb
|