jekyll-paginate-v2 1.7.0 → 1.7.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README-AUTOPAGES.md +17 -0
- data/README-GENERATOR.md +7 -8
- data/README.md +1 -1
- data/lib/jekyll-paginate-v2/autopages/autoPages.rb +9 -9
- data/lib/jekyll-paginate-v2/autopages/pages/baseAutoPage.rb +2 -2
- data/lib/jekyll-paginate-v2/autopages/pages/categoryAutoPage.rb +2 -2
- data/lib/jekyll-paginate-v2/autopages/pages/collectionAutoPage.rb +2 -2
- data/lib/jekyll-paginate-v2/autopages/pages/tagAutoPage.rb +2 -2
- data/lib/jekyll-paginate-v2/autopages/utils.rb +7 -7
- data/lib/jekyll-paginate-v2/generator/paginationPage.rb +6 -0
- data/lib/jekyll-paginate-v2/version.rb +2 -2
- 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: 9ce2b9e1db9613c363b49bd85abcde999a711f92
|
4
|
+
data.tar.gz: 4e1437c8cf70f5bc127db725e3b3ddb8b3993aac
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: bf461c4d569da1753e223721f06092d6f54c1fefe59910531bcaab16daa39af8494278527d984cb5c34e4ec4e1bf3da1a0f8869cdac364a75a0063e52da7afd1
|
7
|
+
data.tar.gz: 88df86ce35916323d5caf29f23bcb15e8a10f5607f91bc46a2f2de94823cc6a3957bfd1449bd55f3ab0da9e7774bfc80a6d30c9669a1d0312b6916e0fa9466cb
|
data/README-AUTOPAGES.md
CHANGED
@@ -62,6 +62,23 @@ Example of a simple autopage layout can be seen in Example 3 [examples/03-tags/_
|
|
62
62
|
|
63
63
|
The layout does not need anything special beyond the normal pagination logic (e.g. `for post in paginator.posts` and then the next/prev arrows). You can either name the layouts by the default names (see site configuration section above) or give them a custom name and add them to the `layouts:` configuration for the relevant type of autopage.
|
64
64
|
|
65
|
+
### Obtaining the original Tag or Category name
|
66
|
+
Internally the autopage system will trim and downcase the indexing key (tag, category or collection name). To retrieve the original name of the index key you can use the `autopages.display_name` liquid variable.
|
67
|
+
|
68
|
+
``` html
|
69
|
+
<h1 class="page-heading">All pages tagged with <b>{% if page.autopages %}{{page.autopages.display_name}}{% endif %}</b></h1>
|
70
|
+
```
|
71
|
+
|
72
|
+
This variable returns the untouched key value. As an example if your site uses the tag `Science-Fiction` then
|
73
|
+
|
74
|
+
```
|
75
|
+
page.tag = "science-fiction"
|
76
|
+
page.autopages.display_name = "Science-Fiction"
|
77
|
+
```
|
78
|
+
|
79
|
+
See [#6](https://github.com/sverrirs/jekyll-paginate-v2/issues/6) for more information.
|
80
|
+
|
81
|
+
|
65
82
|
## Advanced configuration
|
66
83
|
You can customize the look an feel of the permalink structure and the title for the auto-pages. You can also add front-matter `pagination` configuration to the layout pages you're using to specify things like sorting, filtering and all the other configuration options that are available in the normal pagination generator.
|
67
84
|
|
data/README-GENERATOR.md
CHANGED
@@ -82,8 +82,6 @@ pagination:
|
|
82
82
|
|
83
83
|
# Optional,omit or set both before and after to zero to disable.
|
84
84
|
# Controls how the pagination trail for the paginated pages look like.
|
85
|
-
# this feature enables the user to display a <prev, 1, 2, 3, 4, 5, next> pagination trail on their page
|
86
|
-
# By default this feature produces two pages before and two pages after the current page (total of 5 pages)
|
87
85
|
trail:
|
88
86
|
before: 2
|
89
87
|
after: 2
|
@@ -368,7 +366,7 @@ pagination:
|
|
368
366
|
## Creating Pagination Trails
|
369
367
|
|
370
368
|
<p align="center">
|
371
|
-
<img src="https://raw.githubusercontent.com/sverrirs/jekyll-paginate-v2/master/res/pagination-trails.png"
|
369
|
+
<img src="https://raw.githubusercontent.com/sverrirs/jekyll-paginate-v2/master/res/pagination-trails.png" />
|
372
370
|
</p>
|
373
371
|
|
374
372
|
Creating a trail structure for your pagination as shown above can be achieved by enabling the `trail` configuration and including a little extra code in your liquid templates.
|
@@ -385,26 +383,27 @@ Your layout file would then have to include code similar to the following to gen
|
|
385
383
|
``` HTML
|
386
384
|
{% if paginator.page_trail %}
|
387
385
|
{% for trail in paginator.page_trail %}
|
388
|
-
<li>
|
386
|
+
<li {% if page.url == trail.path %}class="selected"{% endif %}>
|
389
387
|
<a href="{{ trail.path | prepend: site.baseurl }}" title="{{trail.title}}">{{ trail.num }}</a>
|
390
388
|
</li>
|
391
389
|
{% endfor %}
|
392
390
|
{% endif %}
|
393
391
|
```
|
392
|
+
_See [example 3](https://github.com/sverrirs/jekyll-paginate-v2/tree/master/examples/03-tags) for a demo of a pagination trail_
|
394
393
|
|
395
|
-
The `trail`
|
394
|
+
The `trail` object exposes three properties:
|
396
395
|
* `num`: The number of the page
|
397
396
|
* `path`: The path to the page
|
398
397
|
* `title`: The title of the page
|
399
398
|
|
400
399
|
The algorithm will always attempt to keep the same trail length for all pages (`trail length = before + after + 1`).
|
401
|
-
|
400
|
+
As an example if we have only 7 pagination pages in total and the user is currently on page 6 then the trail would look like this
|
402
401
|
|
403
402
|
<p align="center">
|
404
|
-
<img src="https://raw.githubusercontent.com/sverrirs/jekyll-paginate-v2/master/res/pagination-trails-
|
403
|
+
<img src="https://raw.githubusercontent.com/sverrirs/jekyll-paginate-v2/master/res/pagination-trails-p6.png" />
|
405
404
|
</p>
|
406
405
|
|
407
|
-
Different number of before and after trail links can be specified. Below is an example of how
|
406
|
+
Different number of before and after trail links can be specified. Below is an example of how the yml config below would look like when on the same page 4
|
408
407
|
|
409
408
|
``` yml
|
410
409
|
pagination:
|
data/README.md
CHANGED
@@ -11,7 +11,7 @@ Pagination gem built specially for Jekyll 3 and newer that is fully backwards co
|
|
11
11
|
|
12
12
|
Reach me at the [project issues](https://github.com/sverrirs/jekyll-paginate-v2/issues) section or via email at [jekyll@sverrirs.com](mailto:jekyll@sverrirs.com).
|
13
13
|
|
14
|
-
> The code was based on the original design of [jekyll-paginate](https://github.com/jekyll/jekyll-paginate) and features were sourced discussions such as [#27](https://github.com/jekyll/jekyll-paginate/issues/27) (thanks [Günter Kits](https://github.com/gynter)).
|
14
|
+
> The code was based on the original design of [jekyll-paginate](https://github.com/jekyll/jekyll-paginate) and features were sourced from discussions such as [#27](https://github.com/jekyll/jekyll-paginate/issues/27) (thanks [Günter Kits](https://github.com/gynter)).
|
15
15
|
|
16
16
|
* [Installation](#installation)
|
17
17
|
* [Example Sites](https://github.com/sverrirs/jekyll-paginate-v2/tree/master/examples)
|
@@ -25,23 +25,23 @@ module Jekyll
|
|
25
25
|
|
26
26
|
###############################################
|
27
27
|
# Generate the Tag pages if enabled
|
28
|
-
createtagpage_lambda = lambda do | autopage_tag_config, pagination_config, layout_name, tag |
|
29
|
-
site.pages << TagAutoPage.new(site, site.dest, autopage_tag_config, pagination_config, layout_name, tag)
|
28
|
+
createtagpage_lambda = lambda do | autopage_tag_config, pagination_config, layout_name, tag, tag_original_name |
|
29
|
+
site.pages << TagAutoPage.new(site, site.dest, autopage_tag_config, pagination_config, layout_name, tag, tag_original_name)
|
30
30
|
end
|
31
31
|
autopage_create(autopage_config, pagination_config, posts_to_use, 'tags', 'tags', createtagpage_lambda) # Call the actual function
|
32
32
|
|
33
33
|
|
34
34
|
###############################################
|
35
35
|
# Generate the category pages if enabled
|
36
|
-
createcatpage_lambda = lambda do | autopage_cat_config, pagination_config, layout_name, category |
|
37
|
-
site.pages << CategoryAutoPage.new(site, site.dest, autopage_cat_config, pagination_config, layout_name, category)
|
36
|
+
createcatpage_lambda = lambda do | autopage_cat_config, pagination_config, layout_name, category, category_original_name |
|
37
|
+
site.pages << CategoryAutoPage.new(site, site.dest, autopage_cat_config, pagination_config, layout_name, category, category_original_name)
|
38
38
|
end
|
39
39
|
autopage_create(autopage_config, pagination_config,posts_to_use, 'categories', 'categories', createcatpage_lambda) # Call the actual function
|
40
40
|
|
41
41
|
###############################################
|
42
42
|
# Generate the Collection pages if enabled
|
43
|
-
createcolpage_lambda = lambda do | autopage_col_config, pagination_config, layout_name, coll_name |
|
44
|
-
site.pages << CollectionAutoPage.new(site, site.dest, autopage_col_config, pagination_config, layout_name, coll_name)
|
43
|
+
createcolpage_lambda = lambda do | autopage_col_config, pagination_config, layout_name, coll_name, coll_original_name |
|
44
|
+
site.pages << CollectionAutoPage.new(site, site.dest, autopage_col_config, pagination_config, layout_name, coll_name, coll_original_name)
|
45
45
|
end
|
46
46
|
autopage_create(autopage_config, pagination_config,posts_to_use, 'collections', '__coll', createcolpage_lambda) # Call the actual function
|
47
47
|
|
@@ -58,13 +58,13 @@ module Jekyll
|
|
58
58
|
Jekyll.logger.info "AutoPages:","Generating #{configkey_name} pages"
|
59
59
|
|
60
60
|
# Roll through all documents in the posts collection and extract the tags
|
61
|
-
index_keys = Utils.
|
61
|
+
index_keys = Utils.ap_index_posts_by(posts_to_use, indexkey_name) # Cannot use just the posts here, must use all things.. posts, collections...
|
62
62
|
|
63
|
-
index_keys.each do |index_key|
|
63
|
+
index_keys.each do |index_key, value|
|
64
64
|
# Iterate over each layout specified in the config
|
65
65
|
ap_sub_config ['layouts'].each do | layout_name |
|
66
66
|
# Use site.dest here as these pages are never created in the actual source but only inside the _site folder
|
67
|
-
createpage_lambda.call(ap_sub_config, pagination_config, layout_name, index_key)
|
67
|
+
createpage_lambda.call(ap_sub_config, pagination_config, layout_name, index_key, value[-1]) # the last item in the value array will be the display name
|
68
68
|
end
|
69
69
|
end
|
70
70
|
else
|
@@ -2,7 +2,7 @@ module Jekyll
|
|
2
2
|
module PaginateV2::AutoPages
|
3
3
|
|
4
4
|
class BaseAutoPage < Jekyll::Page
|
5
|
-
def initialize(site, base, autopage_config, pagination_config, layout_name, set_autopage_data_lambda, get_autopage_permalink_lambda, get_autopage_title_lambda)
|
5
|
+
def initialize(site, base, autopage_config, pagination_config, layout_name, set_autopage_data_lambda, get_autopage_permalink_lambda, get_autopage_title_lambda, display_name)
|
6
6
|
@site = site
|
7
7
|
@base = base
|
8
8
|
@name = 'index.html'
|
@@ -46,7 +46,7 @@ module Jekyll
|
|
46
46
|
|
47
47
|
# Add the auto page flag in there to be able to detect the page (necessary when figuring out where to load it from)
|
48
48
|
# TODO: Need to re-think this variable!!!
|
49
|
-
self.data['autopage'] = {"layout_path" => File.join( layout_dir, layout_name ) }
|
49
|
+
self.data['autopage'] = {"layout_path" => File.join( layout_dir, layout_name ), 'display_name' => display_name.to_s }
|
50
50
|
|
51
51
|
data.default_proc = proc do |_, key|
|
52
52
|
site.frontmatter_defaults.find(File.join(layout_dir, layout_name), type, key)
|
@@ -2,7 +2,7 @@ module Jekyll
|
|
2
2
|
module PaginateV2::AutoPages
|
3
3
|
|
4
4
|
class CategoryAutoPage < BaseAutoPage
|
5
|
-
def initialize(site, base, autopage_config, pagination_config, layout_name, category)
|
5
|
+
def initialize(site, base, autopage_config, pagination_config, layout_name, category, category_name)
|
6
6
|
|
7
7
|
# Construc the lambda function to set the config values
|
8
8
|
# this function received the pagination config hash and manipulates it
|
@@ -19,7 +19,7 @@ module Jekyll
|
|
19
19
|
end
|
20
20
|
|
21
21
|
# Call the super constuctor with our custom lambda
|
22
|
-
super(site, base, autopage_config, pagination_config, layout_name, set_autopage_data_lambda, get_autopage_permalink_lambda, get_autopage_title_lambda)
|
22
|
+
super(site, base, autopage_config, pagination_config, layout_name, set_autopage_data_lambda, get_autopage_permalink_lambda, get_autopage_title_lambda, category_name)
|
23
23
|
|
24
24
|
end #function initialize
|
25
25
|
|
@@ -2,7 +2,7 @@ module Jekyll
|
|
2
2
|
module PaginateV2::AutoPages
|
3
3
|
|
4
4
|
class CollectionAutoPage < BaseAutoPage
|
5
|
-
def initialize(site, base, autopage_config, pagination_config, layout_name, collection)
|
5
|
+
def initialize(site, base, autopage_config, pagination_config, layout_name, collection, collection_name)
|
6
6
|
|
7
7
|
# Construc the lambda function to set the config values
|
8
8
|
# this function received the pagination config hash and manipulates it
|
@@ -19,7 +19,7 @@ module Jekyll
|
|
19
19
|
end
|
20
20
|
|
21
21
|
# Call the super constuctor with our custom lambda
|
22
|
-
super(site, base, autopage_config, pagination_config, layout_name, set_autopage_data_lambda, get_autopage_permalink_lambda, get_autopage_title_lambda)
|
22
|
+
super(site, base, autopage_config, pagination_config, layout_name, set_autopage_data_lambda, get_autopage_permalink_lambda, get_autopage_title_lambda, collection_name)
|
23
23
|
|
24
24
|
end #function initialize
|
25
25
|
|
@@ -2,7 +2,7 @@ module Jekyll
|
|
2
2
|
module PaginateV2::AutoPages
|
3
3
|
|
4
4
|
class TagAutoPage < BaseAutoPage
|
5
|
-
def initialize(site, base, autopage_config, pagination_config, layout_name, tag)
|
5
|
+
def initialize(site, base, autopage_config, pagination_config, layout_name, tag, tag_name)
|
6
6
|
|
7
7
|
# Construc the lambda function to set the config values,
|
8
8
|
# this function received the pagination config hash and manipulates it
|
@@ -19,7 +19,7 @@ module Jekyll
|
|
19
19
|
end
|
20
20
|
|
21
21
|
# Call the super constuctor with our custom lambda
|
22
|
-
super(site, base, autopage_config, pagination_config, layout_name, set_autopage_data_lambda, get_autopage_permalink_lambda, get_autopage_title_lambda)
|
22
|
+
super(site, base, autopage_config, pagination_config, layout_name, set_autopage_data_lambda, get_autopage_permalink_lambda, get_autopage_title_lambda, tag_name)
|
23
23
|
|
24
24
|
end #function initialize
|
25
25
|
|
@@ -33,7 +33,7 @@ module Jekyll
|
|
33
33
|
return coll
|
34
34
|
end
|
35
35
|
|
36
|
-
def self.
|
36
|
+
def self.ap_index_posts_by(all_posts, index_key)
|
37
37
|
return nil if all_posts.nil?
|
38
38
|
return all_posts if index_key.nil?
|
39
39
|
index = {}
|
@@ -52,16 +52,16 @@ module Jekyll
|
|
52
52
|
end
|
53
53
|
|
54
54
|
for key in post_data
|
55
|
-
key = key.
|
55
|
+
key = key.strip
|
56
56
|
# If the key is a delimetered list of values
|
57
57
|
# (meaning the user didn't use an array but a string with commas)
|
58
|
-
for
|
59
|
-
k_split =
|
58
|
+
for raw_k_split in key.split(/;|,/)
|
59
|
+
k_split = raw_k_split.to_s.downcase.strip #Clean whitespace and junk
|
60
60
|
if !index.has_key?(k_split)
|
61
|
-
|
61
|
+
# Need to store the original key value here so that I can present it to the users as a page variable they can use (unmodified, e.g. tags not being 'sci-fi' but "Sci-Fi")
|
62
|
+
# Also, only interested in storing all the keys not the pages in this case
|
63
|
+
index[k_split.to_s] = [k_split.to_s, raw_k_split.to_s]
|
62
64
|
end
|
63
|
-
# TODO: Need to store the original key value here so that I can present it to the users as a page variable they can use (unmodified, e.g. tags not being 'sci-fi' but "Sci-Fi")
|
64
|
-
index[k_split.to_s] << post
|
65
65
|
end
|
66
66
|
end
|
67
67
|
end
|
@@ -22,6 +22,12 @@ module Jekyll
|
|
22
22
|
self.data = Jekyll::Utils.deep_merge_hashes( page_to_copy.data, {} )
|
23
23
|
if !page_to_copy.data['autopage']
|
24
24
|
self.content = page_to_copy.content
|
25
|
+
else
|
26
|
+
# If the page is an auto page then migrate the necessary autopage info across into the
|
27
|
+
# new pagination page (so that users can get the correct keys etc)
|
28
|
+
if( page_to_copy.data['autopage'].has_key?('display_name') )
|
29
|
+
self.data['autopages'] = Jekyll::Utils.deep_merge_hashes( page_to_copy.data['autopage'], {} )
|
30
|
+
end
|
25
31
|
end
|
26
32
|
|
27
33
|
# Perform some validation that is also performed in Jekyll::Page
|
@@ -1,8 +1,8 @@
|
|
1
1
|
module Jekyll
|
2
2
|
module PaginateV2
|
3
|
-
VERSION = "1.7.
|
3
|
+
VERSION = "1.7.2"
|
4
4
|
# When modifying remember to issue a new tag command in git before committing, then push the new tag
|
5
|
-
# git tag -a v1.7.
|
5
|
+
# git tag -a v1.7.2 -m "Gem v1.7.2"
|
6
6
|
# git push origin --tags
|
7
7
|
end # module PaginateV2
|
8
8
|
end # module Jekyll
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: jekyll-paginate-v2
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.7.
|
4
|
+
version: 1.7.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Sverrir Sigmundarson
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-
|
11
|
+
date: 2017-02-03 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: jekyll
|