jekyll-assets 3.0.2 → 3.0.3

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: b1f3d5acabf23dc9c653529ad978a669ce89eca2
4
- data.tar.gz: 456822d533da03d2e708402be088c8a4d4dc3a2a
3
+ metadata.gz: e09e231ecd354951decf010d5f8193058bcc351e
4
+ data.tar.gz: f555fc1f07628cef09203f1dbb7436349830b473
5
5
  SHA512:
6
- metadata.gz: 057ae05da9d4ed582e2607816f593d5328a3e45b9cb58a3ed45d962311de786f3839b845fb2c78b6048f3c9bad9fa230b5d7be2dac749d2669efdfbbbdca04a8
7
- data.tar.gz: b04b3b4811f88ee63a85323aa1bc4e17b6cb523d5ba89857e9d46040a8cf0c568baf802e3f6a382f51fcc69de8bd7f69afa8bf8528edeb9014573c0b7224da72
6
+ metadata.gz: a38a8ff2fea63684ddc9f5aea3631fad09aa13082e84c42898b7ea49a0bbaff92584ef78479eee76959de8735a9cdf9e511a5d46ba446d403ea594f9592cd0e8
7
+ data.tar.gz: b0321b53da8d9de1bab59c7224bf66d9768c2c7db12a24e84d457991b6312a905d61152457b640461570c5d38ce44a3e9232a9e03cb3028c5537158e5188b875
data/Gemfile CHANGED
@@ -5,26 +5,37 @@
5
5
  source "https://rubygems.org"
6
6
  gemspec
7
7
 
8
+ sv = "~> 4.0.beta"
9
+ gem "sprockets", ENV["SPROCKETS_VERSION"] || sv, require: false
10
+ gem "jekyll", ENV["JEKYLL_VERSION"], require: false if ENV["JEKYLL_VERSION"]
8
11
  gem "rake", require: false
12
+
13
+ # --
9
14
  group :development do
15
+ gem "travis", require: false
10
16
  gem "mini_racer", require: false if RUBY_PLATFORM != "java"
11
17
  gem "therubyrhino", require: false if RUBY_PLATFORM == "java"
12
- gem "pry", require: false if RUBY_PLATFORM != "java"
13
- end
18
+ gem "pry", require: false
14
19
 
15
- group :test do
16
- gem "simplecov", require: false
17
- gem "luna-rspec-formatters", require: false
18
- gem "rubocop", require: false
20
+ group :test do
21
+ gem "simplecov", require: false
22
+ gem "luna-rspec-formatters", require: false
23
+ gem "rubocop", require: false
24
+ end
19
25
  end
20
26
 
21
- gem "uglifier", require: false
22
- gem "autoprefixer-rails", require: false
23
- gem "font-awesome-sass", "~> 4.4", require: false
24
- gem "sprockets", ENV["SPROCKETS_VERSION"] || "~> 4.0.beta", require: false
25
- gem "jekyll", ENV["JEKYLL_VERSION"], require: false if ENV["JEKYLL_VERSION"]
26
- gem "image_optim_pack", "~> 0.5", require: false
27
- gem "image_optim", "~> 0.25", require: false
28
- gem "mini_magick", "~> 4.2", require: false
29
- gem "babel-transpiler", require: false
30
- gem "bootstrap", require: false
27
+ # --
28
+ # Anything within this group is considered optional.
29
+ # You don't need it to run Jekyll-Assets, but they may
30
+ # provide more features for you to use.
31
+ # --
32
+ group :optionals do
33
+ gem "uglifier", require: false
34
+ gem "autoprefixer-rails", require: false
35
+ gem "font-awesome-sass", "~> 4.4", require: false
36
+ gem "image_optim_pack", "~> 0.5", require: false
37
+ gem "image_optim", "~> 0.25", require: false
38
+ gem "mini_magick", "~> 4.2", require: false
39
+ gem "babel-transpiler", require: false
40
+ gem "bootstrap", require: false
41
+ end
data/README.md CHANGED
@@ -1,4 +1,9 @@
1
- [![Code Climate](https://img.shields.io/codeclimate/maintainability/envygeeks/jekyll-assets.svg?style=for-the-badge)](https://codeclimate.com/github/envygeeks/jekyll-assets/maintainability) [![Code Climate](https://img.shields.io/codeclimate/coverage/github/envygeeks/jekyll-assets.svg?style=for-the-badge)](https://codeclimate.com/github/envygeeks/jekyll-assets/test_coverage) [![Travis branch](https://img.shields.io/travis/envygeeks/jekyll-assets/master.svg?style=for-the-badge)](https://travis-ci.org/envygeeks/jekyll-assets) [![Donate](https://img.shields.io/badge/DONATE-USD-green.svg?style=for-the-badge)](https://envygeeks.io#donate) [![Gem](https://img.shields.io/gem/v/jekyll-assets.svg?style=for-the-badge)]()
1
+ [![Code Climate](https://img.shields.io/codeclimate/maintainability/envygeeks/jekyll-assets.svg?style=for-the-badge)](https://codeclimate.com/github/envygeeks/jekyll-assets/maintainability)
2
+ [![Code Climate](https://img.shields.io/codeclimate/coverage/github/envygeeks/jekyll-assets.svg?style=for-the-badge)](https://codeclimate.com/github/envygeeks/jekyll-assets/test_coverage)
3
+ [![Travis CI](https://img.shields.io/travis/envygeeks/jekyll-assets/master.svg?style=for-the-badge)](https://travis-ci.org/envygeeks/jekyll-assets)
4
+ [![Donate](https://img.shields.io/badge/-DONATE-yellow.svg?style=for-the-badge)](https://envygeeks.io#donate)
5
+ ![Gem Version](https://img.shields.io/gem/v/jekyll-assets.svg?style=for-the-badge)
6
+ ![Gem DL](https://img.shields.io/gem/dt/jekyll-assets.svg?style=for-the-badge)
2
7
 
3
8
  # Jekyll Assets
4
9
 
@@ -31,7 +36,6 @@ gem "sprockets", "~> 4.0.beta", {
31
36
  The configuration file is the same as Jekyll's, which is `_config.yml`. Except we use the special key "assets" inside of that file. Any environment variable noted as "val on `JEKYLL_ENV`" is only overridden when not explicitly set. All values listed below are default, you need not copy these into your configuration file unless you plan to change a value.
32
37
 
33
38
  ```yaml
34
- digest: false
35
39
  source_maps: true # false on JEKYLL_ENV=production
36
40
  destination: "/assets"
37
41
  compression: true
@@ -44,11 +48,29 @@ caching:
44
48
  path: ".jekyll-cache/assets"
45
49
  type: file # Possible values: memory, file
46
50
  enabled: true
51
+ # --
52
+ # Assets you wish to always have compiled.
53
+ # This can also be combined with raw_precompile which
54
+ # copies assets without running through the pipeline
55
+ # making them ultra fast.
56
+ # --
47
57
  precompile: []
58
+ raw_precompile: [
59
+ #
60
+ ]
61
+ # --
62
+ # baseurl: whether or not to append site.baseurl
63
+ # destination: the folder you store them in on the CDN.
64
+ # url: the CDN url (fqdn, or w/ identifier).
65
+ # --
48
66
  cdn:
49
67
  baseurl: false
50
68
  destination: false
51
69
  url: null
70
+ # --
71
+ # These are all default. No need to add them
72
+ # Only use this if you have more.
73
+ # --
52
74
  sources:
53
75
  - assets/css
54
76
  - assets/fonts
@@ -284,6 +306,53 @@ Using Liquid Drop `assets`, you can check whether an asset is present.
284
306
  {{ src | asset:"@magick:2x magick:quality:92" }}
285
307
  ```
286
308
 
309
+ ## Polymer WebComponents
310
+
311
+ We have basic support for WebComponents when using Sprockets `~> 4.0.0.beta`, this will allow you to place your HTML in the `_assets/components` folder, `{% asset myComponent.html %}`, and get an import, you can place your regular JS files inside of the normal structure.
312
+
313
+ ### Example
314
+
315
+ ***test.html***
316
+
317
+ ```html
318
+ <!DOCTYPE html>
319
+ <html>
320
+ <head>
321
+ {% asset webcomponents.js %}
322
+ {% asset test.html %}
323
+ </head>
324
+ <body>
325
+ <contact-card starred>
326
+ {% asset profile.jpg %}
327
+ <span>Your Name</span>
328
+ </contact-card>
329
+ </body>
330
+ </body>
331
+ ```
332
+
333
+ ***_assets/components/test.html***
334
+
335
+ ```html
336
+ <dom-module id="contact-card">
337
+ <template>
338
+ <style>/* ... */</style>
339
+ <slot></slot>
340
+ <iron-icon icon="star" hidden$="{{!starred}}"></iron-icon>
341
+ </template>
342
+ <script>
343
+ class ContactCard extends Polymer.Element {
344
+ static get is() { return "contact-card"; }
345
+ static get properties() {
346
+ return {
347
+ starred: { type: Boolean, value: false }
348
+ }
349
+ }
350
+ }
351
+ customElements.define(ContactCard.is, ContactCard);
352
+ </script>
353
+ </dom-module>
354
+ ```
355
+
287
356
  ## Hooks
288
357
 
289
358
  | Point | Name | Instance | Args |
data/Rakefile CHANGED
@@ -2,14 +2,7 @@
2
2
  # Copyright: 2012 - 2017 - MIT License
3
3
  # Encoding: utf-8
4
4
 
5
- $stderr = StringIO.new
6
- require "bundler/setup"
7
- require "rspec/core/rake_task"
8
- require "rubocop/rake_task"
9
- $stderr = STDERR
10
-
11
- # --
12
- RSpec::Core::RakeTask.new(:spec)
13
- RuboCop::RakeTask.new(:rubocop) { |t| t.options = %w(--format=e --parallel) }
14
- Rake::Task[:spec].enhance { Rake::Task[:rubocop].invoke }
15
- task default: %i(spec rubocop)
5
+ task(:spec) { sh "script/test" }
6
+ task(:test) { sh "script/test" }
7
+ task(:rubocop) { sh "script/lint" }
8
+ task(:lint) { sh "script/lint" }
@@ -12,7 +12,7 @@ module Jekyll
12
12
  module Assets
13
13
  class Config < HashWithIndifferentAccess
14
14
  DEVELOPMENT = {
15
- digest: false,
15
+ digest: true,
16
16
  precompile: [],
17
17
  source_maps: true,
18
18
  destination: "/assets",
@@ -46,6 +46,7 @@ module Jekyll
46
46
  assets/images
47
47
  assets/videos
48
48
  assets/audios
49
+ assets/components
49
50
  assets/javascript
50
51
  assets/video
51
52
  assets/audio
@@ -58,6 +59,7 @@ module Jekyll
58
59
  _assets/images
59
60
  _assets/videos
60
61
  _assets/audios
62
+ _assets/components
61
63
  _assets/javascript
62
64
  _assets/video
63
65
  _assets/audio
@@ -70,6 +72,7 @@ module Jekyll
70
72
  images
71
73
  videos
72
74
  audios
75
+ components
73
76
  javascript
74
77
  audio
75
78
  video
@@ -49,6 +49,7 @@ module Jekyll
49
49
 
50
50
  setup_sources!
51
51
  enable_compression!
52
+ ignore_caches!
52
53
  setup_drops!
53
54
  precompile!
54
55
  copy_raw!
@@ -115,6 +116,14 @@ module Jekyll
115
116
  end
116
117
  end
117
118
 
119
+ # --
120
+ private
121
+ def ignore_caches!
122
+ jekyll.config["exclude"] ||= []
123
+ jekyll.config["exclude"].push(asset_config[:caching][:path])
124
+ jekyll.config["exclude"].uniq!
125
+ end
126
+
118
127
  # --
119
128
  private
120
129
  def enable_compression!
@@ -173,7 +182,6 @@ module Jekyll
173
182
  require_all "plugins/html/defaults/*"
174
183
  require_all "plugins/html/*"
175
184
  require_relative "context"
176
- require_relative "writer"
177
185
 
178
186
  require_relative "map" unless old_sprockets?
179
187
  Hook.register :env, :after_init, priority: 3 do
@@ -80,8 +80,7 @@ module Jekyll
80
80
  def self.make_doc(builders, asset:)
81
81
  wants = builders.map(&:wants_xml?).uniq
82
82
  raise "incompatible wants xml/html for builders" if wants.size > 1
83
- !wants[0] ? Nokogiri::HTML::DocumentFragment.parse("") :
84
- Nokogiri::XML.parse(asset.to_s)
83
+ !wants[0] ? Utils.html_fragment("") : Utils.xml(asset.to_s)
85
84
  end
86
85
  end
87
86
  end
@@ -0,0 +1,34 @@
1
+ # Frozen-string-literal: true
2
+ # Copyright: 2012 - 2017 - MIT License
3
+ # Encoding: utf-8
4
+
5
+ module Jekyll
6
+ module Assets
7
+ module Patches
8
+ module Sprockets
9
+ module Asset
10
+ attr_accessor :environment
11
+
12
+ # --
13
+ def digest_path
14
+ environment.asset_config[:digest] ? \
15
+ super : logical_path
16
+ end
17
+
18
+ # --
19
+ def data_uri
20
+ "data:#{content_type};base64,#{Rack::Utils.escape(
21
+ Base64.encode64(to_s))}"
22
+ end
23
+ end
24
+ end
25
+ end
26
+ end
27
+ end
28
+
29
+ # --
30
+ module Sprockets
31
+ class Asset
32
+ prepend Jekyll::Assets::Patches::Sprockets::Asset
33
+ end
34
+ end
@@ -36,34 +36,16 @@ module Jekyll
36
36
  end
37
37
 
38
38
  # --
39
- # Conditionally creates the find_asset! method from
40
- # Sprockets 4.x so that we don't have to change all that
41
- # much to get things compatible between the two.
42
- # --
43
- unless Sprockets::CachedEnvironment.method_defined?(:find_asset!)
44
-
45
- # --
46
- # Copyright 2017 Sprockets.
47
- # @url https://github.com/rails/sprockets
48
- # @license MIT
49
- # --
50
- def find_asset!(*args)
51
- uri, = resolve!(*args)
52
- if uri
53
- load(uri)
54
- end
39
+ def find_asset(*)
40
+ super.tap do |v|
41
+ v.environment = self
55
42
  end
43
+ end
56
44
 
57
- # --
58
- # rubocop:disable Style/ClassAndModuleChildren
59
- # Patches it onto the base class too.
60
- # If it's not on cached, it's not on Env.
61
- # So we need to add it there.
62
- # --
63
- class Sprockets::Base
64
- def find_asset!(*args)
65
- cached.send(__method__, *args)
66
- end
45
+ # --
46
+ def find_asset!(*args)
47
+ load(resolve!(*args).first).tap do |v|
48
+ v.environment = self
67
49
  end
68
50
  end
69
51
  end
@@ -0,0 +1,13 @@
1
+ # Frozen-string-literal: true
2
+ # Copyright: 2012 - 2017 - MIT License
3
+ # Encoding: utf-8
4
+
5
+ module Sprockets
6
+ class Environment
7
+ unless method_defined?(:find_asset!)
8
+ def find_asset!(*args)
9
+ cached.find_asset!(*args)
10
+ end
11
+ end
12
+ end
13
+ end
@@ -13,7 +13,7 @@ module Jekyll
13
13
 
14
14
  # We strip the query string, and the fragment.
15
15
  path = sprockets_context.asset_path(path, options)
16
- Sprockets::Autoload::Sass::Script::String.new \
16
+ ::Sprockets::Autoload::Sass::Script::String.new \
17
17
  path, :string
18
18
  end
19
19
  end
File without changes
@@ -0,0 +1,25 @@
1
+ # Frozen-string-literal: true
2
+ # Copyright: 2012 - 2017 - MIT License
3
+ # Encoding: utf-8
4
+
5
+ require "jekyll/assets"
6
+ require "nokogiri"
7
+
8
+ module Jekyll
9
+ module Assets
10
+ class HTML
11
+ class Component < HTML
12
+ content_types "text/html"
13
+
14
+ # --
15
+ def run
16
+ Nokogiri::HTML::Builder.with(doc) do |d|
17
+ d.link args.to_h({
18
+ html: true, skip: HTML.skips
19
+ })
20
+ end
21
+ end
22
+ end
23
+ end
24
+ end
25
+ end
@@ -0,0 +1,53 @@
1
+ # Frozen-string-literal: true
2
+ # Copyright: 2012 - 2017 - MIT License
3
+ # Encoding: utf-8
4
+
5
+ require "jekyll/assets"
6
+
7
+ module Jekyll
8
+ module Assets
9
+ class Default
10
+ class Component < Default
11
+ content_types "text/html"
12
+
13
+ def set_href
14
+ dpath = @asset.digest_path
15
+ return @args[:href] = @asset.url if @asset.is_a?(Url)
16
+ return @args[:href] = @env.prefix_url(dpath) unless @args[:inline]
17
+ @args[:href] = @asset.data_uri
18
+ end
19
+
20
+ # --
21
+ def set_rel
22
+ @args[:rel] = "import"
23
+ end
24
+
25
+ # --
26
+ def set_integrity
27
+ return unless integrity?
28
+ @args[:integrity] = @asset.integrity
29
+ unless @args.key?(:crossorigin)
30
+ @args[:crossorigin] = "anonymous"
31
+ end
32
+ end
33
+
34
+ # --
35
+ def integrity?
36
+ config[:integrity] && !@asset.is_a?(Url) &&
37
+ !@args.key?(:integrity)
38
+ end
39
+ end
40
+ end
41
+ end
42
+ end
43
+
44
+ # --
45
+ Jekyll::Assets::Hook.register :config, :before_merge do |c|
46
+ c.deep_merge!({
47
+ defaults: {
48
+ component: {
49
+ integrity: Jekyll.production?,
50
+ },
51
+ },
52
+ })
53
+ end
@@ -57,9 +57,8 @@ module Jekyll
57
57
  # @see https://github.com/sparklemotion/nokogiri/issues/553
58
58
  good, buggy = Encoding::UTF_8, Encoding::ASCII_8BIT
59
59
  out = out.encode good if out.encoding == buggy
60
- Nokogiri::HTML.send((@doc.output.strip
61
- .start_with?("<!DOCTYPE ") ? :parse :
62
- :fragment), out)
60
+ Utils.send((@doc.output.strip =~ %r!<\!doctype\s+!i ? \
61
+ :html : :html_fragment), out)
63
62
  end
64
63
  end
65
64
  end
@@ -68,5 +67,7 @@ module Jekyll
68
67
  end
69
68
 
70
69
  Jekyll::Hooks.register [:pages, :documents, :posts], :post_render do |d|
71
- Jekyll::Assets::Plugins::Searcher.new(d).run
70
+ if d.output_ext == ".html"
71
+ Jekyll::Assets::Plugins::Searcher.new(d).run
72
+ end
72
73
  end
@@ -11,8 +11,6 @@ module Jekyll
11
11
  module Assets
12
12
  class Proxy < Extensible
13
13
  attr_reader :file
14
- DIG = Digest::SHA256
15
- DIR = "proxied"
16
14
 
17
15
  class Deleted < StandardError
18
16
  def initialize(obj)
@@ -68,18 +66,26 @@ module Jekyll
68
66
  # --
69
67
  def self.copy(asset, ctx:, args:)
70
68
  env = ctx.registers[:site].sprockets
71
- raw = args.instance_variable_get(:@raw)
72
- key = DIG.hexdigest(raw)[0, 6]
73
69
 
74
- path = env.in_cache_dir(DIR)
70
+ path = env.in_cache_dir("proxied")
75
71
  extname = File.extname(args[:argv1])
76
- out = Pathutil.new(path).join(key).sub_ext(extname)
77
- out.dirname.mkdir_p unless out.dirname.exist?
78
- Pathutil.new(asset.filename).cp(out)
72
+ out = Pathutil.new(path).join(digest(args))
73
+ .sub_ext(extname)
74
+
75
+ unless out.file?
76
+ out.dirname.mkdir_p
77
+ Pathutil.new(asset.filename)
78
+ .cp(out)
79
+ end
79
80
 
80
81
  out
81
82
  end
82
83
 
84
+ def self.digest(args)
85
+ Digest::SHA256.hexdigest(args.instance_variable_get(
86
+ :@raw))[0, 6]
87
+ end
88
+
83
89
  # --
84
90
  # @return [Symbol] the argument key.
85
91
  # Allows you to tell the proxier which args are yours.
@@ -105,5 +111,5 @@ module Jekyll
105
111
  end
106
112
 
107
113
  Jekyll::Assets::Hook.register :env, :after_init do
108
- append_path(in_cache_dir(Jekyll::Assets::Proxy::DIR))
114
+ append_path(in_cache_dir("proxied"))
109
115
  end
@@ -42,19 +42,20 @@ module Jekyll
42
42
  # --
43
43
  def initialize(tag, args, tokens)
44
44
  @tag = tag.to_sym
45
- @args = Liquid::Tag::Parser.new(args)
46
45
  @tokens = tokens
47
- @og_args = args
46
+ @args = args
48
47
  super
49
48
  end
50
49
 
51
50
  # --
52
51
  def render_raw(ctx)
53
- env = ctx.registers[:site].sprockets
54
- args = env.parse_liquid(@args, ctx: ctx)
52
+ env = ctx.registers[:site].sprockets
53
+
54
+ args = Liquid::Tag::Parser.new(@args)
55
+ args = env.parse_liquid(args, ctx: ctx)
55
56
  raise Sprockets::FileNotFound, "UNKNOWN" unless args.key?(:argv1)
56
57
  asset = external(ctx, args: args) if env.external?(args)
57
- asset ||= internal(ctx)
58
+ asset ||= internal(ctx, args: args)
58
59
  [args, asset]
59
60
  end
60
61
 
@@ -81,7 +82,7 @@ module Jekyll
81
82
  # --
82
83
  rescue ExecJS::RuntimeError => e
83
84
  env.logger.error e.message
84
- env.logger.efile @args[:argv1]
85
+ env.logger.efile args[:argv1]
85
86
  raise ExecJS::RuntimeError, \
86
87
  "JS Error"
87
88
  # --
@@ -154,7 +155,7 @@ module Jekyll
154
155
  # Set's up an internal asset using `Sprockets::Asset`
155
156
  # @return [Sprockets::Asset]
156
157
  # --
157
- def internal(ctx)
158
+ def internal(ctx, args:)
158
159
  env = ctx.registers[:site].sprockets
159
160
  original = env.find_asset!(args[:argv1])
160
161
  Default.set(args, ctx: ctx, asset: original)
@@ -5,6 +5,28 @@
5
5
  module Jekyll
6
6
  module Assets
7
7
  module Utils
8
+ def self.html_fragment(*a)
9
+ Nokogiri::HTML.fragment(*a) do |c|
10
+ c.options = Nokogiri::XML::ParseOptions::NONET | \
11
+ Nokogiri::XML::ParseOptions::NOENT
12
+ end
13
+ end
14
+
15
+ # --
16
+ def self.html(*a)
17
+ Nokogiri::HTML.parse(*a) do |c|
18
+ c.options = Nokogiri::XML::ParseOptions::NONET | \
19
+ Nokogiri::XML::ParseOptions::NOENT
20
+ end
21
+ end
22
+
23
+ # --
24
+ def self.xml(*a)
25
+ Nokogiri::XML.parse(*a) do |c|
26
+ c.options = Nokogiri::XML::ParseOptions::NONET
27
+ end
28
+ end
29
+
8
30
  def raw_precompiles
9
31
  asset_config[:raw_precompile].each_with_object([]) do |v, a|
10
32
  if v.is_a?(Hash)
@@ -304,45 +326,6 @@ module Jekyll
304
326
  rescue ExecJS::RuntimeUnavailable
305
327
  nil
306
328
  end
307
-
308
- # --
309
- # @param [Jekyll::Site] site
310
- # @param [Hash<Symbol,Object>] payload
311
- # Try to replicate and run hooks the Jekyll would normally run.
312
- # rubocop:disable Metrics/LineLength
313
- # @return nil
314
- # --
315
- def run_liquid_hooks(payload, site)
316
- Hook.trigger(:liquid, :pre_render) { |h| h.call(payload, site) }
317
- post, page, doc = get_liquid_obj(payload, site)
318
-
319
- # I would assume most people set in :pre_render logically?
320
- Jekyll::Hooks.trigger(:posts, :pre_render, post, payload) if post
321
- Jekyll::Hooks.trigger(:documents, :pre_render, post || doc, payload) if post || doc
322
- Jekyll::Hooks.trigger(:pages, :pre_render, page, payload) if page
323
- end
324
-
325
- # --
326
- # @param [Jekyll::Site] site
327
- # @param [Hash<Symbol,Object>] payload
328
- # Discovers the Jekyll object, corresponding to the type.
329
- # @note this allows us to trigger hooks that Jekyll would trigger.
330
- # @return [Jekyll::Document, Jekyll::Page]
331
- # rubocop:disable Layout/ExtraSpacing
332
- # --
333
- def get_liquid_obj(payload, site)
334
- path = payload["path"]
335
-
336
- post = site.posts.docs.find { |v| v.relative_path == path }
337
- docs = site. documents.find { |v| v.relative_path == path } unless post
338
- page = site. pages.find { |v| v.relative_path == path } unless docs
339
-
340
- [
341
- post,
342
- page,
343
- docs,
344
- ]
345
- end
346
329
  end
347
330
  end
348
331
  end
@@ -4,6 +4,6 @@
4
4
 
5
5
  module Jekyll
6
6
  module Assets
7
- VERSION = "3.0.2"
7
+ VERSION = "3.0.3"
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: 3.0.2
4
+ version: 3.0.3
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: 2017-11-27 00:00:00.000000000 Z
13
+ date: 2017-11-29 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: execjs
@@ -217,18 +217,21 @@ files:
217
217
  - lib/jekyll/assets/map/css.rb
218
218
  - lib/jekyll/assets/map/javascript.rb
219
219
  - lib/jekyll/assets/map/writer.rb
220
- - lib/jekyll/assets/patches/cached_env.rb
220
+ - lib/jekyll/assets/patches/asset.rb
221
+ - lib/jekyll/assets/patches/cached.rb
222
+ - lib/jekyll/assets/patches/find_asset.rb
221
223
  - lib/jekyll/assets/patches/functions.rb
222
- - lib/jekyll/assets/patches/obsolete_files.rb
223
- - lib/jekyll/assets/patches/sprockets.rb
224
- - lib/jekyll/assets/patches/sprockets_data_uri.rb
224
+ - lib/jekyll/assets/patches/obsolete.rb
225
+ - lib/jekyll/assets/patches/site.rb
225
226
  - lib/jekyll/assets/plugins.rb
226
227
  - lib/jekyll/assets/plugins/bootstrap.rb
227
228
  - lib/jekyll/assets/plugins/font-awesome.rb
228
229
  - lib/jekyll/assets/plugins/frontmatter.rb
229
230
  - lib/jekyll/assets/plugins/html/audio.rb
231
+ - lib/jekyll/assets/plugins/html/component.rb
230
232
  - lib/jekyll/assets/plugins/html/css.rb
231
233
  - lib/jekyll/assets/plugins/html/defaults/audio.rb
234
+ - lib/jekyll/assets/plugins/html/defaults/component.rb
232
235
  - lib/jekyll/assets/plugins/html/defaults/css.rb
233
236
  - lib/jekyll/assets/plugins/html/defaults/favicon.rb
234
237
  - lib/jekyll/assets/plugins/html/defaults/img.rb
@@ -252,7 +255,6 @@ files:
252
255
  - lib/jekyll/assets/url.rb
253
256
  - lib/jekyll/assets/utils.rb
254
257
  - lib/jekyll/assets/version.rb
255
- - lib/jekyll/assets/writer.rb
256
258
  homepage: http://github.com/jekyll/jekyll-assets/
257
259
  licenses:
258
260
  - MIT
@@ -1,12 +0,0 @@
1
- # Frozen-string-literal: true
2
- # Copyright: 2012 - 2017 - MIT License
3
- # Encoding: utf-8
4
-
5
- module Sprockets
6
- class Asset
7
- def data_uri
8
- "data:#{content_type};base64,#{Rack::Utils.escape(
9
- Base64.encode64(to_s))}"
10
- end
11
- end
12
- end
@@ -1,36 +0,0 @@
1
- # Frozen-string-literal: true
2
- # Copyright: 2012 - 2017 - MIT License
3
- # Encoding: utf-8
4
-
5
- unless Jekyll::Assets::Env.old_sprockets?
6
- require "sprockets/exporters/base"
7
-
8
- module Sprockets
9
- module Exporters
10
- class FileExporter < Exporters::Base
11
- def skip?(logger)
12
- dest = environment.in_dest_dir + "/"
13
- out, pth = nil, target.sub(dest, "")
14
-
15
- if File.exist?(target)
16
- logger.debug "Skips #{pth}" do
17
- out = true
18
- end
19
- else
20
- logger.debug "Write #{pth}" do
21
- out = false
22
- end
23
- end
24
-
25
- out
26
- end
27
-
28
- def call
29
- write target do |f|
30
- f.write asset.source
31
- end
32
- end
33
- end
34
- end
35
- end
36
- end