jekyll-svelte-slabs 0.0.1 → 0.0.8

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
  SHA256:
3
- metadata.gz: 492e0501eea49d35d5e5d966581cac92db8dfdc277ad978551254f3a537335e9
4
- data.tar.gz: 8f71214acdef390178f451828553c8661c35f3865602220a7e8179b5c08cccb8
3
+ metadata.gz: 8c90f7d3bc05e345860facc1989f6d6bbd697f388e6fa07102a0ca70ddda5328
4
+ data.tar.gz: a0acc05af349357aee9c6cfe29f75d72e1b265041e3e0539c1b5882a967ad76e
5
5
  SHA512:
6
- metadata.gz: 6ac731620815bbb20d3a073f401670aa6452de843ea1427e59eeb4a7692c1e22c6dd86566bc2920864cfd1144fc0e9580e19a38462d48f1c7d28b84860ae922d
7
- data.tar.gz: 1f5cfd4c30ba4072940cc4c9c6ae44e5b9cf505ba4c23e7b4fe9464779573578b7c2c7e8f7b698c36b17a5d54fcef7fa92ce70ea9e1982cfb1c33dad30c37b84
6
+ metadata.gz: 2801003756544cc7cc9523201af9f30a3aea9dd8b87caae249c6e2253a6b019e90969708c18807bdd41defb7341e8450ca2c137b5872fe288a70545e870d4dcd
7
+ data.tar.gz: d1f811cf822a92b49151fe8fa7bd9383ea5a229d0b2ecb2dfadbce54012b3bb42fb65f3b98d14e42cbdbf1c90bf5de516a4cb183412c6202f99cb375af1506f7
@@ -37,6 +37,32 @@ module JekyllSvelteSlabs
37
37
  false
38
38
  end
39
39
 
40
+ # Iterate a hash (incl. arrays) to delete named keys
41
+ def purge_keys_from_hash(params, keys)
42
+ params.each do |k,v|
43
+ value = v || k
44
+
45
+ if value.is_a?(Hash) || value.is_a?(Array)
46
+ purge_keys_from_hash(value, keys)
47
+ else
48
+ params.delete(k) if keys.include?(k)
49
+ end
50
+ end
51
+ end
52
+
53
+ # Remove a bind if specified, as well as any keys listed in the site config
54
+ def clean_params(context, params)
55
+ params.delete('bind')
56
+
57
+ slab_config = context['site']['svelte_slabs']
58
+ return unless slab_config
59
+
60
+ purge_keys = slab_config['remove_keys']
61
+ unless purge_keys.nil?
62
+ purge_keys_from_hash(params, purge_keys)
63
+ end
64
+ end
65
+
40
66
  def parse_params(context)
41
67
  params = {}
42
68
  @params.scan(VALID_SYNTAX) do |key, d_quoted, s_quoted, variable|
@@ -47,6 +73,12 @@ module JekyllSvelteSlabs
47
73
  elsif variable
48
74
  context[variable]
49
75
  end
76
+
77
+ # Turn arrays of Documents into arrays of DocumentDrops
78
+ # so that the to_json in render pulls the hash not the content
79
+ if value.class == Array
80
+ value = value.map {|v| v.class == Jekyll::Document ? v.to_liquid : v}
81
+ end
50
82
 
51
83
  params[key] = value
52
84
  end
@@ -59,6 +91,8 @@ module JekyllSvelteSlabs
59
91
  end
60
92
  end
61
93
 
94
+ clean_params(context, params)
95
+
62
96
  params
63
97
  end
64
98
 
@@ -101,17 +135,22 @@ module JekyllSvelteSlabs
101
135
  # site = context.registers[:site]
102
136
  # puts site
103
137
 
138
+ slab_config = context['site']['svelte_slabs'] || {}
139
+ method = slab_config['method'] || "window"
140
+
104
141
  file = render_variable(context) || @file
105
142
  validate_file_name(file)
106
143
 
107
144
  svelte_data = @params ? parse_params(context).to_json : "{}"
145
+ svelte_data = "\"#{Base64.strict_encode64(svelte_data)}\"" if method == "window_b"
108
146
  endpoint = Digest::MD5.hexdigest(svelte_data)
109
147
 
110
148
  <<~MSG
111
149
  <script>
112
- window["#{endpoint}"] = #{svelte_data};
150
+ window.svelteSlabs = window.svelteSlabs || {};
151
+ window.svelteSlabs["#{endpoint}"] = #{svelte_data};
113
152
  </script>
114
- <div data-svelte-slab="#{file}" data-svelte-slab-props="window:#{endpoint}">
153
+ <div data-svelte-slab="#{file}" data-svelte-slab-props="#{method}:#{endpoint}">
115
154
  #{text}
116
155
  </div>
117
156
  MSG
@@ -121,4 +160,4 @@ module JekyllSvelteSlabs
121
160
 
122
161
  end
123
162
 
124
- Liquid::Template.register_tag("svelte", JekyllSvelte::Tag)
163
+ Liquid::Template.register_tag("svelte", JekyllSvelteSlabs::Tag)
@@ -1,3 +1,3 @@
1
1
  module JekyllSvelteSlabs
2
- VERSION = "0.0.1"
2
+ VERSION = "0.0.8"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: jekyll-svelte-slabs
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.8
5
5
  platform: ruby
6
6
  authors:
7
7
  - Liam Bigelow
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-11-12 00:00:00.000000000 Z
11
+ date: 2021-06-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: jekyll