From 2b8017dfdc3d1a237bc7aa63427228701bbe01f7 Mon Sep 17 00:00:00 2001 From: Dane Harrigan Date: Sat, 4 Jun 2011 21:36:29 -0400 Subject: [PATCH] can now set a custom pagination location with pagination_path --- features/pagination.feature | 29 ++++++++++++++++++++++++++++- lib/jekyll/generators/pagination.rb | 8 +++++++- 2 files changed, 35 insertions(+), 2 deletions(-) diff --git a/features/pagination.feature b/features/pagination.feature index 90b10578..cc3cf4d6 100644 --- a/features/pagination.feature +++ b/features/pagination.feature @@ -19,9 +19,36 @@ Feature: Site pagination And the "_site/page/index.html" file should exist And I should see "" in "_site/page/index.html" And the "_site/page/index.html" file should not exist - + Examples: | num | exist | posts | not_exist | | 1 | 4 | 1 | 5 | | 2 | 2 | 2 | 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- directory should exist + And the "_site/blog/page-/index.html" file should exist + And I should see "" in "_site/blog/page-/index.html" + And the "_site/blog/page-/index.html" file should not exist + + Examples: + | exist | posts | not_exist | + | 2 | 1 | 5 | + | 3 | 1 | 6 | + | 4 | 1 | 7 | diff --git a/lib/jekyll/generators/pagination.rb b/lib/jekyll/generators/pagination.rb index 847de4f8..6fb8a3a5 100644 --- a/lib/jekyll/generators/pagination.rb +++ b/lib/jekyll/generators/pagination.rb @@ -37,13 +37,19 @@ module Jekyll if num_page > 1 newpage = Page.new(site, site.source, page.dir, page.name) 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 else page.pager = pager 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 class Pager