From a90bca338d37db3880ef712980a3b5bc91cfd88a Mon Sep 17 00:00:00 2001
From: "(quasar) nebula" <qznebula@protonmail.com>
Date: Sat, 22 Feb 2025 14:58:23 -0400
Subject: sort (build mode)

We'll throw a tantrum over this having the same apparent
commit namespace as `#sort` RIP
---
 src/write/build-modes/index.js |  1 +
 src/write/build-modes/sort.js  | 37 +++++++++++++++++++++++++++++++++++++
 2 files changed, 38 insertions(+)
 create mode 100644 src/write/build-modes/sort.js

diff --git a/src/write/build-modes/index.js b/src/write/build-modes/index.js
index 3ae2cfc6..4b61619d 100644
--- a/src/write/build-modes/index.js
+++ b/src/write/build-modes/index.js
@@ -1,3 +1,4 @@
 export * as 'live-dev-server' from './live-dev-server.js';
 export * as 'repl' from './repl.js';
+export * as 'sort' from './sort.js';
 export * as 'static-build' from './static-build.js';
diff --git a/src/write/build-modes/sort.js b/src/write/build-modes/sort.js
new file mode 100644
index 00000000..c444d295
--- /dev/null
+++ b/src/write/build-modes/sort.js
@@ -0,0 +1,37 @@
+export const description = `Update data files in-place to satisfy custom sorting rules`;
+
+export const config = {
+  fileSizes: {
+    applicable: false,
+  },
+
+  languageReloading: {
+    applicable: false,
+  },
+
+  mediaValidation: {
+    applicable: false,
+  },
+
+  search: {
+    applicable: false,
+  },
+
+  thumbs: {
+    applicable: false,
+  },
+
+  webRoutes: {
+    applicable: false,
+  },
+};
+
+export function getCLIOptions() {
+  return {};
+}
+
+export async function go({wikiData, dataPath}) {
+  for (const sortingRule of wikiData.sortingRules) {
+    await sortingRule.apply({wikiData, dataPath});
+  }
+}
-- 
cgit 1.3.0-6-gf8a5