jekyll-svelte-slabs 0.0.8 → 0.1.1
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 +4 -4
- data/lib/jekyll-svelte-slabs/version.rb +1 -1
- data/lib/jekyll-svelte-slabs.rb +28 -15
- data/lib/output-data.rb +30 -0
- data/lib/page-without-a-file.rb +10 -0
- 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: dc99c43ede6406e77e79fb8159094ca8e48d5db1b0e49af08d154a6a2bb5f546
|
4
|
+
data.tar.gz: 4e3669bfde07c63595eb24690aa62a0f7dcd21ebe5a153a84e05005ca7462def
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c1b87f25bf1e733b92b2ec580dc42a96c702a5a07ff74c5753cde4f46cb204b88cc8cae284ab9b843dc63021a285fc5d34e6004145f1330d0f48de40943510d1
|
7
|
+
data.tar.gz: 88a4f274b4caff4571694ce74437e8d0423e4a4afd7c6f3230675cf4891572321448e4a6650003b37bb1a49a75a6327d669537f972d26f5a14d1f6ce6bf895d1
|
data/lib/jekyll-svelte-slabs.rb
CHANGED
@@ -1,6 +1,7 @@
|
|
1
1
|
require "base64"
|
2
2
|
require 'json'
|
3
3
|
require 'digest'
|
4
|
+
require_relative "./output-data"
|
4
5
|
|
5
6
|
module JekyllSvelteSlabs
|
6
7
|
|
@@ -130,30 +131,42 @@ module JekyllSvelteSlabs
|
|
130
131
|
|
131
132
|
def render(context)
|
132
133
|
text = super
|
133
|
-
|
134
|
+
site = context['site']
|
134
135
|
|
135
|
-
|
136
|
-
# puts site
|
137
|
-
|
138
|
-
slab_config = context['site']['svelte_slabs'] || {}
|
136
|
+
slab_config = site['svelte_slabs'] || {}
|
139
137
|
method = slab_config['method'] || "window"
|
140
138
|
|
141
139
|
file = render_variable(context) || @file
|
142
140
|
validate_file_name(file)
|
143
141
|
|
144
142
|
svelte_data = @params ? parse_params(context).to_json : "{}"
|
145
|
-
|
143
|
+
|
144
|
+
svelte_data = case method
|
145
|
+
when 'window_b' then "\"#{Base64.strict_encode64(svelte_data)}\""
|
146
|
+
when 'window_e' then "`#{svelte_data.gsub("<", "&rawlt;").gsub("`", "\`")}`"
|
147
|
+
else svelte_data
|
148
|
+
end
|
149
|
+
|
146
150
|
endpoint = Digest::MD5.hexdigest(svelte_data)
|
147
151
|
|
148
|
-
|
149
|
-
|
150
|
-
|
151
|
-
|
152
|
-
|
153
|
-
|
154
|
-
|
155
|
-
|
156
|
-
|
152
|
+
if method == 'endpoint'
|
153
|
+
JekyllSvelteSlabs::SiteData.output(context.registers[:site], svelte_data, endpoint);
|
154
|
+
<<~MSG
|
155
|
+
<div data-svelte-slab="#{file}" data-svelte-slab-props="#{method}:#{endpoint}">
|
156
|
+
#{text}
|
157
|
+
</div>
|
158
|
+
MSG
|
159
|
+
else
|
160
|
+
<<~MSG
|
161
|
+
<script>
|
162
|
+
window.svelteSlabs = window.svelteSlabs || {};
|
163
|
+
window.svelteSlabs["#{endpoint}"] = #{svelte_data};
|
164
|
+
</script>
|
165
|
+
<div data-svelte-slab="#{file}" data-svelte-slab-props="#{method}:#{endpoint}">
|
166
|
+
#{text}
|
167
|
+
</div>
|
168
|
+
MSG
|
169
|
+
end
|
157
170
|
end
|
158
171
|
|
159
172
|
end
|
data/lib/output-data.rb
ADDED
@@ -0,0 +1,30 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require "json/ext"
|
4
|
+
require_relative "./page-without-a-file"
|
5
|
+
|
6
|
+
module JekyllSvelteSlabs
|
7
|
+
class SiteData
|
8
|
+
def self.output(site, data, filename)
|
9
|
+
@site = site
|
10
|
+
|
11
|
+
generate_file(filename, data)
|
12
|
+
end
|
13
|
+
|
14
|
+
def self.generate_file(filename, content)
|
15
|
+
dest = destination_json_path(filename)
|
16
|
+
FileUtils.mkdir_p(File.dirname(dest))
|
17
|
+
File.open(dest, "w") { |file| file.write(content) }
|
18
|
+
@site.keep_files ||= []
|
19
|
+
@site.keep_files << json_path(filename)
|
20
|
+
end
|
21
|
+
|
22
|
+
def self.destination_json_path(filename)
|
23
|
+
Jekyll.sanitized_path(@site.dest, json_path(filename))
|
24
|
+
end
|
25
|
+
|
26
|
+
def self.json_path(filename)
|
27
|
+
"_slabs/#{filename}.json"
|
28
|
+
end
|
29
|
+
end
|
30
|
+
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.
|
4
|
+
version: 0.1.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Liam Bigelow
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-
|
11
|
+
date: 2021-09-30 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: jekyll
|
@@ -39,6 +39,8 @@ extra_rdoc_files: []
|
|
39
39
|
files:
|
40
40
|
- lib/jekyll-svelte-slabs.rb
|
41
41
|
- lib/jekyll-svelte-slabs/version.rb
|
42
|
+
- lib/output-data.rb
|
43
|
+
- lib/page-without-a-file.rb
|
42
44
|
homepage: https://github.com/cloudcannon/svelte-slabs
|
43
45
|
licenses:
|
44
46
|
- MIT
|