jekyll-event-pages 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: 3fe69adec0d18ea6c775dff7f70f6e383a6012b3eddc564a290e45617c059917
4
+ data.tar.gz: 86fa94cd83e4e08c9800f5b90262dd7e7d4e14761e3fe06568c34351f507cfde
5
+ SHA512:
6
+ metadata.gz: c09a8bf8ffb8086fe150cf6f3ab60e36decd795cad3183073b8e973e37f14c514faef5c53f3c04260e5abaae5a6e3322b208e80555cdf3f74cdfd9e5c519e68f
7
+ data.tar.gz: c379c9898a17f05b626f1f0b238d2119beafb678a5813d8917117d00115249d2160ae1d4b538e6dbd6b01c64b6ac08d714fce51ff13123498419922ca5f6cc69
data/LICENSE ADDED
@@ -0,0 +1,22 @@
1
+ MIT License
2
+
3
+ Copyright (c) since 2017 by Wolfram Schroers
4
+ Written by Wolfram Schroers <Wolfram.Schroers -at- field-theory.org>
5
+
6
+ Permission is hereby granted, free of charge, to any person obtaining a copy
7
+ of this software and associated documentation files (the "Software"), to deal
8
+ in the Software without restriction, including without limitation the rights
9
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10
+ copies of the Software, and to permit persons to whom the Software is
11
+ furnished to do so, subject to the following conditions:
12
+
13
+ The above copyright notice and this permission notice shall be included in all
14
+ copies or substantial portions of the Software.
15
+
16
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22
+ SOFTWARE.
data/README.md ADDED
@@ -0,0 +1,208 @@
1
+ # jekyll-event-pages
2
+
3
+ [![Gem Version](https://img.shields.io/gem/v/jekyll-event-pages.svg)](https://rubygems.org/gems/jekyll-event-pages)
4
+
5
+ This plugin is deeply inspired by based on [jekyll-category-pages](https://github.com/field-theory/jekyll-category-pages) plugin. It works on an attribute called events in place of categories.
6
+ This plugin adds event index pages with and without pagination.
7
+ Benefits are:
8
+ * Easy to setup and use, fully compatible with the default [pagination
9
+ plugin](https://github.com/jekyll/jekyll-paginate) (also cf. the
10
+ [official documentation](https://jekyllrb.com/docs/pagination/)).
11
+ * Supports event keys with spaces and other special characters.
12
+ * Complete documentation and a usage example.
13
+ * Test coverage of key features.
14
+ * event index pages are generated based on a customizable template.
15
+
16
+ ## Usage
17
+
18
+ Assign one or more events in the YAML front matter of each page:
19
+ ```yaml
20
+ events: [event Pages Plugin, jekyll]
21
+ ```
22
+ Generate the site and the event pages are generated:
23
+ ```
24
+ _site/event/
25
+ ├── event-pages-plugin/
26
+ │   └── index.html
27
+ ├── 好的主意/
28
+ │   └── index.html
29
+ └── jekyll/
30
+ ├── index.html
31
+ ├── page2.html
32
+ └── page3.html
33
+ ```
34
+ In this example there are three paginated index pages for the `jekyll`
35
+ event (apparently, there are many posts for this event), a
36
+ single index page for the `好的主意` event and another single index
37
+ page for the `event Pages Plugin` event.
38
+
39
+ Note that the YAML `events` entry should always use brackets `[]`
40
+ to make it explicit that it is an array!
41
+
42
+ You can find this example in the `example` directory of the
43
+ [git repository](https://github.com/field-theory/jekyll-event-pages).
44
+
45
+ ### The example project
46
+
47
+ The `example` directory contains a basic example project that
48
+ demonstrates the different use cases. In order to run Jekyll on these
49
+ examples use:
50
+ ```shell
51
+ bundle install
52
+ bundle exec rake example
53
+ ```
54
+ The result is put in `example/_site`.
55
+
56
+ ## Installation and setup
57
+
58
+ Installation is straightforward (like other plugins):
59
+ 1. Add the plugin to the site's `Gemfile` and configuration file and
60
+ also install the `jekyll-paginate` gem (the latter is a required
61
+ dependency even if you don't use it):
62
+ ```ruby
63
+ group :jekyll_plugins do
64
+ gem "jekyll-paginate"
65
+ gem "jekyll-event-pages"
66
+ end
67
+ ```
68
+ 2. Add the plugin to your site's `_config.yml`:
69
+ ```ruby
70
+ plugins:
71
+ - jekyll-event-pages
72
+ ```
73
+ 3. This step is optional, but recommended: Also add this line to
74
+ `_config.yml` which excludes events from file URLs (they are
75
+ ugly and don't work properly in Jekyll, anyways):
76
+ ```ruby
77
+ permalink: /:year/:month/:day/:title:output_ext
78
+ ```
79
+ 4. Configure any other options you need (see below).
80
+ 5. Add template for event pages (see below).
81
+ 6. Set appropriate `events` tags on each blog post YAML front
82
+ matter.
83
+
84
+ ### Configuration
85
+
86
+ The following options can be set in the Jekyll configuration file
87
+ `_config.yml`:
88
+ * `event_path`: Root directory for event index pages. Defaults
89
+ to `event` if unset.
90
+ In the example this places the index file for event `jekyll` at
91
+ `example/_site/event/jekyll/index.html`.
92
+ * `event_layout`: Basic event index template. Defaults to
93
+ `event_index.html`. The layout **must** reside in the standard
94
+ `_layouts` directory.
95
+ In the example the layout is in
96
+ `example/_layouts/event_index.html`.
97
+ * `paginate`: (Maximum) number of posts on each event index
98
+ page. This is the same for the regular (front page) pagination. If
99
+ absent, pagination is turned off and only single index pages are
100
+ generated.
101
+ In the example `paginate` is set to 2.
102
+
103
+ ### Template for event pages
104
+
105
+ The template for a event index page must be placed in the site's
106
+ `_layouts` directory. The attribute `event` indicates the current
107
+ event for which the page is generated. The page title also defaults
108
+ to the current event. The other attributes are similar to the
109
+ default Jekyll pagination plugin.
110
+
111
+ If no pagination is enabled the following attributes are available:
112
+
113
+ | Attribute | Description |
114
+ | ------------- | ----------------------------------------- |
115
+ | `event` | Current page event |
116
+ | `posts` | List of posts in current event |
117
+ | `total_posts` | Total number of posts in current event |
118
+
119
+ If pagination is enabled (i.e., if setting `site.paginate` globally in
120
+ `_config.yml`) then a `paginator` attribute is available which returns
121
+ an object with the following attributes:
122
+
123
+ | Attribute | Description |
124
+ | -------------------- | -------------------------------------------------------------------------------- |
125
+ | `page` | Current page number |
126
+ | `per_page` | Number of posts per page |
127
+ | `posts` | List of posts on the current page |
128
+ | `total_posts` | Total number of posts in current event |
129
+ | `total_pages` | Total number of pagination pages for the current event |
130
+ | `previous_page` | Page number of the previous pagination page, or `nil` if no previous page exists |
131
+ | `previous_page_path` | Path of previous pagination page, or `''` if no previous page exists |
132
+ | `next_page` | Page number of the next pagination page, or `nil` if no subsequent page exists |
133
+ | `next_page_path` | Path of next pagination page, or `''` if no subsequent page exists |
134
+
135
+ An example can be found in `example/_layouts/event_index.html`
136
+ which demonstrates the various attributes and their use.
137
+
138
+ ### event listing
139
+
140
+ A event overview with a full listing of all events can be
141
+ created as follows:
142
+ ```html
143
+ <ul>
144
+ {% for event in site.events %}
145
+ <li><a href="{{ site.url }}/event/{{ event | first | slugify }}/index.html">{{ event | first }}</a></li>
146
+ {% endfor %}
147
+ </ul>
148
+ ```
149
+ Note that the event page paths are URL-encoded when generated by
150
+ this plugin. Thus, you have to use `slugify` when linking to each
151
+ event. This saves you from problems with spaces or other special
152
+ characters in event names.
153
+
154
+ An example listing can be found in `example/index.html` which
155
+ shows a full listing of events with corresponding links.
156
+
157
+ ### events on a single page
158
+
159
+ Listing the events in a single page is particularly simple since
160
+ the events listed in the YAML front matter are directly available
161
+ as strings in `page.events`. However, unlike the site-wide
162
+ event list in `site.events` the content of `page.events`
163
+ are just strings and can thus be added as follows (with references):
164
+ ```html
165
+ <ul>
166
+ {% for event in page.events %}
167
+ <li><a href="{{ site.url }}/path-to-event-index/{{ event | slugify }}/index.html">{{ event }}</a></li>
168
+ {% endfor %}
169
+ </ul>
170
+ ```
171
+
172
+ ## Development
173
+
174
+ This project contains a `Rakefile` that supports the following
175
+ tasks:
176
+ * `build`: Runs all tests and builds the resulting gem file.
177
+ * `test`: Run all tests.
178
+ * `example`: Run Jekyll for the example project.
179
+ * `clean`: Clean up all transient files.
180
+
181
+ To run all test cases use:
182
+ ```shell
183
+ bundle exec rake test
184
+ ```
185
+ The tests run different Jekyll configurations and produce output files
186
+ that can be read by Ruby. These are then evaluted and validated using
187
+ [Ruby RSpec](http://rspec.info).
188
+
189
+ To build the gem use:
190
+ ```shell
191
+ bundle exec rake build
192
+ ```
193
+ The result is put in the current directory after all tests have been
194
+ run.
195
+
196
+ ## Gotchas
197
+
198
+ The following issues and limitations are known:
199
+ * Jekyll currently does not properly escape special HTML entities
200
+ (like `&` or `<`) in permalink paths. Because of that you cannot use
201
+ them in event names. If you still want to use them you need to
202
+ adjust the `permalink` path as shown above -- it must not contain
203
+ event names.
204
+
205
+ ## License
206
+
207
+ The gem is available as open source under the terms of the [MIT
208
+ License](https://github.com/etcware/jekyll-event-pages/blob/master/LICENSE).
@@ -0,0 +1,309 @@
1
+ # frozen_string_literal: true
2
+ # Encoding: utf-8
3
+
4
+ #
5
+ # attribute_pages
6
+ # Add attribute index pages with and without pagination.
7
+ #
8
+ # (c) since 2022 by Alessandra Donnini
9
+ # Written by Alessandra Donnini <a dor donnini -at- etcware dot it>
10
+ #
11
+ # Copyright: Since 2022 Alessandra Donnini - MIT License
12
+ # See the accompanying file LICENSE for licensing conditions.
13
+ #
14
+
15
+ require 'jekyll'
16
+
17
+ module Jekyll
18
+
19
+ # aggiunge il metodo events alla classe Site
20
+ module EventMethod
21
+ def events
22
+ post_attr_hash("events")
23
+ end
24
+ end
25
+ Site.class_eval { include EventMethod }
26
+ class Site
27
+ include EventMethod
28
+ end
29
+
30
+ module EventPages
31
+ INDEXFILE = 'index.html'
32
+
33
+ # Custom generator for generating all index pages based on a supplied layout.
34
+ #
35
+ # Note that this generator uses a layout instead of a regular page template, since
36
+ # it will generate a set of new pages, not merely variations of a single page like
37
+ # the blog index Paginator does.
38
+ class Pagination < Generator
39
+ # This generator is safe from arbitrary code execution.
40
+ safe true
41
+ priority :lowest
42
+
43
+ # Generate paginated event pages if necessary.
44
+ #
45
+ # site - The Site object.
46
+ def generate(site)
47
+ event_base_path = site.config['event_path'] || 'event'
48
+ event_layout_path = File.join('_layouts/', site.config['event_layout'] || 'event_index.html')
49
+
50
+ if Paginate::Pager.pagination_enabled?(site)
51
+ # Generate paginated event pages
52
+ generate_paginated_events(site, event_base_path, event_layout_path)
53
+ else
54
+ # Generate event pages without pagination
55
+ generate_events(site, event_base_path, event_layout_path)
56
+ end
57
+ end
58
+
59
+ # Sort the list of events and remove duplicates.
60
+ #
61
+ # site - The Site object.
62
+ #
63
+ # Returns an array of strings containing the site's events.
64
+ def sorted_events(site)
65
+ events = []
66
+ #puts site.events
67
+ site.events.each_pair do |event, pages|
68
+ events.push(event)
69
+ end
70
+ events.sort!.uniq!
71
+ return events
72
+ end
73
+
74
+ # Generate the paginated event pages.
75
+ #
76
+ # site - The Site object.
77
+ # event_base_path - String with the base path to the event index pages.
78
+ # event_layout - The name of the basic event layout page.
79
+ def generate_paginated_events(site, event_base_path, event_layout)
80
+ events = sorted_events site
81
+
82
+ # Generate the pages
83
+ for event in events
84
+ posts_in_event = site.events[event]
85
+ event_path = File.join(event_base_path, Utils.slugify(event))
86
+ per_page = site.config['paginate']
87
+
88
+ page_number = EventPager.calculate_pages(posts_in_event, per_page)
89
+ page_paths = []
90
+ event_pages = []
91
+ (1..page_number).each do |current_page|
92
+ # Collect all paths in the first pass and generate the basic page templates.
93
+ page_name = current_page == 1 ? INDEXFILE : "page#{current_page}.html"
94
+ page_paths.push page_name
95
+ new_page = EventIndexPage.new(site, event_path, page_name, event, event_layout, posts_in_event, true)
96
+ event_pages.push new_page
97
+ end
98
+
99
+ (1..page_number).each do |current_page|
100
+ # Generate the paginator content in the second pass.
101
+ previous_link = current_page == 1 ? nil : page_paths[current_page - 2]
102
+ next_link = current_page == page_number ? nil : page_paths[current_page]
103
+ previous_page = current_page == 1 ? nil : (current_page - 1)
104
+ next_page = current_page == page_number ? nil : (current_page + 1)
105
+ event_pages[current_page - 1].add_paginator_relations(current_page, per_page, page_number,
106
+ previous_link, next_link, previous_page, next_page)
107
+ end
108
+
109
+ for page in event_pages
110
+ # Finally, add the new pages to the site in the third pass.
111
+ site.pages << page
112
+ end
113
+ end
114
+
115
+ Jekyll.logger.debug("Paginated events", "Processed " + events.size.to_s + " paginated event index pages")
116
+ end
117
+
118
+ # Generate the non-paginated event pages.
119
+ #
120
+ # site - The Site object.
121
+ # event_base_path - String with the base path to the event index pages.
122
+ # event_layout - The name of the basic event layout page.
123
+ def generate_events(site, event_base_path, event_layout)
124
+ events = sorted_events site
125
+
126
+ # Generate the pages
127
+ for event in events
128
+ posts_in_event = site.events[event]
129
+ event_path = File.join(event_base_path, Utils.slugify(event))
130
+
131
+ site.pages << EventIndexPage.new(site, event_path, INDEXFILE, event, event_layout, posts_in_event, false)
132
+ end
133
+
134
+ Jekyll.logger.debug("Events", "Processed " + events.size.to_s + " event index pages")
135
+ end
136
+
137
+ end
138
+ end
139
+
140
+ # Auto-generated page for a event index.
141
+ #
142
+ # When pagination is enabled, contains a EventPager object as paginator. The posts in the
143
+ # event are always available as posts, the total number of those is always total_posts.
144
+ class EventIndexPage < Page
145
+ # Attributes for Liquid templates.
146
+ ATTRIBUTES_FOR_LIQUID = %w(
147
+ event
148
+ paginator
149
+ posts
150
+ total_posts
151
+ content
152
+ dir
153
+ name
154
+ path
155
+ url
156
+ )
157
+
158
+ # Initialize a new event index page.
159
+ #
160
+ # site - The Site object.
161
+ # dir - Base directory for all event pages.
162
+ # page_name - Name of this event page (either 'index.html' or 'page#.html').
163
+ # event - Current event as a String.
164
+ # event_layout - Name of the event index page layout (must reside in the '_layouts' directory).
165
+ # posts_in_event - Array with full list of Posts in the current event.
166
+ # use_paginator - Whether a EventPager object shall be instantiated as 'paginator'.
167
+ def initialize(site, dir, page_name, event, event_layout, posts_in_event, use_paginator)
168
+ @site = site
169
+ @base = site.source
170
+ if ! File.exist?(File.join(@base, event_layout)) &&
171
+ ( site.theme && File.exist?(File.join(site.theme.root, event_layout)) )
172
+ @base = site.theme.root
173
+ end
174
+
175
+ super(@site, @base, '', event_layout)
176
+ @dir = dir
177
+ @name = page_name
178
+
179
+ self.process @name
180
+
181
+ @event = event
182
+ @posts_in_event = posts_in_event
183
+ @my_paginator = nil
184
+
185
+ self.read_yaml(@base, event_layout)
186
+ self.data.merge!('title' => event)
187
+ if use_paginator
188
+ @my_paginator = EventPager.new
189
+ self.data.merge!('paginator' => @my_paginator)
190
+ end
191
+ end
192
+
193
+ # Add relations of this page to other pages handled by a EventPager.
194
+ #
195
+ # Note that this method SHALL NOT be called if the event pages are instantiated without pagination.
196
+ # This method SHALL be called if the event pages are instantiated with pagination.
197
+ #
198
+ # page - Current page number.
199
+ # per_page - Posts per page.
200
+ # total_pages - Total number of pages.
201
+ # previous_page - Number of previous page or nil.
202
+ # next_page - Number of next page or nil.
203
+ # previous_page_path - String with path to previous page or nil.
204
+ # next_page_path - String with path to next page or nil.
205
+ def add_paginator_relations(page, per_page, total_pages, previous_page_path, next_page_path, previous_page, next_page)
206
+ if @my_paginator
207
+ @my_paginator.add_relations(page, per_page, total_pages,
208
+ previous_page, next_page, previous_page_path, next_page_path)
209
+ @my_paginator.add_posts(page, per_page, @posts_in_event)
210
+ else
211
+ Jekyll.logger.warn("Categories", "add_relations does nothing since the event page has been initialized without pagination")
212
+ end
213
+ end
214
+
215
+ # Get the event name this index page refers to
216
+ #
217
+ # Returns a string.
218
+ def event
219
+ @event
220
+ end
221
+
222
+ # Get the paginator object describing the current index page.
223
+ #
224
+ # Returns a EventPager object or nil.
225
+ def paginator
226
+ @my_paginator
227
+ end
228
+
229
+ # Get all Posts in this event.
230
+ #
231
+ # Returns an Array of Posts.
232
+ def posts
233
+ @posts_in_event
234
+ end
235
+
236
+ # Get the number of posts in this event.
237
+ #
238
+ # Returns an Integer number of posts.
239
+ def total_posts
240
+ @posts_in_event.size
241
+ end
242
+ end
243
+
244
+ # Handle pagination of event index pages.
245
+ class EventPager
246
+ attr_reader :page, :per_page, :posts, :total_posts, :total_pages,
247
+ :previous_page, :previous_page_path, :next_page, :next_page_path
248
+
249
+ # Static: Calculate the number of pages.
250
+ #
251
+ # all_posts - The Array of all Posts.
252
+ # per_page - The Integer of entries per page.
253
+ #
254
+ # Returns the Integer number of pages.
255
+ def self.calculate_pages(all_posts, per_page)
256
+ (all_posts.size.to_f / per_page.to_i).ceil
257
+ end
258
+
259
+ # Add numeric relationships of this page to other pages.
260
+ #
261
+ # page - Current page number.
262
+ # per_page - Posts per page.
263
+ # total_pages - Total number of pages.
264
+ # previous_page - Number of previous page or nil.
265
+ # next_page - Number of next page or nil.
266
+ # previous_page_path - String with path to previous page or nil.
267
+ # next_page_path - String with path to next page or nil.
268
+ def add_relations(page, per_page, total_pages, previous_page, next_page, previous_page_path, next_page_path)
269
+ @page = page
270
+ @per_page = per_page
271
+ @total_pages = total_pages
272
+ @previous_page = previous_page
273
+ @next_page = next_page
274
+ @previous_page_path = previous_page_path
275
+ @next_page_path = next_page_path
276
+ end
277
+
278
+ # Add page-specific post data.
279
+ #
280
+ # page - Current page number.
281
+ # per_page - Posts per page.
282
+ # posts_in_event - Array with full list of Posts in the current event.
283
+ def add_posts(page, per_page, posts_in_event)
284
+ total_posts = posts_in_event.size
285
+ init = (page - 1) * per_page
286
+ offset = (init + per_page - 1) >= total_posts ? total_posts : (init + per_page - 1)
287
+
288
+ @total_posts = total_posts
289
+ @posts = posts_in_event[init..offset]
290
+ end
291
+
292
+ # Convert this EventPager's data to a Hash suitable for use by Liquid.
293
+ #
294
+ # Returns the Hash representation of this EventPager.
295
+ def to_liquid
296
+ {
297
+ 'page' => page,
298
+ 'per_page' => per_page,
299
+ 'posts' => posts,
300
+ 'total_posts' => total_posts,
301
+ 'total_pages' => total_pages,
302
+ 'previous_page' => previous_page,
303
+ 'previous_page_path' => previous_page_path,
304
+ 'next_page' => next_page,
305
+ 'next_page_path' => next_page_path
306
+ }
307
+ end
308
+ end
309
+ end
@@ -0,0 +1,20 @@
1
+ # frozen_string_literal: true
2
+ # Copyright: Since 2022 Alessandra Donnini - MIT License
3
+ # Encoding: utf-8
4
+
5
+ #
6
+ # jekyll-event-pages
7
+ # Add event index pages with and without pagination.
8
+ #
9
+ # (c) since 2022 by Alessandra Donnini
10
+ # Written by Alessandra Donnini <a dor donnini -at- etcware dot it>
11
+ #
12
+ # Copyright: since 2022 by Alessandra Donnini - MIT License
13
+ # See the accompanying file LICENSE for licensing conditions.
14
+ #
15
+
16
+ module Jekyll
17
+ module EventPages
18
+ VERSION = "0.1.0".freeze
19
+ end
20
+ end
@@ -0,0 +1,16 @@
1
+ # frozen_string_literal: true
2
+ # Copyright: Since 2022 Alessandra Donnini - MIT License
3
+ # Encoding: utf-8
4
+
5
+ #
6
+ # jekyll-event-pages
7
+ # Add category index pages with and without pagination.
8
+ #
9
+ # (c) since 2022 by Alessandra Donnini
10
+ # Written by Alessandra Donnini <a dor donnini -at- etcware dot it>
11
+ #
12
+ # Copyright: since 2022 by Alessandra Donnini - MIT License
13
+ # See the accompanying file LICENSE for licensing conditions.
14
+ #
15
+
16
+ require "jekyll/event_pages"
metadata ADDED
@@ -0,0 +1,101 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: jekyll-event-pages
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - Alessandra Donnini
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2022-09-05 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: '4.0'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '4.0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: jekyll-paginate
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '1.1'
34
+ - - ">="
35
+ - !ruby/object:Gem::Version
36
+ version: 1.0.0
37
+ type: :runtime
38
+ prerelease: false
39
+ version_requirements: !ruby/object:Gem::Requirement
40
+ requirements:
41
+ - - "~>"
42
+ - !ruby/object:Gem::Version
43
+ version: '1.1'
44
+ - - ">="
45
+ - !ruby/object:Gem::Version
46
+ version: 1.0.0
47
+ - !ruby/object:Gem::Dependency
48
+ name: rspec
49
+ requirement: !ruby/object:Gem::Requirement
50
+ requirements:
51
+ - - "~>"
52
+ - !ruby/object:Gem::Version
53
+ version: '3.0'
54
+ type: :development
55
+ prerelease: false
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ requirements:
58
+ - - "~>"
59
+ - !ruby/object:Gem::Version
60
+ version: '3.0'
61
+ description: |
62
+ This plugin is for all authors that tag their pages using a selected attribute. It generates
63
+ event overview pages with a custom layout. Optionally, it also adds proper
64
+ pagination for these pages.
65
+
66
+ Please refer to the README.md file on the project homepage at
67
+ https://github.com/etcware/jekyll-event-pages
68
+ email: a.donnini@etcware.it
69
+ executables: []
70
+ extensions: []
71
+ extra_rdoc_files: []
72
+ files:
73
+ - LICENSE
74
+ - README.md
75
+ - lib/jekyll-event-pages.rb
76
+ - lib/jekyll-event-pages/version.rb
77
+ - lib/jekyll/event_pages.rb
78
+ homepage: https://github.com/etcware/jekyll-event-pages
79
+ licenses:
80
+ - MIT
81
+ metadata: {}
82
+ post_install_message:
83
+ rdoc_options: []
84
+ require_paths:
85
+ - lib
86
+ required_ruby_version: !ruby/object:Gem::Requirement
87
+ requirements:
88
+ - - ">="
89
+ - !ruby/object:Gem::Version
90
+ version: '0'
91
+ required_rubygems_version: !ruby/object:Gem::Requirement
92
+ requirements:
93
+ - - ">="
94
+ - !ruby/object:Gem::Version
95
+ version: '0'
96
+ requirements: []
97
+ rubygems_version: 3.3.7
98
+ signing_key:
99
+ specification_version: 4
100
+ summary: Add event index pages with and without pagination.
101
+ test_files: []