@@ -554,6 +554,7 @@ def __init__(self, **config):
554
554
'SASS_OPTIONS' : [],
555
555
'SEARCH_FORM' : '' ,
556
556
'SHOW_BLOG_TITLE' : True ,
557
+ 'SHOW_INDEX_PAGE_NAVIGATION' : False ,
557
558
'SHOW_SOURCELINK' : True ,
558
559
'SHOW_UNTRANSLATED_POSTS' : True ,
559
560
'SLUG_AUTHOR_PATH' : True ,
@@ -2360,6 +2361,7 @@ def generic_index_renderer(self, lang, posts, indexes_title, template_name, cont
2360
2361
kw ['generate_atom' ] = self .config ["GENERATE_ATOM" ]
2361
2362
kw ['feed_links_append_query' ] = self .config ["FEED_LINKS_APPEND_QUERY" ]
2362
2363
kw ['currentfeed' ] = None
2364
+ kw ['show_index_page_navigation' ] = self .config ['SHOW_INDEX_PAGE_NAVIGATION' ]
2363
2365
2364
2366
# Split in smaller lists
2365
2367
lists = []
@@ -2374,11 +2376,16 @@ def generic_index_renderer(self, lang, posts, indexes_title, template_name, cont
2374
2376
lists .append (posts [:kw ["index_display_post_count" ]])
2375
2377
posts = posts [kw ["index_display_post_count" ]:]
2376
2378
num_pages = len (lists )
2379
+ displayed_page_numbers = [utils .get_displayed_page_number (i , num_pages , self ) for i in range (max (num_pages , 1 ))]
2380
+ page_links = [page_link (i , displayed_page_numbers [i ], num_pages , False ) for i in range (max (num_pages , 1 ))]
2381
+ if kw ['show_index_page_navigation' ]:
2382
+ map = {page_number - 1 : link for page_number , link in zip (displayed_page_numbers , page_links )}
2383
+ page_links_context = [map [i ] for i in range (num_pages )]
2377
2384
for i , post_list in enumerate (lists ):
2378
2385
context = context_source .copy ()
2379
2386
if 'pagekind' not in context :
2380
2387
context ['pagekind' ] = ['index' ]
2381
- ipages_i = utils . get_displayed_page_number ( i , num_pages , self )
2388
+ ipages_i = displayed_page_numbers [ i ]
2382
2389
if kw ["indexes_pages" ]:
2383
2390
indexes_pages = kw ["indexes_pages" ] % ipages_i
2384
2391
else :
@@ -2414,20 +2421,18 @@ def generic_index_renderer(self, lang, posts, indexes_title, template_name, cont
2414
2421
if i < num_pages - 1 :
2415
2422
nextlink = i + 1
2416
2423
if prevlink is not None :
2417
- context ["prevlink" ] = page_link (prevlink ,
2418
- utils .get_displayed_page_number (prevlink , num_pages , self ),
2419
- num_pages , False )
2420
- context ["prevfeedlink" ] = page_link (prevlink ,
2421
- utils .get_displayed_page_number (prevlink , num_pages , self ),
2424
+ context ["prevlink" ] = page_links [prevlink ]
2425
+ context ["prevfeedlink" ] = page_link (prevlink , displayed_page_numbers [prevlink ],
2422
2426
num_pages , False , extension = ".atom" )
2423
2427
if nextlink is not None :
2424
- context ["nextlink" ] = page_link (nextlink ,
2425
- utils .get_displayed_page_number (nextlink , num_pages , self ),
2426
- num_pages , False )
2427
- context ["nextfeedlink" ] = page_link (nextlink ,
2428
- utils .get_displayed_page_number (nextlink , num_pages , self ),
2428
+ context ["nextlink" ] = page_links [nextlink ]
2429
+ context ["nextfeedlink" ] = page_link (nextlink , displayed_page_numbers [nextlink ],
2429
2430
num_pages , False , extension = ".atom" )
2430
- context ["permalink" ] = page_link (i , ipages_i , num_pages , False )
2431
+ context ['show_index_page_navigation' ] = kw ['show_index_page_navigation' ]
2432
+ if kw ['show_index_page_navigation' ]:
2433
+ context ['page_links' ] = page_links_context
2434
+ context ['current_page' ] = ipages_i - 1
2435
+ context ["permalink" ] = page_links [i ]
2431
2436
output_name = os .path .join (kw ['output_folder' ], page_path (i , ipages_i , num_pages , False ))
2432
2437
task = self .generic_post_list_renderer (
2433
2438
lang ,
@@ -2471,8 +2476,8 @@ def generic_index_renderer(self, lang, posts, indexes_title, template_name, cont
2471
2476
2472
2477
if kw ["indexes_pages_main" ] and kw ['indexes_prety_page_url' ](lang ):
2473
2478
# create redirection
2474
- output_name = os .path .join (kw ['output_folder' ], page_path (0 , utils . get_displayed_page_number ( 0 , num_pages , self ) , num_pages , True ))
2475
- link = page_link ( 0 , utils . get_displayed_page_number ( 0 , num_pages , self ), num_pages , False )
2479
+ output_name = os .path .join (kw ['output_folder' ], page_path (0 , displayed_page_numbers [ 0 ] , num_pages , True ))
2480
+ link = page_links [ 0 ]
2476
2481
yield utils .apply_filters ({
2477
2482
'basename' : basename ,
2478
2483
'name' : output_name ,
0 commit comments