can now set a custom pagination location with pagination_path
This commit is contained in:
parent
b2ab245835
commit
2b8017dfdc
|
@ -19,9 +19,36 @@ Feature: Site pagination
|
||||||
And the "_site/page<exist>/index.html" file should exist
|
And the "_site/page<exist>/index.html" file should exist
|
||||||
And I should see "<posts>" in "_site/page<exist>/index.html"
|
And I should see "<posts>" in "_site/page<exist>/index.html"
|
||||||
And the "_site/page<not_exist>/index.html" file should not exist
|
And the "_site/page<not_exist>/index.html" file should not exist
|
||||||
|
|
||||||
Examples:
|
Examples:
|
||||||
| num | exist | posts | not_exist |
|
| num | exist | posts | not_exist |
|
||||||
| 1 | 4 | 1 | 5 |
|
| 1 | 4 | 1 | 5 |
|
||||||
| 2 | 2 | 2 | 3 |
|
| 2 | 2 | 2 | 3 |
|
||||||
| 3 | 2 | 1 | 3 |
|
| 3 | 2 | 1 | 3 |
|
||||||
|
|
||||||
|
Scenario Outline: Setting a custom pagination path
|
||||||
|
Given I have a configuration file with:
|
||||||
|
| key | value |
|
||||||
|
| paginate | 1 |
|
||||||
|
| paginate_path | /blog/page-:num |
|
||||||
|
| permalink | /blog/:year/:month/:day/:title |
|
||||||
|
And I have a _layouts directory
|
||||||
|
And I have an "index.html" page that contains "{{ paginator.posts.size }}"
|
||||||
|
And I have a _posts directory
|
||||||
|
And I have the following post:
|
||||||
|
| title | date | layout | content |
|
||||||
|
| Wargames | 3/27/2009 | default | The only winning move is not to play. |
|
||||||
|
| Wargames2 | 4/27/2009 | default | The only winning move is not to play2. |
|
||||||
|
| Wargames3 | 5/27/2009 | default | The only winning move is not to play3. |
|
||||||
|
| Wargames4 | 6/27/2009 | default | The only winning move is not to play4. |
|
||||||
|
When I run jekyll
|
||||||
|
Then the _site/blog/page-<exist> directory should exist
|
||||||
|
And the "_site/blog/page-<exist>/index.html" file should exist
|
||||||
|
And I should see "<posts>" in "_site/blog/page-<exist>/index.html"
|
||||||
|
And the "_site/blog/page-<not_exist>/index.html" file should not exist
|
||||||
|
|
||||||
|
Examples:
|
||||||
|
| exist | posts | not_exist |
|
||||||
|
| 2 | 1 | 5 |
|
||||||
|
| 3 | 1 | 6 |
|
||||||
|
| 4 | 1 | 7 |
|
||||||
|
|
|
@ -37,13 +37,19 @@ module Jekyll
|
||||||
if num_page > 1
|
if num_page > 1
|
||||||
newpage = Page.new(site, site.source, page.dir, page.name)
|
newpage = Page.new(site, site.source, page.dir, page.name)
|
||||||
newpage.pager = pager
|
newpage.pager = pager
|
||||||
newpage.dir = File.join(page.dir, "page#{num_page}")
|
newpage.dir = File.join(page.dir, paginate_path(site, num_page))
|
||||||
site.pages << newpage
|
site.pages << newpage
|
||||||
else
|
else
|
||||||
page.pager = pager
|
page.pager = pager
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
private
|
||||||
|
def paginate_path(site, num_page)
|
||||||
|
format = site.config['paginate_path'] || "page:num"
|
||||||
|
format.sub(':num', num_page.to_s)
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
class Pager
|
class Pager
|
||||||
|
|
Loading…
Reference in New Issue