jekyll-share-plugin 1.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.rspec +3 -0
- data/.rubocop.yml +32 -0
- data/CODE_OF_CONDUCT.md +84 -0
- data/Gemfile +16 -0
- data/Gemfile.lock +139 -0
- data/LICENSE +674 -0
- data/README.md +135 -0
- data/Rakefile +12 -0
- data/jekyll-share-plugin.gemspec +43 -0
- data/lib/jekyll/share/config.rb +87 -0
- data/lib/jekyll/share/helper.rb +66 -0
- data/lib/jekyll/share/tags.rb +121 -0
- data/lib/jekyll/share/utils.rb +37 -0
- data/lib/jekyll/share/version.rb +7 -0
- data/lib/jekyll/share.rb +11 -0
- data/lib/jekyll-share-plugin.rb +3 -0
- data/sig/jekyll/share/plugin.rbs +8 -0
- metadata +99 -0
data/README.md
ADDED
@@ -0,0 +1,135 @@
|
|
1
|
+
# Jekyll-Share
|
2
|
+
|
3
|
+
This is a Jekyll plugin that provides the Liquid tags to render the sharing services links through the
|
4
|
+
[ShareWith][share_with] gem.
|
5
|
+
|
6
|
+
Using the config section, or defining variables from within the layout template, the target fields can
|
7
|
+
be customized entirely.
|
8
|
+
|
9
|
+
[![Ruby](https://github.com/fabiomux/jekyll-share-plugin/actions/workflows/main.yml/badge.svg)][wf_main]
|
10
|
+
[![Gem Version](https://badge.fury.io/rb/jekyll-share-plugin.svg)][gem_version]
|
11
|
+
|
12
|
+
|
13
|
+
## Installation
|
14
|
+
|
15
|
+
Can install the gem either manually or using *Bundler*.
|
16
|
+
|
17
|
+
### Using Bundler
|
18
|
+
|
19
|
+
Install the gem and add to the application's Gemfile by executing:
|
20
|
+
|
21
|
+
$ bundle add jekyll-share-plugin --group jekyll_plugins
|
22
|
+
|
23
|
+
### Manually
|
24
|
+
|
25
|
+
If bundler is not being used to manage dependencies, install the gem by executing:
|
26
|
+
|
27
|
+
$ gem install jekyll-share-plugin
|
28
|
+
|
29
|
+
Then, add the following code within the Gemfile of your Jekyll project:
|
30
|
+
|
31
|
+
```ruby
|
32
|
+
group :jekyll_plugins do
|
33
|
+
...
|
34
|
+
gem 'jekyll-share-plugin'
|
35
|
+
end
|
36
|
+
```
|
37
|
+
|
38
|
+
## Configuration
|
39
|
+
|
40
|
+
Inside the `_config.yml` file, set up some or all of the following fields under the `jekyll-share`
|
41
|
+
section:
|
42
|
+
|
43
|
+
```yaml
|
44
|
+
jekyll-share:
|
45
|
+
paths:
|
46
|
+
- $HOME/.jekyll-share/services
|
47
|
+
mappings:
|
48
|
+
twitter:hashtags: '@tags'
|
49
|
+
email:subject: '@title'
|
50
|
+
# These variables below must be setup in your layout file
|
51
|
+
twitter:related: '@related'
|
52
|
+
linkedin:summary: '@summary'
|
53
|
+
pinterest:media_url: '@media_url'
|
54
|
+
email:body: '@str_body'
|
55
|
+
post_selector: include.post
|
56
|
+
groups:
|
57
|
+
default:
|
58
|
+
wrappers:
|
59
|
+
service_start: '<li class="list-inline-item">'
|
60
|
+
service_end: '</li>'
|
61
|
+
group_start: '<ul class="list-inline">'
|
62
|
+
group_end: '</ul>'
|
63
|
+
extend_with:
|
64
|
+
- icons.font_awesome
|
65
|
+
icon_size: 'medium'
|
66
|
+
template: 'icon'
|
67
|
+
services:
|
68
|
+
- twitter
|
69
|
+
- facebook
|
70
|
+
- linkedin
|
71
|
+
- reddit
|
72
|
+
- tumblr
|
73
|
+
- telegram
|
74
|
+
- flipboard
|
75
|
+
- pocket
|
76
|
+
- pinterest
|
77
|
+
```
|
78
|
+
|
79
|
+
*paths*
|
80
|
+
: It is the path where other services can be found
|
81
|
+
|
82
|
+
*mappings*
|
83
|
+
: Associate the not standard params with the variables within the layout or include template, or as a field
|
84
|
+
part of the front matter in the current document.
|
85
|
+
|
86
|
+
*post_selector*
|
87
|
+
: This is how the script will read the post data inside a paginator layout.
|
88
|
+
|
89
|
+
*groups*
|
90
|
+
: Define the groups of services to render, every group can specify other parameters:
|
91
|
+
|
92
|
+
*wrappers*
|
93
|
+
: Defines the HTML tags that wrap the group of links or the single link.
|
94
|
+
|
95
|
+
*extend_with*
|
96
|
+
: This implementes the extensions provided by *share_with* gem.
|
97
|
+
|
98
|
+
*icon_size*
|
99
|
+
: The size of the icons among the ones defined by *share_with*.
|
100
|
+
|
101
|
+
*template*
|
102
|
+
: The default template to use among the ones defined by *share_with*.
|
103
|
+
|
104
|
+
*services*
|
105
|
+
: The list of services included in the group.
|
106
|
+
|
107
|
+
## Usage
|
108
|
+
|
109
|
+
Jekyll-Share provides two Liquid tags that can be used to render the service links:
|
110
|
+
|
111
|
+
**share_single**
|
112
|
+
: Recall the single service to render.
|
113
|
+
```liquid
|
114
|
+
{% share_single name='email' %}
|
115
|
+
```
|
116
|
+
|
117
|
+
**share_group**
|
118
|
+
: Recall the group of services as specified in the `.config.yml` file.
|
119
|
+
```liquid
|
120
|
+
{% share_group name='default' icon_size=icon_size %}
|
121
|
+
```
|
122
|
+
|
123
|
+
## More Help
|
124
|
+
|
125
|
+
More info is available at:
|
126
|
+
- the [project page on the Freeaptitude blog][project_page];
|
127
|
+
- the [Jekyll-Share Github wiki][jekyll_share_wiki];
|
128
|
+
- the [ShareWith Github wiki][share_with_wiki].
|
129
|
+
|
130
|
+
[share_with]: https://github.com/fabiomux/share_with "ShareWith project page on GitHub"
|
131
|
+
[share_with_wiki]: https://github.com/fabiomux/share_with/wiki "ShareWith wiki page on GitHub"
|
132
|
+
[wf_main]: https://github.com/fabiomux/jekyll-share-plugin/actions/workflows/main.yml
|
133
|
+
[gem_version]: https://badge.fury.io/rb/jekyll-share-plugin
|
134
|
+
[project_page]: https://freeaptitude.altervista.org/projects/jekyll-share.html "Project page on the Freeaptitude blog"
|
135
|
+
[jekyll_share_wiki]: https://github.com/fabiomux/jekyll-share-plugin/wiki "Jekyll-Share wiki page on GitHub"
|
data/Rakefile
ADDED
@@ -0,0 +1,43 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require_relative "lib/jekyll/share/version"
|
4
|
+
|
5
|
+
Gem::Specification.new do |spec|
|
6
|
+
spec.name = "jekyll-share-plugin"
|
7
|
+
spec.version = Jekyll::Share::VERSION
|
8
|
+
spec.authors = ["Fabio Mucciante"]
|
9
|
+
spec.email = ["fabio.mucciante@gmail.com"]
|
10
|
+
|
11
|
+
spec.summary = "Jekyll plugin that renders the sharing links from known services."
|
12
|
+
spec.description = "It provides links from Facebook, Linkedin, Reddit, Telegram, Twitter, and more..."
|
13
|
+
spec.homepage = "https://freeaptitude.altervista.org/projects/jekyll-share.html"
|
14
|
+
|
15
|
+
spec.required_ruby_version = ">= 2.6.0"
|
16
|
+
|
17
|
+
# spec.metadata["allowed_push_host"] = "TODO: Set to your gem server 'https://example.com'"
|
18
|
+
|
19
|
+
spec.metadata["homepage_uri"] = spec.homepage
|
20
|
+
spec.metadata["source_code_uri"] = "https://github.com/fabiomux/jekyll-share-plugin"
|
21
|
+
spec.metadata["changelog_uri"] = "https://freeaptitude.altervista.org/projects/jekyll-share.html#changelog"
|
22
|
+
spec.metadata["wiki_uri"] = "https://github.com/fabiomux/jekyll-share-plugin/wiki"
|
23
|
+
spec.metadata["rubygems_mfa_required"] = "true"
|
24
|
+
|
25
|
+
# Specify which files should be added to the gem when it is released.
|
26
|
+
# The `git ls-files -z` loads the files in the RubyGem that have been added into git.
|
27
|
+
spec.files = Dir.chdir(__dir__) do
|
28
|
+
`git ls-files -z`.split("\x0").reject do |f|
|
29
|
+
(f == __FILE__) || f.match(%r{\A(?:(?:bin|test|spec|features)/|\.(?:git|circleci)|appveyor)})
|
30
|
+
end
|
31
|
+
end
|
32
|
+
spec.bindir = "exe"
|
33
|
+
spec.executables = spec.files.grep(%r{\Aexe/}) { |f| File.basename(f) }
|
34
|
+
spec.require_paths = ["lib"]
|
35
|
+
|
36
|
+
# Uncomment to register a new dependency of your gem
|
37
|
+
# spec.add_dependency "example-gem", "~> 1.0"
|
38
|
+
spec.add_dependency "jekyll", ">= 3.7", "< 5.0"
|
39
|
+
spec.add_dependency "share_with"
|
40
|
+
|
41
|
+
# For more information and examples about making a new gem, check out our
|
42
|
+
# guide at: https://bundler.io/guides/creating_gem.html
|
43
|
+
end
|
@@ -0,0 +1,87 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Jekyll
|
4
|
+
module Share
|
5
|
+
#
|
6
|
+
# Configurations required across the gem.
|
7
|
+
#
|
8
|
+
class Config
|
9
|
+
def self.gconfig
|
10
|
+
@@gconfig ||= Jekyll.configuration.freeze
|
11
|
+
end
|
12
|
+
|
13
|
+
def self.base_url
|
14
|
+
@@base_url ||= gconfig["base_url"].freeze
|
15
|
+
end
|
16
|
+
|
17
|
+
def self.url
|
18
|
+
@@url ||= gconfig["url"].freeze
|
19
|
+
end
|
20
|
+
|
21
|
+
def self.source
|
22
|
+
@@source ||= gconfig["source"].freeze
|
23
|
+
end
|
24
|
+
|
25
|
+
def self.config
|
26
|
+
@@config ||= gconfig["jekyll-share"].freeze
|
27
|
+
end
|
28
|
+
|
29
|
+
def self.groups
|
30
|
+
@@groups ||= (config["groups"] || []).freeze
|
31
|
+
end
|
32
|
+
|
33
|
+
def self.group(name)
|
34
|
+
raise InvalidGroup unless groups.key? name
|
35
|
+
|
36
|
+
groups[name]
|
37
|
+
end
|
38
|
+
|
39
|
+
def self.mappings
|
40
|
+
@@mappings ||= (config["mappings"] || []).freeze
|
41
|
+
end
|
42
|
+
|
43
|
+
def self.post_selector
|
44
|
+
@@post_selector ||= (config["post_selector"] || "include.post").freeze
|
45
|
+
end
|
46
|
+
|
47
|
+
def self.paths
|
48
|
+
@@paths ||= (config["paths"] || ["~/.jekyll-share/services"]).freeze
|
49
|
+
end
|
50
|
+
end
|
51
|
+
|
52
|
+
#
|
53
|
+
# Group configurations.
|
54
|
+
#
|
55
|
+
class GroupConfig
|
56
|
+
attr_reader :config
|
57
|
+
|
58
|
+
def initialize(name)
|
59
|
+
raise InvalidGroup unless Config.groups.key? name
|
60
|
+
|
61
|
+
@name = name
|
62
|
+
@config = Config.groups[name]
|
63
|
+
end
|
64
|
+
|
65
|
+
def template
|
66
|
+
@config["template"] || "icon"
|
67
|
+
end
|
68
|
+
|
69
|
+
def wrappers
|
70
|
+
@config["wrappers"] || { "group_start" => "", "group_end" => "",
|
71
|
+
"service_start" => "", "service_end" => "" }
|
72
|
+
end
|
73
|
+
|
74
|
+
def extend_with
|
75
|
+
@config["extend_with"] || []
|
76
|
+
end
|
77
|
+
|
78
|
+
def services
|
79
|
+
@config["services"] || []
|
80
|
+
end
|
81
|
+
|
82
|
+
def icon_size
|
83
|
+
@config["icon_size"] || "large"
|
84
|
+
end
|
85
|
+
end
|
86
|
+
end
|
87
|
+
end
|
@@ -0,0 +1,66 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Jekyll
|
4
|
+
module Share
|
5
|
+
#
|
6
|
+
# Contains the methods to calculate the Disqus ID associated to
|
7
|
+
# a post or a page.
|
8
|
+
#
|
9
|
+
module Helper
|
10
|
+
def preview?(context)
|
11
|
+
return true if context["#{Config.post_selector}.title"]
|
12
|
+
end
|
13
|
+
|
14
|
+
def extract_page_data(context)
|
15
|
+
extract_data "page", context
|
16
|
+
end
|
17
|
+
|
18
|
+
def extract_preview_data(context)
|
19
|
+
extract_data Config.post_selector, context
|
20
|
+
end
|
21
|
+
|
22
|
+
private
|
23
|
+
|
24
|
+
# rubocop:disable Metrics/PerceivedComplexity
|
25
|
+
# rubocop:disable Metrics/CyclomaticComplexity
|
26
|
+
def extract_data(selector, context)
|
27
|
+
res = {}
|
28
|
+
res["title"] = context["#{selector}.title"]
|
29
|
+
res["url"] = context["site.url"].to_s +
|
30
|
+
context["site.base_dir"].to_s +
|
31
|
+
context["#{selector}.url"]
|
32
|
+
res["tags"] = context["#{selector}.tags"]
|
33
|
+
res["categories"] = context["#{selector}.categories"]
|
34
|
+
|
35
|
+
if res["tags"].instance_of? String
|
36
|
+
res["tags"] = res["tags"].split.join(",")
|
37
|
+
elsif res["tags"].instance_of? Array
|
38
|
+
res["tags"] = res["tags"].join(",")
|
39
|
+
end
|
40
|
+
|
41
|
+
if res["categories"].instance_of? String
|
42
|
+
res["categories"] = res["categories"].split.join(",")
|
43
|
+
elsif res["tags"].instance_of? Array
|
44
|
+
res["categories"] = res["categories"].join(",")
|
45
|
+
end
|
46
|
+
|
47
|
+
Config.mappings.each do |k, v|
|
48
|
+
res[k] = if v[0] == "@"
|
49
|
+
param = v.delete("@")
|
50
|
+
if res.key?(param)
|
51
|
+
res[param]
|
52
|
+
else
|
53
|
+
context.key?(param) ? context[param] : context["#{selector}.#{param}"]
|
54
|
+
end
|
55
|
+
else
|
56
|
+
v
|
57
|
+
end
|
58
|
+
end
|
59
|
+
|
60
|
+
res
|
61
|
+
end
|
62
|
+
# rubocop:enable Metrics/PerceivedComplexity
|
63
|
+
# rubocop:enable Metrics/CyclomaticComplexity
|
64
|
+
end
|
65
|
+
end
|
66
|
+
end
|
@@ -0,0 +1,121 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require "share_with"
|
4
|
+
|
5
|
+
module Jekyll
|
6
|
+
module Share
|
7
|
+
#
|
8
|
+
# Single service rendering.
|
9
|
+
#
|
10
|
+
class Single < Liquid::Tag
|
11
|
+
include Helper
|
12
|
+
|
13
|
+
def initialize(tag_name, text, tokens)
|
14
|
+
super
|
15
|
+
@@share_single ||= {}
|
16
|
+
@text = text
|
17
|
+
end
|
18
|
+
|
19
|
+
def render(context)
|
20
|
+
@params = init_params(@text, context)
|
21
|
+
if @@share_single.key? @name
|
22
|
+
@@share_single[@name].reset!
|
23
|
+
else
|
24
|
+
@@share_single[@name] = ShareWith::Service.new @name,
|
25
|
+
extend_with: @extend_with,
|
26
|
+
paths: Config.paths
|
27
|
+
end
|
28
|
+
|
29
|
+
@params = if preview?(context)
|
30
|
+
extract_preview_data(context).merge @params
|
31
|
+
else
|
32
|
+
extract_page_data(context).merge @params
|
33
|
+
end
|
34
|
+
|
35
|
+
@params.each do |key, value|
|
36
|
+
@@share_single[@name].set_conditional_param(key, value)
|
37
|
+
end
|
38
|
+
|
39
|
+
@@share_single[@name].render(@template)
|
40
|
+
end
|
41
|
+
|
42
|
+
private
|
43
|
+
|
44
|
+
def init_params(text, context)
|
45
|
+
params = text.split_params(context)
|
46
|
+
@name = params["name"]
|
47
|
+
params.delete("name")
|
48
|
+
raise MissingService if @name.nil? || @name.empty?
|
49
|
+
|
50
|
+
@template = params["template"] || "icon"
|
51
|
+
params.delete("template")
|
52
|
+
@extend_with = params["extend_with"]
|
53
|
+
params.delete("extend_with")
|
54
|
+
|
55
|
+
params
|
56
|
+
end
|
57
|
+
end
|
58
|
+
|
59
|
+
#
|
60
|
+
# Group of services.
|
61
|
+
#
|
62
|
+
class Group < Liquid::Tag
|
63
|
+
include Helper
|
64
|
+
|
65
|
+
def initialize(tag_name, text, tokens)
|
66
|
+
super
|
67
|
+
@@share_groups ||= {}
|
68
|
+
@text = text
|
69
|
+
end
|
70
|
+
|
71
|
+
def render(context)
|
72
|
+
@params = init_params(@text, context)
|
73
|
+
if @@share_groups.key? @name
|
74
|
+
@@share_groups[@name].reset_all!
|
75
|
+
else
|
76
|
+
@@share_groups[@name] = ShareWith::Collection.new extend_with: @extend_with,
|
77
|
+
services: @services,
|
78
|
+
paths: Config.paths
|
79
|
+
end
|
80
|
+
|
81
|
+
@params = if preview?(context)
|
82
|
+
@params.merge extract_preview_data(context)
|
83
|
+
else
|
84
|
+
@params.merge extract_page_data(context)
|
85
|
+
end
|
86
|
+
|
87
|
+
@params.each do |key, value|
|
88
|
+
@@share_groups[@name].set_conditional_param(key, value)
|
89
|
+
end
|
90
|
+
|
91
|
+
res = [@wrappers["group_start"].to_s]
|
92
|
+
@@share_groups[@name].render_all(@template).each do |_k, v|
|
93
|
+
res << "#{@wrappers["service_start"]}#{v}#{@wrappers["service_end"]}"
|
94
|
+
end
|
95
|
+
res << @wrappers["group_end"].to_s
|
96
|
+
|
97
|
+
res.join("\n")
|
98
|
+
end
|
99
|
+
|
100
|
+
private
|
101
|
+
|
102
|
+
def init_params(text, context)
|
103
|
+
params = text.split_params(context)
|
104
|
+
@name = params["name"] || "default"
|
105
|
+
params.delete("name")
|
106
|
+
|
107
|
+
gcfg = GroupConfig.new(@name)
|
108
|
+
@template = params["template"] || gcfg.template
|
109
|
+
params.delete("template")
|
110
|
+
@wrappers = gcfg.wrappers
|
111
|
+
|
112
|
+
@extend_with = gcfg.extend_with
|
113
|
+
@services = gcfg.services
|
114
|
+
|
115
|
+
params["icon_size"] ||= gcfg.icon_size
|
116
|
+
|
117
|
+
params
|
118
|
+
end
|
119
|
+
end
|
120
|
+
end
|
121
|
+
end
|
@@ -0,0 +1,37 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Jekyll
|
4
|
+
module Share
|
5
|
+
#
|
6
|
+
# Convert the params to hash
|
7
|
+
#
|
8
|
+
class ::String
|
9
|
+
def split_params(context)
|
10
|
+
scan(/(\w+)=(?:(["'])(.+?)\2|([^ ]+))/)
|
11
|
+
.to_h do |x|
|
12
|
+
x[3] = context[x[3]] if x[1].nil?
|
13
|
+
x.delete_at 1
|
14
|
+
x.compact
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
#
|
20
|
+
# Invalid group name error
|
21
|
+
#
|
22
|
+
class InvalidGroup < StandardError
|
23
|
+
def initialize(name)
|
24
|
+
super "The group '#{name}' is not valid!"
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
#
|
29
|
+
# No service name has been specified.
|
30
|
+
#
|
31
|
+
class MissingService < StandardError
|
32
|
+
def initialize
|
33
|
+
super "No service name has been specified!"
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
data/lib/jekyll/share.rb
ADDED
@@ -0,0 +1,11 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require "jekyll"
|
4
|
+
|
5
|
+
require_relative "share/config"
|
6
|
+
require_relative "share/helper"
|
7
|
+
require_relative "share/tags"
|
8
|
+
require_relative "share/utils"
|
9
|
+
|
10
|
+
Liquid::Template.register_tag("share_single", Jekyll::Share::Single)
|
11
|
+
Liquid::Template.register_tag("share_group", Jekyll::Share::Group)
|
metadata
ADDED
@@ -0,0 +1,99 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: jekyll-share-plugin
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 1.0.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Fabio Mucciante
|
8
|
+
autorequire:
|
9
|
+
bindir: exe
|
10
|
+
cert_chain: []
|
11
|
+
date: 2024-01-26 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: jekyll
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - ">="
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '3.7'
|
20
|
+
- - "<"
|
21
|
+
- !ruby/object:Gem::Version
|
22
|
+
version: '5.0'
|
23
|
+
type: :runtime
|
24
|
+
prerelease: false
|
25
|
+
version_requirements: !ruby/object:Gem::Requirement
|
26
|
+
requirements:
|
27
|
+
- - ">="
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
version: '3.7'
|
30
|
+
- - "<"
|
31
|
+
- !ruby/object:Gem::Version
|
32
|
+
version: '5.0'
|
33
|
+
- !ruby/object:Gem::Dependency
|
34
|
+
name: share_with
|
35
|
+
requirement: !ruby/object:Gem::Requirement
|
36
|
+
requirements:
|
37
|
+
- - ">="
|
38
|
+
- !ruby/object:Gem::Version
|
39
|
+
version: '0'
|
40
|
+
type: :runtime
|
41
|
+
prerelease: false
|
42
|
+
version_requirements: !ruby/object:Gem::Requirement
|
43
|
+
requirements:
|
44
|
+
- - ">="
|
45
|
+
- !ruby/object:Gem::Version
|
46
|
+
version: '0'
|
47
|
+
description: It provides links from Facebook, Linkedin, Reddit, Telegram, Twitter,
|
48
|
+
and more...
|
49
|
+
email:
|
50
|
+
- fabio.mucciante@gmail.com
|
51
|
+
executables: []
|
52
|
+
extensions: []
|
53
|
+
extra_rdoc_files: []
|
54
|
+
files:
|
55
|
+
- ".rspec"
|
56
|
+
- ".rubocop.yml"
|
57
|
+
- CODE_OF_CONDUCT.md
|
58
|
+
- Gemfile
|
59
|
+
- Gemfile.lock
|
60
|
+
- LICENSE
|
61
|
+
- README.md
|
62
|
+
- Rakefile
|
63
|
+
- jekyll-share-plugin.gemspec
|
64
|
+
- lib/jekyll-share-plugin.rb
|
65
|
+
- lib/jekyll/share.rb
|
66
|
+
- lib/jekyll/share/config.rb
|
67
|
+
- lib/jekyll/share/helper.rb
|
68
|
+
- lib/jekyll/share/tags.rb
|
69
|
+
- lib/jekyll/share/utils.rb
|
70
|
+
- lib/jekyll/share/version.rb
|
71
|
+
- sig/jekyll/share/plugin.rbs
|
72
|
+
homepage: https://freeaptitude.altervista.org/projects/jekyll-share.html
|
73
|
+
licenses: []
|
74
|
+
metadata:
|
75
|
+
homepage_uri: https://freeaptitude.altervista.org/projects/jekyll-share.html
|
76
|
+
source_code_uri: https://github.com/fabiomux/jekyll-share-plugin
|
77
|
+
changelog_uri: https://freeaptitude.altervista.org/projects/jekyll-share.html#changelog
|
78
|
+
wiki_uri: https://github.com/fabiomux/jekyll-share-plugin/wiki
|
79
|
+
rubygems_mfa_required: 'true'
|
80
|
+
post_install_message:
|
81
|
+
rdoc_options: []
|
82
|
+
require_paths:
|
83
|
+
- lib
|
84
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
85
|
+
requirements:
|
86
|
+
- - ">="
|
87
|
+
- !ruby/object:Gem::Version
|
88
|
+
version: 2.6.0
|
89
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
90
|
+
requirements:
|
91
|
+
- - ">="
|
92
|
+
- !ruby/object:Gem::Version
|
93
|
+
version: '0'
|
94
|
+
requirements: []
|
95
|
+
rubygems_version: 3.4.3
|
96
|
+
signing_key:
|
97
|
+
specification_version: 4
|
98
|
+
summary: Jekyll plugin that renders the sharing links from known services.
|
99
|
+
test_files: []
|