diff --git a/layouts/partials/paige/list.html b/layouts/partials/paige/list.html
index 02ed24ce..497a04cd 100644
--- a/layouts/partials/paige/list.html
+++ b/layouts/partials/paige/list.html
@@ -58,23 +58,7 @@
{{ end }}
{{ with $collections }}
- {{ $ordered := slice }}
- {{ $weights := .GroupBy "Weight" }}
-
- {{ range $i, $e := $weights }}
- {{ if eq $e.Key 0 }}
- {{ $weights = slice | append (first $i $weights) | append (after (add $i 1) $weights) | append $e }}
- {{ break }}
- {{ end }}
- {{ end }}
-
- {{ range $weights }}
- {{ range (sort (.Pages.GroupBy "PublishDate") "Key").Reverse }}
- {{ range .Pages.ByTitle }}
- {{ $ordered = $ordered | append . }}
- {{ end }}
- {{ end }}
- {{ end }}
+ {{ $ordered := partial "paige/order.html" (dict "pages" .) }}
{{ if or $sections $pages }}
@@ -98,23 +82,7 @@
{{ end }}
{{ with $sections }}
- {{ $ordered := slice }}
- {{ $weights := .GroupBy "Weight" }}
-
- {{ range $i, $e := $weights }}
- {{ if eq $e.Key 0 }}
- {{ $weights = slice | append (first $i $weights) | append (after (add $i 1) $weights) | append $e }}
- {{ break }}
- {{ end }}
- {{ end }}
-
- {{ range $weights }}
- {{ range (sort (.Pages.GroupBy "PublishDate") "Key").Reverse }}
- {{ range .Pages.ByTitle }}
- {{ $ordered = $ordered | append . }}
- {{ end }}
- {{ end }}
- {{ end }}
+ {{ $ordered := partial "paige/order.html" (dict "pages" .) }}
{{ if or $collections $pages }}
@@ -138,23 +106,7 @@
{{ end }}
{{ with $pages }}
- {{ $ordered := slice }}
- {{ $weights := .GroupBy "Weight" }}
-
- {{ range $i, $e := $weights }}
- {{ if eq $e.Key 0 }}
- {{ $weights = slice | append (first $i $weights) | append (after (add $i 1) $weights) | append $e }}
- {{ break }}
- {{ end }}
- {{ end }}
-
- {{ range $weights }}
- {{ range (sort (.Pages.GroupBy "PublishDate") "Key").Reverse }}
- {{ range .Pages.ByTitle }}
- {{ $ordered = $ordered | append . }}
- {{ end }}
- {{ end }}
- {{ end }}
+ {{ $ordered := partial "paige/order.html" (dict "pages" .) }}
{{ if or $collections $sections }}
diff --git a/layouts/partials/paige/order.html b/layouts/partials/paige/order.html
new file mode 100644
index 00000000..94f020e5
--- /dev/null
+++ b/layouts/partials/paige/order.html
@@ -0,0 +1,23 @@
+{{ $params := . }}
+
+{{ $pages := $params.pages }}
+
+{{ $result := slice }}
+{{ $weights := $pages.GroupBy "Weight" }}
+
+{{ range $i, $e := $weights }}
+ {{ if eq $e.Key 0 }}
+ {{ $weights = slice | append (first $i $weights) | append (after (add $i 1) $weights) | append $e }}
+ {{ break }}
+ {{ end }}
+{{ end }}
+
+{{ range $weights }}
+ {{ range (sort (.Pages.GroupBy "PublishDate") "Key").Reverse }}
+ {{ range .Pages.ByTitle }}
+ {{ $result = $result | append . }}
+ {{ end }}
+ {{ end }}
+{{ end }}
+
+{{ return $result }}