jekyll-seo-tag 2.5.0 → 2.6.0
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 +4 -4
- data/.rubocop.yml +2 -5
- data/.travis.yml +4 -5
- data/History.markdown +31 -0
- data/docs/advanced-usage.md +2 -0
- data/docs/usage.md +0 -1
- data/jekyll-seo-tag.gemspec +2 -2
- data/lib/jekyll-seo-tag.rb +10 -5
- data/lib/jekyll-seo-tag/author_drop.rb +4 -0
- data/lib/jekyll-seo-tag/drop.rb +10 -9
- data/lib/jekyll-seo-tag/image_drop.rb +2 -0
- data/lib/jekyll-seo-tag/json_ld_drop.rb +4 -1
- data/lib/jekyll-seo-tag/url_helper.rb +1 -0
- data/lib/jekyll-seo-tag/version.rb +1 -1
- data/lib/template.html +2 -0
- metadata +8 -9
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8297d8859bf6e52c0a77bfbda660ff832f1cdb6eb0a5112c98b2e3fd9fdf4647
|
4
|
+
data.tar.gz: 867eb20b76f4437622cd881f0a21a39f4ffabf51268c81a1e228c7e0461e753c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ce913e55583ea6354413717fa3945a20f6a8c4fa7dd763918b141ca1e32a2eec011b78e40613dc7297126a4623efbd5cc450f69da841acd4e1d4aece62360acb
|
7
|
+
data.tar.gz: 7773d8759ff186edd5b6ba906edfc7ea992dd39f814582aeef2d94ed3606dae034e49318c16d53896ce1a663f56462b7ad51248d959ee12d1370e53047249185
|
data/.rubocop.yml
CHANGED
@@ -1,5 +1,6 @@
|
|
1
|
+
require: rubocop-jekyll
|
1
2
|
inherit_gem:
|
2
|
-
jekyll: .rubocop.yml
|
3
|
+
rubocop-jekyll: .rubocop.yml
|
3
4
|
|
4
5
|
AllCops:
|
5
6
|
TargetRubyVersion: 2.3
|
@@ -14,7 +15,3 @@ Metrics/LineLength:
|
|
14
15
|
Metrics/BlockLength:
|
15
16
|
Exclude:
|
16
17
|
- spec/**/*
|
17
|
-
|
18
|
-
Layout/IndentHeredoc:
|
19
|
-
Exclude:
|
20
|
-
- spec/**/*
|
data/.travis.yml
CHANGED
data/History.markdown
CHANGED
@@ -1,3 +1,34 @@
|
|
1
|
+
## HEAD
|
2
|
+
|
3
|
+
### Minor Enhancements
|
4
|
+
|
5
|
+
* Release: v2.6.0 (#334)
|
6
|
+
|
7
|
+
## 2.6.0 / 2019-03-16
|
8
|
+
|
9
|
+
### Minor Enhancements
|
10
|
+
|
11
|
+
* Twitter Image and Title (#330)
|
12
|
+
|
13
|
+
### Bug Fixes
|
14
|
+
|
15
|
+
* Do not cache the drop payload for SeoTag (#306)
|
16
|
+
* Update url of schema website (#296)
|
17
|
+
|
18
|
+
### Development Fixes
|
19
|
+
|
20
|
+
* Relax version constraint on Bundler (#325)
|
21
|
+
* chore(ci): Add Ruby 2.6, drop Ruby 2.3 (#326)
|
22
|
+
* chore (ci): remove deprecated `sudo: false` in .travis.yml (#333)
|
23
|
+
* Lint Ruby code with rubocop-jekyll gem (#302)
|
24
|
+
* chore(deps): bump rubocop-jekyll to v0.4 (#320)
|
25
|
+
* chore(deps): bump rubocop-jekyll to v0.3 (#316)
|
26
|
+
* Correct RuboCop offenses in spec files (#319)
|
27
|
+
|
28
|
+
### Documentation
|
29
|
+
|
30
|
+
* Rectify error in Usage documentation (#328)
|
31
|
+
|
1
32
|
## 2.5.0 / 2018-05-18
|
2
33
|
|
3
34
|
* Docs: Prevent GitHub Pages from processing Liquid raw tag (#276)
|
data/docs/advanced-usage.md
CHANGED
@@ -76,6 +76,8 @@ The following options can be set for any particular page. While the default opti
|
|
76
76
|
* `name` - If the name of the thing that the page represents is different from the page title. (i.e.: "Frank's Café" vs "Welcome to Frank's Café")
|
77
77
|
* `type` - The type of things that the page represents. This must be a [Schema.org type](http://schema.org/docs/schemas.html), and will probably usually be something like [`BlogPosting`](http://schema.org/BlogPosting), [`NewsArticle`](http://schema.org/NewsArticle), [`Person`](http://schema.org/Person), [`Organization`](http://schema.org/Organization), etc.
|
78
78
|
* `links` - An array of other URLs that represent the same thing that this page represents. For instance, Jane's bio page might include links to Jane's GitHub and Twitter profiles.
|
79
|
+
* `date_modified` - Manually specify the `dateModified` field in the JSON-LD output to override Jekyll's own `dateModified`.
|
80
|
+
This field will take **first priority** for the `dateModified` JSON-LD output. This is useful when the file timestamp does not match the true time that the content was modified. A user may also install [Last Modified At](https://github.com/gjtorikian/jekyll-last-modified-at) which will offer an alternative way of providing for the `dateModified` field.
|
79
81
|
|
80
82
|
### Customizing image output
|
81
83
|
|
data/docs/usage.md
CHANGED
@@ -35,7 +35,6 @@ The SEO tag will respect any of the following if included in your site's `_confi
|
|
35
35
|
* `social` - For [specifying social profiles](https://developers.google.com/structured-data/customize/social-profiles). The following properties are available:
|
36
36
|
* `name` - If the user or organization name differs from the site's name
|
37
37
|
* `links` - An array of links to social media profiles.
|
38
|
-
* `date_modified` - Manually specify the `dateModified` field in the JSON-LD output to override Jekyll's own `dateModified`. This field will take **first priority** for the `dateModified` JSON-LD output. This is useful when the file timestamp does not match the true time that the content was modified. A user may also install [Last Modified At](https://github.com/gjtorikian/jekyll-last-modified-at) which will offer an alternative way of providing for the `dateModified` field.
|
39
38
|
|
40
39
|
```yml
|
41
40
|
social:
|
data/jekyll-seo-tag.gemspec
CHANGED
@@ -29,8 +29,8 @@ Gem::Specification.new do |spec|
|
|
29
29
|
spec.require_paths = ["lib"]
|
30
30
|
|
31
31
|
spec.add_dependency "jekyll", "~> 3.3"
|
32
|
-
spec.add_development_dependency "bundler", "
|
32
|
+
spec.add_development_dependency "bundler", ">= 1.15"
|
33
33
|
spec.add_development_dependency "html-proofer", "~> 3.7"
|
34
34
|
spec.add_development_dependency "rspec", "~> 3.5"
|
35
|
-
spec.add_development_dependency "rubocop", "~> 0.
|
35
|
+
spec.add_development_dependency "rubocop-jekyll", "~> 0.4"
|
36
36
|
end
|
data/lib/jekyll-seo-tag.rb
CHANGED
@@ -24,7 +24,7 @@ module Jekyll
|
|
24
24
|
# We will not strip any whitespace if the next character is a '-'
|
25
25
|
# so that we do not interfere with the HTML comment at the
|
26
26
|
# very begining
|
27
|
-
MINIFY_REGEX = %r!(?<=[{}]|[>,]\n)\s+(?\!-)
|
27
|
+
MINIFY_REGEX = %r!(?<=[{}]|[>,]\n)\s+(?\!-)!.freeze
|
28
28
|
|
29
29
|
def initialize(_tag_name, text, _tokens)
|
30
30
|
super
|
@@ -47,15 +47,20 @@ module Jekyll
|
|
47
47
|
|
48
48
|
def payload
|
49
49
|
# site_payload is an instance of UnifiedPayloadDrop. See https://git.io/v5ajm
|
50
|
-
Jekyll::Utils.deep_merge_hashes(
|
50
|
+
Jekyll::Utils.deep_merge_hashes(
|
51
|
+
context.registers[:site].site_payload,
|
51
52
|
"page" => context.registers[:page],
|
52
53
|
"paginator" => context["paginator"],
|
53
|
-
"seo_tag" => drop
|
54
|
-
|
54
|
+
"seo_tag" => drop
|
55
|
+
)
|
55
56
|
end
|
56
57
|
|
57
58
|
def drop
|
58
|
-
|
59
|
+
if context.registers[:site].liquid_renderer.respond_to?(:cache)
|
60
|
+
Jekyll::SeoTag::Drop.new(@text, @context)
|
61
|
+
else
|
62
|
+
@drop ||= Jekyll::SeoTag::Drop.new(@text, @context)
|
63
|
+
end
|
59
64
|
end
|
60
65
|
|
61
66
|
def info
|
@@ -19,6 +19,7 @@ module Jekyll
|
|
19
19
|
# site - The Jekyll::Drops::SiteDrop
|
20
20
|
def initialize(page: nil, site: nil)
|
21
21
|
raise ArgumentError unless page && site
|
22
|
+
|
22
23
|
@mutations = {}
|
23
24
|
@page = page
|
24
25
|
@site = site
|
@@ -33,6 +34,7 @@ module Jekyll
|
|
33
34
|
|
34
35
|
def twitter
|
35
36
|
return @twitter if defined? @twitter
|
37
|
+
|
36
38
|
twitter = author_hash["twitter"] || author_hash["name"]
|
37
39
|
@twitter = twitter.is_a?(String) ? twitter.sub(%r!^@!, "") : nil
|
38
40
|
end
|
@@ -47,6 +49,7 @@ module Jekyll
|
|
47
49
|
# Returns a string or hash representing the author
|
48
50
|
def resolved_author
|
49
51
|
return @resolved_author if defined? @resolved_author
|
52
|
+
|
50
53
|
sources = [page["author"]]
|
51
54
|
sources << page["authors"].first if page["authors"].is_a?(Array)
|
52
55
|
sources << site["author"]
|
@@ -61,6 +64,7 @@ module Jekyll
|
|
61
64
|
@site_data_hash ||= begin
|
62
65
|
return {} unless resolved_author.is_a?(String)
|
63
66
|
return {} unless site.data["authors"].is_a?(Hash)
|
67
|
+
|
64
68
|
author_hash = site.data["authors"][resolved_author]
|
65
69
|
author_hash.is_a?(Hash) ? author_hash : {}
|
66
70
|
end
|
data/lib/jekyll-seo-tag/drop.rb
CHANGED
@@ -6,10 +6,10 @@ module Jekyll
|
|
6
6
|
include Jekyll::SeoTag::UrlHelper
|
7
7
|
|
8
8
|
TITLE_SEPARATOR = " | "
|
9
|
-
FORMAT_STRING_METHODS =
|
10
|
-
markdownify strip_html normalize_whitespace escape_once
|
9
|
+
FORMAT_STRING_METHODS = [
|
10
|
+
:markdownify, :strip_html, :normalize_whitespace, :escape_once,
|
11
11
|
].freeze
|
12
|
-
HOMEPAGE_OR_ABOUT_REGEX = %r!^/(about/)?(index.html?)
|
12
|
+
HOMEPAGE_OR_ABOUT_REGEX = %r!^/(about/)?(index.html?)?$!.freeze
|
13
13
|
|
14
14
|
def initialize(text, context)
|
15
15
|
@obj = {}
|
@@ -26,6 +26,7 @@ module Jekyll
|
|
26
26
|
def title?
|
27
27
|
return false unless title
|
28
28
|
return @display_title if defined?(@display_title)
|
29
|
+
|
29
30
|
@display_title = (@text !~ %r!title=false!i)
|
30
31
|
end
|
31
32
|
|
@@ -43,6 +44,7 @@ module Jekyll
|
|
43
44
|
end
|
44
45
|
|
45
46
|
# Page title with site title or description appended
|
47
|
+
# rubocop:disable Metrics/CyclomaticComplexity
|
46
48
|
def title
|
47
49
|
@title ||= begin
|
48
50
|
if site_title && page_title != site_title
|
@@ -54,15 +56,15 @@ module Jekyll
|
|
54
56
|
end
|
55
57
|
end
|
56
58
|
|
57
|
-
if page_number
|
58
|
-
return page_number + @title
|
59
|
-
end
|
59
|
+
return page_number + @title if page_number
|
60
60
|
|
61
61
|
@title
|
62
62
|
end
|
63
|
+
# rubocop:enable Metrics/CyclomaticComplexity
|
63
64
|
|
64
65
|
def name
|
65
66
|
return @name if defined?(@name)
|
67
|
+
|
66
68
|
@name = if seo_name
|
67
69
|
seo_name
|
68
70
|
elsif !homepage_or_about?
|
@@ -141,6 +143,7 @@ module Jekyll
|
|
141
143
|
def logo
|
142
144
|
@logo ||= begin
|
143
145
|
return unless site["logo"]
|
146
|
+
|
144
147
|
if absolute_url? site["logo"]
|
145
148
|
filters.uri_escape site["logo"]
|
146
149
|
else
|
@@ -187,9 +190,7 @@ module Jekyll
|
|
187
190
|
current = @context["paginator"]["page"]
|
188
191
|
total = @context["paginator"]["total_pages"]
|
189
192
|
|
190
|
-
if current > 1
|
191
|
-
return "Page #{current} of #{total} for "
|
192
|
-
end
|
193
|
+
return "Page #{current} of #{total} for " if current > 1
|
193
194
|
end
|
194
195
|
|
195
196
|
attr_reader :context
|
@@ -18,6 +18,7 @@ module Jekyll
|
|
18
18
|
# context - the Liquid::Context
|
19
19
|
def initialize(page: nil, context: nil)
|
20
20
|
raise ArgumentError unless page && context
|
21
|
+
|
21
22
|
@mutations = {}
|
22
23
|
@page = page
|
23
24
|
@context = context
|
@@ -57,6 +58,7 @@ module Jekyll
|
|
57
58
|
def absolute_url
|
58
59
|
return unless raw_path
|
59
60
|
return @absolute_url if defined? @absolute_url
|
61
|
+
|
60
62
|
@absolute_url = if raw_path.is_a?(String) && absolute_url?(raw_path) == false
|
61
63
|
filters.absolute_url raw_path
|
62
64
|
else
|
@@ -28,12 +28,13 @@ module Jekyll
|
|
28
28
|
|
29
29
|
def fallback_data
|
30
30
|
{
|
31
|
-
"@context" => "
|
31
|
+
"@context" => "https://schema.org",
|
32
32
|
}
|
33
33
|
end
|
34
34
|
|
35
35
|
def author
|
36
36
|
return unless page_drop.author["name"]
|
37
|
+
|
37
38
|
{
|
38
39
|
"@type" => "Person",
|
39
40
|
"name" => page_drop.author["name"],
|
@@ -52,6 +53,7 @@ module Jekyll
|
|
52
53
|
|
53
54
|
def publisher
|
54
55
|
return unless logo
|
56
|
+
|
55
57
|
output = {
|
56
58
|
"@type" => "Organization",
|
57
59
|
"logo" => {
|
@@ -65,6 +67,7 @@ module Jekyll
|
|
65
67
|
|
66
68
|
def main_entity
|
67
69
|
return unless %w(BlogPosting CreativeWork).include?(type)
|
70
|
+
|
68
71
|
{
|
69
72
|
"@type" => "WebPage",
|
70
73
|
"@id" => page_drop.canonical_url,
|
data/lib/template.html
CHANGED
@@ -54,10 +54,12 @@
|
|
54
54
|
{% if site.twitter %}
|
55
55
|
{% if seo_tag.image %}
|
56
56
|
<meta name="twitter:card" content="{{ page.twitter.card | default: site.twitter.card | default: "summary_large_image" }}" />
|
57
|
+
<meta property="twitter:image" content="{{ seo_tag.image.path }}" />
|
57
58
|
{% else %}
|
58
59
|
<meta name="twitter:card" content="summary" />
|
59
60
|
{% endif %}
|
60
61
|
|
62
|
+
<meta property="twitter:title" content="{{ seo_tag.page_title }}" />
|
61
63
|
<meta name="twitter:site" content="@{{ site.twitter.username | replace:"@","" }}" />
|
62
64
|
|
63
65
|
{% if seo_tag.author.twitter %}
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: jekyll-seo-tag
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.
|
4
|
+
version: 2.6.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ben Balter
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2019-03-16 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: jekyll
|
@@ -28,14 +28,14 @@ dependencies:
|
|
28
28
|
name: bundler
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- - "
|
31
|
+
- - ">="
|
32
32
|
- !ruby/object:Gem::Version
|
33
33
|
version: '1.15'
|
34
34
|
type: :development
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- - "
|
38
|
+
- - ">="
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: '1.15'
|
41
41
|
- !ruby/object:Gem::Dependency
|
@@ -67,19 +67,19 @@ dependencies:
|
|
67
67
|
- !ruby/object:Gem::Version
|
68
68
|
version: '3.5'
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
|
-
name: rubocop
|
70
|
+
name: rubocop-jekyll
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
72
72
|
requirements:
|
73
73
|
- - "~>"
|
74
74
|
- !ruby/object:Gem::Version
|
75
|
-
version: 0.
|
75
|
+
version: '0.4'
|
76
76
|
type: :development
|
77
77
|
prerelease: false
|
78
78
|
version_requirements: !ruby/object:Gem::Requirement
|
79
79
|
requirements:
|
80
80
|
- - "~>"
|
81
81
|
- !ruby/object:Gem::Version
|
82
|
-
version: 0.
|
82
|
+
version: '0.4'
|
83
83
|
description:
|
84
84
|
email:
|
85
85
|
- ben.balter@github.com
|
@@ -135,8 +135,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
135
135
|
- !ruby/object:Gem::Version
|
136
136
|
version: '0'
|
137
137
|
requirements: []
|
138
|
-
|
139
|
-
rubygems_version: 2.7.6
|
138
|
+
rubygems_version: 3.0.3
|
140
139
|
signing_key:
|
141
140
|
specification_version: 4
|
142
141
|
summary: A Jekyll plugin to add metadata tags for search engines and social networks
|