jekyll-image-data 0.1.2 → 0.1.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
- SHA1:
3
- metadata.gz: 530b57fce73ff691267ca9c596076f7bf137d63d
4
- data.tar.gz: 060df379e014c4ece8644b569256e48c300192b5
2
+ SHA256:
3
+ metadata.gz: 7154b4ce2b821a35f269e69d133b0a56e6cd22f0c3412ed96660c7ff309f77d7
4
+ data.tar.gz: 391548c22bf04722221c8f82c915cb512ccb7aa69bbccdb635a027f05c8a0d95
5
5
  SHA512:
6
- metadata.gz: 19429712eacc14a4490014a1d016782dbd7c9f8541a1f56c16292449827d9c2d1fc6b2a19c39fc9a98743eeaee3f0df865e80805dc582e70fd0f0cea6fcc6336
7
- data.tar.gz: 5a38e093fc50540137d66c56871f4ab2fc85c986dba48a187b91c8da1785b11bc97d907ff3578a8ffe9574e28c9bee9221c93f7cb61944367c93b8a6a529a4ca
6
+ metadata.gz: ac3289c09eefd095ff6dcf95b2a76841504354ccec690fb533ca880921398546a57f05d1fac94ccc60ede2fb7fc12815aab9d7d7f0e5cab8648cccd4a8ad722a
7
+ data.tar.gz: 1d227e9265a5ef1434747cd4760b1584d2f18737c5474522d7f1f070cccc1ecf79cf66d91e8811023819746c35601029b62dfb9e82446885a353db7b0360d461
data/README.md CHANGED
@@ -28,7 +28,8 @@ $ gem install jekyll-image-data
28
28
 
29
29
  ## Usage
30
30
 
31
- You need to define your images using strict Markdown format:
31
+ Define your images using Markdown format, plain HTML or by including a
32
+ `.liquid` file:
32
33
 
33
34
  ```markdown
34
35
  ![Alt text](/image-url)
@@ -39,11 +40,16 @@ or
39
40
  [ref]: /image-url
40
41
  ```
41
42
 
42
- Using liquid variables for setting the URL will result in the images not being
43
- crawled.
43
+ ```html
44
+ <img src="http://placehold.it/800x600" alt="Image">
45
+ ```
46
+
47
+ ```liquid
48
+ {% include image.liquid %}
49
+ ```
44
50
 
45
- This plugin gets executed in the `:posts, :pre_render` and `:pages,
46
- :post_init` hooks. After execution, `post.data["images"]` or
51
+ This plugin gets executed in the `:posts, :post_render` and `:pages,
52
+ :post_render` hooks. After execution, `post.data["images"]` or
47
53
  `page.data["images"]` will hold `alt` and `src` data for all images inside
48
54
  post/page:
49
55
 
@@ -25,6 +25,7 @@ Gem::Specification.new do |spec|
25
25
  spec.require_paths = ["lib"]
26
26
 
27
27
  spec.add_dependency "jekyll", "~> 3.3"
28
+ spec.add_dependency "nokogiri", "~> 1.8.2"
28
29
 
29
30
  spec.add_development_dependency "bundler", "~> 1.14"
30
31
  spec.add_development_dependency "rake", "~> 10.0"
@@ -1,30 +1,16 @@
1
+ require "nokogiri"
2
+
1
3
  module JekyllImageData
2
4
  class Crawler
3
- def initialize
4
- @alt = %r{!\[(.*)\]}
5
- @url = %r{([\w/:.-]+\.?(jpg|png|gif)?)}
6
- @tag = %r{\[(.*)\]}
7
- @image = %r{#{@alt}(\(#{@url}\)|#{@tag})}
8
- @reference = %r{#{@tag}: +#{@url}}
9
- end
10
-
11
5
  def crawl(content)
12
6
  images = []
13
-
14
- content.scan(@image) do |match|
15
- if $3
16
- images << { "alt" => "#{$1}", "url" => "#{$3}" }
17
- elsif $5
18
- images << { "alt" => "#{$1}", "url" => "#{$5}" }
19
- end
7
+ html = Nokogiri::HTML(content)
8
+ html.xpath("//img").each do |item|
9
+ images << {
10
+ "url" => item.xpath("@src").first.content,
11
+ "alt" => item.xpath("@alt").first.content
12
+ }
20
13
  end
21
-
22
- content.scan(@reference) do |match|
23
- images.map do |image|
24
- image["url"] = $2 if image["url"] == $1
25
- end
26
- end
27
-
28
14
  images
29
15
  end
30
16
  end
@@ -1,3 +1,3 @@
1
1
  module JekyllImageData
2
- VERSION = "0.1.2"
2
+ VERSION = "0.1.3"
3
3
  end
@@ -5,11 +5,11 @@ require "jekyll-image-data/version"
5
5
  module JekyllImageData
6
6
  @crawler = Crawler.new
7
7
 
8
- Jekyll::Hooks.register :posts, :pre_render do |post, payload|
8
+ Jekyll::Hooks.register :posts, :post_render do |post|
9
9
  post.data["images"] = @crawler.crawl(post.content)
10
10
  end
11
11
 
12
- Jekyll::Hooks.register :pages, :post_init do |page, payload|
12
+ Jekyll::Hooks.register :pages, :post_render do |page|
13
13
  page.data["images"] = @crawler.crawl(page.content)
14
14
  end
15
15
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: jekyll-image-data
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.2
4
+ version: 0.1.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jose Miguel Venegas Mendoza
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-04-27 00:00:00.000000000 Z
11
+ date: 2018-02-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: jekyll
@@ -24,6 +24,20 @@ dependencies:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
26
  version: '3.3'
27
+ - !ruby/object:Gem::Dependency
28
+ name: nokogiri
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: 1.8.2
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: 1.8.2
27
41
  - !ruby/object:Gem::Dependency
28
42
  name: bundler
29
43
  requirement: !ruby/object:Gem::Requirement
@@ -109,7 +123,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
109
123
  version: '0'
110
124
  requirements: []
111
125
  rubyforge_project:
112
- rubygems_version: 2.6.10
126
+ rubygems_version: 2.7.3
113
127
  signing_key:
114
128
  specification_version: 4
115
129
  summary: Image data for Jekyll posts and pages.