jekyll-seo-tag 1.0.0 → 1.1.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 +10 -0
- data/Gemfile +12 -2
- data/README.md +8 -3
- data/Rakefile +3 -3
- data/jekyll-seo-tag.gemspec +16 -16
- data/lib/jekyll-seo-tag.rb +12 -7
- data/lib/jekyll-seo-tag/filters.rb +0 -1
- data/lib/jekyll-seo-tag/version.rb +1 -1
- data/lib/template.html +21 -1
- data/script/cibuild +1 -0
- metadata +18 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f841664e9807e1d76d4ce51846a5f3b7d3239457
|
4
|
+
data.tar.gz: 53aa91acd74b1e52119a51d484ced2c99da32587
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 108c1ea4cdf5286e00d7727c0dcfd207021959f457117de75a33c012905f5cd3413ff87708fb6297a9171730f0c9592c6a52904bad8ff991da63aae5bb27a894
|
7
|
+
data.tar.gz: d4a22ada3a1311d1a8b1149dff77a2a0435d97a8db78431fc33a42819f777d763f5f7daddb70bc151a802aa16c35ed4f6a2a5a59eede963808f7d87f55bbfecf
|
data/.rubocop.yml
ADDED
data/Gemfile
CHANGED
@@ -1,6 +1,16 @@
|
|
1
1
|
source 'https://rubygems.org'
|
2
|
+
require 'json'
|
3
|
+
require 'open-uri'
|
2
4
|
|
3
|
-
# Specify your gem's dependencies in jekyll_seo_tags.gemspec
|
4
5
|
gemspec
|
5
6
|
|
6
|
-
|
7
|
+
group :development, :test do
|
8
|
+
versions = JSON.parse(open('https://pages.github.com/versions.json').read)
|
9
|
+
versions.delete('ruby')
|
10
|
+
versions.delete('jekyll-seo-tag')
|
11
|
+
versions.delete('github-pages')
|
12
|
+
|
13
|
+
versions.each do |dep, version|
|
14
|
+
gem dep, version
|
15
|
+
end
|
16
|
+
end
|
data/README.md
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
A Jekyll plugin to add metadata tags for search engines and social networks to better index and display your site's content.
|
4
4
|
|
5
|
-
[](https://badge.fury.io/rb/jekyll-seo-tag) [](https://travis-ci.org/benbalter/jekyll-seo-tag)
|
5
|
+
[](https://badge.fury.io/rb/jekyll-seo-tag) [](https://travis-ci.org/benbalter/jekyll-seo-tag)
|
6
6
|
|
7
7
|
## What it does
|
8
8
|
|
@@ -53,17 +53,22 @@ The SEO tag will respect any of the following if included in your site's `_confi
|
|
53
53
|
* `description` - A short description (e.g., A blog dedicated to reviewing cat gifs)
|
54
54
|
* `url` - The full URL to your site. Note: `site.github.url` will be used by default.
|
55
55
|
* `twitter:username` - The site's Twitter handle. You'll want to describe it like so:
|
56
|
-
|
57
56
|
```yml
|
58
57
|
twitter:
|
59
58
|
username: benbalter
|
60
59
|
```
|
61
|
-
|
60
|
+
* `facebook:app_id` (A Facebook app ID for Facebook insights), and/or `facebook:publisher` (A Facebook page URL or ID of the publishing entity). You'll want to describe one or both like so:
|
61
|
+
```yml
|
62
|
+
facebook:
|
63
|
+
app_id: 1234
|
64
|
+
publisher: 1234
|
65
|
+
```
|
62
66
|
* `logo` - Relative URL to a site-wide logo (e.g., `assets/your-company-logo.png`)
|
63
67
|
* `social` - For [specifying social profiles](https://developers.google.com/structured-data/customize/social-profiles). The following properties are available:
|
64
68
|
* `type` - Either `person` or `organization` (defaults to `person`)
|
65
69
|
* `name` - If the user or organization name differs from the site's name
|
66
70
|
* `links` - An array of links to social media profiles.
|
71
|
+
* `google_site_verification` for verifying ownership via Google webmaster tools
|
67
72
|
|
68
73
|
The SEO tag will respect the following YAML front matter if included in a post, page, or document:
|
69
74
|
|
data/Rakefile
CHANGED
data/jekyll-seo-tag.gemspec
CHANGED
@@ -4,31 +4,31 @@ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
|
4
4
|
require 'jekyll-seo-tag/version'
|
5
5
|
|
6
6
|
Gem::Specification.new do |spec|
|
7
|
-
spec.name =
|
7
|
+
spec.name = 'jekyll-seo-tag'
|
8
8
|
spec.version = Jekyll::SeoTag::VERSION
|
9
|
-
spec.authors = [
|
10
|
-
spec.email = [
|
11
|
-
spec.summary =
|
12
|
-
spec.homepage =
|
13
|
-
spec.license =
|
9
|
+
spec.authors = ['Ben Balter']
|
10
|
+
spec.email = ['ben.balter@github.com']
|
11
|
+
spec.summary = "A Jekyll plugin to add metadata tags for search engines and social networks to better index and display your site's content."
|
12
|
+
spec.homepage = 'https://github.com/benbalter/jekyll-seo-tag'
|
13
|
+
spec.license = 'MIT'
|
14
14
|
|
15
15
|
# Prevent pushing this gem to RubyGems.org by setting 'allowed_push_host', or
|
16
16
|
# delete this section to allow pushing this gem to any host.
|
17
17
|
if spec.respond_to?(:metadata)
|
18
|
-
spec.metadata['allowed_push_host'] =
|
18
|
+
spec.metadata['allowed_push_host'] = 'https://rubygems.org'
|
19
19
|
else
|
20
|
-
raise
|
20
|
+
raise 'RubyGems 2.0 or newer is required to protect against public gem pushes.'
|
21
21
|
end
|
22
22
|
|
23
23
|
spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
|
24
|
-
spec.bindir =
|
24
|
+
spec.bindir = 'exe'
|
25
25
|
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
26
|
-
spec.require_paths = [
|
27
|
-
|
28
|
-
spec.add_dependency "jekyll", ">= 2.0"
|
29
|
-
spec.add_development_dependency "bundler", "~> 1.10"
|
30
|
-
spec.add_development_dependency "rake", "~> 10.0"
|
31
|
-
spec.add_development_dependency "rspec", "~> 3.3"
|
32
|
-
spec.add_development_dependency "html-proofer", "~> 2.5"
|
26
|
+
spec.require_paths = ['lib']
|
33
27
|
|
28
|
+
spec.add_dependency 'jekyll', '>= 2.0'
|
29
|
+
spec.add_development_dependency 'bundler', '~> 1.10'
|
30
|
+
spec.add_development_dependency 'rake', '~> 10.0'
|
31
|
+
spec.add_development_dependency 'rspec', '~> 3.3'
|
32
|
+
spec.add_development_dependency 'html-proofer', '~> 2.5'
|
33
|
+
spec.add_development_dependency 'rubocop', '~> 0.37'
|
34
34
|
end
|
data/lib/jekyll-seo-tag.rb
CHANGED
@@ -2,9 +2,10 @@ require 'jekyll-seo-tag/filters'
|
|
2
2
|
|
3
3
|
module Jekyll
|
4
4
|
class SeoTag < Liquid::Tag
|
5
|
-
|
6
5
|
attr_accessor :context
|
7
6
|
|
7
|
+
MINIFY_REGEX = /(>\n|[%}]})\s+(<|{[{%])/
|
8
|
+
|
8
9
|
def render(context)
|
9
10
|
@context = context
|
10
11
|
output = template.render!(payload, info)
|
@@ -16,15 +17,15 @@ module Jekyll
|
|
16
17
|
|
17
18
|
def payload
|
18
19
|
{
|
19
|
-
|
20
|
-
|
20
|
+
'page' => context.registers[:page],
|
21
|
+
'site' => context.registers[:site].site_payload['site']
|
21
22
|
}
|
22
23
|
end
|
23
24
|
|
24
25
|
def info
|
25
26
|
{
|
26
|
-
:
|
27
|
-
:
|
27
|
+
registers: context.registers,
|
28
|
+
filters: [Jekyll::Filters, JekyllSeoTag::Filters]
|
28
29
|
}
|
29
30
|
end
|
30
31
|
|
@@ -33,11 +34,15 @@ module Jekyll
|
|
33
34
|
end
|
34
35
|
|
35
36
|
def template_contents
|
36
|
-
@template_contents ||=
|
37
|
+
@template_contents ||= begin
|
38
|
+
File.read(template_path).gsub(MINIFY_REGEX, '\1\2').chomp
|
39
|
+
end
|
37
40
|
end
|
38
41
|
|
39
42
|
def template_path
|
40
|
-
@template_path ||=
|
43
|
+
@template_path ||= begin
|
44
|
+
File.expand_path './template.html', File.dirname(__FILE__)
|
45
|
+
end
|
41
46
|
end
|
42
47
|
end
|
43
48
|
end
|
data/lib/template.html
CHANGED
@@ -4,28 +4,32 @@
|
|
4
4
|
{% assign seo_url = site.url | append: site.baseurl %}
|
5
5
|
{% endif %}
|
6
6
|
{% assign seo_url = seo_url | default: site.github.url %}
|
7
|
-
|
8
7
|
{% assign seo_site_title = site.title | default: site.name %}
|
9
8
|
|
10
9
|
{% if page.title %}
|
11
10
|
{% assign seo_title = page.title %}
|
12
11
|
{% assign seo_page_title = page.title %}
|
12
|
+
|
13
13
|
{% if seo_site_title %}
|
14
14
|
{% assign seo_title = seo_title | append:" - " | append: seo_site_title %}
|
15
15
|
{% endif %}
|
16
16
|
{% elsif seo_site_title %}
|
17
17
|
{% assign seo_title = seo_site_title %}
|
18
18
|
{% assign seo_page_title = seo_site_title %}
|
19
|
+
|
19
20
|
{% if site.description %}
|
20
21
|
{% assign seo_title = seo_title | append:" - " | append: site.description %}
|
21
22
|
{% endif %}
|
22
23
|
{% endif %}
|
24
|
+
|
23
25
|
{% if seo_title %}
|
24
26
|
{% assign seo_title = seo_title | markdownify | strip_html | strip_newlines | escape_once %}
|
25
27
|
{% endif %}
|
28
|
+
|
26
29
|
{% if seo_site_title %}
|
27
30
|
{% assign seo_site_title = seo_site_title | markdownify | strip_html | strip_newlines | escape_once %}
|
28
31
|
{% endif %}
|
32
|
+
|
29
33
|
{% if seo_page_title %}
|
30
34
|
{% assign seo_page_title = seo_page_title | markdownify | strip_html | strip_newlines | escape_once %}
|
31
35
|
{% endif %}
|
@@ -39,6 +43,7 @@
|
|
39
43
|
{% assign seo_author_name = page.author.name | default: page.author %}
|
40
44
|
{% assign seo_author_twitter = page.author.twitter | default: page.author %}
|
41
45
|
{% endif %}
|
46
|
+
|
42
47
|
{% if seo_author_twitter %}
|
43
48
|
{% assign seo_author_twitter = seo_author_twitter | replace:"@","" | prepend:"@" %}
|
44
49
|
{% endif %}
|
@@ -79,12 +84,16 @@
|
|
79
84
|
|
80
85
|
{% if page.date %}
|
81
86
|
<meta property="og:type" content="article" />
|
87
|
+
<meta property="article:published_time" content="{{ page.date | date_to_xmlschema }}" />
|
88
|
+
|
82
89
|
{% if page.next.url %}
|
83
90
|
<link rel="next" href="{{ page.next.url | prepend: seo_url | replace:'/index.html','/' }}" title="{{ page.next.title | escape }}" />
|
84
91
|
{% endif %}
|
92
|
+
|
85
93
|
{% if page.previous.url %}
|
86
94
|
<link rel="prev" href="{{ page.previous.url | prepend: seo_url | replace:'/index.html','/' }}" title="{{ page.previous.title | escape }}" />
|
87
95
|
{% endif %}
|
96
|
+
|
88
97
|
<script type="application/ld+json">
|
89
98
|
{
|
90
99
|
"@context": "http://schema.org",
|
@@ -102,14 +111,25 @@
|
|
102
111
|
<meta name="twitter:site" content="@{{ site.twitter.username | replace:"@","" }}" />
|
103
112
|
<meta name="twitter:title" content="{{ seo_title }}" />
|
104
113
|
<meta name="twitter:description" content="{{ seo_description }}" />
|
114
|
+
|
105
115
|
{% if page.image %}
|
106
116
|
<meta name="twitter:image" content="{{ page.image | escape }}" />
|
107
117
|
{% endif %}
|
118
|
+
|
108
119
|
{% if seo_author_twitter %}
|
109
120
|
<meta name="twitter:creator" content="{{ seo_author_twitter }}" />
|
110
121
|
{% endif %}
|
111
122
|
{% endif %}
|
112
123
|
|
124
|
+
{% if site.facebook %}
|
125
|
+
<meta property="article:publisher" content="{{ site.facebook.publisher }}" />
|
126
|
+
<meta property="fb:app_id" content="{{ site.facebook.app_id }}" />
|
127
|
+
{% endif %}
|
128
|
+
|
129
|
+
{% if site.google_site_verification %}
|
130
|
+
<meta name="google-site-verification" content="{{ site.google_site_verification }}" />
|
131
|
+
{% endif %}
|
132
|
+
|
113
133
|
{% if site.logo %}
|
114
134
|
<script type="application/ld+json">
|
115
135
|
{
|
data/script/cibuild
CHANGED
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: 1.
|
4
|
+
version: 1.1.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: 2016-02-
|
11
|
+
date: 2016-02-20 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: jekyll
|
@@ -80,6 +80,20 @@ dependencies:
|
|
80
80
|
- - "~>"
|
81
81
|
- !ruby/object:Gem::Version
|
82
82
|
version: '2.5'
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: rubocop
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - "~>"
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: '0.37'
|
90
|
+
type: :development
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - "~>"
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: '0.37'
|
83
97
|
description:
|
84
98
|
email:
|
85
99
|
- ben.balter@github.com
|
@@ -89,6 +103,7 @@ extra_rdoc_files: []
|
|
89
103
|
files:
|
90
104
|
- ".gitignore"
|
91
105
|
- ".rspec"
|
106
|
+
- ".rubocop.yml"
|
92
107
|
- ".travis.yml"
|
93
108
|
- Gemfile
|
94
109
|
- LICENSE.txt
|
@@ -123,7 +138,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
123
138
|
version: '0'
|
124
139
|
requirements: []
|
125
140
|
rubyforge_project:
|
126
|
-
rubygems_version: 2.5.
|
141
|
+
rubygems_version: 2.5.2
|
127
142
|
signing_key:
|
128
143
|
specification_version: 4
|
129
144
|
summary: A Jekyll plugin to add metadata tags for search engines and social networks
|