jekyll-paginate-content 1.0.1 → 1.0.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +9 -4
- data/lib/jekyll/paginate/content.rb +37 -14
- data/lib/jekyll/paginate/content/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 92687574f2e5d7f3666bf6c8076c14833b1505dd
|
4
|
+
data.tar.gz: af26416882ede550faefdb9d64ddef9e42578807
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 93bd2542e563e1495f3cc245452aedeb833994895a7d5415209c816d58e6eedade502f8552d95466bcdba9c00a271739bb861b2c8c96b6b855ed311c325dbdf1
|
7
|
+
data.tar.gz: e6886038d592797351b241e22e54dbd555a6c6f4da0b23e7cef3db7e29d8642d55278df6c3b51f6810b8d0a727d3d7e0f09d26505424fd3f038e384e97d1b56b
|
data/README.md
CHANGED
@@ -127,10 +127,14 @@ See other [demos](#demos).
|
|
127
127
|
|
128
128
|
1. You want to split long posts and pages/articles/reviews, etc. into multiple pages, e.g. chapters;
|
129
129
|
1. You want to offer faster loading times to your readers;
|
130
|
-
1. You
|
130
|
+
1. You want to make slide/presentation-type content;
|
131
131
|
1. You want more ad revenue from your Jekyll site;
|
132
132
|
1. You wanna be the cool kid. :stuck_out_tongue:
|
133
133
|
|
134
|
+
## What's new?
|
135
|
+
|
136
|
+
v1.0.2 Don't regenerate unnecessarily
|
137
|
+
|
134
138
|
## Installation
|
135
139
|
|
136
140
|
Add the gem to your application's Gemfile:
|
@@ -302,7 +306,7 @@ paginate_content:
|
|
302
306
|
```
|
303
307
|
## Splitting content
|
304
308
|
|
305
|
-
How your
|
309
|
+
How your content is split depends on your `separator`:
|
306
310
|
|
307
311
|
### Manual mode
|
308
312
|
|
@@ -396,6 +400,7 @@ These properties/fields are available to your layouts and content via the `pagin
|
|
396
400
|
| | | |
|
397
401
|
| `single_page` | `view_all` | Path to the original/full page |
|
398
402
|
| `seo` | | HTML header tags for SEO, see [below](#search-engine-optimization-seo)
|
403
|
+
| `toc` | | Table Of Contents generator, see [below](#table-of-contents-toc)
|
399
404
|
| | | |
|
400
405
|
| `section` | | Text of the first header (<h1> etc.) on this page
|
401
406
|
| `previous_section` | `prev_section` | Ditto for the previous page |
|
@@ -431,7 +436,7 @@ The tags, categories, and `hidden` are set up this way to avoid duplicate counts
|
|
431
436
|
|
432
437
|
### Setting custom properties
|
433
438
|
|
434
|
-
`paginate_content`
|
439
|
+
`paginate_content` has a `properties` option:
|
435
440
|
|
436
441
|
```yaml
|
437
442
|
paginate_content:
|
@@ -745,7 +750,7 @@ The difference between this and the one built into [kramdown](https://kramdown.g
|
|
745
750
|
|
746
751
|
### Excluding sections
|
747
752
|
|
748
|
-
Should you want some
|
753
|
+
Should you want some sections excluded from the Table Of Contents, add them to the `toc_exclude` option in your site configuration or content front-matter:
|
749
754
|
|
750
755
|
```yaml
|
751
756
|
paginate_content:
|
@@ -70,6 +70,8 @@ module Jekyll
|
|
70
70
|
|
71
71
|
# Run through each specified collection
|
72
72
|
|
73
|
+
total_skipped = 0
|
74
|
+
|
73
75
|
collections.each do |collection|
|
74
76
|
if collection == "pages"
|
75
77
|
items = site.pages
|
@@ -95,13 +97,18 @@ module Jekyll
|
|
95
97
|
end
|
96
98
|
|
97
99
|
process.each do |item|
|
98
|
-
|
99
|
-
|
100
|
+
paginator = Paginator.new(site, collection, item, @config)
|
101
|
+
if paginator.skipped
|
102
|
+
debug "[#{collection}] \"#{item.data['title']}\" skipped"
|
103
|
+
total_skipped += 1
|
104
|
+
end
|
100
105
|
|
101
|
-
|
102
|
-
|
106
|
+
next if paginator.items.empty?
|
107
|
+
|
108
|
+
debug "[#{collection}] \"#{item.data['title']}\", #{paginator.items.length-1}+1 pages"
|
109
|
+
total_parts += paginator.items.length-1;
|
103
110
|
total_copies += 1
|
104
|
-
new_items <<
|
111
|
+
new_items << paginator.items
|
105
112
|
old_items << item
|
106
113
|
end
|
107
114
|
|
@@ -119,6 +126,12 @@ module Jekyll
|
|
119
126
|
info "[#{collection}] Generated #{total_parts}+#{total_copies} pages"
|
120
127
|
end
|
121
128
|
end
|
129
|
+
|
130
|
+
if total_skipped > 0
|
131
|
+
s = (total_skipped == 1 ? '' : 's')
|
132
|
+
info "Skipped #{total_skipped} unchanged item#{s}"
|
133
|
+
end
|
134
|
+
|
122
135
|
runtime = "%.6f" % (Time.now - start_time).to_f
|
123
136
|
debug "Runtime: #{runtime}s"
|
124
137
|
end
|
@@ -232,22 +245,32 @@ module Jekyll
|
|
232
245
|
end
|
233
246
|
|
234
247
|
class Paginator
|
248
|
+
attr_accessor :skipped
|
249
|
+
|
235
250
|
def initialize(site, collection, item, config)
|
236
251
|
@site = site
|
237
252
|
@collection = collection
|
253
|
+
@items = []
|
254
|
+
@skipped = false
|
255
|
+
|
256
|
+
source = item.path
|
257
|
+
html = item.destination('')
|
238
258
|
|
239
|
-
|
240
|
-
|
241
|
-
item.data
|
242
|
-
|
243
|
-
|
259
|
+
if !File.exist?(html) || (File.mtime(html) < File.mtime(source))
|
260
|
+
final_config = {}.merge(config)
|
261
|
+
if item.data.has_key?('paginate_content')
|
262
|
+
item.data['paginate_content'].each do |k,v|
|
263
|
+
s = k.downcase.strip.to_sym
|
264
|
+
final_config[s] = v
|
265
|
+
end
|
244
266
|
end
|
245
|
-
end
|
246
267
|
|
247
|
-
|
268
|
+
@config = final_config
|
248
269
|
|
249
|
-
|
250
|
-
|
270
|
+
self.split(item)
|
271
|
+
else
|
272
|
+
@skipped = true
|
273
|
+
end
|
251
274
|
end
|
252
275
|
|
253
276
|
def items
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: jekyll-paginate-content
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Alex Ibrado
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-12-
|
11
|
+
date: 2017-12-28 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: jekyll
|