japr 0.3.2 → 0.4.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/README.md +8 -8
- data/lib/japr.rb +2 -1
- data/lib/japr/converter.rb +7 -0
- data/lib/japr/extensions/liquid/liquid_block_extensions.rb +27 -22
- data/lib/japr/pipeline.rb +78 -75
- data/lib/japr/template.rb +8 -0
- data/lib/japr/templates/css_tag_template.rb +4 -1
- data/lib/japr/templates/javascript_tag_template.rb +4 -1
- data/lib/japr/templates/template_helper.rb +14 -0
- data/lib/japr/version.rb +1 -1
- metadata +44 -52
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 87d28ef23acc5a0f92c4cd7d583b6d2fce8c8704
|
4
|
+
data.tar.gz: 5b09118929232fd3f5c18409c702781f67a39d46
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 95e903e0e43c4491dcde84b0a463c668e6ec4085523f9064e7e76eabafef913e8c312c5188a1dbb72396595e33f440adb92f85d4aa40a16e5e1b9e265f9ee89b
|
7
|
+
data.tar.gz: 81e8bbbc83d1f671906f3c4861c4a16645fac86f54347a51277db7af63ec070606ba35d193d918a4a509472af63e8b0e5fce0be63c2b40a65357b9cdbfc2abe9
|
data/README.md
CHANGED
@@ -1,10 +1,10 @@
|
|
1
1
|
# JAPR (Jekyll Asset Pipeline Reborn)
|
2
2
|
|
3
3
|
[![Gem Version](https://badge.fury.io/rb/japr.png)](http://badge.fury.io/rb/japr)
|
4
|
-
[![Build Status](https://secure.travis-ci.org/
|
5
|
-
[![Coverage Status](https://coveralls.io/repos/
|
6
|
-
[![Dependency Status](https://gemnasium.com/
|
7
|
-
[![Code Climate](https://codeclimate.com/github/
|
4
|
+
[![Build Status](https://secure.travis-ci.org/janosrusiczki/japr.png)](https://travis-ci.org/janosrusiczki/japr)
|
5
|
+
[![Coverage Status](https://coveralls.io/repos/janosrusiczki/japr/badge.png?branch=master)](https://coveralls.io/r/janosrusiczki/japr?branch=master)
|
6
|
+
[![Dependency Status](https://gemnasium.com/janosrusiczki/japr.png)](https://gemnasium.com/janosrusiczki/japr)
|
7
|
+
[![Code Climate](https://codeclimate.com/github/janosrusiczki/japr.png)](https://codeclimate.com/github/janosrusiczki/japr)
|
8
8
|
|
9
9
|
JAPR is a powerful asset pipeline that automatically collects, converts and compresses / minifies your site's JavaScript and CSS assets when you compile your [Jekyll](http://jekyllrb.com/) site.
|
10
10
|
|
@@ -349,21 +349,21 @@ Setting | Default | Description
|
|
349
349
|
|
350
350
|
5. Instead of running the `jekyll` command to compile your site, you should use Octopress' rake commands (e.g. `rake generate`) as outlined [here](http://octopress.org/docs/blogging/).
|
351
351
|
|
352
|
-
If you have any difficulties using JAPR with Octopress, please [open an issue](http://github.com/
|
352
|
+
If you have any difficulties using JAPR with Octopress, please [open an issue](http://github.com/janosrusiczki/japr/issues).
|
353
353
|
|
354
354
|
## Contribute
|
355
355
|
|
356
|
-
You can contribute to the JAPR by submitting a pull request [via GitHub](https://github.com/
|
356
|
+
You can contribute to the JAPR by submitting a pull request [via GitHub](https://github.com/janosrusiczki/japr). There are a few areas that need improvement:
|
357
357
|
|
358
358
|
- __Tests, tests, tests.__ **This project is now almost fully tested.**
|
359
359
|
- __Handle remote assets.__ Right now, JAPR does not provide any way to include remote assets in bundles unless you save them locally before generating your site. Moshen's [Jekyll Asset Bundler](https://github.com/moshen/jekyll-asset_bundler) allows you to include remote assets, which is pretty interesting. That said, it is generally better to keep remote assets separate so that they load asynchronously.
|
360
360
|
- __Successive preprocessing.__ Currently you can only preprocess a file once. It would be better if you could run an asset through multiple preprocessors before it gets compressed and bundled. **As of v0.1.0, JAPR now supports successive preprocessing.**
|
361
361
|
|
362
|
-
If you have any ideas or you would like to see anything else improved please use the [issues section](https://github.com/
|
362
|
+
If you have any ideas or you would like to see anything else improved please use the [issues section](https://github.com/janosrusiczki/japr/issues).
|
363
363
|
|
364
364
|
## Community
|
365
365
|
|
366
|
-
- Here is a list of [sites that use JAPR](http://github.com/
|
366
|
+
- Here is a list of [sites that use JAPR](http://github.com/janosrusiczki/japr/wiki/Sites-that-use-JAPR). Feel free to add your site to the list if you want.
|
367
367
|
|
368
368
|
## Credits
|
369
369
|
|
data/lib/japr.rb
CHANGED
@@ -28,6 +28,7 @@ require 'japr/asset'
|
|
28
28
|
require 'japr/converter'
|
29
29
|
require 'japr/compressor'
|
30
30
|
require 'japr/template'
|
31
|
+
require 'japr/templates/template_helper'
|
31
32
|
require 'japr/templates/javascript_tag_template'
|
32
33
|
require 'japr/templates/css_tag_template'
|
33
34
|
require 'japr/pipeline'
|
@@ -50,5 +51,5 @@ module JAPR
|
|
50
51
|
'bundle' => true,
|
51
52
|
'compress' => true,
|
52
53
|
'gzip' => false
|
53
|
-
}
|
54
|
+
}.freeze
|
54
55
|
end
|
data/lib/japr/converter.rb
CHANGED
@@ -18,6 +18,13 @@ module JAPR
|
|
18
18
|
''
|
19
19
|
end
|
20
20
|
|
21
|
+
# Finds a converter class based on a filename
|
22
|
+
def self.klass(filename)
|
23
|
+
JAPR::Converter.subclasses.select do |c|
|
24
|
+
c.filetype == File.extname(filename).downcase
|
25
|
+
end.last
|
26
|
+
end
|
27
|
+
|
21
28
|
# Logic to convert assets
|
22
29
|
#
|
23
30
|
# Available instance variables:
|
@@ -12,30 +12,35 @@ module JAPR
|
|
12
12
|
|
13
13
|
def render(context)
|
14
14
|
site = context.registers[:site]
|
15
|
-
config = site.config
|
15
|
+
config = site.config.fetch('asset_pipeline', {})
|
16
16
|
|
17
17
|
# Run Jekyll Asset Pipeline
|
18
|
-
pipeline, cached =
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
18
|
+
pipeline, cached = run_pipeline(site, config)
|
19
|
+
|
20
|
+
return nil unless pipeline.is_a?(Pipeline)
|
21
|
+
|
22
|
+
# Prevent Jekyll from cleaning up saved assets if new pipeline
|
23
|
+
preserve_assets(site, config, pipeline) unless cached
|
24
|
+
|
25
|
+
# Return HTML tag pointing to asset
|
26
|
+
pipeline.html
|
27
|
+
end
|
28
|
+
|
29
|
+
private
|
30
|
+
|
31
|
+
def run_pipeline(site, config)
|
32
|
+
Pipeline.run(nodelist.first, @markup.strip, site.source, site.dest,
|
33
|
+
self.class.tag_name, self.class.output_type, config)
|
34
|
+
end
|
35
|
+
|
36
|
+
def preserve_assets(site, config, pipeline)
|
37
|
+
pipeline.assets.each do |asset|
|
38
|
+
config = JAPR::DEFAULTS.merge(config)
|
39
|
+
staging_path = File.expand_path(File.join(site.source,
|
40
|
+
config['staging_path']))
|
41
|
+
site.static_files << Jekyll::StaticFile.new(site, staging_path,
|
42
|
+
asset.output_path,
|
43
|
+
asset.filename)
|
39
44
|
end
|
40
45
|
end
|
41
46
|
end
|
data/lib/japr/pipeline.rb
CHANGED
@@ -1,11 +1,12 @@
|
|
1
1
|
module JAPR
|
2
|
+
# rubocop:disable ClassLength
|
2
3
|
class Pipeline
|
3
4
|
class << self
|
4
5
|
# Generate hash based on manifest
|
5
6
|
def hash(source, manifest, options = {})
|
6
7
|
options = DEFAULTS.merge(options)
|
7
8
|
begin
|
8
|
-
Digest::MD5.hexdigest(YAML.
|
9
|
+
Digest::MD5.hexdigest(YAML.safe_load(manifest).map! do |path|
|
9
10
|
"#{path}#{File.mtime(File.join(source, path)).to_i}"
|
10
11
|
end.join.concat(options.to_s))
|
11
12
|
rescue Exception => e
|
@@ -20,32 +21,18 @@ module JAPR
|
|
20
21
|
hash = hash(source, manifest, config)
|
21
22
|
|
22
23
|
# Check if pipeline has been cached
|
23
|
-
if cache.key?(hash)
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
end
|
36
|
-
|
37
|
-
# Add processed pipeline to cache
|
38
|
-
cache[hash] = pipeline
|
39
|
-
|
40
|
-
# Return newly processed pipeline and cached status
|
41
|
-
return pipeline, false
|
42
|
-
rescue Exception => e
|
43
|
-
# Add exception to cache
|
44
|
-
cache[hash] = e
|
45
|
-
|
46
|
-
# Re-raise the exception
|
47
|
-
raise e
|
48
|
-
end
|
24
|
+
return cache[hash], true if cache.key?(hash)
|
25
|
+
|
26
|
+
begin
|
27
|
+
puts "Processing '#{tag}' manifest '#{prefix}'"
|
28
|
+
pipeline = new(manifest, prefix, source, destination, type, config)
|
29
|
+
process_pipeline(hash, pipeline)
|
30
|
+
rescue Exception => e
|
31
|
+
# Add exception to cache
|
32
|
+
cache[hash] = e
|
33
|
+
|
34
|
+
# Re-raise the exception
|
35
|
+
raise e
|
49
36
|
end
|
50
37
|
end
|
51
38
|
|
@@ -64,17 +51,31 @@ module JAPR
|
|
64
51
|
config = DEFAULTS.merge(config)
|
65
52
|
staging_path = File.join(source, config['staging_path'])
|
66
53
|
FileUtils.rm_rf(staging_path)
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
raise e
|
54
|
+
rescue Exception => e
|
55
|
+
puts "Failed to remove staged assets: #{e.message}"
|
56
|
+
# Re-raise the exception
|
57
|
+
raise e
|
72
58
|
end
|
73
59
|
|
74
60
|
# Add prefix to output
|
75
61
|
def puts(message)
|
76
62
|
$stdout.puts("Asset Pipeline: #{message}")
|
77
63
|
end
|
64
|
+
|
65
|
+
private
|
66
|
+
|
67
|
+
def process_pipeline(hash, pipeline)
|
68
|
+
pipeline.assets.each do |asset|
|
69
|
+
puts "Saved '#{asset.filename}' to " \
|
70
|
+
"'#{pipeline.destination}/#{asset.output_path}'"
|
71
|
+
end
|
72
|
+
|
73
|
+
# Add processed pipeline to cache
|
74
|
+
cache[hash] = pipeline
|
75
|
+
|
76
|
+
# Return newly processed pipeline and cached status
|
77
|
+
[pipeline, false]
|
78
|
+
end
|
78
79
|
end
|
79
80
|
|
80
81
|
# Initialize new pipeline
|
@@ -89,7 +90,7 @@ module JAPR
|
|
89
90
|
process
|
90
91
|
end
|
91
92
|
|
92
|
-
attr_reader :assets, :html
|
93
|
+
attr_reader :assets, :html, :destination
|
93
94
|
|
94
95
|
private
|
95
96
|
|
@@ -106,17 +107,17 @@ module JAPR
|
|
106
107
|
|
107
108
|
# Collect assets based on manifest
|
108
109
|
def collect
|
109
|
-
@assets = YAML.
|
110
|
+
@assets = YAML.safe_load(@manifest).map! do |path|
|
110
111
|
full_path = File.join(@source, path)
|
111
112
|
File.open(File.join(@source, path)) do |file|
|
112
113
|
JAPR::Asset.new(file.read, File.basename(path),
|
113
114
|
File.dirname(full_path))
|
114
115
|
end
|
115
116
|
end
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
117
|
+
rescue Exception => e
|
118
|
+
puts 'Asset Pipeline: Failed to load assets from provided ' \
|
119
|
+
"manifest: #{e.message}"
|
120
|
+
raise e
|
120
121
|
end
|
121
122
|
|
122
123
|
# Convert assets based on the file extension if converter is defined
|
@@ -126,36 +127,37 @@ module JAPR
|
|
126
127
|
finished = false
|
127
128
|
while finished == false
|
128
129
|
# Find a converter to use
|
129
|
-
klass = JAPR::Converter.
|
130
|
-
c.filetype == File.extname(asset.filename).downcase
|
131
|
-
end.last
|
130
|
+
klass = JAPR::Converter.klass(asset.filename)
|
132
131
|
|
133
132
|
# Convert asset if converter is found
|
134
133
|
if klass.nil?
|
135
134
|
finished = true
|
136
135
|
else
|
137
|
-
|
138
|
-
# Convert asset content
|
139
|
-
converter = klass.new(asset)
|
140
|
-
|
141
|
-
# Replace asset content and filename
|
142
|
-
asset.content = converter.converted
|
143
|
-
asset.filename = File.basename(asset.filename, '.*')
|
144
|
-
|
145
|
-
# Add back the output extension if no extension left
|
146
|
-
if File.extname(asset.filename) == ''
|
147
|
-
asset.filename = "#{asset.filename}#{@type}"
|
148
|
-
end
|
149
|
-
rescue Exception => e
|
150
|
-
puts "Asset Pipeline: Failed to convert '#{asset.filename}' " \
|
151
|
-
"with '#{klass}': #{e.message}"
|
152
|
-
raise e
|
153
|
-
end
|
136
|
+
convert_asset(klass, asset)
|
154
137
|
end
|
155
138
|
end
|
156
139
|
end
|
157
140
|
end
|
158
141
|
|
142
|
+
# Convert an asset with a given converter class
|
143
|
+
def convert_asset(klass, asset)
|
144
|
+
# Convert asset content
|
145
|
+
converter = klass.new(asset)
|
146
|
+
|
147
|
+
# Replace asset content and filename
|
148
|
+
asset.content = converter.converted
|
149
|
+
asset.filename = File.basename(asset.filename, '.*')
|
150
|
+
|
151
|
+
# Add back the output extension if no extension left
|
152
|
+
if File.extname(asset.filename) == ''
|
153
|
+
asset.filename = "#{asset.filename}#{@type}"
|
154
|
+
end
|
155
|
+
rescue Exception => e
|
156
|
+
puts "Asset Pipeline: Failed to convert '#{asset.filename}' " \
|
157
|
+
"with '#{klass}': #{e.message}"
|
158
|
+
raise e
|
159
|
+
end
|
160
|
+
|
159
161
|
# Bundle multiple assets into a single asset
|
160
162
|
def bundle
|
161
163
|
content = @assets.map(&:content).join("\n")
|
@@ -172,7 +174,7 @@ module JAPR
|
|
172
174
|
c.filetype == @type
|
173
175
|
end.last
|
174
176
|
|
175
|
-
|
177
|
+
break unless klass
|
176
178
|
|
177
179
|
begin
|
178
180
|
asset.content = klass.new(asset.content).compressed
|
@@ -202,34 +204,35 @@ module JAPR
|
|
202
204
|
|
203
205
|
@assets.each do |asset|
|
204
206
|
directory = File.join(@source, staging_path, output_path)
|
205
|
-
|
206
|
-
|
207
|
-
begin
|
208
|
-
# Save file to disk
|
209
|
-
File.open(File.join(directory, asset.filename), 'w') do |file|
|
210
|
-
file.write(asset.content)
|
211
|
-
end
|
212
|
-
rescue Exception => e
|
213
|
-
puts "Asset Pipeline: Failed to save '#{asset.filename}' to " \
|
214
|
-
"disk: #{e.message}"
|
215
|
-
raise e
|
216
|
-
end
|
207
|
+
write_asset_file(directory, asset)
|
217
208
|
|
218
209
|
# Store output path of saved file
|
219
210
|
asset.output_path = output_path
|
220
211
|
end
|
221
212
|
end
|
222
213
|
|
214
|
+
# Write asset file to disk
|
215
|
+
def write_asset_file(directory, asset)
|
216
|
+
FileUtils.mkpath(directory) unless File.directory?(directory)
|
217
|
+
begin
|
218
|
+
# Save file to disk
|
219
|
+
File.open(File.join(directory, asset.filename), 'w') do |file|
|
220
|
+
file.write(asset.content)
|
221
|
+
end
|
222
|
+
rescue Exception => e
|
223
|
+
puts "Asset Pipeline: Failed to save '#{asset.filename}' to " \
|
224
|
+
"disk: #{e.message}"
|
225
|
+
raise e
|
226
|
+
end
|
227
|
+
end
|
228
|
+
|
223
229
|
# Generate html markup pointing to assets
|
224
230
|
def markup
|
225
231
|
# Use display_path if defined, otherwise use output_path in url
|
226
232
|
display_path = @options['display_path'] || @options['output_path']
|
227
233
|
|
228
234
|
@html = @assets.map do |asset|
|
229
|
-
|
230
|
-
t.filetype == File.extname(asset.filename).downcase
|
231
|
-
end
|
232
|
-
klass = klasses.sort! { |x, y| x.priority <=> y.priority }.last
|
235
|
+
klass = JAPR::Template.klass(asset.filename)
|
233
236
|
html = klass.new(display_path, asset.filename).html unless klass.nil?
|
234
237
|
|
235
238
|
html
|
data/lib/japr/template.rb
CHANGED
@@ -17,6 +17,14 @@ module JAPR
|
|
17
17
|
0
|
18
18
|
end
|
19
19
|
|
20
|
+
# Finds a template class based on a filename
|
21
|
+
def self.klass(filename)
|
22
|
+
klasses = JAPR::Template.subclasses.select do |t|
|
23
|
+
t.filetype == File.extname(filename).downcase
|
24
|
+
end
|
25
|
+
klasses.sort! { |x, y| x.priority <=> y.priority }.last
|
26
|
+
end
|
27
|
+
|
20
28
|
# HTML output to return
|
21
29
|
#
|
22
30
|
# Available instance variables:
|
@@ -1,6 +1,8 @@
|
|
1
1
|
module JAPR
|
2
2
|
# Default output for CSS assets
|
3
3
|
class CssTagTemplate < JAPR::Template
|
4
|
+
include JAPR::TemplateHelper
|
5
|
+
|
4
6
|
def self.filetype
|
5
7
|
'.css'
|
6
8
|
end
|
@@ -10,7 +12,8 @@ module JAPR
|
|
10
12
|
end
|
11
13
|
|
12
14
|
def html
|
13
|
-
"<link href='
|
15
|
+
"<link href='#{output_path}/#{@filename}' " \
|
16
|
+
"rel='stylesheet' type='text/css' />"
|
14
17
|
end
|
15
18
|
end
|
16
19
|
end
|
@@ -1,6 +1,8 @@
|
|
1
1
|
module JAPR
|
2
2
|
# Default output for JavaScript assets
|
3
3
|
class JavaScriptTagTemplate < JAPR::Template
|
4
|
+
include JAPR::TemplateHelper
|
5
|
+
|
4
6
|
def self.filetype
|
5
7
|
'.js'
|
6
8
|
end
|
@@ -10,7 +12,8 @@ module JAPR
|
|
10
12
|
end
|
11
13
|
|
12
14
|
def html
|
13
|
-
"<script src='
|
15
|
+
"<script src='#{output_path}/#{@filename}' " \
|
16
|
+
"type='text/javascript'></script>"
|
14
17
|
end
|
15
18
|
end
|
16
19
|
end
|
data/lib/japr/version.rb
CHANGED
metadata
CHANGED
@@ -1,130 +1,122 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: japr
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
5
|
-
prerelease:
|
4
|
+
version: 0.4.0
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- Matt Hodan
|
9
8
|
autorequire:
|
10
9
|
bindir: bin
|
11
10
|
cert_chain: []
|
12
|
-
date:
|
11
|
+
date: 2017-12-03 00:00:00.000000000 Z
|
13
12
|
dependencies:
|
14
13
|
- !ruby/object:Gem::Dependency
|
15
14
|
name: jekyll
|
16
15
|
requirement: !ruby/object:Gem::Requirement
|
17
|
-
none: false
|
18
16
|
requirements:
|
19
|
-
- - ~>
|
17
|
+
- - "~>"
|
20
18
|
- !ruby/object:Gem::Version
|
21
|
-
version: '
|
19
|
+
version: '3.5'
|
22
20
|
type: :runtime
|
23
21
|
prerelease: false
|
24
22
|
version_requirements: !ruby/object:Gem::Requirement
|
25
|
-
none: false
|
26
23
|
requirements:
|
27
|
-
- - ~>
|
24
|
+
- - "~>"
|
28
25
|
- !ruby/object:Gem::Version
|
29
|
-
version: '
|
26
|
+
version: '3.5'
|
30
27
|
- !ruby/object:Gem::Dependency
|
31
28
|
name: liquid
|
32
29
|
requirement: !ruby/object:Gem::Requirement
|
33
|
-
none: false
|
34
30
|
requirements:
|
35
|
-
- - ~>
|
31
|
+
- - "~>"
|
36
32
|
- !ruby/object:Gem::Version
|
37
|
-
version: '
|
33
|
+
version: '4.0'
|
38
34
|
type: :runtime
|
39
35
|
prerelease: false
|
40
36
|
version_requirements: !ruby/object:Gem::Requirement
|
41
|
-
none: false
|
42
37
|
requirements:
|
43
|
-
- - ~>
|
38
|
+
- - "~>"
|
44
39
|
- !ruby/object:Gem::Version
|
45
|
-
version: '
|
40
|
+
version: '4.0'
|
46
41
|
- !ruby/object:Gem::Dependency
|
47
|
-
name:
|
42
|
+
name: minitest
|
48
43
|
requirement: !ruby/object:Gem::Requirement
|
49
|
-
none: false
|
50
44
|
requirements:
|
51
|
-
- - ~>
|
45
|
+
- - "~>"
|
52
46
|
- !ruby/object:Gem::Version
|
53
|
-
version: '
|
47
|
+
version: '5.2'
|
54
48
|
type: :development
|
55
49
|
prerelease: false
|
56
50
|
version_requirements: !ruby/object:Gem::Requirement
|
57
|
-
none: false
|
58
51
|
requirements:
|
59
|
-
- - ~>
|
52
|
+
- - "~>"
|
60
53
|
- !ruby/object:Gem::Version
|
61
|
-
version: '
|
54
|
+
version: '5.2'
|
62
55
|
- !ruby/object:Gem::Dependency
|
63
|
-
name:
|
56
|
+
name: rake
|
64
57
|
requirement: !ruby/object:Gem::Requirement
|
65
|
-
none: false
|
66
58
|
requirements:
|
67
|
-
- - ~>
|
59
|
+
- - "~>"
|
68
60
|
- !ruby/object:Gem::Version
|
69
|
-
version: '
|
61
|
+
version: '10.0'
|
70
62
|
type: :development
|
71
63
|
prerelease: false
|
72
64
|
version_requirements: !ruby/object:Gem::Requirement
|
73
|
-
none: false
|
74
65
|
requirements:
|
75
|
-
- - ~>
|
66
|
+
- - "~>"
|
76
67
|
- !ruby/object:Gem::Version
|
77
|
-
version: '
|
78
|
-
description:
|
79
|
-
|
80
|
-
|
68
|
+
version: '10.0'
|
69
|
+
description: |2
|
70
|
+
Jekyll Asset Pipeline reborn adds asset preprocessing (CoffeeScript, Sass,
|
71
|
+
Less, ERB, etc.) and asset compression / minification / gzip (Yahoo YUI
|
72
|
+
Compressor, Google Closure Compiler, etc.) to Jekyll.'
|
81
73
|
email: japr@clicktrackheart.com
|
82
74
|
executables: []
|
83
75
|
extensions: []
|
84
76
|
extra_rdoc_files: []
|
85
77
|
files:
|
78
|
+
- LICENSE
|
79
|
+
- README.md
|
80
|
+
- lib/japr.rb
|
81
|
+
- lib/japr/asset.rb
|
86
82
|
- lib/japr/compressor.rb
|
87
83
|
- lib/japr/converter.rb
|
88
|
-
- lib/japr/
|
89
|
-
- lib/japr/
|
90
|
-
- lib/japr/version.rb
|
91
|
-
- lib/japr/template.rb
|
92
|
-
- lib/japr/extensions/liquid/asset_tags/javascript_asset_tag.rb
|
93
|
-
- lib/japr/extensions/liquid/asset_tags/css_asset_tag.rb
|
84
|
+
- lib/japr/extensions/jekyll/site.rb
|
85
|
+
- lib/japr/extensions/jekyll/site_extensions.rb
|
94
86
|
- lib/japr/extensions/liquid/asset_tag.rb
|
87
|
+
- lib/japr/extensions/liquid/asset_tags/css_asset_tag.rb
|
88
|
+
- lib/japr/extensions/liquid/asset_tags/javascript_asset_tag.rb
|
95
89
|
- lib/japr/extensions/liquid/liquid_block_extensions.rb
|
96
|
-
- lib/japr/extensions/jekyll/site_extensions.rb
|
97
|
-
- lib/japr/extensions/jekyll/site.rb
|
98
90
|
- lib/japr/extensions/ruby/subclass_tracking.rb
|
99
91
|
- lib/japr/pipeline.rb
|
100
|
-
- lib/japr/
|
101
|
-
- lib/japr.rb
|
102
|
-
-
|
103
|
-
-
|
104
|
-
|
92
|
+
- lib/japr/template.rb
|
93
|
+
- lib/japr/templates/css_tag_template.rb
|
94
|
+
- lib/japr/templates/javascript_tag_template.rb
|
95
|
+
- lib/japr/templates/template_helper.rb
|
96
|
+
- lib/japr/version.rb
|
97
|
+
homepage: https://github.com/janosrusiczki/japr
|
105
98
|
licenses:
|
106
99
|
- MIT
|
100
|
+
metadata: {}
|
107
101
|
post_install_message:
|
108
102
|
rdoc_options: []
|
109
103
|
require_paths:
|
110
104
|
- lib
|
111
105
|
required_ruby_version: !ruby/object:Gem::Requirement
|
112
|
-
none: false
|
113
106
|
requirements:
|
114
|
-
- -
|
107
|
+
- - ">="
|
115
108
|
- !ruby/object:Gem::Version
|
116
|
-
version:
|
109
|
+
version: 2.2.0
|
117
110
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
118
|
-
none: false
|
119
111
|
requirements:
|
120
|
-
- -
|
112
|
+
- - ">="
|
121
113
|
- !ruby/object:Gem::Version
|
122
114
|
version: '0'
|
123
115
|
requirements: []
|
124
116
|
rubyforge_project:
|
125
|
-
rubygems_version:
|
117
|
+
rubygems_version: 2.6.14
|
126
118
|
signing_key:
|
127
|
-
specification_version:
|
119
|
+
specification_version: 4
|
128
120
|
summary: A powerful asset pipeline for Jekyll that bundles, converts, and minifies
|
129
121
|
CSS and JavaScript assets.
|
130
122
|
test_files: []
|