jekyll-gallery-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 +36 -0
- data/CODE_OF_CONDUCT.md +84 -0
- data/Gemfile +12 -0
- data/Gemfile.lock +117 -0
- data/LICENSE +674 -0
- data/README.md +151 -0
- data/Rakefile +12 -0
- data/jekyll-gallery-plugin.gemspec +41 -0
- data/lib/jekyll/gallery/config.rb +42 -0
- data/lib/jekyll/gallery/helper.rb +45 -0
- data/lib/jekyll/gallery/seo.rb +31 -0
- data/lib/jekyll/gallery/tags.rb +71 -0
- data/lib/jekyll/gallery/utils.rb +73 -0
- data/lib/jekyll/gallery/version.rb +7 -0
- data/lib/jekyll/gallery.rb +12 -0
- data/lib/jekyll-gallery-gallery.html +3 -0
- data/lib/jekyll-gallery-image.html +12 -0
- data/lib/jekyll-gallery-plugin.rb +3 -0
- data/sig/jekyll/gallery/plugin.rbs +8 -0
- metadata +88 -0
data/README.md
ADDED
@@ -0,0 +1,151 @@
|
|
1
|
+
# Jekyll-Gallery
|
2
|
+
|
3
|
+
This is a Jekyll plugin that provides a Liquid tag to render one of the named named galleries declared
|
4
|
+
in the Front Matter inside the content, using a customizable template which, out of the bo, supports the
|
5
|
+
Javascript [Glightbox library][glightbox].
|
6
|
+
|
7
|
+
It also takes care of the gallery integrity at the compile time:
|
8
|
+
- checking for the *file* field presence;
|
9
|
+
- checking for the files presence within the related path.
|
10
|
+
|
11
|
+
Everytime one of these constraints is broken, an error message is raised, blocking any further action.
|
12
|
+
|
13
|
+
As an extra feature, the filesystem organization-and-check supports the *image* field declared for the
|
14
|
+
[Jekyll-Seo-Tag plugin][seotag] implementing the subkey *cover*.
|
15
|
+
|
16
|
+
[![Ruby](https://github.com/fabiomux/jekyll-gallery-plugin/actions/workflows/main.yml/badge.svg)][wf_main]
|
17
|
+
[![Gem Version](https://badge.fury.io/rb/jekyll-gallery-plugin.svg)][gem_version]
|
18
|
+
|
19
|
+
## Installation
|
20
|
+
|
21
|
+
Can install the gem either manually or using *Bundler*.
|
22
|
+
|
23
|
+
### Using Bundler
|
24
|
+
|
25
|
+
Install the gem and add to the application's Gemfile by executing:
|
26
|
+
|
27
|
+
$ bundle add jekyll-gallery-plugin --group jekyll_plugins
|
28
|
+
|
29
|
+
### Manually
|
30
|
+
|
31
|
+
If bundler is not being used to manage dependencies, install the gem by executing:
|
32
|
+
|
33
|
+
$ gem install jekyll-gallery-plugin
|
34
|
+
|
35
|
+
Then, add the following code within the Gemfile of your Jekyll project:
|
36
|
+
|
37
|
+
```ruby
|
38
|
+
group :jekyll_plugins do
|
39
|
+
...
|
40
|
+
gem 'jekyll-gallery-plugin'
|
41
|
+
end
|
42
|
+
```
|
43
|
+
|
44
|
+
## Configuration
|
45
|
+
|
46
|
+
Inside the `_config.yml` file can set up the following fields:
|
47
|
+
```yaml
|
48
|
+
jekyll-gallery:
|
49
|
+
assets_path: assets/images
|
50
|
+
collections_dir:
|
51
|
+
posts: posts
|
52
|
+
downloads: downloads
|
53
|
+
...
|
54
|
+
```
|
55
|
+
|
56
|
+
The assigned values are the default values.
|
57
|
+
|
58
|
+
*assets_path*
|
59
|
+
: This is the general path where assets lie, these files will be directly served by Jekyll so you will
|
60
|
+
have this same prefix path in your images as well.
|
61
|
+
|
62
|
+
*collections_dir*
|
63
|
+
: This is where can specify a folder name for each collection, by default it takes the slug of the
|
64
|
+
collection itself.
|
65
|
+
|
66
|
+
Within the default template must add the code to recall the Glightbox CSS and Javascript scripts, the
|
67
|
+
instructions are pretty standard:
|
68
|
+
1. The CSS file goes in the *head* section
|
69
|
+
2. The Javascript library file in before the *body* closing tag
|
70
|
+
3. The Javascript code before the *body* tag and after the previous mentioned Javascript library
|
71
|
+
|
72
|
+
Here an example using the CDN resources:
|
73
|
+
```html
|
74
|
+
<html>
|
75
|
+
<head>
|
76
|
+
<meta charset="utf-8" >
|
77
|
+
...
|
78
|
+
<!-- (1) -->
|
79
|
+
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/glightbox/dist/css/glightbox.min.css" />
|
80
|
+
...
|
81
|
+
</head>
|
82
|
+
|
83
|
+
...
|
84
|
+
|
85
|
+
<!-- (2) -->
|
86
|
+
<script src="https://cdn.jsdelivr.net/gh/mcstudios/glightbox/dist/js/glightbox.min.js"></script>
|
87
|
+
|
88
|
+
<!-- (3) -->
|
89
|
+
<script type="text/javascript">
|
90
|
+
const lightbox = GLightbox();
|
91
|
+
</script>
|
92
|
+
</html>
|
93
|
+
```
|
94
|
+
|
95
|
+
## Usage
|
96
|
+
|
97
|
+
The usage of this plugin is splitted in two parts:
|
98
|
+
1. The Front Matter to declare the galleries;
|
99
|
+
2. the content, placing the *gallery* tag to render the gallery declared.
|
100
|
+
|
101
|
+
So to declaration will be something like:
|
102
|
+
```yaml
|
103
|
+
gallery:
|
104
|
+
gallery_name_1:
|
105
|
+
- file: subfolder_1/image_name_1.jpg
|
106
|
+
title: "Title 1"
|
107
|
+
description: "Description 1"
|
108
|
+
- file: subfolder_1/image_name_2.jpg
|
109
|
+
title: "Title 2"
|
110
|
+
description: "Description 2"
|
111
|
+
- file: subfolder_1/image_name_3.jpg
|
112
|
+
title: "Title 3"
|
113
|
+
description: "Description 3"
|
114
|
+
gallery_name_2:
|
115
|
+
- file: subfolder_2/image_name_1.jpg
|
116
|
+
title: "Title 1"
|
117
|
+
description: "Description 1"
|
118
|
+
```
|
119
|
+
|
120
|
+
Each gallery has a *name* that introduces the list of items (*gallery_name_1*, *gallery_name_2*), each
|
121
|
+
items must provide the *file* field with the relative path, a *title* and a *description*
|
122
|
+
|
123
|
+
Supposing we are filling a *posts* content, and using all the default values, the images will take place
|
124
|
+
under the *assets/images/posts/subfolder_1/...* and *assets/images/posts/subfolder_2/...* following the
|
125
|
+
scheme:
|
126
|
+
|
127
|
+
<assets_path>/<collections_dir>/<image_folder_and_filename>
|
128
|
+
|
129
|
+
To render the gallery in whatever point within the content:
|
130
|
+
|
131
|
+
{% gallery name='<gallery_name>' %}
|
132
|
+
|
133
|
+
For example to render the second gallery:
|
134
|
+
```liquid
|
135
|
+
{% gallery name='gallery_name_2' %}
|
136
|
+
```
|
137
|
+
|
138
|
+
## More Help
|
139
|
+
|
140
|
+
More info is available at:
|
141
|
+
- the [project page on the Freeaptitude blog][project_page];
|
142
|
+
- the [Jekyll-Gallery Github wiki][jekyll_gallery_wiki];
|
143
|
+
- the [Glightbox README page][glightbox_readme].
|
144
|
+
|
145
|
+
[glightbox]: https://biati-digital.github.io/glightbox/ "Glightbox Javascript plugin Home page"
|
146
|
+
[glightbox_readme]: https://github.com/biati-digital/glightbox#usage "Glightbox README page - Usage"
|
147
|
+
[seotag]: https://github.com/jekyll/jekyll-seo-tag "Jekyll-Seo-Tag Github repository"
|
148
|
+
[wf_main]: https://github.com/fabiomux/jekyll-gallery-plugin/actions/workflows/main.yml
|
149
|
+
[gem_version]: https://badge.fury.io/rb/jekyll-gallery-plugin
|
150
|
+
[project_page]: https://freeaptitude.altervista.org/projects/jekyll-gallery.html "Project page on the Freeaptitude blog"
|
151
|
+
[jekyll_gallery_wiki]: https://github.com/fabiomux/jekyll-gallery-plugin/wiki "Jekyll-Gallery wiki page on GitHub"
|
data/Rakefile
ADDED
@@ -0,0 +1,41 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require_relative "lib/jekyll/gallery/version"
|
4
|
+
|
5
|
+
Gem::Specification.new do |spec|
|
6
|
+
spec.name = "jekyll-gallery-plugin"
|
7
|
+
spec.version = Jekyll::Gallery::VERSION
|
8
|
+
spec.authors = ["Fabio Mucciante"]
|
9
|
+
spec.email = ["fabio.mucciante@gmail.com"]
|
10
|
+
|
11
|
+
spec.summary = "Customizable Jekyll plugin that renders a gallery using the GLightbox Javascript library."
|
12
|
+
spec.description = "It applies a gallery template and checks for the files listed presence."
|
13
|
+
spec.homepage = "https://freeaptitude.altervista.org/projects/jekyll-gallery.html"
|
14
|
+
spec.required_ruby_version = ">= 2.6.0"
|
15
|
+
|
16
|
+
# spec.metadata["allowed_push_host"] = "TODO: Set to your gem server 'https://example.com'"
|
17
|
+
|
18
|
+
spec.metadata["homepage_uri"] = spec.homepage
|
19
|
+
spec.metadata["source_code_uri"] = "https://github.com/fabiomux/jekyll-gallery-plugin"
|
20
|
+
spec.metadata["changelog_uri"] = "https://freeaptitude.altervista.org/projects/jekyll-gallery.html#changelog"
|
21
|
+
spec.metadata["wiki_uri"] = "https://github.com/fabiomux/jekyll-gallery-plugin/wiki"
|
22
|
+
spec.metadata["rubygems_mfa_required"] = "true"
|
23
|
+
|
24
|
+
# Specify which files should be added to the gem when it is released.
|
25
|
+
# The `git ls-files -z` loads the files in the RubyGem that have been added into git.
|
26
|
+
spec.files = Dir.chdir(__dir__) do
|
27
|
+
`git ls-files -z`.split("\x0").reject do |f|
|
28
|
+
(f == __FILE__) || f.match(%r{\A(?:(?:bin|test|spec|features)/|\.(?:git|circleci)|appveyor)})
|
29
|
+
end
|
30
|
+
end
|
31
|
+
spec.bindir = "exe"
|
32
|
+
spec.executables = spec.files.grep(%r{\Aexe/}) { |f| File.basename(f) }
|
33
|
+
spec.require_paths = ["lib"]
|
34
|
+
|
35
|
+
# Uncomment to register a new dependency of your gem
|
36
|
+
# spec.add_dependency "example-gem", "~> 1.0"
|
37
|
+
spec.add_dependency "jekyll", ">= 3.7", "< 5.0"
|
38
|
+
|
39
|
+
# For more information and examples about making a new gem, check out our
|
40
|
+
# guide at: https://bundler.io/guides/creating_gem.html
|
41
|
+
end
|
@@ -0,0 +1,42 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Jekyll
|
4
|
+
module Gallery
|
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-gallery"].freeze
|
27
|
+
end
|
28
|
+
|
29
|
+
def self.selector
|
30
|
+
@@selector ||= (config["post_selector"] || "include.post").freeze
|
31
|
+
end
|
32
|
+
|
33
|
+
def self.a_path
|
34
|
+
@@a_path ||= (config["assets_path"] || "assets/images").freeze
|
35
|
+
end
|
36
|
+
|
37
|
+
def self.c_paths
|
38
|
+
@@c_paths ||= (config["collections_dir"] || {}).freeze
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
@@ -0,0 +1,45 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Jekyll
|
4
|
+
module Gallery
|
5
|
+
#
|
6
|
+
# Contains the methods that assist the code creation.
|
7
|
+
#
|
8
|
+
module Helper
|
9
|
+
def template(tpl, gcfg)
|
10
|
+
file = File.join(Dir.pwd, gcfg["includes_dir"], "jekyll-gallery-#{tpl}.html")
|
11
|
+
return file if File.exist? file
|
12
|
+
|
13
|
+
File.expand_path(File.join(__dir__, "..", "..", "jekyll-gallery-#{tpl}.html"))
|
14
|
+
end
|
15
|
+
|
16
|
+
def self.collection_path(collection)
|
17
|
+
Config.c_paths[collection.to_s] || collection.to_s
|
18
|
+
end
|
19
|
+
|
20
|
+
def self.expand_remote_file(file, collection)
|
21
|
+
base_path = Config.base_url
|
22
|
+
a_path = Config.a_path
|
23
|
+
|
24
|
+
if file =~ /\|/
|
25
|
+
c, f = file.split("|")
|
26
|
+
return [base_path, a_path, collection_path(c), f].join("/")
|
27
|
+
end
|
28
|
+
|
29
|
+
[base_path, a_path, collection_path(collection), file].join("/")
|
30
|
+
end
|
31
|
+
|
32
|
+
def self.expand_local_file(file, collection)
|
33
|
+
a_path = Config.a_path
|
34
|
+
source = Config.source
|
35
|
+
|
36
|
+
if file =~ /\|/
|
37
|
+
c, f = file.split("|")
|
38
|
+
return File.join(source, a_path, collection_path(c), f)
|
39
|
+
end
|
40
|
+
|
41
|
+
File.join(source, a_path, collection_path(collection), file)
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
@@ -0,0 +1,31 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Jekyll
|
4
|
+
module Gallery
|
5
|
+
#
|
6
|
+
# Expand the image:cover paths to accomplish the
|
7
|
+
# Jekyll-Gallery filesystem standards and return
|
8
|
+
# a path compatible with the Jekyll-Seo-Tag plugin.
|
9
|
+
#
|
10
|
+
class SeoImage
|
11
|
+
def self.setup
|
12
|
+
Jekyll::Hooks.register :documents, :pre_render do |document|
|
13
|
+
image = document["image"]
|
14
|
+
collection = document.type
|
15
|
+
|
16
|
+
update_frontmatter(image, collection)
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
def self.update_frontmatter(image, collection)
|
21
|
+
return unless image.is_a? Hash
|
22
|
+
return if image["cover"].nil?
|
23
|
+
|
24
|
+
file = Helper.expand_local_file(image["cover"], collection)
|
25
|
+
raise MissingFile, file unless File.exist?(file)
|
26
|
+
|
27
|
+
image["path"] = Helper.expand_remote_file(image["cover"], collection)
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
@@ -0,0 +1,71 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Jekyll
|
4
|
+
module Gallery
|
5
|
+
#
|
6
|
+
# Gallery view rendering.
|
7
|
+
#
|
8
|
+
class Gallery < Liquid::Tag
|
9
|
+
include Helper
|
10
|
+
|
11
|
+
def initialize(tag_name, text, tokens)
|
12
|
+
super
|
13
|
+
@@tpl_i ||= File.read(template("image", Config.gconfig)).freeze
|
14
|
+
@@tpl_g ||= File.read(template("gallery", Config.gconfig)).freeze
|
15
|
+
@text = text
|
16
|
+
end
|
17
|
+
|
18
|
+
def render(context)
|
19
|
+
init_params(@text, context)
|
20
|
+
site = context.registers[:site]
|
21
|
+
tpl = []
|
22
|
+
|
23
|
+
@files.each_with_index do |f, i|
|
24
|
+
raise MissingFileField, { name: @name, idx: i.next } if f["file"].nil?
|
25
|
+
|
26
|
+
file = Helper.expand_local_file(f["file"], @collection)
|
27
|
+
raise MissingFile, file unless File.exist?(file)
|
28
|
+
|
29
|
+
file = Helper.expand_remote_file(f["file"], @collection)
|
30
|
+
vars = {
|
31
|
+
"filename" => file,
|
32
|
+
"name" => @name,
|
33
|
+
"desc_position" => @desc_position,
|
34
|
+
"title" => f["title"],
|
35
|
+
"description" => f["description"],
|
36
|
+
"a_class" => @a_class,
|
37
|
+
"img_class" => @img_class,
|
38
|
+
"counter" => i.next
|
39
|
+
}
|
40
|
+
tpl << (Liquid::Template.parse @@tpl_i).render(site.site_payload.merge!(vars))
|
41
|
+
end
|
42
|
+
|
43
|
+
images = tpl.join("\n")
|
44
|
+
vars = {
|
45
|
+
"images" => images,
|
46
|
+
"g_class" => @g_class
|
47
|
+
}
|
48
|
+
(Liquid::Template.parse @@tpl_g).render site.site_payload.merge!(vars)
|
49
|
+
end
|
50
|
+
|
51
|
+
private
|
52
|
+
|
53
|
+
def init_params(text, context)
|
54
|
+
params = text.split_params(context)
|
55
|
+
@name = params["name"]
|
56
|
+
raise MissingGallery if @name.nil? || @name.empty?
|
57
|
+
|
58
|
+
@a_class = params["a_class"]
|
59
|
+
@img_class = params["img_class"]
|
60
|
+
@g_class = params["g_class"] || ""
|
61
|
+
|
62
|
+
@collection = context["#{Config.selector}.collection"] || context["page.collection"]
|
63
|
+
|
64
|
+
@desc_position = params["desc_position"] || Config.config["desc_position"] || "bottom"
|
65
|
+
|
66
|
+
@files = context["#{Config.selector}.gallery.#{@name}"] || context["page.gallery.#{@name}"]
|
67
|
+
raise UnknownGallery, @name if @files.nil?
|
68
|
+
end
|
69
|
+
end
|
70
|
+
end
|
71
|
+
end
|
@@ -0,0 +1,73 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Jekyll
|
4
|
+
module Gallery
|
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
|
+
# Remove nil or empty items.
|
21
|
+
#
|
22
|
+
class ::Array
|
23
|
+
def cleanup
|
24
|
+
delete_if { |x| x.nil? || x.to_s.empty? }
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
#
|
29
|
+
# Invalid group name error
|
30
|
+
#
|
31
|
+
class InvalidGroup < StandardError
|
32
|
+
def initialize(name)
|
33
|
+
super "The group '#{name}' is not valid!"
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
37
|
+
#
|
38
|
+
# No gallery name specified.
|
39
|
+
#
|
40
|
+
class MissingGallery < StandardError
|
41
|
+
def initialize
|
42
|
+
super "No gallery name has been specified!"
|
43
|
+
end
|
44
|
+
end
|
45
|
+
|
46
|
+
#
|
47
|
+
# The specified gallery name doesn't exist.
|
48
|
+
#
|
49
|
+
class UnknownGallery < StandardError
|
50
|
+
def initialize(name)
|
51
|
+
super "The gallery '#{name}' doesn't exist!"
|
52
|
+
end
|
53
|
+
end
|
54
|
+
|
55
|
+
#
|
56
|
+
# Not existing file.
|
57
|
+
#
|
58
|
+
class MissingFile < StandardError
|
59
|
+
def initialize(name)
|
60
|
+
super "The file '#{name}' doesn't exist"
|
61
|
+
end
|
62
|
+
end
|
63
|
+
|
64
|
+
#
|
65
|
+
# Not existing file field
|
66
|
+
#
|
67
|
+
class MissingFileField < StandardError
|
68
|
+
def initialize(data)
|
69
|
+
super "No 'file' field in the gallery '#{data[:name]}' item n.#{data[:idx]}!"
|
70
|
+
end
|
71
|
+
end
|
72
|
+
end
|
73
|
+
end
|
@@ -0,0 +1,12 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require "jekyll"
|
4
|
+
|
5
|
+
require_relative "gallery/config"
|
6
|
+
require_relative "gallery/helper"
|
7
|
+
require_relative "gallery/tags"
|
8
|
+
require_relative "gallery/utils"
|
9
|
+
require_relative "gallery/seo"
|
10
|
+
|
11
|
+
Liquid::Template.register_tag("gallery", Jekyll::Gallery::Gallery)
|
12
|
+
Jekyll::Gallery::SeoImage.setup
|
@@ -0,0 +1,12 @@
|
|
1
|
+
<figure>
|
2
|
+
<a href="{{filename}}"
|
3
|
+
class="glightbox {{a_class}}"
|
4
|
+
data-gallery="gallery-{{name}}"
|
5
|
+
data-type="image"
|
6
|
+
data-title="{{title}}"
|
7
|
+
data-description="{{description}}"
|
8
|
+
data-desc-position="{{desc_position}}">
|
9
|
+
<img src="{{filename}}" alt="{{title}}" class="{{img_class}}">
|
10
|
+
</a>
|
11
|
+
<figcaption>{{title}}</figcaption>
|
12
|
+
</figure>
|
metadata
ADDED
@@ -0,0 +1,88 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: jekyll-gallery-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
|
+
description: It applies a gallery template and checks for the files listed presence.
|
34
|
+
email:
|
35
|
+
- fabio.mucciante@gmail.com
|
36
|
+
executables: []
|
37
|
+
extensions: []
|
38
|
+
extra_rdoc_files: []
|
39
|
+
files:
|
40
|
+
- ".rspec"
|
41
|
+
- ".rubocop.yml"
|
42
|
+
- CODE_OF_CONDUCT.md
|
43
|
+
- Gemfile
|
44
|
+
- Gemfile.lock
|
45
|
+
- LICENSE
|
46
|
+
- README.md
|
47
|
+
- Rakefile
|
48
|
+
- jekyll-gallery-plugin.gemspec
|
49
|
+
- lib/jekyll-gallery-gallery.html
|
50
|
+
- lib/jekyll-gallery-image.html
|
51
|
+
- lib/jekyll-gallery-plugin.rb
|
52
|
+
- lib/jekyll/gallery.rb
|
53
|
+
- lib/jekyll/gallery/config.rb
|
54
|
+
- lib/jekyll/gallery/helper.rb
|
55
|
+
- lib/jekyll/gallery/seo.rb
|
56
|
+
- lib/jekyll/gallery/tags.rb
|
57
|
+
- lib/jekyll/gallery/utils.rb
|
58
|
+
- lib/jekyll/gallery/version.rb
|
59
|
+
- sig/jekyll/gallery/plugin.rbs
|
60
|
+
homepage: https://freeaptitude.altervista.org/projects/jekyll-gallery.html
|
61
|
+
licenses: []
|
62
|
+
metadata:
|
63
|
+
homepage_uri: https://freeaptitude.altervista.org/projects/jekyll-gallery.html
|
64
|
+
source_code_uri: https://github.com/fabiomux/jekyll-gallery-plugin
|
65
|
+
changelog_uri: https://freeaptitude.altervista.org/projects/jekyll-gallery.html#changelog
|
66
|
+
wiki_uri: https://github.com/fabiomux/jekyll-gallery-plugin/wiki
|
67
|
+
rubygems_mfa_required: 'true'
|
68
|
+
post_install_message:
|
69
|
+
rdoc_options: []
|
70
|
+
require_paths:
|
71
|
+
- lib
|
72
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
73
|
+
requirements:
|
74
|
+
- - ">="
|
75
|
+
- !ruby/object:Gem::Version
|
76
|
+
version: 2.6.0
|
77
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
78
|
+
requirements:
|
79
|
+
- - ">="
|
80
|
+
- !ruby/object:Gem::Version
|
81
|
+
version: '0'
|
82
|
+
requirements: []
|
83
|
+
rubygems_version: 3.4.3
|
84
|
+
signing_key:
|
85
|
+
specification_version: 4
|
86
|
+
summary: Customizable Jekyll plugin that renders a gallery using the GLightbox Javascript
|
87
|
+
library.
|
88
|
+
test_files: []
|