diff --git a/biome.json b/biome.json index 11e03f5..816cc0c 100644 --- a/biome.json +++ b/biome.json @@ -14,7 +14,8 @@ "rust/forge-internal-rs/pkg", "src/vrButton.ts", "site", - "site-repo" + "site-repo", + "docs" ] }, "formatter": { diff --git a/docs/.gitignore b/docs/.gitignore new file mode 100644 index 0000000..76a797f --- /dev/null +++ b/docs/.gitignore @@ -0,0 +1,3 @@ +dist +examples +viewer \ No newline at end of file diff --git a/examples.html b/examples.html index 1a3807c..ff9764b 100644 --- a/examples.html +++ b/examples.html @@ -221,7 +221,7 @@ panel.querySelectorAll('.example-link').forEach((link) => { link.addEventListener('click', (e) => { e.preventDefault(); - const path = link.getAttribute('href').substring(1); + const path = link.getAttribute('href'); iframe.src = path; console.log('path:', path); @@ -286,7 +286,7 @@ mobilePanel.querySelectorAll('.example-link').forEach(link => { link.addEventListener('click', (e) => { e.preventDefault(); - const path = link.getAttribute('href').substring(1); + const path = link.getAttribute('href'); iframe.src = path; diff --git a/package.json b/package.json index 162e97a..1c6dedf 100644 --- a/package.json +++ b/package.json @@ -24,7 +24,7 @@ "build:watch": "onchange 'src/**/*.{ts,glsl}' -- npm run build:dev", "clean": "rm -rf dist/ && rm -rf node_modules/ && rm -rf rust/target/ && rm -rf rust/forge-internal-rs/pkg/ && npm run assets:clean", "dev": "npm run build:dev && (vite --host & npm run build:watch)", - "docs": "mkdocs serve", + "docs": "node scripts/clean-site-files.js && node scripts/copy-site-files.js && mkdocs serve", "format": "biome format .", "format:fix": "biome format . --fix", "lint": "biome check .", diff --git a/scripts/build-site.js b/scripts/build-site.js deleted file mode 100644 index 5f7a7c2..0000000 --- a/scripts/build-site.js +++ /dev/null @@ -1,32 +0,0 @@ -import fs from "node:fs"; -import { copyFile, mkdir, rename, rmSync } from "node:fs/promises"; -import path from "node:path"; - -function copyDir(src, dest) { - if (!fs.existsSync(dest)) { - fs.mkdirSync(dest, { recursive: true }); - } - - for (const entry of fs.readdirSync(src, { withFileTypes: true })) { - const srcPath = path.join(src, entry.name); - const destPath = path.join(dest, entry.name); - - if (entry.isDirectory()) { - copyDir(srcPath, destPath); - } else { - fs.copyFileSync(srcPath, destPath); - } - } -} - -// Example usage: -const sourceDir = "examples"; -const destinationDir = "site/examples"; - -copyDir("examples", "site/examples"); -await copyFile("index.html", "site/examples/index.html"); -await rename("site/examples/viewer", "site/viewer"); -await mkdir("site/examples/vendor", { recursive: true }); -copyDir("node_modules/three", "site/examples/js/vendor/three"); -copyDir("dist", "site/dist"); -console.log("Site generated in site directory."); diff --git a/scripts/clean-site-files.js b/scripts/clean-site-files.js new file mode 100644 index 0000000..f54a3f0 --- /dev/null +++ b/scripts/clean-site-files.js @@ -0,0 +1,21 @@ +import fs from "node:fs"; +import { copyFile, mkdir, rename, rm } from "node:fs/promises"; +import path from "node:path"; + +const examplesDirectory = "docs/examples"; +if (fs.existsSync(examplesDirectory)) { + await rm(examplesDirectory, { recursive: true, force: true }); + console.log(`Directory ${examplesDirectory} deleted`); +} + +const distDirectory = "docs/dist"; +if (fs.existsSync(distDirectory)) { + await rm(distDirectory, { recursive: true, force: true }); + console.log(`Directory ${distDirectory} deleted`); +} + +const viewerDirectory = "docs/viewer"; +if (fs.existsSync(viewerDirectory)) { + await rm(viewerDirectory, { recursive: true, force: true }); + console.log(`Directory ${viewerDirectory} deleted`); +} diff --git a/scripts/copy-site-files.js b/scripts/copy-site-files.js new file mode 100644 index 0000000..4d78829 --- /dev/null +++ b/scripts/copy-site-files.js @@ -0,0 +1,29 @@ +import fs from "node:fs"; +import { copyFile, mkdir, rename } from "node:fs/promises"; +import path from "node:path"; + +function copyDir(src, dest) { + if (!fs.existsSync(dest)) { + fs.mkdirSync(dest, { recursive: true }); + } + + for (const entry of fs.readdirSync(src, { withFileTypes: true })) { + const srcPath = path.join(src, entry.name); + const destPath = path.join(dest, entry.name); + + if (entry.isDirectory()) { + copyDir(srcPath, destPath); + } else { + fs.copyFileSync(srcPath, destPath); + } + } +} + +// Copy static files to docs directory. +copyDir("examples", "docs/examples"); +await copyFile("examples.html", "docs/examples/index.html"); +await rename("docs/examples/viewer", "docs/viewer"); +await mkdir("docs/examples/vendor", { recursive: true }); +copyDir("node_modules/three", "docs/examples/js/vendor/three"); +copyDir("dist", "docs/dist"); +console.log("Site generated in docs directory.");