middleman-ogp 1.1.0 → 1.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.gitignore +1 -0
- data/README.md +18 -1
- data/features/helper.feature +4 -16
- data/fixtures/test-app/config.rb +1 -0
- data/fixtures/test-app/data/ogp/fb.yml +1 -7
- data/fixtures/test-app/data/ogp/og.yml +2 -3
- data/fixtures/test-app/source/page.html.slim +2 -9
- data/lib/middleman-ogp/extension.rb +14 -5
- data/lib/middleman-ogp/version.rb +1 -1
- metadata +9 -9
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ff26d501132ad5d6aff88ce5c3936b799bb8c6f8
|
4
|
+
data.tar.gz: 0c09e35c94c5490cfd23596718fa8d7241616d41
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 35619f2a12782f18cc02b137fef74ebb93aab5bafe5ee6794708717349c0ef926e79d0ad52b3fc31e3d470863da5bd8ed3005a2a986f81e1078c0741770adb83
|
7
|
+
data.tar.gz: d2f2eb7474c5edc6533d48c95148cd1300c2810142cf04e29345d71868b3190e76b92433fe10e913f0e3060fbafb66960cc103f15a210b36bd1fe709bf14a1c9
|
data/.gitignore
CHANGED
data/README.md
CHANGED
@@ -20,10 +20,27 @@ activate :ogp do |ogp|
|
|
20
20
|
og: data.ogp.og
|
21
21
|
# from data/ogp/og.yml
|
22
22
|
}
|
23
|
-
|
23
|
+
ogp.base_url = 'http://mysite.tld/'
|
24
24
|
end
|
25
25
|
```
|
26
26
|
|
27
|
+
### In your project's root directory
|
28
|
+
|
29
|
+
Create `data/ogp/fb.yml` and `data/ogp/og.yml` files.
|
30
|
+
|
31
|
+
Example:
|
32
|
+
|
33
|
+
```yaml
|
34
|
+
image:
|
35
|
+
'': http://mydomain.tld/path/to/fbimage.png
|
36
|
+
secure_url: https://secure.mydomain.tld/path/to/fbimage.png
|
37
|
+
type: image/png
|
38
|
+
width: 400
|
39
|
+
height: 300
|
40
|
+
locale:
|
41
|
+
'': en_us
|
42
|
+
```
|
43
|
+
|
27
44
|
### In your layout
|
28
45
|
|
29
46
|
source/layout.slim
|
data/features/helper.feature
CHANGED
@@ -3,15 +3,9 @@ Feature: OpenGraph Protocol Tags with the "ogp_tags" helper method
|
|
3
3
|
Scenario: Without page data
|
4
4
|
Given the Server is running at "test-app"
|
5
5
|
When I go to "/"
|
6
|
-
Then I should see '<meta content="
|
7
|
-
Then I should see '<meta content="http://mydomain.tld/path/to/fb-site-image.png" property="fb:image" />'
|
8
|
-
Then I should see '<meta content="https://secure.mydomain.tld/path/to/fb-site-image.png" property="fb:image:secure_url" />'
|
9
|
-
Then I should see '<meta content="image/png" property="fb:image:type" />'
|
10
|
-
Then I should see '<meta content="400" property="fb:image:width" />'
|
11
|
-
Then I should see '<meta content="300" property="fb:image:height" />'
|
6
|
+
Then I should see '<meta content="5678" property="fb:app_id" />'
|
12
7
|
Then I should see '<meta content="My Description" property="og:description" />'
|
13
|
-
Then I should see '<meta content="
|
14
|
-
Then I should see '<meta content="https://secure.mydomain.tld/path/to/og-site-image.png" property="og:image:secure_url" />'
|
8
|
+
Then I should see '<meta content="https://images.mydomain.tld/path/to/og-site-image.png" property="og:image" />'
|
15
9
|
Then I should see '<meta content="image/png" property="og:image:type" />'
|
16
10
|
Then I should see '<meta content="400" property="og:image:width" />'
|
17
11
|
Then I should see '<meta content="300" property="og:image:height" />'
|
@@ -24,15 +18,9 @@ Feature: OpenGraph Protocol Tags with the "ogp_tags" helper method
|
|
24
18
|
Scenario: With page data
|
25
19
|
Given the Server is running at "test-app"
|
26
20
|
When I go to "/page.html"
|
27
|
-
Then I should see '<meta content="
|
28
|
-
Then I should see '<meta content="http://mydomain.tld/path/to/fb-article-image.png" property="fb:image" />'
|
29
|
-
Then I should see '<meta content="https://secure.mydomain.tld/path/to/fb-article-image.png" property="fb:image:secure_url" />'
|
30
|
-
Then I should see '<meta content="image/png" property="fb:image:type" />'
|
31
|
-
Then I should see '<meta content="400" property="fb:image:width" />'
|
32
|
-
Then I should see '<meta content="300" property="fb:image:height" />'
|
21
|
+
Then I should see '<meta content="1234" property="fb:app_id" />'
|
33
22
|
Then I should see '<meta content="This is my fixture Middleman article." property="og:description" />'
|
34
|
-
Then I should see '<meta content="
|
35
|
-
Then I should see '<meta content="https://secure.mydomain.tld/path/to/og-article-image.png" property="og:image:secure_url" />'
|
23
|
+
Then I should see '<meta content="https://images.mydomain.tld/path/to/og-article-image.png" property="og:image" />'
|
36
24
|
Then I should see '<meta content="image/png" property="og:image:type" />'
|
37
25
|
Then I should see '<meta content="400" property="og:image:width" />'
|
38
26
|
Then I should see '<meta content="300" property="og:image:height" />'
|
data/fixtures/test-app/config.rb
CHANGED
@@ -1,7 +1,6 @@
|
|
1
1
|
description: 'This is my fixture Middleman site for OpenGraph.'
|
2
2
|
image:
|
3
|
-
'':
|
4
|
-
secure_url: https://secure.mydomain.tld/path/to/og-site-image.png
|
3
|
+
'': to/og-site-image.png
|
5
4
|
type: image/png
|
6
5
|
width: 400
|
7
6
|
height: 300
|
@@ -9,4 +8,4 @@ locale:
|
|
9
8
|
'': en_us
|
10
9
|
alternate:
|
11
10
|
- ja_jp
|
12
|
-
- zh_tw
|
11
|
+
- zh_tw
|
@@ -5,8 +5,7 @@ ogp:
|
|
5
5
|
og:
|
6
6
|
description: 'This is my fixture Middleman article for OpenGraph.'
|
7
7
|
image:
|
8
|
-
'':
|
9
|
-
secure_url: https://secure.mydomain.tld/path/to/og-article-image.png
|
8
|
+
'': to/og-article-image.png
|
10
9
|
type: image/png
|
11
10
|
width: 400
|
12
11
|
height: 300
|
@@ -16,13 +15,7 @@ ogp:
|
|
16
15
|
- ja_jp
|
17
16
|
- zh_tw
|
18
17
|
fb:
|
19
|
-
|
20
|
-
image:
|
21
|
-
'': http://mydomain.tld/path/to/fb-article-image.png
|
22
|
-
secure_url: https://secure.mydomain.tld/path/to/fb-article-image.png
|
23
|
-
type: image/png
|
24
|
-
width: 400
|
25
|
-
height: 300
|
18
|
+
app_id: 1234
|
26
19
|
---
|
27
20
|
|
28
21
|
h1 Hello page
|
@@ -5,16 +5,18 @@ require 'middleman-core/extensions'
|
|
5
5
|
module Middleman
|
6
6
|
module OGP
|
7
7
|
class OGPExtension < Extension
|
8
|
-
option :namespaces,
|
9
|
-
option :blog,
|
10
|
-
option :auto,
|
11
|
-
option :base_url,
|
8
|
+
option :namespaces, {}, 'Default namespaces'
|
9
|
+
option :blog, false, 'Middleman Blog support'
|
10
|
+
option :auto, %w{title url description}, 'Properties to automatically fill from page data.'
|
11
|
+
option :base_url, nil, 'Base URL to generate permalink for og:url'
|
12
|
+
option :image_base_url, nil, 'Base URL to generate og:image'
|
12
13
|
|
13
14
|
def after_configuration
|
14
15
|
Middleman::OGP::Helper.namespaces = options[:namespaces] || {}
|
15
16
|
Middleman::OGP::Helper.blog = options[:blog]
|
16
17
|
Middleman::OGP::Helper.auto = options[:auto]
|
17
18
|
Middleman::OGP::Helper.base_url = options[:base_url]
|
19
|
+
Middleman::OGP::Helper.image_base_url = options[:image_base_url]
|
18
20
|
end
|
19
21
|
|
20
22
|
helpers do
|
@@ -51,6 +53,7 @@ module Middleman
|
|
51
53
|
Middleman::OGP::Helper.base_url
|
52
54
|
opts[:og][:url] = URI.join(Middleman::OGP::Helper.base_url, URI.encode(current_resource.url))
|
53
55
|
end
|
56
|
+
|
54
57
|
Middleman::OGP::Helper.ogp_tags(opts) do|name, value|
|
55
58
|
if block_given?
|
56
59
|
block.call name, value
|
@@ -68,6 +71,7 @@ module Middleman
|
|
68
71
|
mattr_accessor :blog
|
69
72
|
mattr_accessor :auto
|
70
73
|
mattr_accessor :base_url
|
74
|
+
mattr_accessor :image_base_url
|
71
75
|
|
72
76
|
def self.ogp_tags(opts = {}, &block)
|
73
77
|
opts ||= {}
|
@@ -120,7 +124,12 @@ module Middleman
|
|
120
124
|
raise 'Unknown value'
|
121
125
|
end
|
122
126
|
else
|
123
|
-
|
127
|
+
name = [prefix].concat(key).join(':')
|
128
|
+
value = obj.to_s
|
129
|
+
if Middleman::OGP::Helper.image_base_url && name == 'og:image' && !%r{^https?://}.match(value)
|
130
|
+
value = URI.join(Middleman::OGP::Helper.image_base_url, URI.encode(value))
|
131
|
+
end
|
132
|
+
block.call name, value
|
124
133
|
end
|
125
134
|
end
|
126
135
|
end
|
metadata
CHANGED
@@ -1,27 +1,27 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: middleman-ogp
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Atsushi Nagase
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2017-11-10 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: middleman-core
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- -
|
17
|
+
- - ">="
|
18
18
|
- !ruby/object:Gem::Version
|
19
19
|
version: '3.2'
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
|
-
- -
|
24
|
+
- - ">="
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: '3.2'
|
27
27
|
description: OpenGraph Protocol Helper for Middleman
|
@@ -31,8 +31,8 @@ executables: []
|
|
31
31
|
extensions: []
|
32
32
|
extra_rdoc_files: []
|
33
33
|
files:
|
34
|
-
- .gitignore
|
35
|
-
- .travis.yml
|
34
|
+
- ".gitignore"
|
35
|
+
- ".travis.yml"
|
36
36
|
- CHANGELOG.md
|
37
37
|
- CONTRIBUTING.md
|
38
38
|
- Gemfile.mm3
|
@@ -72,17 +72,17 @@ require_paths:
|
|
72
72
|
- lib
|
73
73
|
required_ruby_version: !ruby/object:Gem::Requirement
|
74
74
|
requirements:
|
75
|
-
- -
|
75
|
+
- - ">="
|
76
76
|
- !ruby/object:Gem::Version
|
77
77
|
version: '0'
|
78
78
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
79
79
|
requirements:
|
80
|
-
- -
|
80
|
+
- - ">="
|
81
81
|
- !ruby/object:Gem::Version
|
82
82
|
version: '0'
|
83
83
|
requirements: []
|
84
84
|
rubyforge_project:
|
85
|
-
rubygems_version: 2.
|
85
|
+
rubygems_version: 2.6.13
|
86
86
|
signing_key:
|
87
87
|
specification_version: 4
|
88
88
|
summary: OpenGraph Protocol Helper for Middleman
|