mixin paginate(pages, page_path, max_btns) //- @param pages.current_page the current page viewed //- @param pages.total_pages previously calculated, //- based on total entries and entries per page //- @param page_path the relative path, minus a trailing slash and page param //- @param max_btns max number of buttons on either side of the current page //- button and excludes first, prev, next, last if pages && pages.current_page && pages.total_pages - var max_btns = max_btns || 4 - var prev_page = Math.max(parseInt(pages.current_page, 10) - max_btns, 1) - var next_page = parseInt(pages.current_page, 10) + 1 - var next_index = 0; - var full_page_path = page_path + "/page/" nav(role="navigation" aria-label="Pagination Navigation") ul.pagination if pages.current_page > 1 li a( aria-label="Go to first page" href=page_path ) « First li a( aria-label="Go to previous page" href=full_page_path + (parseInt(pages.current_page, 10) - 1) rel="prev" ) ‹ Prev if pages.current_page - max_btns > 1 li span … while prev_page < pages.current_page li a( aria-label="Go to page " + prev_page href=full_page_path + prev_page ) #{prev_page} - prev_page++ li(class="active") span( aria-label="Current Page, Page " + pages.current_page aria-current="true" ) #{pages.current_page} if pages.current_page < pages.total_pages while next_page <= pages.total_pages && next_index < max_btns li a( aria-label="Go to page " + next_page href=full_page_path + next_page ) #{next_page} - next_page++ - next_index++ if next_page <= pages.total_pages li span … li a( aria-label="Go to next page" href=full_page_path + (parseInt(pages.current_page, 10) + 1) rel="next" ) Next › li a( aria-label="Go to last page" href=full_page_path + pages.total_pages ) Last »