diff --git a/.github/workflows/unittests.yaml b/.github/workflows/unittests.yaml new file mode 100644 index 0000000..1e2ecff --- /dev/null +++ b/.github/workflows/unittests.yaml @@ -0,0 +1,69 @@ +# This is a basic workflow to validate HTML and CSS +name: HTML and CSS Validation Workflow + +# Controls when the workflow will run +on: + # Triggers the workflow on push or pull request events but only for the "main" branch + push: + branches: [ "main" ] + pull_request: + branches: [ "main" ] + # Allows you to run this workflow manually from the Actions tab + workflow_dispatch: + +# A workflow run is made up of one or more jobs that can run sequentially or in parallel +jobs: + # This workflow contains a single job called "validate_job" + validate_job: + # The type of runner that the job will run on + runs-on: ubuntu-latest + + # Steps represent a sequence of tasks that will be executed as part of the job + steps: + # Checks out your repository under $GITHUB_WORKSPACE, so your job can access it + - uses: actions/checkout@v4 + + # Sets up Node.js environment + - name: Set up Node.js + uses: actions/setup-node@v3 + with: + node-version: '16' + + # Caching pnpm dependencies + - name: Cache pnpm + uses: actions/cache@v3 + with: + path: ~/.pnpm-store + key: ${{ runner.os }}-pnpm-${{ hashFiles('**/pnpm-lock.yaml') }} + restore-keys: | + ${{ runner.os }}-pnpm- + + # Installs HTMLHint and Stylelint using pnpm + - name: Install dependencies + run: | + set -e + npm install -g pnpm + pnpm install htmlhint stylelint stylelint-config-standard --save-dev + + # Runs HTML validation and logs errors + - name: Validate HTML + run: | + set -e + npx htmlhint . 2> html_validation_errors.log || true + if [ -s html_validation_errors.log ]; then + echo "HTML validation errors found. Check html_validation_errors.log for details." + exit 1 + fi + + # Runs CSS validation and logs errors + - name: Validate CSS + run: | + set -e + npx stylelint "**/*.css" 2> css_validation_errors.log || true + if [ -s css_validation_errors.log ]; then + echo "CSS validation errors found. Check css_validation_errors.log for details." + exit 1 + fi + + + diff --git a/index.html b/index.html index 4d3c362..76a9032 100644 --- a/index.html +++ b/index.html @@ -12,6 +12,11 @@

Discover hidden places in the world around you

Download Excursion (Coming soon!)

+
+ + + +
diff --git a/node_modules/.bin/node b/node_modules/.bin/node new file mode 100644 index 0000000..5e4341d --- /dev/null +++ b/node_modules/.bin/node @@ -0,0 +1,12 @@ +#!/bin/sh +basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") + +case `uname` in + *CYGWIN*|*MINGW*|*MSYS*) + if command -v cygpath > /dev/null 2>&1; then + basedir=`cygpath -w "$basedir"` + fi + ;; +esac + +exec "$basedir/../node/bin/node" "$@" diff --git a/node_modules/.bin/node.cmd b/node_modules/.bin/node.cmd new file mode 100644 index 0000000..fb2c308 --- /dev/null +++ b/node_modules/.bin/node.cmd @@ -0,0 +1,9 @@ +@ECHO off +GOTO start +:find_dp0 +SET dp0=%~dp0 +EXIT /b +:start +SETLOCAL +CALL :find_dp0 +"%dp0%\..\node\bin\node" %* diff --git a/node_modules/.bin/node.ps1 b/node_modules/.bin/node.ps1 new file mode 100644 index 0000000..99a0aac --- /dev/null +++ b/node_modules/.bin/node.ps1 @@ -0,0 +1,16 @@ +#!/usr/bin/env pwsh +$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent + +$exe="" +if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { + # Fix case when both the Windows and Linux builds of Node + # are installed in the same directory + $exe=".exe" +} +# Support pipeline input +if ($MyInvocation.ExpectingInput) { + $input | & "$basedir/../node/bin/node" $args +} else { + & "$basedir/../node/bin/node" $args +} +exit $LASTEXITCODE diff --git a/node_modules/.ignored/node/README.md b/node_modules/.ignored/node/README.md new file mode 100644 index 0000000..53a3ea6 --- /dev/null +++ b/node_modules/.ignored/node/README.md @@ -0,0 +1,34 @@ +node +======== + +Installs a `node` binary into your project, which because `npm` runs scripts with the local `./node_modules/.bin` in the `PATH` ahead of the system copy means you can have a local version of node that is different than your system's, and manage node as a normal dependency. + +Warning: don't install this globally with npm 2. `npm@2` immediately removes node, then can't run the scripts that make this work. + +Use +--- + +``` +npm i node@lts +``` + +Use with `npx` +-------------- + +``` +npx node@4 myscript.js +``` + +This will run `myscript.js` with the latest version of node from the v4 major. + +Using the shell auto-fallback of npx, you can even do it like so: + + +``` +node@4 myscript.js +``` + +Thanks +------ + +Major thanks to Kat Marchán for late-night problem solving, and to CJ Silverio and Maciej Małecki for egging me on way back when I had the idea to package node up this way. It does turn out if you ask "why _not_?!" once in a while something fun happens. diff --git a/node_modules/.ignored/node/bin/node b/node_modules/.ignored/node/bin/node new file mode 100644 index 0000000..20efe38 --- /dev/null +++ b/node_modules/.ignored/node/bin/node @@ -0,0 +1 @@ +This file intentionally left blank \ No newline at end of file diff --git a/node_modules/.ignored/node/bin/node.exe b/node_modules/.ignored/node/bin/node.exe new file mode 100644 index 0000000..9674b61 Binary files /dev/null and b/node_modules/.ignored/node/bin/node.exe differ diff --git a/node_modules/.ignored/node/installArchSpecificPackage.js b/node_modules/.ignored/node/installArchSpecificPackage.js new file mode 100644 index 0000000..e7d4354 --- /dev/null +++ b/node_modules/.ignored/node/installArchSpecificPackage.js @@ -0,0 +1 @@ +require('node-bin-setup')("22.17.0", require) \ No newline at end of file diff --git a/node_modules/.ignored/node/node_modules/.bin/node b/node_modules/.ignored/node/node_modules/.bin/node new file mode 100644 index 0000000..957dadd --- /dev/null +++ b/node_modules/.ignored/node/node_modules/.bin/node @@ -0,0 +1,12 @@ +#!/bin/sh +basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") + +case `uname` in + *CYGWIN*|*MINGW*|*MSYS*) + if command -v cygpath > /dev/null 2>&1; then + basedir=`cygpath -w "$basedir"` + fi + ;; +esac + +exec "$basedir/../node-win-x64/bin/node.exe" "$@" diff --git a/node_modules/.ignored/node/node_modules/.bin/node.cmd b/node_modules/.ignored/node/node_modules/.bin/node.cmd new file mode 100644 index 0000000..9c252c0 --- /dev/null +++ b/node_modules/.ignored/node/node_modules/.bin/node.cmd @@ -0,0 +1,9 @@ +@ECHO off +GOTO start +:find_dp0 +SET dp0=%~dp0 +EXIT /b +:start +SETLOCAL +CALL :find_dp0 +"%dp0%\..\node-win-x64\bin\node.exe" %* diff --git a/node_modules/.ignored/node/node_modules/.bin/node.ps1 b/node_modules/.ignored/node/node_modules/.bin/node.ps1 new file mode 100644 index 0000000..97b073f --- /dev/null +++ b/node_modules/.ignored/node/node_modules/.bin/node.ps1 @@ -0,0 +1,16 @@ +#!/usr/bin/env pwsh +$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent + +$exe="" +if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { + # Fix case when both the Windows and Linux builds of Node + # are installed in the same directory + $exe=".exe" +} +# Support pipeline input +if ($MyInvocation.ExpectingInput) { + $input | & "$basedir/../node-win-x64/bin/node.exe" $args +} else { + & "$basedir/../node-win-x64/bin/node.exe" $args +} +exit $LASTEXITCODE diff --git a/node_modules/.ignored/node/node_modules/.package-lock.json b/node_modules/.ignored/node/node_modules/.package-lock.json new file mode 100644 index 0000000..becfdb9 --- /dev/null +++ b/node_modules/.ignored/node/node_modules/.package-lock.json @@ -0,0 +1,22 @@ +{ + "lockfileVersion": 3, + "requires": true, + "packages": { + "node_modules/node-bin-setup": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/node-bin-setup/-/node-bin-setup-1.1.4.tgz", + "integrity": "sha512-vWNHOne0ZUavArqPP5LJta50+S8R261Fr5SvGul37HbEDcowvLjwdvd0ZeSr0r2lTSrPxl6okq9QUw8BFGiAxA==", + "license": "ISC" + }, + "node_modules/node-win-x64": { + "version": "22.17.0", + "resolved": "https://registry.npmjs.org/node-win-x64/-/node-win-x64-22.17.0.tgz", + "integrity": "sha512-aUNP0XzMd1pC0t5SvgaxpxRmecT6583nInTDI82Zu8ujc0cpKvDR/VPCRn/Qy0ve9+MTofUFmxhCS4Zz2FhfTw==", + "cpu": "x64", + "os": "win32", + "bin": { + "node": "bin/node.exe" + } + } + } +} diff --git a/node_modules/.ignored/node/node_modules/node-bin-setup/.github/dependabot.yml b/node_modules/.ignored/node/node_modules/node-bin-setup/.github/dependabot.yml new file mode 100644 index 0000000..290ad02 --- /dev/null +++ b/node_modules/.ignored/node/node_modules/node-bin-setup/.github/dependabot.yml @@ -0,0 +1,8 @@ +version: 2 +updates: +- package-ecosystem: npm + directory: "/" + schedule: + interval: daily + time: "10:00" + open-pull-requests-limit: 10 diff --git a/node_modules/.ignored/node/node_modules/node-bin-setup/index.js b/node_modules/.ignored/node/node_modules/node-bin-setup/index.js new file mode 100644 index 0000000..0841976 --- /dev/null +++ b/node_modules/.ignored/node/node_modules/node-bin-setup/index.js @@ -0,0 +1,58 @@ +var spawn = require('child_process').spawn; +var path = require('path'); +var fs = require('fs'); + +function installArchSpecificPackage(version, require) { + + process.env.npm_config_global = 'false'; + process.env.npm_config_repository = ''; + + var platform = process.platform == 'win32' ? 'win' : process.platform; + var arch = platform == 'win' && process.arch == 'ia32' ? 'x86' : process.arch; + var prefix = (process.platform == 'darwin' && process.arch == 'arm64') ? 'node-bin' : 'node'; + + var cp = spawn(platform == 'win' ? 'npm.cmd' : 'npm', ['install', '--no-save', [prefix, platform, arch].join('-') + '@' + version], { + stdio: 'inherit', + shell: true + }); + + cp.on('close', function(code) { + var pkgJson = require.resolve([prefix, platform, arch].join('-') + '/package.json'); + var subpkg = JSON.parse(fs.readFileSync(pkgJson, 'utf8')); + var executable = subpkg.bin.node; + var bin = path.resolve(path.dirname(pkgJson), executable); + + try { + fs.mkdirSync(path.resolve(process.cwd(), 'bin')); + } catch (e) { + if (e.code != 'EEXIST') { + throw e; + } + } + + linkSync(bin, path.resolve(process.cwd(), executable)); + + if (platform == 'win') { + var pkg = JSON.parse(fs.readFileSync(path.resolve(process.cwd(), 'package.json'))); + fs.writeFileSync(path.resolve(process.cwd(), 'bin/node'), 'This file intentionally left blank'); + pkg.bin.node = 'bin/node.exe'; + fs.writeFileSync(path.resolve(process.cwd(), 'package.json'), JSON.stringify(pkg, null, 2)); + } + + return process.exit(code); + + }); +} + +function linkSync(src, dest) { + try { + fs.unlinkSync(dest); + } catch (e) { + if (e.code != 'ENOENT') { + throw e; + } + } + return fs.linkSync(src, dest); +} + +module.exports = installArchSpecificPackage; diff --git a/node_modules/.ignored/node/node_modules/node-bin-setup/package.json b/node_modules/.ignored/node/node_modules/node-bin-setup/package.json new file mode 100644 index 0000000..fa47cca --- /dev/null +++ b/node_modules/.ignored/node/node_modules/node-bin-setup/package.json @@ -0,0 +1,12 @@ +{ + "name": "node-bin-setup", + "version": "1.1.4", + "description": "Internal script used by the node package to install architecture-specific packages", + "main": "index.js", + "repository": { + "type": "git", + "url": "https://github.com/aredridel/node-bin-setup.git" + }, + "author": "Aria Stewart ", + "license": "ISC" +} diff --git a/node_modules/.ignored/node/node_modules/node-win-x64/bin/node.exe b/node_modules/.ignored/node/node_modules/node-win-x64/bin/node.exe new file mode 100644 index 0000000..9674b61 Binary files /dev/null and b/node_modules/.ignored/node/node_modules/node-win-x64/bin/node.exe differ diff --git a/node_modules/.ignored/node/node_modules/node-win-x64/package.json b/node_modules/.ignored/node/node_modules/node-win-x64/package.json new file mode 100644 index 0000000..fcb7ebe --- /dev/null +++ b/node_modules/.ignored/node/node_modules/node-win-x64/package.json @@ -0,0 +1,17 @@ +{ + "name": "node-win-x64", + "version": "v22.17.0", + "description": "node", + "bin": { + "node": "bin/node.exe" + }, + "files": [ + "bin/node.exe", + "share", + "include", + "*.md", + "LICENSE" + ], + "os": "win32", + "cpu": "x64" +} \ No newline at end of file diff --git a/node_modules/.ignored/node/package.json b/node_modules/.ignored/node/package.json new file mode 100644 index 0000000..8407534 --- /dev/null +++ b/node_modules/.ignored/node/package.json @@ -0,0 +1,27 @@ +{ + "name": "node", + "version": "22.17.0", + "description": "node", + "main": "index.js", + "keywords": [ + "runtime" + ], + "repository": { + "type": "git", + "url": "git+https://github.com/aredridel/node-bin-gen.git" + }, + "scripts": { + "preinstall": "node installArchSpecificPackage" + }, + "bin": { + "node": "bin/node.exe" + }, + "dependencies": { + "node-bin-setup": "^1.0.0" + }, + "license": "ISC", + "author": "", + "engines": { + "npm": ">=5.0.0" + } +} \ No newline at end of file diff --git a/node_modules/.modules.yaml b/node_modules/.modules.yaml new file mode 100644 index 0000000..487ea20 --- /dev/null +++ b/node_modules/.modules.yaml @@ -0,0 +1,22 @@ +hoistPattern: + - '*' +hoistedDependencies: {} +included: + dependencies: true + devDependencies: true + optionalDependencies: true +injectedDeps: {} +layoutVersion: 5 +nodeLinker: isolated +packageManager: pnpm@9.13.2 +pendingBuilds: [] +prunedAt: Fri, 04 Jul 2025 19:40:41 GMT +publicHoistPattern: + - '*eslint*' + - '*prettier*' +registries: + default: https://registry.npmjs.org/ +skipped: [] +storeDir: C:\Users\calmo\AppData\Local\pnpm\store\v3 +virtualStoreDir: C:\Users\calmo\excursion\calimix.github.io\node_modules\.pnpm +virtualStoreDirMaxLength: 120 diff --git a/node_modules/.package-lock.json b/node_modules/.package-lock.json new file mode 100644 index 0000000..c6285b0 --- /dev/null +++ b/node_modules/.package-lock.json @@ -0,0 +1,38 @@ +{ + "name": "calimix.github.io", + "version": "1.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "node_modules/.pnpm/nodejs@0.0.0/node_modules/nodejs": { + "version": "0.0.0", + "license": "ISC" + }, + "node_modules/node": { + "version": "22.17.0", + "resolved": "https://registry.npmjs.org/node/-/node-22.17.0.tgz", + "integrity": "sha512-cDrw3NvGAB1QUWxTEd9mX/vf+mAhe42IwBkQ7T9z2GhIPyNM+I1u32NMu9ZgNE85UDUWmIUL4oe4JylVlwvG2Q==", + "hasInstallScript": true, + "license": "ISC", + "dependencies": { + "node-bin-setup": "^1.0.0" + }, + "bin": { + "node": "bin/node" + }, + "engines": { + "npm": ">=5.0.0" + } + }, + "node_modules/node-bin-setup": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/node-bin-setup/-/node-bin-setup-1.1.4.tgz", + "integrity": "sha512-vWNHOne0ZUavArqPP5LJta50+S8R261Fr5SvGul37HbEDcowvLjwdvd0ZeSr0r2lTSrPxl6okq9QUw8BFGiAxA==", + "license": "ISC" + }, + "node_modules/nodejs": { + "resolved": "node_modules/.pnpm/nodejs@0.0.0/node_modules/nodejs", + "link": true + } + } +} diff --git a/node_modules/.pnpm/lock.yaml b/node_modules/.pnpm/lock.yaml new file mode 100644 index 0000000..19dfe8d --- /dev/null +++ b/node_modules/.pnpm/lock.yaml @@ -0,0 +1,22 @@ +lockfileVersion: '9.0' + +settings: + autoInstallPeers: true + excludeLinksFromLockfile: false + +importers: + + .: + dependencies: + nodejs: + specifier: ^0.0.0 + version: 0.0.0 + +packages: + + nodejs@0.0.0: + resolution: {integrity: sha512-1V+0HwaB/dhxzidEFc4uJ3k52gLI4B6YBZgJIofjwYCSAkD6CI0me6TDBT2QM2nbGWNxCHcq9/wVynzQYZOhUg==} + +snapshots: + + nodejs@0.0.0: {} diff --git a/node_modules/.pnpm/node-bin-setup@1.1.4/node_modules/node-bin-setup/.github/dependabot.yml b/node_modules/.pnpm/node-bin-setup@1.1.4/node_modules/node-bin-setup/.github/dependabot.yml new file mode 100644 index 0000000..290ad02 --- /dev/null +++ b/node_modules/.pnpm/node-bin-setup@1.1.4/node_modules/node-bin-setup/.github/dependabot.yml @@ -0,0 +1,8 @@ +version: 2 +updates: +- package-ecosystem: npm + directory: "/" + schedule: + interval: daily + time: "10:00" + open-pull-requests-limit: 10 diff --git a/node_modules/.pnpm/node-bin-setup@1.1.4/node_modules/node-bin-setup/index.js b/node_modules/.pnpm/node-bin-setup@1.1.4/node_modules/node-bin-setup/index.js new file mode 100644 index 0000000..0841976 --- /dev/null +++ b/node_modules/.pnpm/node-bin-setup@1.1.4/node_modules/node-bin-setup/index.js @@ -0,0 +1,58 @@ +var spawn = require('child_process').spawn; +var path = require('path'); +var fs = require('fs'); + +function installArchSpecificPackage(version, require) { + + process.env.npm_config_global = 'false'; + process.env.npm_config_repository = ''; + + var platform = process.platform == 'win32' ? 'win' : process.platform; + var arch = platform == 'win' && process.arch == 'ia32' ? 'x86' : process.arch; + var prefix = (process.platform == 'darwin' && process.arch == 'arm64') ? 'node-bin' : 'node'; + + var cp = spawn(platform == 'win' ? 'npm.cmd' : 'npm', ['install', '--no-save', [prefix, platform, arch].join('-') + '@' + version], { + stdio: 'inherit', + shell: true + }); + + cp.on('close', function(code) { + var pkgJson = require.resolve([prefix, platform, arch].join('-') + '/package.json'); + var subpkg = JSON.parse(fs.readFileSync(pkgJson, 'utf8')); + var executable = subpkg.bin.node; + var bin = path.resolve(path.dirname(pkgJson), executable); + + try { + fs.mkdirSync(path.resolve(process.cwd(), 'bin')); + } catch (e) { + if (e.code != 'EEXIST') { + throw e; + } + } + + linkSync(bin, path.resolve(process.cwd(), executable)); + + if (platform == 'win') { + var pkg = JSON.parse(fs.readFileSync(path.resolve(process.cwd(), 'package.json'))); + fs.writeFileSync(path.resolve(process.cwd(), 'bin/node'), 'This file intentionally left blank'); + pkg.bin.node = 'bin/node.exe'; + fs.writeFileSync(path.resolve(process.cwd(), 'package.json'), JSON.stringify(pkg, null, 2)); + } + + return process.exit(code); + + }); +} + +function linkSync(src, dest) { + try { + fs.unlinkSync(dest); + } catch (e) { + if (e.code != 'ENOENT') { + throw e; + } + } + return fs.linkSync(src, dest); +} + +module.exports = installArchSpecificPackage; diff --git a/node_modules/.pnpm/node-bin-setup@1.1.4/node_modules/node-bin-setup/package.json b/node_modules/.pnpm/node-bin-setup@1.1.4/node_modules/node-bin-setup/package.json new file mode 100644 index 0000000..fa47cca --- /dev/null +++ b/node_modules/.pnpm/node-bin-setup@1.1.4/node_modules/node-bin-setup/package.json @@ -0,0 +1,12 @@ +{ + "name": "node-bin-setup", + "version": "1.1.4", + "description": "Internal script used by the node package to install architecture-specific packages", + "main": "index.js", + "repository": { + "type": "git", + "url": "https://github.com/aredridel/node-bin-setup.git" + }, + "author": "Aria Stewart ", + "license": "ISC" +} diff --git a/node_modules/.pnpm/node@22.17.0/node_modules/node-bin-setup/.github/dependabot.yml b/node_modules/.pnpm/node@22.17.0/node_modules/node-bin-setup/.github/dependabot.yml new file mode 100644 index 0000000..290ad02 --- /dev/null +++ b/node_modules/.pnpm/node@22.17.0/node_modules/node-bin-setup/.github/dependabot.yml @@ -0,0 +1,8 @@ +version: 2 +updates: +- package-ecosystem: npm + directory: "/" + schedule: + interval: daily + time: "10:00" + open-pull-requests-limit: 10 diff --git a/node_modules/.pnpm/node@22.17.0/node_modules/node-bin-setup/index.js b/node_modules/.pnpm/node@22.17.0/node_modules/node-bin-setup/index.js new file mode 100644 index 0000000..0841976 --- /dev/null +++ b/node_modules/.pnpm/node@22.17.0/node_modules/node-bin-setup/index.js @@ -0,0 +1,58 @@ +var spawn = require('child_process').spawn; +var path = require('path'); +var fs = require('fs'); + +function installArchSpecificPackage(version, require) { + + process.env.npm_config_global = 'false'; + process.env.npm_config_repository = ''; + + var platform = process.platform == 'win32' ? 'win' : process.platform; + var arch = platform == 'win' && process.arch == 'ia32' ? 'x86' : process.arch; + var prefix = (process.platform == 'darwin' && process.arch == 'arm64') ? 'node-bin' : 'node'; + + var cp = spawn(platform == 'win' ? 'npm.cmd' : 'npm', ['install', '--no-save', [prefix, platform, arch].join('-') + '@' + version], { + stdio: 'inherit', + shell: true + }); + + cp.on('close', function(code) { + var pkgJson = require.resolve([prefix, platform, arch].join('-') + '/package.json'); + var subpkg = JSON.parse(fs.readFileSync(pkgJson, 'utf8')); + var executable = subpkg.bin.node; + var bin = path.resolve(path.dirname(pkgJson), executable); + + try { + fs.mkdirSync(path.resolve(process.cwd(), 'bin')); + } catch (e) { + if (e.code != 'EEXIST') { + throw e; + } + } + + linkSync(bin, path.resolve(process.cwd(), executable)); + + if (platform == 'win') { + var pkg = JSON.parse(fs.readFileSync(path.resolve(process.cwd(), 'package.json'))); + fs.writeFileSync(path.resolve(process.cwd(), 'bin/node'), 'This file intentionally left blank'); + pkg.bin.node = 'bin/node.exe'; + fs.writeFileSync(path.resolve(process.cwd(), 'package.json'), JSON.stringify(pkg, null, 2)); + } + + return process.exit(code); + + }); +} + +function linkSync(src, dest) { + try { + fs.unlinkSync(dest); + } catch (e) { + if (e.code != 'ENOENT') { + throw e; + } + } + return fs.linkSync(src, dest); +} + +module.exports = installArchSpecificPackage; diff --git a/node_modules/.pnpm/node@22.17.0/node_modules/node-bin-setup/package.json b/node_modules/.pnpm/node@22.17.0/node_modules/node-bin-setup/package.json new file mode 100644 index 0000000..fa47cca --- /dev/null +++ b/node_modules/.pnpm/node@22.17.0/node_modules/node-bin-setup/package.json @@ -0,0 +1,12 @@ +{ + "name": "node-bin-setup", + "version": "1.1.4", + "description": "Internal script used by the node package to install architecture-specific packages", + "main": "index.js", + "repository": { + "type": "git", + "url": "https://github.com/aredridel/node-bin-setup.git" + }, + "author": "Aria Stewart ", + "license": "ISC" +} diff --git a/node_modules/.pnpm/node@22.17.0/node_modules/node/README.md b/node_modules/.pnpm/node@22.17.0/node_modules/node/README.md new file mode 100644 index 0000000..53a3ea6 --- /dev/null +++ b/node_modules/.pnpm/node@22.17.0/node_modules/node/README.md @@ -0,0 +1,34 @@ +node +======== + +Installs a `node` binary into your project, which because `npm` runs scripts with the local `./node_modules/.bin` in the `PATH` ahead of the system copy means you can have a local version of node that is different than your system's, and manage node as a normal dependency. + +Warning: don't install this globally with npm 2. `npm@2` immediately removes node, then can't run the scripts that make this work. + +Use +--- + +``` +npm i node@lts +``` + +Use with `npx` +-------------- + +``` +npx node@4 myscript.js +``` + +This will run `myscript.js` with the latest version of node from the v4 major. + +Using the shell auto-fallback of npx, you can even do it like so: + + +``` +node@4 myscript.js +``` + +Thanks +------ + +Major thanks to Kat Marchán for late-night problem solving, and to CJ Silverio and Maciej Małecki for egging me on way back when I had the idea to package node up this way. It does turn out if you ask "why _not_?!" once in a while something fun happens. diff --git a/node_modules/.pnpm/node@22.17.0/node_modules/node/installArchSpecificPackage.js b/node_modules/.pnpm/node@22.17.0/node_modules/node/installArchSpecificPackage.js new file mode 100644 index 0000000..e7d4354 --- /dev/null +++ b/node_modules/.pnpm/node@22.17.0/node_modules/node/installArchSpecificPackage.js @@ -0,0 +1 @@ +require('node-bin-setup')("22.17.0", require) \ No newline at end of file diff --git a/node_modules/.pnpm/node@22.17.0/node_modules/node/package.json b/node_modules/.pnpm/node@22.17.0/node_modules/node/package.json new file mode 100644 index 0000000..23574f6 --- /dev/null +++ b/node_modules/.pnpm/node@22.17.0/node_modules/node/package.json @@ -0,0 +1,27 @@ +{ + "name": "node", + "version": "22.17.0", + "description": "node", + "main": "index.js", + "keywords": [ + "runtime" + ], + "repository": { + "type": "git", + "url": "git+https://github.com/aredridel/node-bin-gen.git" + }, + "scripts": { + "preinstall": "node installArchSpecificPackage" + }, + "bin": { + "node": "bin/node" + }, + "dependencies": { + "node-bin-setup": "^1.0.0" + }, + "license": "ISC", + "author": "", + "engines": { + "npm": ">=5.0.0" + } +} \ No newline at end of file diff --git a/node_modules/.pnpm/node_modules/node-bin-setup/.github/dependabot.yml b/node_modules/.pnpm/node_modules/node-bin-setup/.github/dependabot.yml new file mode 100644 index 0000000..290ad02 --- /dev/null +++ b/node_modules/.pnpm/node_modules/node-bin-setup/.github/dependabot.yml @@ -0,0 +1,8 @@ +version: 2 +updates: +- package-ecosystem: npm + directory: "/" + schedule: + interval: daily + time: "10:00" + open-pull-requests-limit: 10 diff --git a/node_modules/.pnpm/node_modules/node-bin-setup/index.js b/node_modules/.pnpm/node_modules/node-bin-setup/index.js new file mode 100644 index 0000000..0841976 --- /dev/null +++ b/node_modules/.pnpm/node_modules/node-bin-setup/index.js @@ -0,0 +1,58 @@ +var spawn = require('child_process').spawn; +var path = require('path'); +var fs = require('fs'); + +function installArchSpecificPackage(version, require) { + + process.env.npm_config_global = 'false'; + process.env.npm_config_repository = ''; + + var platform = process.platform == 'win32' ? 'win' : process.platform; + var arch = platform == 'win' && process.arch == 'ia32' ? 'x86' : process.arch; + var prefix = (process.platform == 'darwin' && process.arch == 'arm64') ? 'node-bin' : 'node'; + + var cp = spawn(platform == 'win' ? 'npm.cmd' : 'npm', ['install', '--no-save', [prefix, platform, arch].join('-') + '@' + version], { + stdio: 'inherit', + shell: true + }); + + cp.on('close', function(code) { + var pkgJson = require.resolve([prefix, platform, arch].join('-') + '/package.json'); + var subpkg = JSON.parse(fs.readFileSync(pkgJson, 'utf8')); + var executable = subpkg.bin.node; + var bin = path.resolve(path.dirname(pkgJson), executable); + + try { + fs.mkdirSync(path.resolve(process.cwd(), 'bin')); + } catch (e) { + if (e.code != 'EEXIST') { + throw e; + } + } + + linkSync(bin, path.resolve(process.cwd(), executable)); + + if (platform == 'win') { + var pkg = JSON.parse(fs.readFileSync(path.resolve(process.cwd(), 'package.json'))); + fs.writeFileSync(path.resolve(process.cwd(), 'bin/node'), 'This file intentionally left blank'); + pkg.bin.node = 'bin/node.exe'; + fs.writeFileSync(path.resolve(process.cwd(), 'package.json'), JSON.stringify(pkg, null, 2)); + } + + return process.exit(code); + + }); +} + +function linkSync(src, dest) { + try { + fs.unlinkSync(dest); + } catch (e) { + if (e.code != 'ENOENT') { + throw e; + } + } + return fs.linkSync(src, dest); +} + +module.exports = installArchSpecificPackage; diff --git a/node_modules/.pnpm/node_modules/node-bin-setup/package.json b/node_modules/.pnpm/node_modules/node-bin-setup/package.json new file mode 100644 index 0000000..fa47cca --- /dev/null +++ b/node_modules/.pnpm/node_modules/node-bin-setup/package.json @@ -0,0 +1,12 @@ +{ + "name": "node-bin-setup", + "version": "1.1.4", + "description": "Internal script used by the node package to install architecture-specific packages", + "main": "index.js", + "repository": { + "type": "git", + "url": "https://github.com/aredridel/node-bin-setup.git" + }, + "author": "Aria Stewart ", + "license": "ISC" +} diff --git a/node_modules/.pnpm/nodejs@0.0.0/node_modules/nodejs/1/getmodule.js b/node_modules/.pnpm/nodejs@0.0.0/node_modules/nodejs/1/getmodule.js new file mode 100644 index 0000000..acae183 --- /dev/null +++ b/node_modules/.pnpm/nodejs@0.0.0/node_modules/nodejs/1/getmodule.js @@ -0,0 +1,4 @@ +var myMoule = require('./singleobject').Hello("dsf"); + +/* myMoule.setName("lihao__"); +myMoule.sayHello(); */ \ No newline at end of file diff --git a/node_modules/.pnpm/nodejs@0.0.0/node_modules/nodejs/1/module.js b/node_modules/.pnpm/nodejs@0.0.0/node_modules/nodejs/1/module.js new file mode 100644 index 0000000..f6c5b4b --- /dev/null +++ b/node_modules/.pnpm/nodejs@0.0.0/node_modules/nodejs/1/module.js @@ -0,0 +1,8 @@ +var name; +exports.setName = function(tyname){ + name = tyname; +}; + +exports.sayHello = function(){ + console.log("Hello"+name); +}; \ No newline at end of file diff --git a/node_modules/.pnpm/nodejs@0.0.0/node_modules/nodejs/1/singleobject.js b/node_modules/.pnpm/nodejs@0.0.0/node_modules/nodejs/1/singleobject.js new file mode 100644 index 0000000..3728e5c --- /dev/null +++ b/node_modules/.pnpm/nodejs@0.0.0/node_modules/nodejs/1/singleobject.js @@ -0,0 +1,14 @@ +function Hello(){ + var name; + this.setName=function(tyname){ + name = tyname; + + } + this.sayHello = function(){ + console.log("Hello"+name); + } +} + +module.exports = Hello; + + diff --git a/node_modules/.pnpm/nodejs@0.0.0/node_modules/nodejs/package.json b/node_modules/.pnpm/nodejs@0.0.0/node_modules/nodejs/package.json new file mode 100644 index 0000000..76f1bf9 --- /dev/null +++ b/node_modules/.pnpm/nodejs@0.0.0/node_modules/nodejs/package.json @@ -0,0 +1,11 @@ +{ + "name": "nodejs", + "version": "0.0.0", + "description": "", + "main": "index.js", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1" + }, + "author": "", + "license": "ISC" +} diff --git a/node_modules/node-bin-setup/.github/dependabot.yml b/node_modules/node-bin-setup/.github/dependabot.yml new file mode 100644 index 0000000..290ad02 --- /dev/null +++ b/node_modules/node-bin-setup/.github/dependabot.yml @@ -0,0 +1,8 @@ +version: 2 +updates: +- package-ecosystem: npm + directory: "/" + schedule: + interval: daily + time: "10:00" + open-pull-requests-limit: 10 diff --git a/node_modules/node-bin-setup/index.js b/node_modules/node-bin-setup/index.js new file mode 100644 index 0000000..0841976 --- /dev/null +++ b/node_modules/node-bin-setup/index.js @@ -0,0 +1,58 @@ +var spawn = require('child_process').spawn; +var path = require('path'); +var fs = require('fs'); + +function installArchSpecificPackage(version, require) { + + process.env.npm_config_global = 'false'; + process.env.npm_config_repository = ''; + + var platform = process.platform == 'win32' ? 'win' : process.platform; + var arch = platform == 'win' && process.arch == 'ia32' ? 'x86' : process.arch; + var prefix = (process.platform == 'darwin' && process.arch == 'arm64') ? 'node-bin' : 'node'; + + var cp = spawn(platform == 'win' ? 'npm.cmd' : 'npm', ['install', '--no-save', [prefix, platform, arch].join('-') + '@' + version], { + stdio: 'inherit', + shell: true + }); + + cp.on('close', function(code) { + var pkgJson = require.resolve([prefix, platform, arch].join('-') + '/package.json'); + var subpkg = JSON.parse(fs.readFileSync(pkgJson, 'utf8')); + var executable = subpkg.bin.node; + var bin = path.resolve(path.dirname(pkgJson), executable); + + try { + fs.mkdirSync(path.resolve(process.cwd(), 'bin')); + } catch (e) { + if (e.code != 'EEXIST') { + throw e; + } + } + + linkSync(bin, path.resolve(process.cwd(), executable)); + + if (platform == 'win') { + var pkg = JSON.parse(fs.readFileSync(path.resolve(process.cwd(), 'package.json'))); + fs.writeFileSync(path.resolve(process.cwd(), 'bin/node'), 'This file intentionally left blank'); + pkg.bin.node = 'bin/node.exe'; + fs.writeFileSync(path.resolve(process.cwd(), 'package.json'), JSON.stringify(pkg, null, 2)); + } + + return process.exit(code); + + }); +} + +function linkSync(src, dest) { + try { + fs.unlinkSync(dest); + } catch (e) { + if (e.code != 'ENOENT') { + throw e; + } + } + return fs.linkSync(src, dest); +} + +module.exports = installArchSpecificPackage; diff --git a/node_modules/node-bin-setup/package.json b/node_modules/node-bin-setup/package.json new file mode 100644 index 0000000..fa47cca --- /dev/null +++ b/node_modules/node-bin-setup/package.json @@ -0,0 +1,12 @@ +{ + "name": "node-bin-setup", + "version": "1.1.4", + "description": "Internal script used by the node package to install architecture-specific packages", + "main": "index.js", + "repository": { + "type": "git", + "url": "https://github.com/aredridel/node-bin-setup.git" + }, + "author": "Aria Stewart ", + "license": "ISC" +} diff --git a/node_modules/node/README.md b/node_modules/node/README.md new file mode 100644 index 0000000..53a3ea6 --- /dev/null +++ b/node_modules/node/README.md @@ -0,0 +1,34 @@ +node +======== + +Installs a `node` binary into your project, which because `npm` runs scripts with the local `./node_modules/.bin` in the `PATH` ahead of the system copy means you can have a local version of node that is different than your system's, and manage node as a normal dependency. + +Warning: don't install this globally with npm 2. `npm@2` immediately removes node, then can't run the scripts that make this work. + +Use +--- + +``` +npm i node@lts +``` + +Use with `npx` +-------------- + +``` +npx node@4 myscript.js +``` + +This will run `myscript.js` with the latest version of node from the v4 major. + +Using the shell auto-fallback of npx, you can even do it like so: + + +``` +node@4 myscript.js +``` + +Thanks +------ + +Major thanks to Kat Marchán for late-night problem solving, and to CJ Silverio and Maciej Małecki for egging me on way back when I had the idea to package node up this way. It does turn out if you ask "why _not_?!" once in a while something fun happens. diff --git a/node_modules/node/installArchSpecificPackage.js b/node_modules/node/installArchSpecificPackage.js new file mode 100644 index 0000000..e7d4354 --- /dev/null +++ b/node_modules/node/installArchSpecificPackage.js @@ -0,0 +1 @@ +require('node-bin-setup')("22.17.0", require) \ No newline at end of file diff --git a/node_modules/node/package.json b/node_modules/node/package.json new file mode 100644 index 0000000..23574f6 --- /dev/null +++ b/node_modules/node/package.json @@ -0,0 +1,27 @@ +{ + "name": "node", + "version": "22.17.0", + "description": "node", + "main": "index.js", + "keywords": [ + "runtime" + ], + "repository": { + "type": "git", + "url": "git+https://github.com/aredridel/node-bin-gen.git" + }, + "scripts": { + "preinstall": "node installArchSpecificPackage" + }, + "bin": { + "node": "bin/node" + }, + "dependencies": { + "node-bin-setup": "^1.0.0" + }, + "license": "ISC", + "author": "", + "engines": { + "npm": ">=5.0.0" + } +} \ No newline at end of file diff --git a/node_modules/nodejs/1/getmodule.js b/node_modules/nodejs/1/getmodule.js new file mode 100644 index 0000000..acae183 --- /dev/null +++ b/node_modules/nodejs/1/getmodule.js @@ -0,0 +1,4 @@ +var myMoule = require('./singleobject').Hello("dsf"); + +/* myMoule.setName("lihao__"); +myMoule.sayHello(); */ \ No newline at end of file diff --git a/node_modules/nodejs/1/module.js b/node_modules/nodejs/1/module.js new file mode 100644 index 0000000..f6c5b4b --- /dev/null +++ b/node_modules/nodejs/1/module.js @@ -0,0 +1,8 @@ +var name; +exports.setName = function(tyname){ + name = tyname; +}; + +exports.sayHello = function(){ + console.log("Hello"+name); +}; \ No newline at end of file diff --git a/node_modules/nodejs/1/singleobject.js b/node_modules/nodejs/1/singleobject.js new file mode 100644 index 0000000..3728e5c --- /dev/null +++ b/node_modules/nodejs/1/singleobject.js @@ -0,0 +1,14 @@ +function Hello(){ + var name; + this.setName=function(tyname){ + name = tyname; + + } + this.sayHello = function(){ + console.log("Hello"+name); + } +} + +module.exports = Hello; + + diff --git a/node_modules/nodejs/package.json b/node_modules/nodejs/package.json new file mode 100644 index 0000000..76f1bf9 --- /dev/null +++ b/node_modules/nodejs/package.json @@ -0,0 +1,11 @@ +{ + "name": "nodejs", + "version": "0.0.0", + "description": "", + "main": "index.js", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1" + }, + "author": "", + "license": "ISC" +} diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..8c015f7 --- /dev/null +++ b/package-lock.json @@ -0,0 +1,47 @@ +{ + "name": "calimix.github.io", + "version": "1.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "calimix.github.io", + "version": "1.0.0", + "license": "ISC", + "dependencies": { + "node": "^22.17.0", + "nodejs": "^0.0.0" + } + }, + "node_modules/.pnpm/nodejs@0.0.0/node_modules/nodejs": { + "version": "0.0.0", + "license": "ISC" + }, + "node_modules/node": { + "version": "22.17.0", + "resolved": "https://registry.npmjs.org/node/-/node-22.17.0.tgz", + "integrity": "sha512-cDrw3NvGAB1QUWxTEd9mX/vf+mAhe42IwBkQ7T9z2GhIPyNM+I1u32NMu9ZgNE85UDUWmIUL4oe4JylVlwvG2Q==", + "hasInstallScript": true, + "license": "ISC", + "dependencies": { + "node-bin-setup": "^1.0.0" + }, + "bin": { + "node": "bin/node" + }, + "engines": { + "npm": ">=5.0.0" + } + }, + "node_modules/node-bin-setup": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/node-bin-setup/-/node-bin-setup-1.1.4.tgz", + "integrity": "sha512-vWNHOne0ZUavArqPP5LJta50+S8R261Fr5SvGul37HbEDcowvLjwdvd0ZeSr0r2lTSrPxl6okq9QUw8BFGiAxA==", + "license": "ISC" + }, + "node_modules/nodejs": { + "resolved": "node_modules/.pnpm/nodejs@0.0.0/node_modules/nodejs", + "link": true + } + } +} diff --git a/package.json b/package.json new file mode 100644 index 0000000..3f336c5 --- /dev/null +++ b/package.json @@ -0,0 +1,16 @@ +{ + "name": "calimix.github.io", + "version": "1.0.0", + "description": "", + "main": "index.js", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1" + }, + "keywords": [], + "author": "", + "license": "ISC", + "dependencies": { + "node": "^22.17.0", + "nodejs": "^0.0.0" + } +} diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml new file mode 100644 index 0000000..19dfe8d --- /dev/null +++ b/pnpm-lock.yaml @@ -0,0 +1,22 @@ +lockfileVersion: '9.0' + +settings: + autoInstallPeers: true + excludeLinksFromLockfile: false + +importers: + + .: + dependencies: + nodejs: + specifier: ^0.0.0 + version: 0.0.0 + +packages: + + nodejs@0.0.0: + resolution: {integrity: sha512-1V+0HwaB/dhxzidEFc4uJ3k52gLI4B6YBZgJIofjwYCSAkD6CI0me6TDBT2QM2nbGWNxCHcq9/wVynzQYZOhUg==} + +snapshots: + + nodejs@0.0.0: {} diff --git a/resources/css/style.css b/resources/css/style.css index 72336bd..ada1ed8 100644 --- a/resources/css/style.css +++ b/resources/css/style.css @@ -3,6 +3,7 @@ body { text-align: center; font-family: "Verdana", sans-serif; color: white; + font-size: 18px; } .cta { @@ -25,6 +26,20 @@ p { color: gray; } +.icons { + width: 21rem; + display: flex; + justify-content: space-around; + align-items: center; + background-size: cover; + margin: 0 auto; +} + +.icon { + width: 50px; + height: 50px; +} + footer { text-align: right; -} \ No newline at end of file +}