camaleon_lazy_loader 0.1.2 → 0.1.4

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 3ebe3fe992635e9876617be4a1939a968e1ae67a1b19500d1c0a48674c950277
4
- data.tar.gz: 3fe8bff63ae868bbd6a85851ae52d3e76b359e9a3310b190ec332dc994548b9a
3
+ metadata.gz: f426fa9caa76c77ffd1ced9f64be9d9fc3dab772d2051526fd712ea0ed1ed747
4
+ data.tar.gz: eff7d6be109a7dc8b5f9e4f7c272c9c0702b6b625723bd190a49aff68775a65f
5
5
  SHA512:
6
- metadata.gz: 537d07364819de492a1b66d6b9f016cdc619c7207f3f86b28673366119bfe5fc8b270760fb1531458ba1293310118a7541a1c844b41618f178b9070274edbef5
7
- data.tar.gz: 2e0d5b5d7e28ebcc2d55e931386a27cf2954b0bd803243166631197c6779608e7acfd0f8e0c652e5e4047e981bbe42e66e399da6370c37bb075be080b713d03c
6
+ metadata.gz: 2ece0294e728f5e36d6bd6b0daa38b641b81860457b985940a9b4a4ec5fb0f8cfb00bb3f7ff2f0a59983f8c9b0a2b98cb4edb06ef3308969c6b48b5debe00466
7
+ data.tar.gz: 4804db6afd5de13430a0d16cc415485cf424ecf706d8bf9f8efc49ff861da6b48a84ab5a9307cae1ad112344246b734df08d00e482a1d22773b97fb5ecda2e23
data/README.md CHANGED
@@ -1,5 +1,5 @@
1
1
  ![](https://img.shields.io/badge/ruby-2.5%2B-red.svg)
2
- ![Gem Version](https://img.shields.io/gem/v/camaleon_image_optimizer.svg?colorB=blue)
2
+ ![Gem Version](https://img.shields.io/gem/v/camaleon_lazy_loader.svg?colorB=blue)
3
3
  [![Ruby Style Guide](https://img.shields.io/badge/code_style-standard-brightgreen.svg)](https://github.com/testdouble/standard)
4
4
  [![Build Status](https://travis-ci.com/brian-kephart/camaleon_lazy_loader.svg?branch=master)](https://travis-ci.org/brian-kephart/camaleon_lazy_loader)
5
5
 
@@ -9,7 +9,7 @@ This plugin adds a `loading="lazy"` attribute to `<img>` and `<iframe>` tags ren
9
9
  - Existing loading attributes will not be overwritten, so you can still set individual tags to `loading="eager"` or `loading="auto"`
10
10
 
11
11
  ## How it works
12
- This plugin updates the body of the http response using the `front_after_load` hook provided by Camaleon, unless the page is cached with the Front Cache plugin.
12
+ This plugin updates the body of the http response using the `front_after_load` hook provided by Camaleon, unless the page is cached with the Front Cache plugin. Nokogiri is used to add the `loading` attribute.
13
13
 
14
14
  ### If the Front Cache plugin is active
15
15
  - For pages that are not cached, this plugin works as described above.
@@ -33,9 +33,14 @@ And then execute:
33
33
  $ bundle
34
34
  ```
35
35
 
36
+ ## Limitations
37
+ This gem uses Nokogiri, which in turn wraps underlying parsers. Some characters can be altered by these parsers when used in element attributes. Known cases include:
38
+ - The AMP lightning bolt ⚡
39
+ - Characters that are escaped in HTML, such as endash or ampersand
40
+
36
41
  ## Contributing
37
42
  - Fork the repo.
38
- - Make your changes and add tests as necessary.
43
+ - Make your changes and add tests as necessary. (Run tests with `rails test`)
39
44
  - Run `standardrb` to lint your code.
40
45
  - Submit a pull request.
41
46
 
@@ -14,7 +14,7 @@ module Plugins::CamaleonLazyLoader::MainHelper
14
14
  end
15
15
 
16
16
  def camaleon_lazy_loader_front_after_load
17
- return if @_plugin_do_cache # Do not process when reading from cache.
17
+ return if @skip_lazy_loader || @_plugin_do_cache
18
18
  response.body = apply_lazy_loading response.body
19
19
  end
20
20
 
@@ -22,4 +22,8 @@ module Plugins::CamaleonLazyLoader::MainHelper
22
22
  args[:data] = apply_lazy_loading args[:data] # Save processed HTML to cache.
23
23
  response.body = apply_lazy_loading response.body
24
24
  end
25
+
26
+ def camaleon_lazy_loader_skip_lazy_loader(_args)
27
+ @skip_lazy_loader = true
28
+ end
25
29
  end
@@ -9,6 +9,9 @@
9
9
  "on_active": ["clear_front_cache"],
10
10
  "on_inactive": ["clear_front_cache"],
11
11
  "front_cache_writing_cache": ["camaleon_lazy_loader_front_cache_writing_cache"],
12
- "front_after_load": ["camaleon_lazy_loader_front_after_load"]
12
+ "front_after_load": ["camaleon_lazy_loader_front_after_load"],
13
+ "on_render_sitemap": ["camaleon_lazy_loader_skip_lazy_loader"],
14
+ "on_render_robots": ["camaleon_lazy_loader_skip_lazy_loader"],
15
+ "on_render_rss": ["camaleon_lazy_loader_skip_lazy_loader"]
13
16
  }
14
17
  }
@@ -1,3 +1,3 @@
1
1
  module CamaleonLazyLoader
2
- VERSION = "0.1.2"
2
+ VERSION = "0.1.4"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: camaleon_lazy_loader
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.2
4
+ version: 0.1.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Brian Kephart
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-07-03 00:00:00.000000000 Z
11
+ date: 2020-08-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: camaleon_cms
@@ -87,7 +87,7 @@ homepage: https://github.com/brian-kephart/camaleon_lazy_loader
87
87
  licenses:
88
88
  - MIT
89
89
  metadata: {}
90
- post_install_message:
90
+ post_install_message:
91
91
  rdoc_options: []
92
92
  require_paths:
93
93
  - lib
@@ -103,7 +103,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
103
103
  version: '0'
104
104
  requirements: []
105
105
  rubygems_version: 3.1.4
106
- signing_key:
106
+ signing_key:
107
107
  specification_version: 4
108
108
  summary: Adds browser-native loading="lazy" attribute to images and iframes rendered
109
109
  by Camaleon CMS.