jekyll-assets 2.0.0 → 2.0.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 03eb71fd5a47c2e0e6751282a641078cf0073323
4
- data.tar.gz: fe08b59368965a3972b499351cbe582604d07041
3
+ metadata.gz: e7573064d37c19cca2f804d107adb47c71f242be
4
+ data.tar.gz: a0f730bae06638cdcd539dbea963c9da1e06d481
5
5
  SHA512:
6
- metadata.gz: ab6aedd38ebadf43e71fecd4548c254afdc7143c45dcc85f32fa2e86b6295a62eab8bcb828546dfb6d97328e07acc16a899fd0cad1d8b01b18ab7d8823717854
7
- data.tar.gz: d1b30bbebba9a6cfe9a77a7ef563088e0d168d1d83d83a4b097f9ba46b017f77229c919c98cd592ebcb54a17062529e0af414267e0a1d9317f0d704782d472b1
6
+ metadata.gz: 114f38166acfaeb87c0759bedc1db1e3f74cae7e9db6f89705770a5bf060ed5eec11cc6de78dfae69b016fccc676f1e42223d32479ff20538bed5d8550f4e77a
7
+ data.tar.gz: d84348b7a34237abc041c106e7bff9f684f592854c70b08aea694b841f5ea8470a5e4146acab4bccabbd42f71c9b6cc6cbc7b5eb1403d6d003b29cbc38d698fc
data/README.md CHANGED
@@ -13,6 +13,10 @@ Jekyll 3 assets is an asset pipeline using Sprockets 3 to build especially
13
13
  for Jekyll 3. It utilizes new features of both Sprockets and Jekyll to achieve
14
14
  a clean and extensible assets platform for Jekyll.
15
15
 
16
+ ## Having trouble with our documentation?
17
+
18
+ If you do not understand something in our documentation please feel free to file a ticket and it will be explained and the documentation updated, however... if you have already figured out the problem please feel free to submit a pull request with clarification in the documentation and we'll happily work with you on updating it.
19
+
16
20
  ## Using Jekyll Assets with Jekyll
17
21
 
18
22
  When you are using a Gemfile and bundler you need to do nothing special to get
@@ -28,6 +32,8 @@ gems:
28
32
 
29
33
  ## Configuration
30
34
 
35
+ A lot of our configuration transforms based on the `JEKYLL_ENV` variable set in your environment. Such as digesting and whether or not to enable the CDN. Some of them can be explictly overriden but a few cannot right now. You should set your `JEKYLL_ENV=development` on your development machine and `JEKYLL_ENV=production` when building to push.
36
+
31
37
  ```yaml
32
38
  assets:
33
39
  compress:
@@ -52,6 +58,10 @@ assets:
52
58
  - _assets/js
53
59
  ```
54
60
 
61
+ ### Sources
62
+
63
+ The listed resources in the example are all defaults. It should be noted that we append your sources instead of replace our resources with yours. So if you add "_assets/folder" then we will append that to our sources and both will work.
64
+
55
65
  ### Digesting
56
66
 
57
67
  * Disable digesting by default in development.
@@ -5,6 +5,12 @@
5
5
  module Jekyll
6
6
  module Assets
7
7
  module Config
8
+ DefaultSources = %W(
9
+ _assets/css _assets/stylesheets
10
+ _assets/images _assets/img _assets/fonts
11
+ _assets/javascripts _assets/js
12
+ )
13
+
8
14
  Development = {
9
15
  "skip_baseurl_with_cdn" => false,
10
16
  "skip_prefix_with_cdn" => false,
@@ -15,13 +21,7 @@ module Jekyll
15
21
  "compress" => {
16
22
  "css" => false,
17
23
  "js" => false
18
- },
19
-
20
- "sources" => [
21
- "_assets/css", "_assets/stylesheets",
22
- "_assets/images", "_assets/img", "_assets/fonts",
23
- "_assets/javascripts", "_assets/js"
24
- ]
24
+ }
25
25
  }
26
26
 
27
27
  #
@@ -36,15 +36,23 @@ module Jekyll
36
36
 
37
37
  #
38
38
 
39
+ def self.merge_sources(jekyll, config)
40
+ config["sources"] = (DefaultSources + (config["sources"] ||= [])).map do |val|
41
+ jekyll.in_source_dir(val)
42
+ end
43
+ end
44
+
45
+ #
46
+
39
47
  def self.defaults
40
48
  %W(development test).include?(Jekyll.env) ? Development : Production
41
49
  end
42
50
 
43
51
  #
44
52
 
45
- def self.merge(nhash, ohash = defaults)
46
- ohash.merge(nhash) do |key, oval, nval|
47
- oval.is_a?(Hash) && nval.is_a?(Hash) ? merge(nval, oval) : nval
53
+ def self.merge(new_hash, old_hash = defaults)
54
+ old_hash.merge(new_hash) do |key, old_val, new_val|
55
+ old_val.is_a?(Hash) && new_val.is_a?(Hash) ? merge(new_val, old_val) : new_val
48
56
  end
49
57
  end
50
58
  end
@@ -3,5 +3,8 @@
3
3
  # Encoding: utf-8
4
4
 
5
5
  Jekyll::Assets::Hook.register :env, :init, :early do
6
- jekyll.config.store("assets", Jekyll::Assets::Config.merge(asset_config))
6
+ jekyll.config["assets"] = Jekyll::Assets::Config.merge(asset_config)
7
+ Jekyll::Assets::Config.merge_sources(
8
+ jekyll, asset_config
9
+ )
7
10
  end
@@ -74,7 +74,7 @@ module Jekyll
74
74
  # because of a single asset change.
75
75
 
76
76
  def render(context)
77
- @args.parse_liquid!(context)
77
+ args = Parser.parse_liquid(@args, context)
78
78
  site = context.registers[:site]
79
79
  page = context.registers.fetch(:page, {})
80
80
  sprockets = site.sprockets
@@ -82,7 +82,7 @@ module Jekyll
82
82
 
83
83
  asset = find_asset(sprockets)
84
84
  add_as_jekyll_dependency(site, sprockets, page, asset)
85
- process_tag(sprockets, asset)
85
+ process_tag(args, sprockets, asset)
86
86
  rescue => e
87
87
  capture_and_out_error \
88
88
  site, e
@@ -98,30 +98,30 @@ module Jekyll
98
98
  #
99
99
 
100
100
  private
101
- def process_tag(sprockets, asset)
101
+ def process_tag(args, sprockets, asset)
102
102
  sprockets.used.add(asset) unless @tag == "asset_source"
103
- Defaults.set_defaults_for!(@tag, @args ||= {}, asset)
104
- build_html(sprockets, asset)
103
+ Defaults.set_defaults_for!(@tag, args ||= {}, asset)
104
+ build_html(args, sprockets, asset)
105
105
  end
106
106
 
107
107
  #
108
108
 
109
109
  private
110
- def build_html(sprockets, asset, path = get_path(sprockets, asset))
110
+ def build_html(args, sprockets, asset, path = get_path(sprockets, asset))
111
111
  if @tag == "asset_path"
112
112
  return path
113
113
 
114
114
  elsif @tag == "asset" || @tag == "asset_source"
115
115
  return asset.to_s
116
116
 
117
- elsif @args.has_key?(:data) && @args[:data].has_key?(:uri)
117
+ elsif args.has_key?(:data) && args[:data].has_key?(:uri)
118
118
  return Tags[@tag] % [
119
- asset.data_uri, @args.to_html
119
+ asset.data_uri, Parser.to_html(args)
120
120
  ]
121
121
 
122
122
  else
123
123
  return Tags[@tag] % [
124
- path, @args.to_html
124
+ path, Parser.to_html(args)
125
125
  ]
126
126
  end
127
127
  end
@@ -61,17 +61,43 @@ module Jekyll
61
61
  set_accept
62
62
  end
63
63
 
64
- #
64
+ # TODO: In 3.0 this needs to be removed and put on the class,
65
+ # but because we need to work around the way that Liquid currently
66
+ # works it needs to remain.
65
67
 
66
68
  def parse_liquid!(context)
67
- return @args unless context.is_a?(::Liquid::Context)
68
- @args = _parse_liquid(@args, context)
69
+ @args = self.class.parse_liquid(@args, context)
69
70
  end
70
71
 
71
72
  #
72
73
 
74
+ def self.parse_liquid(hash, context)
75
+ hash = hash.to_h if hash.is_a?(self)
76
+ return hash unless context.is_a?(::Liquid::Context)
77
+ liquid = context.registers[:site].liquid_renderer.file( \
78
+ "(jekyll:assets)")
79
+
80
+ hash.inject({}) do |hash_, (key, val)|
81
+ val = liquid.parse(val).render(context) if val.is_a?(String)
82
+ val = parse_liquid(val, context) if val.is_a?(Hash)
83
+ hash_.update(
84
+ key => val
85
+ )
86
+ end
87
+ end
88
+
89
+ # TODO: In 3.0 this needs to be put on the class, but because
90
+ # we need to work around the way that Liquid currently works in
91
+ # 2.0.1 it needs to stay.
92
+
73
93
  def to_html
74
- @args.fetch(:html, {}).map do |key, val|
94
+ self.class.to_html(@args)
95
+ end
96
+
97
+ #
98
+
99
+ def self.to_html(hash)
100
+ hash.fetch(:html, {}).map do |key, val|
75
101
  %Q{ #{key}="#{val}"}
76
102
  end. \
77
103
  join
@@ -166,24 +192,6 @@ module Jekyll
166
192
  def from_shellwords
167
193
  Shellwords.shellwords(@raw_args)
168
194
  end
169
-
170
- #
171
-
172
- def _parse_liquid(hash, context)
173
- lqd = context.registers[:site].liquid_renderer. \
174
- file(raw_args)
175
-
176
- hash.inject({}) do |hsh, (key, val)|
177
- if val.is_a?(Hash) || val.is_a?(String)
178
- val = val.is_a?(Hash) ? _parse_liquid(val, context) : \
179
- lqd.parse(val).render!(context)
180
- end
181
-
182
- hsh.update(
183
- key => val
184
- )
185
- end
186
- end
187
195
  end
188
196
  end
189
197
  end
@@ -4,6 +4,6 @@
4
4
 
5
5
  module Jekyll
6
6
  module Assets
7
- VERSION="2.0.0"
7
+ VERSION="2.0.1"
8
8
  end
9
9
  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: 2.0.0
4
+ version: 2.0.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jordon Bedwell
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2015-11-18 00:00:00.000000000 Z
13
+ date: 2015-11-19 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: sprockets