middleman-social_image 0.0.1 → 0.0.2

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: fb0b030a5107566244948ab289a30177c59bd5d5754022fc32d816507b7540fe
4
- data.tar.gz: 63da5dd031a4a50a2df41f05ad10816e5c0b7853a823d4a10850df693ae24ccd
3
+ metadata.gz: b385845fc4206a82deb572478bead5cfe8eed70c74757bf128e611179987c310
4
+ data.tar.gz: 84bdf82a6bfe4314c73322d2ae664a802cf3c90788e0af26a2750cb7496cb56b
5
5
  SHA512:
6
- metadata.gz: 4eb79e1af1523f4fd77a616d108a8b53440c3122690a98c338cb8a164ea4262a9726b8686314b5ffa15d8b18604cd9ffb1b11f3db516f7f597146fb2823db4f9
7
- data.tar.gz: 99c2d6ebaad6d2a4dbaa1e03c6ed2d903411183137b612e710ccc134bc5367c1f63a6418ddf020811679d57194302e9d807995093fcf76b89698fddf5ca7dfcd
6
+ metadata.gz: 0cf692ac57d02ba0f7c69009cc365ced16a8f9b75d3809b70e1d8e319c0f4542065fae4aa5dcc1e85c34f3c5960c14e75b292b7465debb82dcc9c33b2af309bc
7
+ data.tar.gz: f68d00fa0cf0ff4ead068b2baac8f0a1be7ca00ce7d72c51e2d18f362ed37e733aa01bb2e586e415abd79eb075c70fb9491f750deb70330db154447834c358a7
data/README.md CHANGED
@@ -24,7 +24,6 @@ Optionally, you can configure this extension with the following (defaults are sh
24
24
 
25
25
  ```ruby
26
26
  activate :social_image do |social_image|
27
- social_image.path_to_chrome = '/Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome' # Command to execute chrome
28
27
  social_image.window_size = '1200,600' # The size of the screenshot
29
28
  social_image.base_url = 'http://localhost:4567/' # Base URL of running middleman server
30
29
  social_image.base_asset_dir = 'assets/images/social-images' # Where to save the generated images
@@ -14,20 +14,36 @@ module Middleman
14
14
  end
15
15
 
16
16
  def social_image
17
+ require "capybara"
17
18
  app = ::Middleman::Application.new do
18
19
  config[:mode] = :config
19
20
  config[:watcher_disable] = true
20
21
  end
21
22
  options = app.extensions[:social_image].options
23
+ Capybara.register_driver :selenium_chrome_headless do |app|
24
+ Capybara::Selenium::Driver.load_selenium
25
+ browser_options = ::Selenium::WebDriver::Chrome::Options.new.tap do |opts|
26
+ opts.args << "--window-size=#{options.window_size}"
27
+ opts.args << '--headless'
28
+ opts.args << '--disable-gpu' if Gem.win_platform?
29
+ opts.args << '--disable-site-isolation-trials'
30
+ opts.args << '--hide-scrollbars'
31
+ end
32
+ Capybara::Selenium::Driver.new(app, browser: :chrome, options: browser_options)
33
+ end
34
+ session = Capybara::Session.new(:selenium_chrome_headless)
35
+
22
36
  app.sitemap.resources.each do |resource|
23
37
  if resource.url =~ options.social_image_url_pattern
24
38
  image_path = File.join(app.source_dir, options.base_asset_dir, resource.url.sub(options.social_image_url_pattern, options.social_image_url_substitution))
25
39
  if File.exists?(image_path)
26
- say "Image for #{resource.url} already generated, skipping."
40
+ say "Skipping #{image_path} as already generated"
27
41
  else
42
+ say "Generating #{image_path}"
28
43
  FileUtils.mkdir_p(File.dirname(image_path))
29
44
  url = File.join(options.base_url, resource.url)
30
- run "#{options.path_to_chrome} --headless --disable-gpu --screenshot=#{image_path} --window-size=#{options.window_size} #{url}"
45
+ session.visit(url)
46
+ session.save_screenshot(image_path)
31
47
  end
32
48
  end
33
49
  end
@@ -2,7 +2,6 @@ require 'middleman-core'
2
2
  require 'middleman-social_image/commands'
3
3
 
4
4
  class Middleman::SocialImage::Extension < ::Middleman::Extension
5
- option :path_to_chrome, '/Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome'
6
5
  option :window_size, '1200,600'
7
6
  option :base_url, 'http://localhost:4567/'
8
7
  option :base_asset_dir, 'assets/images/social-images'
@@ -1,5 +1,5 @@
1
1
  module Middleman
2
2
  module SocialImage
3
- VERSION = '0.0.1'.freeze
3
+ VERSION = '0.0.2'.freeze
4
4
  end
5
5
  end
@@ -22,4 +22,8 @@ Gem::Specification.new do |spec|
22
22
  spec.bindir = "exe"
23
23
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
24
24
  spec.require_paths = ["lib"]
25
+
26
+ spec.add_dependency( "middleman-core", [ ">= 4.0.0" ] )
27
+ spec.add_dependency( "capybara" )
28
+ spec.add_dependency( "selenium-webdriver" )
25
29
  end
metadata CHANGED
@@ -1,15 +1,57 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: middleman-social_image
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Paul McMahon
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2020-05-08 00:00:00.000000000 Z
12
- dependencies: []
11
+ date: 2020-05-12 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: middleman-core
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: 4.0.0
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: 4.0.0
27
+ - !ruby/object:Gem::Dependency
28
+ name: capybara
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: selenium-webdriver
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
13
55
  description:
14
56
  email:
15
57
  - paul@tokyodev.com