77 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
			
		
		
	
	
			77 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
| <!-- The paginator for post list on HomePage -->
 | |
| <nav aria-label="Page Navigation">
 | |
|   <ul class="pagination align-items-center mt-4 mb-0">
 | |
|     <!-- left arrow -->
 | |
|     <li class="page-item {{ if not .Paginator.HasPrev }}disabled{{ end }}">
 | |
|       <a class="page-link" href="{{ if .Paginator.HasPrev }}{{ .Paginator.Prev.URL }}{{ else }}#{{ end }}" aria-label="previous-page">
 | |
|         <i class="fas fa-angle-left"></i>
 | |
|       </a>
 | |
|     </li>
 | |
| 
 | |
|     <!-- page numbers -->
 | |
|     {{ $paginator := .Paginator }}
 | |
|     {{ $current := $paginator.PageNumber }}
 | |
|     {{ $total := $paginator.TotalPages }}
 | |
|     {{ $leftEllipsis := false }}
 | |
|     {{ $rightEllipsis := false }}
 | |
| 
 | |
|     {{ range $paginator.Pagers }}
 | |
|       {{ $pageNum := .PageNumber }}
 | |
|       {{ $show := false }}
 | |
|       {{ $pre := sub $current 1 }}
 | |
|       {{ $next := add $current 1 }}
 | |
|       {{ $preLess := sub $pre 1 }}
 | |
|       {{ $nextMore := add $next 1 }}
 | |
| 
 | |
|       {{ if eq $current 1 }}
 | |
|         {{ if or (le $pageNum 3) (eq $pageNum $total) }}
 | |
|           {{ $show = true }}
 | |
|         {{ end }}
 | |
|       {{ else if eq $current $total }}
 | |
|         {{ if or (eq $pageNum 1) (ge $pageNum $preLess) }}
 | |
|           {{ $show = true }}
 | |
|         {{ end }}
 | |
|       {{ else }}
 | |
|         {{ if or (eq $pageNum 1) (eq $pageNum $total) }}
 | |
|           {{ $show = true }}
 | |
|         {{ else if and (ge $pageNum $pre) (le $pageNum $next) }}
 | |
|           {{ $show = true }}
 | |
|         {{ end }}
 | |
|       {{ end }}
 | |
| 
 | |
|       {{ if $show }}
 | |
|         <!-- show number -->
 | |
|         <li class="page-item {{ if eq $pageNum $current }}active{{ end }}">
 | |
|           <a class="page-link" href="{{ .URL }}">{{ $pageNum }}</a>
 | |
|         </li>
 | |
|       {{ else }}
 | |
|         <!-- hide number -->
 | |
|         {{ if and (lt $pageNum $pre) (not $leftEllipsis) }}
 | |
|           <li class="page-item disabled">
 | |
|             <span class="page-link">...</span>
 | |
|           </li>
 | |
|           {{ $leftEllipsis = true }}
 | |
|         {{ else if and (gt $pageNum $next) (not $rightEllipsis) }}
 | |
|           <li class="page-item disabled">
 | |
|             <span class="page-link">...</span>
 | |
|           </li>
 | |
|           {{ $rightEllipsis = true }}
 | |
|         {{ end }}
 | |
|       {{ end }}
 | |
|     {{ end }}
 | |
| 
 | |
|     <!-- mobile pagination -->
 | |
|     <li class="page-index align-middle">
 | |
|       <span>{{ $paginator.PageNumber }}</span>
 | |
|       <span class="text-muted">/ {{ $paginator.TotalPages }}</span>
 | |
|     </li>
 | |
| 
 | |
|     <!-- right arrow -->
 | |
|     <li class="page-item {{ if not $paginator.HasNext }}disabled{{ end }}">
 | |
|       <a class="page-link" href="{{ if $paginator.HasNext }}{{ $paginator.Next.URL }}{{ else }}#{{ end }}" aria-label="next-page">
 | |
|         <i class="fas fa-angle-right"></i>
 | |
|       </a>
 | |
|     </li>
 | |
|   </ul>
 | |
| </nav>
 | |
| <!-- .pagination --> | 
