From dbc1fd7c17c9fb11a9e5433b8ee280e9053afc7b Mon Sep 17 00:00:00 2001 From: mekanoe <1581674+mekanoe@users.noreply.github.com> Date: Tue, 10 Oct 2023 12:31:53 -0400 Subject: [PATCH] add inter-work navigation --- bun.lockb | Bin 64048 -> 64080 bytes hack/convert-meshes.ts | 2 -- hack/generate.ts | 13 ++++++- hack/templates/work.html.txt | 3 ++ html/001-platform-provenance/index.html | 5 ++- html/002-webgl-engine/index.html | 8 ++++- html/003-scene/index.html | 3 ++ html/work.css | 32 ++++++++++++++++++ src/public/001-platform-provenance/index.html | 5 ++- src/public/002-webgl-engine/index.html | 8 ++++- src/public/work.css | 32 ++++++++++++++++++ 11 files changed, 104 insertions(+), 7 deletions(-) diff --git a/bun.lockb b/bun.lockb index c261f1a94d8d5145f6582643fd34aed52ae10316..ccec66bc88fce6833f7449eb3c0720c77a9dee9f 100755 GIT binary patch delta 7410 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 diff --git a/hack/convert-meshes.ts b/hack/convert-meshes.ts index 1cc7324..a760bc5 100644 --- a/hack/convert-meshes.ts +++ b/hack/convert-meshes.ts @@ -95,8 +95,6 @@ export const convertMeshes = async () => { } } - console.log({ propertyList }); - const vertexCount = Number( headerLines .find((header) => header.startsWith("element vertex")) diff --git a/hack/generate.ts b/hack/generate.ts index cc8774f..a1f2313 100644 --- a/hack/generate.ts +++ b/hack/generate.ts @@ -11,7 +11,18 @@ export const generate = async (works: string[]) => { .reverse(); for (const work of allWorks) { - const html = `${workTemplate}`.replace(/##name##/g, work); + const workIndex = allWorks.findIndex((w) => w === work); + const previous = allWorks[(workIndex as any) + 1] ?? null; + const next = allWorks[(workIndex as any) - 1] ?? null; + + let nav = ``; + if (previous) + nav += `⇠ ${previous}`; + if (next) nav += `${next} ⇢`; + + const html = `${workTemplate}` + .replace(/##name##/g, work) + .replace(/##nav##/g, nav); mkdirSync(`html/${work}`, { recursive: true }); await Bun.write(`html/${work}/index.html`, html); diff --git a/hack/templates/work.html.txt b/hack/templates/work.html.txt index 19ee715..55a9dda 100644 --- a/hack/templates/work.html.txt +++ b/hack/templates/work.html.txt @@ -21,5 +21,8 @@
XX.X FPS (XX.X ms)
+
diff --git a/html/001-platform-provenance/index.html b/html/001-platform-provenance/index.html index a2be8f8..f19136d 100644 --- a/html/001-platform-provenance/index.html +++ b/html/001-platform-provenance/index.html @@ -1,4 +1,4 @@ - + com.mekanoe.art // 001-platform-provenance