jekyll-pwa-plugin 0.0.1 → 1.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/jekyll-pwa-plugin.rb +11 -7
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f0d3c05d4c62d599a2ea4c111390e9516bd54000
|
4
|
+
data.tar.gz: 3d6d1e267c7d7d22b887ffdddc894bd804bdeb15
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 144fb7db1ea13a99c0bbc7c0321de7a08b092535a2a511132fe9620937eb94a8d0dfdd008381e1bab7a0c96dbf6f83d80c0a3d330545590c141c9ea645381a8c
|
7
|
+
data.tar.gz: 3d78e0677815a97e7c2bb14c4f81391399a1a6b7b6f569f9bedf3da5d442da1ca3552672eb26f931e733ed59990362cae0589e4d4d1fde4452cd1cb6448dbdc4
|
data/lib/jekyll-pwa-plugin.rb
CHANGED
@@ -2,12 +2,12 @@ class SWHelper
|
|
2
2
|
def initialize(site, config)
|
3
3
|
@site = site
|
4
4
|
@config = config
|
5
|
-
@sw_filename = @config['sw_filename'] || 'service-worker'
|
5
|
+
@sw_filename = @config['sw_filename'] || 'service-worker.js'
|
6
6
|
end
|
7
7
|
|
8
8
|
def write_sw_register()
|
9
9
|
sw_register_filename = 'sw-register.js'
|
10
|
-
sw_register_file = File.new(
|
10
|
+
sw_register_file = File.new(@site.in_dest_dir(sw_register_filename), 'w')
|
11
11
|
# add build version in url params
|
12
12
|
sw_register_file.puts(
|
13
13
|
<<-SCRIPT
|
@@ -20,7 +20,7 @@ class SWHelper
|
|
20
20
|
|
21
21
|
def generate_workbox_precache()
|
22
22
|
directory = @config['precache_glob_directory'] || '/'
|
23
|
-
directory =
|
23
|
+
directory = @site.in_dest_dir(directory)
|
24
24
|
patterns = @config['precache_glob_patterns'] || ['**/*.{html,js,css,eot,svg,ttf,woff}']
|
25
25
|
ignores = @config['precache_glob_ignores'] || []
|
26
26
|
recent_posts_num = @config['precache_recent_posts_num']
|
@@ -78,12 +78,15 @@ class SWHelper
|
|
78
78
|
cache_name = @config['cache_name'] || 'workbox'
|
79
79
|
precache_channel_name = @config['precache_channel_name'] || 'sw-precache'
|
80
80
|
runtime_cache = @config['runtime_cache'] || []
|
81
|
+
dest_js_directory = @config['dest_js_directory'] || 'js'
|
81
82
|
|
82
83
|
# copy polyfill & workbox.js to js/
|
83
84
|
copied_vendor_files = []
|
85
|
+
script_directory = @site.in_dest_dir(dest_js_directory)
|
86
|
+
FileUtils.mkdir_p(script_directory) unless Dir.exist?(script_directory)
|
84
87
|
Dir.glob(File.expand_path('../vendor/**/*', __FILE__)) do |filepath_to_copy|
|
85
88
|
basename = File.basename(filepath_to_copy)
|
86
|
-
FileUtils.copy_file(filepath_to_copy, File.join(
|
89
|
+
FileUtils.copy_file(filepath_to_copy, File.join(script_directory, basename))
|
87
90
|
copied_vendor_files.push(basename)
|
88
91
|
end
|
89
92
|
|
@@ -103,13 +106,14 @@ class SWHelper
|
|
103
106
|
.join("\n")
|
104
107
|
|
105
108
|
# write service-worker.js
|
106
|
-
import_scripts_str = copied_vendor_files.map do |
|
109
|
+
import_scripts_str = copied_vendor_files.map do |vendor_filename|
|
110
|
+
vendor_url = File.join(@site.baseurl, dest_js_directory, vendor_filename)
|
107
111
|
<<-SCRIPT
|
108
|
-
importScripts('#{
|
112
|
+
importScripts('#{vendor_url}');
|
109
113
|
SCRIPT
|
110
114
|
end
|
111
115
|
.join("\n")
|
112
|
-
sw_file = File.new(
|
116
|
+
sw_file = File.new(@site.in_dest_dir(@sw_filename), 'w')
|
113
117
|
sw_file.puts(
|
114
118
|
<<-SCRIPT
|
115
119
|
#{import_scripts_str}
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: jekyll-pwa-plugin
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0
|
4
|
+
version: 1.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Pan Yuqi
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-11-
|
11
|
+
date: 2017-11-09 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
13
|
description: This plugin provides PWA support for Jekyll. Generate a service worker
|
14
14
|
and provides precache with Google Workbox.
|