jekyll-assets 0.3.3 → 0.3.4
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.
- data/HISTORY.md +5 -0
- data/README.md +80 -36
- data/lib/jekyll/assets_plugin/asset_file.rb +2 -10
- data/lib/jekyll/assets_plugin/environment/index_patch.rb +2 -8
- data/lib/jekyll/assets_plugin/site_patch.rb +29 -0
- data/lib/jekyll/assets_plugin/version.rb +1 -1
- data/spec/lib/jekyll/assets_plugin/site_patch_spec.rb +11 -1
- metadata +3 -3
data/HISTORY.md
CHANGED
data/README.md
CHANGED
@@ -154,8 +154,8 @@ If you want to use YUI compressor for minification, install `yui-compressor`
|
|
154
154
|
gem and put `yui` in place of `uglifier` and/or `sass` in the config file.
|
155
155
|
|
156
156
|
Let's go crazy now! Assume you want your blog's `body` background color to be
|
157
|
-
white all the time, but red in December. Just add
|
158
|
-
you can use ruby
|
157
|
+
white all the time, but red if you compiled your web-site in December. Just add
|
158
|
+
`.erb` suffix extension and you can use ruby in your asset like this:
|
159
159
|
|
160
160
|
```
|
161
161
|
// file: _assets/stylesheets/app.css.sass.erb
|
@@ -164,6 +164,11 @@ body
|
|
164
164
|
background-color: <%= (12 == Date.today.month) ? "red" : "white" %>
|
165
165
|
```
|
166
166
|
|
167
|
+
*Note* that all assets are pre-processed with Liquid. So if you just need to
|
168
|
+
output asset URL within your javascript/coffeescript or pure css, you don't
|
169
|
+
need to use ERB, just use `asset_path` Liquid tag same as you do it in your
|
170
|
+
layouts/pages. See "Liquid Assets Pre-processing" for more details.
|
171
|
+
|
167
172
|
Want more? Sure, here you are. You can use JavaScript templating with EJS or ECO
|
168
173
|
for example. Create a file `_assets/javascripts/hello.jst.ejs` with following
|
169
174
|
contents:
|
@@ -204,6 +209,18 @@ assets:
|
|
204
209
|
[amazon-s3]: http://aws.amazon.com/s3
|
205
210
|
|
206
211
|
|
212
|
+
## Liquid Assets Pre-processing
|
213
|
+
|
214
|
+
All javascript and stylesheet assets are preprocessed with Liquid automagically.
|
215
|
+
That means that you can use all liquid tags available to you in Jekyll, but most
|
216
|
+
like;y you would want it for `asset_path` tag only:
|
217
|
+
|
218
|
+
``` coffeescript
|
219
|
+
# file: _assets/javascripts/app.js.coffee
|
220
|
+
yepnope.load "{% asset_path app.css %}"
|
221
|
+
```
|
222
|
+
|
223
|
+
|
207
224
|
## Custom Vendors
|
208
225
|
|
209
226
|
Sometimes you would like to have some 3rd-party vendors. For this purposes,
|
@@ -249,8 +266,8 @@ require "jekyll-assets/compass"
|
|
249
266
|
|
250
267
|
Now you can add `@import "compass"` in your SASS assets to get Compass goodies.
|
251
268
|
|
252
|
-
*
|
253
|
-
you must require them BEFORE `jekyll-assets/compass`.
|
269
|
+
*Note* that if you want to use other than default Compass plugins/frameworks,
|
270
|
+
you must require them BEFORE `jekyll-assets/compass`.
|
254
271
|
|
255
272
|
|
256
273
|
#### Bourbon Support
|
@@ -360,38 +377,65 @@ back by any other `require`.
|
|
360
377
|
|
361
378
|
You can fine-tune configuration by editing your `_config.yml`:
|
362
379
|
|
363
|
-
|
364
|
-
|
365
|
-
|
366
|
-
|
367
|
-
|
368
|
-
|
369
|
-
|
370
|
-
|
371
|
-
|
372
|
-
|
373
|
-
|
374
|
-
|
375
|
-
|
376
|
-
|
377
|
-
|
378
|
-
|
379
|
-
|
380
|
-
|
381
|
-
|
382
|
-
|
383
|
-
|
384
|
-
|
385
|
-
|
386
|
-
|
387
|
-
|
388
|
-
|
389
|
-
|
390
|
-
|
391
|
-
|
392
|
-
|
393
|
-
|
394
|
-
|
380
|
+
``` yaml
|
381
|
+
#
|
382
|
+
# Plugin: jekyll-assets
|
383
|
+
#
|
384
|
+
assets:
|
385
|
+
#
|
386
|
+
# Pathname of the destination of generated (bundled) assets relative
|
387
|
+
# to the destination of the root.
|
388
|
+
#
|
389
|
+
dirname: assets
|
390
|
+
#
|
391
|
+
# Base URL of assets paths.
|
392
|
+
#
|
393
|
+
baseurl: /assets/
|
394
|
+
#
|
395
|
+
# Pathnames where to find assets relative to the root of the site.
|
396
|
+
#
|
397
|
+
sources:
|
398
|
+
- _assets/javascripts
|
399
|
+
- _assets/stylesheets
|
400
|
+
- _assets/images
|
401
|
+
#
|
402
|
+
# Sets compressors for the specific types of file: `js`, or `css`.
|
403
|
+
# No compression by default.
|
404
|
+
#
|
405
|
+
# Possible variants:
|
406
|
+
#
|
407
|
+
# css => 'yui', 'sass', nil
|
408
|
+
# js => 'yui', 'uglifier', nil
|
409
|
+
#
|
410
|
+
compress:
|
411
|
+
js: ~
|
412
|
+
css: ~
|
413
|
+
#
|
414
|
+
# Sets cachebusting policy for generated assets.
|
415
|
+
#
|
416
|
+
# Possible variants:
|
417
|
+
#
|
418
|
+
# none - disables cachebusting
|
419
|
+
#
|
420
|
+
# source file: _assets/javascripts/app.css
|
421
|
+
# output file: _site/assets/javascriptis/app.css
|
422
|
+
# output URL: /assets/javascripts/app.css
|
423
|
+
#
|
424
|
+
# soft - leave filenames as-is, but `?cb=<md5>` suffix for URLs generated
|
425
|
+
# with `asset_path`, `javascript` and `stylesheet`:
|
426
|
+
#
|
427
|
+
# source file: _assets/javascripts/app.css
|
428
|
+
# output file: _site/assets/javascriptis/app.css
|
429
|
+
# output URL: /assets/javascripts/app.css?cb=4f41243847da693a4f356c0486114bc6
|
430
|
+
#
|
431
|
+
# hard - (default) injects cachebusting checksum into processed filename:
|
432
|
+
#
|
433
|
+
# source file: _assets/javascripts/app.css
|
434
|
+
# output file: _site/assets/javascriptis/app-4f41243847da693a4f356c0486114bc6.css
|
435
|
+
# output URL: /assets/javascripts/app-4f41243847da693a4f356c0486114bc6.css
|
436
|
+
#
|
437
|
+
cachebust: hard
|
438
|
+
```
|
395
439
|
|
396
440
|
|
397
441
|
## Contributing
|
@@ -57,8 +57,8 @@ module Jekyll
|
|
57
57
|
|
58
58
|
def == other
|
59
59
|
case other
|
60
|
-
when AssetFile then
|
61
|
-
when Sprockets::Asset then
|
60
|
+
when AssetFile then @asset == other.asset
|
61
|
+
when Sprockets::Asset then @asset == other
|
62
62
|
else false
|
63
63
|
end
|
64
64
|
end
|
@@ -68,14 +68,6 @@ module Jekyll
|
|
68
68
|
"#<Jekyll::AssetsPlugin::AssetFile:#{asset.logical_path}>"
|
69
69
|
end
|
70
70
|
|
71
|
-
|
72
|
-
protected
|
73
|
-
|
74
|
-
|
75
|
-
def same_asset? other
|
76
|
-
other.pathname.cleanpath == asset.pathname.cleanpath
|
77
|
-
end
|
78
|
-
|
79
71
|
end
|
80
72
|
end
|
81
73
|
end
|
@@ -4,14 +4,8 @@ module Jekyll
|
|
4
4
|
module IndexPatch
|
5
5
|
|
6
6
|
def find_asset path, options = {}
|
7
|
-
|
8
|
-
asset
|
9
|
-
bundle = options[:bundle]
|
10
|
-
|
11
|
-
if asset and bundle and not site.static_files.include? asset
|
12
|
-
site.static_files << AssetFile.new(site, asset)
|
13
|
-
end
|
14
|
-
|
7
|
+
asset = super
|
8
|
+
@environment.site.bundle_asset! asset if asset and options[:bundle]
|
15
9
|
asset
|
16
10
|
end
|
17
11
|
|
@@ -11,6 +11,14 @@ module Jekyll
|
|
11
11
|
module AssetsPlugin
|
12
12
|
module SitePatch
|
13
13
|
|
14
|
+
def self.included base
|
15
|
+
base.class_eval do
|
16
|
+
alias_method :write_without_assets, :write
|
17
|
+
alias_method :write, :write_with_assets
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
|
14
22
|
def assets_config
|
15
23
|
@assets_config ||= Configuration.new(self.config["assets"] || {})
|
16
24
|
end
|
@@ -21,6 +29,11 @@ module Jekyll
|
|
21
29
|
end
|
22
30
|
|
23
31
|
|
32
|
+
def asset_files
|
33
|
+
@asset_files ||= []
|
34
|
+
end
|
35
|
+
|
36
|
+
|
24
37
|
def asset_path *args
|
25
38
|
asset = assets[*args]
|
26
39
|
baseurl = "#{assets_config.baseurl}/"
|
@@ -34,6 +47,22 @@ module Jekyll
|
|
34
47
|
end
|
35
48
|
end
|
36
49
|
|
50
|
+
|
51
|
+
def bundle_asset! asset
|
52
|
+
if not asset_files.include? asset
|
53
|
+
file = AssetFile.new self, asset
|
54
|
+
|
55
|
+
asset_files << file
|
56
|
+
static_files << file
|
57
|
+
end
|
58
|
+
end
|
59
|
+
|
60
|
+
|
61
|
+
def write_with_assets
|
62
|
+
static_files.push(*asset_files).uniq!
|
63
|
+
write_without_assets
|
64
|
+
end
|
65
|
+
|
37
66
|
end
|
38
67
|
end
|
39
68
|
end
|
@@ -45,7 +45,7 @@ module Jekyll::AssetsPlugin
|
|
45
45
|
site.assets["app.css"].to_s.should match(noise_img_re)
|
46
46
|
end
|
47
47
|
|
48
|
-
it "should be appended to the
|
48
|
+
it "should be appended to the static_files list" do
|
49
49
|
asset = site.assets["app.css"] # make sure main asset was compiled
|
50
50
|
asset = site.assets["noise.png"]
|
51
51
|
|
@@ -88,6 +88,7 @@ module Jekyll::AssetsPlugin
|
|
88
88
|
end
|
89
89
|
end
|
90
90
|
|
91
|
+
|
91
92
|
context "#assets_config" do
|
92
93
|
subject { site.assets_config }
|
93
94
|
it { should be_an_instance_of Configuration }
|
@@ -98,6 +99,15 @@ module Jekyll::AssetsPlugin
|
|
98
99
|
end
|
99
100
|
end
|
100
101
|
|
102
|
+
|
103
|
+
it "should regenerate assets upon multiple #process" do
|
104
|
+
@site.assets_config.cachebust = :none
|
105
|
+
2.times { @site.process }
|
106
|
+
|
107
|
+
@dest.join("assets", "app.css").exist?.should be_true
|
108
|
+
end
|
109
|
+
|
110
|
+
|
101
111
|
it "should be included into Jekyll::Site" do
|
102
112
|
Jekyll::Site.included_modules.should include SitePatch
|
103
113
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: jekyll-assets
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.3.
|
4
|
+
version: 0.3.4
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2013-02-
|
12
|
+
date: 2013-02-18 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: jekyll
|
@@ -219,7 +219,7 @@ rubyforge_project:
|
|
219
219
|
rubygems_version: 1.8.23
|
220
220
|
signing_key:
|
221
221
|
specification_version: 3
|
222
|
-
summary: jekyll-assets-0.3.
|
222
|
+
summary: jekyll-assets-0.3.4
|
223
223
|
test_files:
|
224
224
|
- spec/fixtures/.gitignore
|
225
225
|
- spec/fixtures/_assets/app.css.erb
|