scrivito_seo_page_extender 0.0.1
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 +7 -0
- data/LICENSE +4 -0
- data/Rakefile +24 -0
- data/app/assets/javascripts/scrivito_seo_page_extender/application.js +13 -0
- data/app/assets/stylesheets/scrivito_seo_page_extender/application.css +15 -0
- data/app/concerns/meta_data_extender.rb +15 -0
- data/app/concerns/open_graph_extender.rb +15 -0
- data/app/concerns/sitemap_extender.rb +6 -0
- data/app/helper/seo_page_extender_helper.rb +41 -0
- data/app/views/seo_page_extender/_meta_attribute.html.erb +7 -0
- data/app/views/seo_page_extender/_meta_data.html.erb +7 -0
- data/app/views/seo_page_extender/_meta_data_details.html.erb +19 -0
- data/app/views/seo_page_extender/_open_graph.html.erb +11 -0
- data/app/views/seo_page_extender/_open_graph_details.html.erb +43 -0
- data/app/views/seo_page_extender/_sitemap_details.html.erb +7 -0
- data/app/views/seo_page_extender/_word_density.html.erb +26 -0
- data/app/views/seo_page_extender/_word_density_part.html.erb +22 -0
- data/lib/scrivito_seo_page_extender.rb +4 -0
- data/lib/scrivito_seo_page_extender/engine.rb +11 -0
- data/lib/scrivito_seo_page_extender/version.rb +3 -0
- data/lib/tasks/scrivito_seo_page_extender_tasks.rake +4 -0
- metadata +122 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 0ed2ecbfe3ee81169a8f1cdee0ff37630732abcc
|
4
|
+
data.tar.gz: 38e29d9d6c202cd896814e596345cf806099b68e
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 3fe5c7ccd6e19be9b8ea1e160819c2f366ffeb2dafd80019a1d349e44620581f1153c72b111d2121ede50eb599b93c47aef9809bb8d9e3f6b8860235ea38df58
|
7
|
+
data.tar.gz: befb2f0a6964c1a0fd52ca662044d2f7c0a6abfeacd1c7b0201678c3d4bdde5a07d5908d8b596ecbcdef6d59c9b36c27be9935e7a7476209ad4a356ac06bed98
|
data/LICENSE
ADDED
data/Rakefile
ADDED
@@ -0,0 +1,24 @@
|
|
1
|
+
begin
|
2
|
+
require 'bundler/setup'
|
3
|
+
rescue LoadError
|
4
|
+
puts 'You must `gem install bundler` and `bundle install` to run rake tasks'
|
5
|
+
end
|
6
|
+
|
7
|
+
require 'rdoc/task'
|
8
|
+
|
9
|
+
RDoc::Task.new(:rdoc) do |rdoc|
|
10
|
+
rdoc.rdoc_dir = 'rdoc'
|
11
|
+
rdoc.title = 'ScrivitoSeoPageExtender'
|
12
|
+
rdoc.options << '--line-numbers'
|
13
|
+
rdoc.rdoc_files.include('README.rdoc')
|
14
|
+
rdoc.rdoc_files.include('lib/**/*.rb')
|
15
|
+
end
|
16
|
+
|
17
|
+
|
18
|
+
|
19
|
+
load 'rails/tasks/statistics.rake'
|
20
|
+
|
21
|
+
|
22
|
+
|
23
|
+
Bundler::GemHelper.install_tasks
|
24
|
+
|
@@ -0,0 +1,13 @@
|
|
1
|
+
// This is a manifest file that'll be compiled into application.js, which will include all the files
|
2
|
+
// listed below.
|
3
|
+
//
|
4
|
+
// Any JavaScript/Coffee file within this directory, lib/assets/javascripts, vendor/assets/javascripts,
|
5
|
+
// or any plugin's vendor/assets/javascripts directory can be referenced here using a relative path.
|
6
|
+
//
|
7
|
+
// It's not advisable to add code directly here, but if you do, it'll appear at the bottom of the
|
8
|
+
// compiled file.
|
9
|
+
//
|
10
|
+
// Read Sprockets README (https://github.com/rails/sprockets#sprockets-directives) for details
|
11
|
+
// about supported directives.
|
12
|
+
//
|
13
|
+
//= require_tree .
|
@@ -0,0 +1,15 @@
|
|
1
|
+
/*
|
2
|
+
* This is a manifest file that'll be compiled into application.css, which will include all the files
|
3
|
+
* listed below.
|
4
|
+
*
|
5
|
+
* Any CSS and SCSS file within this directory, lib/assets/stylesheets, vendor/assets/stylesheets,
|
6
|
+
* or any plugin's vendor/assets/stylesheets directory can be referenced here using a relative path.
|
7
|
+
*
|
8
|
+
* You're free to add application-wide styles to this file and they'll appear at the bottom of the
|
9
|
+
* compiled file so the styles you add here take precedence over styles defined in any styles
|
10
|
+
* defined in the other CSS/SCSS files in this directory. It is generally better to create a new
|
11
|
+
* file per style scope.
|
12
|
+
*
|
13
|
+
*= require_tree .
|
14
|
+
*= require_self
|
15
|
+
*/
|
@@ -0,0 +1,15 @@
|
|
1
|
+
module MetaDataExtender
|
2
|
+
def self.included(base)
|
3
|
+
base.attribute :meta_description, :string
|
4
|
+
base.attribute :meta_keywords, :string
|
5
|
+
base.attribute :meta_author, :string
|
6
|
+
base.attribute :meta_keywords, :string
|
7
|
+
base.attribute :meta_publisher, :string
|
8
|
+
base.attribute :meta_copyright, :string
|
9
|
+
|
10
|
+
base.attribute :meta_page_topic, :string
|
11
|
+
base.attribute :meta_page_type, :string
|
12
|
+
base.attribute :meta_audience, :string
|
13
|
+
base.attribute :meta_robots, :enum, values: ["index", "noindex", "nofollow", "all"]
|
14
|
+
end
|
15
|
+
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
module OpenGraphExtender
|
2
|
+
def self.included(base)
|
3
|
+
base.attribute :og_author, :string
|
4
|
+
base.attribute :og_creator, :string
|
5
|
+
base.attribute :og_description, :string
|
6
|
+
base.attribute :og_director, :string
|
7
|
+
base.attribute :og_duration, :string
|
8
|
+
base.attribute :og_image, :reference
|
9
|
+
base.attribute :og_obj_type, :enum, values: ["website", "article", "profile", "video", "book", "other"]
|
10
|
+
base.attribute :og_release_date, :date
|
11
|
+
base.attribute :og_section, :string
|
12
|
+
base.attribute :og_title, :string
|
13
|
+
base.attribute :og_url, :string
|
14
|
+
end
|
15
|
+
end
|
@@ -0,0 +1,6 @@
|
|
1
|
+
module SitemapExtender
|
2
|
+
def self.included(base)
|
3
|
+
base.attribute :sitemap_frequency, :enum, values: ["always", "hourly", "daily", "weekly", "monthly", "yearly", "never"]
|
4
|
+
base.attribute :sitemap_priority, :enum, values: ["0.1", "0.2", "0.3", "0.4", "0.5", "0.6", "0.7", "0.8", "0.9", "1.0"]
|
5
|
+
end
|
6
|
+
end
|
@@ -0,0 +1,41 @@
|
|
1
|
+
module SeoPageExtenderHelper
|
2
|
+
def words_density(obj, attribute)
|
3
|
+
words = get_words_from_page(obj, attribute).map { |e| e.downcase.gsub(/[^a-z0-9\s]/i, '') }
|
4
|
+
without_stop_words = remove_stop_words(words)
|
5
|
+
return {
|
6
|
+
count: without_stop_words.count,
|
7
|
+
density_for_one: density_with_one_word(without_stop_words),
|
8
|
+
density_for_two: density_with_n_word(2,without_stop_words),
|
9
|
+
density_for_three: density_with_n_word(3,without_stop_words)
|
10
|
+
}
|
11
|
+
end
|
12
|
+
|
13
|
+
private
|
14
|
+
def get_words_from_page(obj, attribute)
|
15
|
+
strip_tags(scrivito_tag(:span, obj, attribute).to_s).split(" ")
|
16
|
+
end
|
17
|
+
|
18
|
+
def calulate_count_of_all_words(words)
|
19
|
+
words.each_with_object(Hash.new(0)) {|word,counts| counts[word] += 1 }
|
20
|
+
end
|
21
|
+
|
22
|
+
def remove_stop_words(density)
|
23
|
+
density.select {|e| !stop_words_fallback.include? e}
|
24
|
+
end
|
25
|
+
|
26
|
+
def density_with_one_word(words)
|
27
|
+
calulate_count_of_all_words(words).sort_by {|word,count| count}.reverse
|
28
|
+
end
|
29
|
+
|
30
|
+
def density_with_n_word(n, words)
|
31
|
+
two_words = []
|
32
|
+
words[0..-(n+1)].each_with_index do |word, index|
|
33
|
+
two_words << words[index..index+n-1].join(" ")
|
34
|
+
end
|
35
|
+
return calulate_count_of_all_words(two_words).sort_by {|word,count| count}.reverse
|
36
|
+
end
|
37
|
+
|
38
|
+
def stop_words_fallback
|
39
|
+
"a,able,about,across,after,all,almost,also,am,among,an,and,any,are,as,at,be,because,been,but,by,can,cannot,could,dear,did,do,does,either,else,ever,every,for,from,get,got,had,has,have,he,her,hers,him,his,how,however,i,if,in,into,is,it,its,just,least,let,like,likely,may,me,might,most,must,my,neither,no,nor,not,of,off,often,on,only,or,other,our,own,rather,said,say,says,she,should,since,so,some,than,that,the,their,them,then,there,these,they,this,tis,to,too,twas,us,wants,was,we,were,what,when,where,which,while,who,whom,why,will,with,would,yet,you,your".split(",")
|
40
|
+
end
|
41
|
+
end
|
@@ -0,0 +1,7 @@
|
|
1
|
+
<% if @obj.respond_to?(attribute) && !@obj.send(attribute).blank? %>
|
2
|
+
<% if name.include? 'image' %>
|
3
|
+
<meta content="<%= @obj.send(attribute).try(:binary_url) %>" name="<%= name %>"/>
|
4
|
+
<% else %>
|
5
|
+
<meta content="<%= @obj.send(attribute) %>" name="<%= name %>"/>
|
6
|
+
<% end %>
|
7
|
+
<% end %>
|
@@ -0,0 +1,7 @@
|
|
1
|
+
<%= render "seo_page_extender/meta_attribute", attribute: "meta_keywords", name: "keywords" %>
|
2
|
+
<%= render "seo_page_extender/meta_attribute", attribute: "meta_description", name: "description" %>
|
3
|
+
<%= render "seo_page_extender/meta_attribute", attribute: "meta_robots", name: "robots" %>
|
4
|
+
<%= render "seo_page_extender/meta_attribute", attribute: "meta_author", name: "author" %>
|
5
|
+
|
6
|
+
<meta content="width=device-width, initial-scale=1.0" name="viewport"/>
|
7
|
+
<meta content="<%= 'https://#{request.raw_host_with_port + scrivito_path(@obj)}' %>" name="canonical"/>
|
@@ -0,0 +1,19 @@
|
|
1
|
+
<%= scrivito_details_for 'Keywords' do %>
|
2
|
+
<%= scrivito_tag(:div, obj, :meta_keywords, data: {editor: 'scrivito-list-editor', delimiter: ','}) %>
|
3
|
+
<% end %>
|
4
|
+
|
5
|
+
<%= scrivito_details_for 'Description' do %>
|
6
|
+
<%= scrivito_tag(:textarea, obj, :meta_description, data: {editor: 'scrivito-textarea-editor'}, style: 'width: 100%; height: 150px' ) %>
|
7
|
+
<% end %>
|
8
|
+
|
9
|
+
<%= scrivito_details_for 'Author' do %>
|
10
|
+
<%= scrivito_tag(:div, obj, :meta_author) %>
|
11
|
+
<% end %>
|
12
|
+
|
13
|
+
<%= scrivito_details_for 'Indexing for search engines' do %>
|
14
|
+
<%= scrivito_toggle_button_editor(obj, :meta_robots) %>
|
15
|
+
<% end %>
|
16
|
+
|
17
|
+
<%= scrivito_details_for 'Permalink' do %>
|
18
|
+
<%= scrivito_tag(:div, obj, :_permalink, data: {autosave: "false"}) %>
|
19
|
+
<% end %>
|
@@ -0,0 +1,11 @@
|
|
1
|
+
<%= render "seo_page_extender/meta_attribute", attribute: "og_title", name: "og:title" %>
|
2
|
+
<%= render "seo_page_extender/meta_attribute", attribute: "og_image", name: "og:image" %>
|
3
|
+
<%= render "seo_page_extender/meta_attribute", attribute: "og_url", name: "og:url" %>
|
4
|
+
<%= render "seo_page_extender/meta_attribute", attribute: "og_description", name: "og:description" %>
|
5
|
+
<%= render "seo_page_extender/meta_attribute", attribute: "og_creator", name: "og:creator" %>
|
6
|
+
<%= render "seo_page_extender/meta_attribute", attribute: "og_obj_type", name: "og:type" %>
|
7
|
+
<%= render "seo_page_extender/meta_attribute", attribute: "og_director", name: "og:dircetor" %>
|
8
|
+
<%= render "seo_page_extender/meta_attribute", attribute: "og_duration", name: "og:duration" %>
|
9
|
+
<%= render "seo_page_extender/meta_attribute", attribute: "og_release_date", name: "og:release_date" %>
|
10
|
+
<%= render "seo_page_extender/meta_attribute", attribute: "og_author", name: "og:author" %>
|
11
|
+
<%= render "seo_page_extender/meta_attribute", attribute: "og_section", name: "og:section" %>
|
@@ -0,0 +1,43 @@
|
|
1
|
+
<%= scrivito_details_for 'Title of page (Meta title as fallback)' do %>
|
2
|
+
<%= scrivito_tag(:div, obj, :og_title) %>
|
3
|
+
<% end %>
|
4
|
+
|
5
|
+
<%= scrivito_details_for 'Type' do %>
|
6
|
+
<%= scrivito_toggle_button_editor(obj, :og_obj_type) %>
|
7
|
+
<% end %>
|
8
|
+
|
9
|
+
<%= scrivito_details_for 'Image' do %>
|
10
|
+
<%= scrivito_tag(:div, obj, :og_image) %>
|
11
|
+
<% end %>
|
12
|
+
|
13
|
+
<%= scrivito_details_for 'Url' do %>
|
14
|
+
<%= scrivito_tag(:div, obj, :og_url) %>
|
15
|
+
<% end %>
|
16
|
+
|
17
|
+
<%= scrivito_details_for 'Description' do %>
|
18
|
+
<%= scrivito_tag(:div, obj, :og_description) %>
|
19
|
+
<% end %>
|
20
|
+
|
21
|
+
<%= scrivito_details_for 'Creator' do %>
|
22
|
+
<%= scrivito_tag(:div, obj, :og_creator) %>
|
23
|
+
<% end %>
|
24
|
+
|
25
|
+
<%= scrivito_details_for 'Director (For video)' do %>
|
26
|
+
<%= scrivito_tag(:div, obj, :og_director) %>
|
27
|
+
<% end %>
|
28
|
+
|
29
|
+
<%= scrivito_details_for 'Duration (For video)' do %>
|
30
|
+
<%= scrivito_tag(:div, obj, :og_duration) %>
|
31
|
+
<% end %>
|
32
|
+
|
33
|
+
<%= scrivito_details_for 'Release Date' do %>
|
34
|
+
<%= scrivito_tag(:div, obj, :og_release_date) %>
|
35
|
+
<% end %>
|
36
|
+
|
37
|
+
<%= scrivito_details_for 'Author (For book)' do %>
|
38
|
+
<%= scrivito_tag(:div, obj, :og_author) %>
|
39
|
+
<% end %>
|
40
|
+
|
41
|
+
<%= scrivito_details_for 'Section' do %>
|
42
|
+
<%= scrivito_tag(:div, obj, :og_section) %>
|
43
|
+
<% end %>
|
@@ -0,0 +1,7 @@
|
|
1
|
+
<%= scrivito_details_for 'Priority for Sitemap' do %>
|
2
|
+
<%= scrivito_toggle_button_editor(obj, :sitemap_priority) %>
|
3
|
+
<% end %>
|
4
|
+
|
5
|
+
<%= scrivito_details_for 'Frequency of visits for bots' do %>
|
6
|
+
<%= scrivito_toggle_button_editor(obj, :sitemap_frequency) %>
|
7
|
+
<% end %>
|
@@ -0,0 +1,26 @@
|
|
1
|
+
<% words = words_density(obj, attribute) %>
|
2
|
+
<h4>
|
3
|
+
<%= words[:count] %>good words on this page (words not in stop word list)
|
4
|
+
</h4>
|
5
|
+
<ul class='tab-list'>
|
6
|
+
<li class='active' data-panel-target='#one-word'>
|
7
|
+
Single Words
|
8
|
+
</li>
|
9
|
+
<li data-panel-target='#two-words'>
|
10
|
+
Two word phrases
|
11
|
+
</li>
|
12
|
+
<li data-panel-target='#three-words'>
|
13
|
+
Three word phrases
|
14
|
+
</li>
|
15
|
+
</ul>
|
16
|
+
<div class='tab-panels'>
|
17
|
+
<div class='tab-panel active' id='one-word'>
|
18
|
+
<%= render 'seo_page_extender/word_density_part', list: words[:density_for_one][0..20], words: words %>
|
19
|
+
</div>
|
20
|
+
<div class='tab-panel' id='two-words'>
|
21
|
+
<%= render 'seo_page_extender/word_density_part', list: words[:density_for_two][0..20], words: words %>
|
22
|
+
</div>
|
23
|
+
<div class='tab-panel' id='three-words'>
|
24
|
+
<%= render 'seo_page_extender/word_density_part', list: words[:density_for_three][0..20], words: words %>
|
25
|
+
</div>
|
26
|
+
</div>
|
@@ -0,0 +1,22 @@
|
|
1
|
+
<table class="table table-bordered table-striped">
|
2
|
+
<thead>
|
3
|
+
<tr>
|
4
|
+
<th>Word</th>
|
5
|
+
<th>Count</th>
|
6
|
+
<th>Density</th>
|
7
|
+
</tr>
|
8
|
+
</thead>
|
9
|
+
<% list.each do |word, count| %>
|
10
|
+
<tr>
|
11
|
+
<td>
|
12
|
+
<%= word %>
|
13
|
+
</td>
|
14
|
+
<td>
|
15
|
+
<%= count %>
|
16
|
+
</td>
|
17
|
+
<td>
|
18
|
+
<%= (words[:count] > 0 ? count.to_f * 100 / words[:count].to_f : 0).round(2) %>
|
19
|
+
</td>
|
20
|
+
</tr>
|
21
|
+
<% end %>
|
22
|
+
</table>
|
@@ -0,0 +1,11 @@
|
|
1
|
+
require 'scrivito_advanced_editors'
|
2
|
+
|
3
|
+
module ScrivitoSeoPageExtender
|
4
|
+
class Engine < ::Rails::Engine
|
5
|
+
isolate_namespace ScrivitoSeoPageExtender
|
6
|
+
|
7
|
+
initializer "seo_page_extender:seo_page_extender_helper" do
|
8
|
+
ActionView::Base.send :include, SeoPageExtenderHelper
|
9
|
+
end
|
10
|
+
end
|
11
|
+
end
|
metadata
ADDED
@@ -0,0 +1,122 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: scrivito_seo_page_extender
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.1
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Scrivito
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2015-05-21 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: bundler
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - ">="
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '0'
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - ">="
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '0'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: scrivito_sdk
|
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: scrivito_advanced_editors
|
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'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: rake
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - ">="
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0'
|
62
|
+
type: :development
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - ">="
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '0'
|
69
|
+
description: A Scrivito Widget to extend your Page with some useful SEO Features,
|
70
|
+
Metadata or Open Graph.
|
71
|
+
email:
|
72
|
+
- support@scrivito.com
|
73
|
+
executables: []
|
74
|
+
extensions: []
|
75
|
+
extra_rdoc_files: []
|
76
|
+
files:
|
77
|
+
- LICENSE
|
78
|
+
- Rakefile
|
79
|
+
- app/assets/javascripts/scrivito_seo_page_extender/application.js
|
80
|
+
- app/assets/stylesheets/scrivito_seo_page_extender/application.css
|
81
|
+
- app/concerns/meta_data_extender.rb
|
82
|
+
- app/concerns/open_graph_extender.rb
|
83
|
+
- app/concerns/sitemap_extender.rb
|
84
|
+
- app/helper/seo_page_extender_helper.rb
|
85
|
+
- app/views/seo_page_extender/_meta_attribute.html.erb
|
86
|
+
- app/views/seo_page_extender/_meta_data.html.erb
|
87
|
+
- app/views/seo_page_extender/_meta_data_details.html.erb
|
88
|
+
- app/views/seo_page_extender/_open_graph.html.erb
|
89
|
+
- app/views/seo_page_extender/_open_graph_details.html.erb
|
90
|
+
- app/views/seo_page_extender/_sitemap_details.html.erb
|
91
|
+
- app/views/seo_page_extender/_word_density.html.erb
|
92
|
+
- app/views/seo_page_extender/_word_density_part.html.erb
|
93
|
+
- lib/scrivito_seo_page_extender.rb
|
94
|
+
- lib/scrivito_seo_page_extender/engine.rb
|
95
|
+
- lib/scrivito_seo_page_extender/version.rb
|
96
|
+
- lib/tasks/scrivito_seo_page_extender_tasks.rake
|
97
|
+
homepage: https://www.scrivito.com
|
98
|
+
licenses:
|
99
|
+
- LGPL-3.0
|
100
|
+
metadata: {}
|
101
|
+
post_install_message:
|
102
|
+
rdoc_options: []
|
103
|
+
require_paths:
|
104
|
+
- lib
|
105
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
106
|
+
requirements:
|
107
|
+
- - ">="
|
108
|
+
- !ruby/object:Gem::Version
|
109
|
+
version: '0'
|
110
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
111
|
+
requirements:
|
112
|
+
- - ">="
|
113
|
+
- !ruby/object:Gem::Version
|
114
|
+
version: '0'
|
115
|
+
requirements: []
|
116
|
+
rubyforge_project:
|
117
|
+
rubygems_version: 2.2.2
|
118
|
+
signing_key:
|
119
|
+
specification_version: 4
|
120
|
+
summary: A Scrivito Widget to extend your Page with some useful SEO Features, Metadata
|
121
|
+
or Open Graph.
|
122
|
+
test_files: []
|