How to properly create a paginator for custom outputs?

I want to paginate my author posts on a custom output. I’ve set up the custom output format properly and everything renders fine, but the pagination seems to be broken.

Eg. My links should be like /authors/utkarsh/posts/page/2 but they come up like /authors/utkarsh/page/2/posts.html.

Here are the relevant templates:
pagination.html

{{ $pag := .Paginator }}
{{ $url_suffix := "" }}

{{ if gt $pag.TotalPages 1 }}
{{ if and (eq .Kind "taxonomy") (eq .Type "authors") }}
{{ $url_suffix = "#posts-by" }}
{{ end }}

{{ $next_page_label := "Older" }}
{{ $prev_page_label := "Newer" }}
{{ if eq .Kind "taxonomyTerm" }}
	{{ $next_page_label = "Next" }}
	{{ $prev_page_label = "Previous"}}
{{ end }}

<nav class="shrink cell align-middle" aria-label="Pagination">
  <ul class="pagination text-center">
		{{/* If previous page is there. */}}
		{{ if $pag.HasPrev }}
		{{ $prev_url := print (substr $pag.Prev.URL 0 -1) $url_suffix }}
		<li class="pagination-previous"><a href="{{ $prev_url }}" aria-label="Previous page">{{ $prev_page_label }}</a></li>
		{{ else }}
		<li class="pagination-previous disabled">{{ $prev_page_label }}</a></li>
		{{ end }}

		{{/* Range through all pages. */}}
		{{ $ellipsed := false }}
		{{ $shouldEllipse := false }}
		{{ range $pag.Pagers }}
		{{ $right := sub .TotalPages .PageNumber }}
		{{ $showNumber := or (le .PageNumber 3) (eq $right 0) }}
		{{ $showNumber := or $showNumber (and (gt .PageNumber (sub $pag.PageNumber 2)) (lt .PageNumber (add $pag.PageNumber 2)))  }}
		{{ if $showNumber }}
				{{ $ellipsed = false }}
				{{ $shouldEllipse = false }}
		{{ else }}
				{{ $shouldEllipse = not $ellipsed }}
				{{ $ellipsed = true }}
		{{ end }}
		{{ if $showNumber }}
		{{ $url := print (substr .URL 0 -1) $url_suffix }}
		<li{{ if eq . $pag }} class="current"{{ end }}><a href="{{ $url }}" aria-label="Page {{ .PageNumber }}">{{ .PageNumber }}</a></li>
		{{ else if $shouldEllipse }}
		<li class="ellipsis"></li>
		{{ end }}
		{{ end }}

		{{/* Last page. */}}
		{{ if $pag.HasNext }}
		{{ $pag.Next.URL }}
		{{ $next_url := print (substr $pag.Next.URL 0 -1) $url_suffix }}
		<li class="pagination-next"><a href="{{ $next_url }}" aria-label="Next page">{{ $next_page_label }}</a></li>
		{{ else }}
		<li class="pagination-next disabled">{{ $next_page_label }}</li>
		{{ end }}
  </ul>
</nav>
{{ end }}

layouts/authors/list.posts.html

{{ $pag := .Paginator }}
{{ $url_suffix := "" }}

{{ if gt $pag.TotalPages 1 }}
{{ if and (eq .Kind "taxonomy") (eq .Type "authors") }}
{{ $url_suffix = "#posts-by" }}
{{ end }}

{{ $next_page_label := "Older" }}
{{ $prev_page_label := "Newer" }}
{{ if eq .Kind "taxonomyTerm" }}
	{{ $next_page_label = "Next" }}
	{{ $prev_page_label = "Previous"}}
{{ end }}

<nav class="shrink cell align-middle" aria-label="Pagination">
  <ul class="pagination text-center">
		{{/* If previous page is there. */}}
		{{ if $pag.HasPrev }}
		{{ $prev_url := print (substr $pag.Prev.URL 0 -1) $url_suffix }}
		<li class="pagination-previous"><a href="{{ $prev_url }}" aria-label="Previous page">{{ $prev_page_label }}</a></li>
		{{ else }}
		<li class="pagination-previous disabled">{{ $prev_page_label }}</a></li>
		{{ end }}

		{{/* Range through all pages. */}}
		{{ $ellipsed := false }}
		{{ $shouldEllipse := false }}
		{{ range $pag.Pagers }}
		{{ $right := sub .TotalPages .PageNumber }}
		{{ $showNumber := or (le .PageNumber 3) (eq $right 0) }}
		{{ $showNumber := or $showNumber (and (gt .PageNumber (sub $pag.PageNumber 2)) (lt .PageNumber (add $pag.PageNumber 2)))  }}
		{{ if $showNumber }}
				{{ $ellipsed = false }}
				{{ $shouldEllipse = false }}
		{{ else }}
				{{ $shouldEllipse = not $ellipsed }}
				{{ $ellipsed = true }}
		{{ end }}
		{{ if $showNumber }}
		{{ $url := print (substr .URL 0 -1) $url_suffix }}
		<li{{ if eq . $pag }} class="current"{{ end }}><a href="{{ $url }}" aria-label="Page {{ .PageNumber }}">{{ .PageNumber }}</a></li>
		{{ else if $shouldEllipse }}
		<li class="ellipsis"></li>
		{{ end }}
		{{ end }}

		{{/* Last page. */}}
		{{ if $pag.HasNext }}
		{{ $pag.Next.URL }}
		{{ $next_url := print (substr $pag.Next.URL 0 -1) $url_suffix }}
		<li class="pagination-next"><a href="{{ $next_url }}" aria-label="Next page">{{ $next_page_label }}</a></li>
		{{ else }}
		<li class="pagination-next disabled">{{ $next_page_label }}</li>
		{{ end }}
  </ul>
</nav>
{{ end }}