jekyll-paginate-v2 1.7.0 → 1.7.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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
|