updated image optimisation, updated readme accrodingly. fixed image issues, fixed navbar on mobile view + more

This commit is contained in:
Henri
2026-04-23 15:48:34 +03:00
parent 08d6e08c4d
commit 63c4960062
154 changed files with 1141 additions and 312 deletions

View File

@@ -32,6 +32,9 @@ jobs:
- name: Install dependencies - name: Install dependencies
run: npm ci run: npm ci
- name: Optimise images
run: node scripts/optimise-images.js
- name: Build project - name: Build project
run: npm run build run: npm run build

3
.gitignore vendored
View File

@@ -12,6 +12,9 @@ dist
dist-ssr dist-ssr
*.local *.local
# Image optimization cache
public/assets/**/optimised
# Editor directories and files # Editor directories and files
.vite/ .vite/
.vscode/ .vscode/

View File

@@ -83,7 +83,15 @@ cd lapikud.github.io
npm install npm install
``` ```
**3. Start the dev server** — this runs the site locally so you can see your changes live: **3. Optimise images** — the optimised image variants are not stored in the repo, so you need to generate them locally before running the site:
```bash
npm run optimise
```
> You only need to run this once after cloning, and again whenever you add or change images in any `original/` folder.
**4. Start the dev server** — this runs the site locally so you can see your changes live:
```bash ```bash
npm run dev npm run dev
@@ -93,64 +101,22 @@ Then open the URL it gives you (usually `http://localhost:5173`) in your browser
--- ---
## 🖼️ Images — please optimize before committing! ## 🖼️ Adding images
Nobody wants to load a 5MB photo that's displayed at 100×100px. Always resize images before adding them to the project. Place your original image files (PNG, JPG, etc.) into the appropriate `public/assets/{category}/original/` folder, then run:
Install FFmpeg first:
<details>
<summary>Linux / WSL / Ubuntu</summary>
```bash ```bash
sudo apt install ffmpeg npm run optimise
``` ```
</details> The script will generate optimised WebP and JPG variants automatically. **Do not commit anything inside `optimised/` folders** — those are generated and ignored by git.
<details> > SVGs don't need optimising — just place them directly where they're needed, no `original/` folder required.
<summary>Windows (without WSL)</summary>
**Option A — via winget:**
```bash
winget install ffmpeg
```
**Option B — manually:**
1. Download from [ffmpeg.org/download.html](https://ffmpeg.org/download.html)
2. Extract the archive
3. Add the `bin` folder to your PATH
</details>
<details>
<summary>macOS</summary>
```bash
brew install ffmpeg
```
</details>
### Resize commands
Once FFmpeg is installed, use the right size for the job:
```bash
# Small thumbnails (shown at 100300px)
ffmpeg -i input -vf scale=400:-1 output.jpg
# Medium images (shown at 300800px)
ffmpeg -i input -vf scale=1200:-1 output.jpg
# Hero / full-width images
ffmpeg -i input -vf scale=1920:-1 output.jpg
```
--- ---
## 🚀 Deployment ## 🚀 Deployment
Nothing to do here — GitHub automatically builds and deploys the site whenever something is pushed to the `main` branch. Nothing to do here — GitHub automatically builds and deploys the site whenever something is pushed to the `v2` branch. The optimised images are generated as part of the build, so you don't need to worry about that either.
It usually takes **25 minutes**. You can watch it happen in the [Actions tab](https://github.com/Lapikud/lapikud.github.io/actions). It usually takes **25 minutes**. You can watch it happen in the [Actions tab](https://github.com/Lapikud/lapikud.github.io/actions).

View File

Before

Width:  |  Height:  |  Size: 96 KiB

After

Width:  |  Height:  |  Size: 96 KiB

571
package-lock.json generated
View File

@@ -12,6 +12,7 @@
"js-yaml": "^4.1.1", "js-yaml": "^4.1.1",
"lucide-svelte": "^0.554.0", "lucide-svelte": "^0.554.0",
"maplibre-gl": "^5.19.0", "maplibre-gl": "^5.19.0",
"sharp": "^0.34.5",
"svelte-maplibre": "^1.2.6", "svelte-maplibre": "^1.2.6",
"tailwindcss": "^4.1.17" "tailwindcss": "^4.1.17"
}, },
@@ -517,6 +518,471 @@
"node": ">=18" "node": ">=18"
} }
}, },
"node_modules/@img/colour": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/@img/colour/-/colour-1.1.0.tgz",
"integrity": "sha512-Td76q7j57o/tLVdgS746cYARfSyxk8iEfRxewL9h4OMzYhbW4TAcppl0mT4eyqXddh6L/jwoM75mo7ixa/pCeQ==",
"license": "MIT",
"engines": {
"node": ">=18"
}
},
"node_modules/@img/sharp-darwin-arm64": {
"version": "0.34.5",
"resolved": "https://registry.npmjs.org/@img/sharp-darwin-arm64/-/sharp-darwin-arm64-0.34.5.tgz",
"integrity": "sha512-imtQ3WMJXbMY4fxb/Ndp6HBTNVtWCUI0WdobyheGf5+ad6xX8VIDO8u2xE4qc/fr08CKG/7dDseFtn6M6g/r3w==",
"cpu": [
"arm64"
],
"license": "Apache-2.0",
"optional": true,
"os": [
"darwin"
],
"engines": {
"node": "^18.17.0 || ^20.3.0 || >=21.0.0"
},
"funding": {
"url": "https://opencollective.com/libvips"
},
"optionalDependencies": {
"@img/sharp-libvips-darwin-arm64": "1.2.4"
}
},
"node_modules/@img/sharp-darwin-x64": {
"version": "0.34.5",
"resolved": "https://registry.npmjs.org/@img/sharp-darwin-x64/-/sharp-darwin-x64-0.34.5.tgz",
"integrity": "sha512-YNEFAF/4KQ/PeW0N+r+aVVsoIY0/qxxikF2SWdp+NRkmMB7y9LBZAVqQ4yhGCm/H3H270OSykqmQMKLBhBJDEw==",
"cpu": [
"x64"
],
"license": "Apache-2.0",
"optional": true,
"os": [
"darwin"
],
"engines": {
"node": "^18.17.0 || ^20.3.0 || >=21.0.0"
},
"funding": {
"url": "https://opencollective.com/libvips"
},
"optionalDependencies": {
"@img/sharp-libvips-darwin-x64": "1.2.4"
}
},
"node_modules/@img/sharp-libvips-darwin-arm64": {
"version": "1.2.4",
"resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-arm64/-/sharp-libvips-darwin-arm64-1.2.4.tgz",
"integrity": "sha512-zqjjo7RatFfFoP0MkQ51jfuFZBnVE2pRiaydKJ1G/rHZvnsrHAOcQALIi9sA5co5xenQdTugCvtb1cuf78Vf4g==",
"cpu": [
"arm64"
],
"license": "LGPL-3.0-or-later",
"optional": true,
"os": [
"darwin"
],
"funding": {
"url": "https://opencollective.com/libvips"
}
},
"node_modules/@img/sharp-libvips-darwin-x64": {
"version": "1.2.4",
"resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-x64/-/sharp-libvips-darwin-x64-1.2.4.tgz",
"integrity": "sha512-1IOd5xfVhlGwX+zXv2N93k0yMONvUlANylbJw1eTah8K/Jtpi15KC+WSiaX/nBmbm2HxRM1gZ0nSdjSsrZbGKg==",
"cpu": [
"x64"
],
"license": "LGPL-3.0-or-later",
"optional": true,
"os": [
"darwin"
],
"funding": {
"url": "https://opencollective.com/libvips"
}
},
"node_modules/@img/sharp-libvips-linux-arm": {
"version": "1.2.4",
"resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm/-/sharp-libvips-linux-arm-1.2.4.tgz",
"integrity": "sha512-bFI7xcKFELdiNCVov8e44Ia4u2byA+l3XtsAj+Q8tfCwO6BQ8iDojYdvoPMqsKDkuoOo+X6HZA0s0q11ANMQ8A==",
"cpu": [
"arm"
],
"license": "LGPL-3.0-or-later",
"optional": true,
"os": [
"linux"
],
"funding": {
"url": "https://opencollective.com/libvips"
}
},
"node_modules/@img/sharp-libvips-linux-arm64": {
"version": "1.2.4",
"resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm64/-/sharp-libvips-linux-arm64-1.2.4.tgz",
"integrity": "sha512-excjX8DfsIcJ10x1Kzr4RcWe1edC9PquDRRPx3YVCvQv+U5p7Yin2s32ftzikXojb1PIFc/9Mt28/y+iRklkrw==",
"cpu": [
"arm64"
],
"license": "LGPL-3.0-or-later",
"optional": true,
"os": [
"linux"
],
"funding": {
"url": "https://opencollective.com/libvips"
}
},
"node_modules/@img/sharp-libvips-linux-ppc64": {
"version": "1.2.4",
"resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-ppc64/-/sharp-libvips-linux-ppc64-1.2.4.tgz",
"integrity": "sha512-FMuvGijLDYG6lW+b/UvyilUWu5Ayu+3r2d1S8notiGCIyYU/76eig1UfMmkZ7vwgOrzKzlQbFSuQfgm7GYUPpA==",
"cpu": [
"ppc64"
],
"license": "LGPL-3.0-or-later",
"optional": true,
"os": [
"linux"
],
"funding": {
"url": "https://opencollective.com/libvips"
}
},
"node_modules/@img/sharp-libvips-linux-riscv64": {
"version": "1.2.4",
"resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-riscv64/-/sharp-libvips-linux-riscv64-1.2.4.tgz",
"integrity": "sha512-oVDbcR4zUC0ce82teubSm+x6ETixtKZBh/qbREIOcI3cULzDyb18Sr/Wcyx7NRQeQzOiHTNbZFF1UwPS2scyGA==",
"cpu": [
"riscv64"
],
"license": "LGPL-3.0-or-later",
"optional": true,
"os": [
"linux"
],
"funding": {
"url": "https://opencollective.com/libvips"
}
},
"node_modules/@img/sharp-libvips-linux-s390x": {
"version": "1.2.4",
"resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-s390x/-/sharp-libvips-linux-s390x-1.2.4.tgz",
"integrity": "sha512-qmp9VrzgPgMoGZyPvrQHqk02uyjA0/QrTO26Tqk6l4ZV0MPWIW6LTkqOIov+J1yEu7MbFQaDpwdwJKhbJvuRxQ==",
"cpu": [
"s390x"
],
"license": "LGPL-3.0-or-later",
"optional": true,
"os": [
"linux"
],
"funding": {
"url": "https://opencollective.com/libvips"
}
},
"node_modules/@img/sharp-libvips-linux-x64": {
"version": "1.2.4",
"resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-x64/-/sharp-libvips-linux-x64-1.2.4.tgz",
"integrity": "sha512-tJxiiLsmHc9Ax1bz3oaOYBURTXGIRDODBqhveVHonrHJ9/+k89qbLl0bcJns+e4t4rvaNBxaEZsFtSfAdquPrw==",
"cpu": [
"x64"
],
"license": "LGPL-3.0-or-later",
"optional": true,
"os": [
"linux"
],
"funding": {
"url": "https://opencollective.com/libvips"
}
},
"node_modules/@img/sharp-libvips-linuxmusl-arm64": {
"version": "1.2.4",
"resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-arm64/-/sharp-libvips-linuxmusl-arm64-1.2.4.tgz",
"integrity": "sha512-FVQHuwx1IIuNow9QAbYUzJ+En8KcVm9Lk5+uGUQJHaZmMECZmOlix9HnH7n1TRkXMS0pGxIJokIVB9SuqZGGXw==",
"cpu": [
"arm64"
],
"license": "LGPL-3.0-or-later",
"optional": true,
"os": [
"linux"
],
"funding": {
"url": "https://opencollective.com/libvips"
}
},
"node_modules/@img/sharp-libvips-linuxmusl-x64": {
"version": "1.2.4",
"resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-x64/-/sharp-libvips-linuxmusl-x64-1.2.4.tgz",
"integrity": "sha512-+LpyBk7L44ZIXwz/VYfglaX/okxezESc6UxDSoyo2Ks6Jxc4Y7sGjpgU9s4PMgqgjj1gZCylTieNamqA1MF7Dg==",
"cpu": [
"x64"
],
"license": "LGPL-3.0-or-later",
"optional": true,
"os": [
"linux"
],
"funding": {
"url": "https://opencollective.com/libvips"
}
},
"node_modules/@img/sharp-linux-arm": {
"version": "0.34.5",
"resolved": "https://registry.npmjs.org/@img/sharp-linux-arm/-/sharp-linux-arm-0.34.5.tgz",
"integrity": "sha512-9dLqsvwtg1uuXBGZKsxem9595+ujv0sJ6Vi8wcTANSFpwV/GONat5eCkzQo/1O6zRIkh0m/8+5BjrRr7jDUSZw==",
"cpu": [
"arm"
],
"license": "Apache-2.0",
"optional": true,
"os": [
"linux"
],
"engines": {
"node": "^18.17.0 || ^20.3.0 || >=21.0.0"
},
"funding": {
"url": "https://opencollective.com/libvips"
},
"optionalDependencies": {
"@img/sharp-libvips-linux-arm": "1.2.4"
}
},
"node_modules/@img/sharp-linux-arm64": {
"version": "0.34.5",
"resolved": "https://registry.npmjs.org/@img/sharp-linux-arm64/-/sharp-linux-arm64-0.34.5.tgz",
"integrity": "sha512-bKQzaJRY/bkPOXyKx5EVup7qkaojECG6NLYswgktOZjaXecSAeCWiZwwiFf3/Y+O1HrauiE3FVsGxFg8c24rZg==",
"cpu": [
"arm64"
],
"license": "Apache-2.0",
"optional": true,
"os": [
"linux"
],
"engines": {
"node": "^18.17.0 || ^20.3.0 || >=21.0.0"
},
"funding": {
"url": "https://opencollective.com/libvips"
},
"optionalDependencies": {
"@img/sharp-libvips-linux-arm64": "1.2.4"
}
},
"node_modules/@img/sharp-linux-ppc64": {
"version": "0.34.5",
"resolved": "https://registry.npmjs.org/@img/sharp-linux-ppc64/-/sharp-linux-ppc64-0.34.5.tgz",
"integrity": "sha512-7zznwNaqW6YtsfrGGDA6BRkISKAAE1Jo0QdpNYXNMHu2+0dTrPflTLNkpc8l7MUP5M16ZJcUvysVWWrMefZquA==",
"cpu": [
"ppc64"
],
"license": "Apache-2.0",
"optional": true,
"os": [
"linux"
],
"engines": {
"node": "^18.17.0 || ^20.3.0 || >=21.0.0"
},
"funding": {
"url": "https://opencollective.com/libvips"
},
"optionalDependencies": {
"@img/sharp-libvips-linux-ppc64": "1.2.4"
}
},
"node_modules/@img/sharp-linux-riscv64": {
"version": "0.34.5",
"resolved": "https://registry.npmjs.org/@img/sharp-linux-riscv64/-/sharp-linux-riscv64-0.34.5.tgz",
"integrity": "sha512-51gJuLPTKa7piYPaVs8GmByo7/U7/7TZOq+cnXJIHZKavIRHAP77e3N2HEl3dgiqdD/w0yUfiJnII77PuDDFdw==",
"cpu": [
"riscv64"
],
"license": "Apache-2.0",
"optional": true,
"os": [
"linux"
],
"engines": {
"node": "^18.17.0 || ^20.3.0 || >=21.0.0"
},
"funding": {
"url": "https://opencollective.com/libvips"
},
"optionalDependencies": {
"@img/sharp-libvips-linux-riscv64": "1.2.4"
}
},
"node_modules/@img/sharp-linux-s390x": {
"version": "0.34.5",
"resolved": "https://registry.npmjs.org/@img/sharp-linux-s390x/-/sharp-linux-s390x-0.34.5.tgz",
"integrity": "sha512-nQtCk0PdKfho3eC5MrbQoigJ2gd1CgddUMkabUj+rBevs8tZ2cULOx46E7oyX+04WGfABgIwmMC0VqieTiR4jg==",
"cpu": [
"s390x"
],
"license": "Apache-2.0",
"optional": true,
"os": [
"linux"
],
"engines": {
"node": "^18.17.0 || ^20.3.0 || >=21.0.0"
},
"funding": {
"url": "https://opencollective.com/libvips"
},
"optionalDependencies": {
"@img/sharp-libvips-linux-s390x": "1.2.4"
}
},
"node_modules/@img/sharp-linux-x64": {
"version": "0.34.5",
"resolved": "https://registry.npmjs.org/@img/sharp-linux-x64/-/sharp-linux-x64-0.34.5.tgz",
"integrity": "sha512-MEzd8HPKxVxVenwAa+JRPwEC7QFjoPWuS5NZnBt6B3pu7EG2Ge0id1oLHZpPJdn3OQK+BQDiw9zStiHBTJQQQQ==",
"cpu": [
"x64"
],
"license": "Apache-2.0",
"optional": true,
"os": [
"linux"
],
"engines": {
"node": "^18.17.0 || ^20.3.0 || >=21.0.0"
},
"funding": {
"url": "https://opencollective.com/libvips"
},
"optionalDependencies": {
"@img/sharp-libvips-linux-x64": "1.2.4"
}
},
"node_modules/@img/sharp-linuxmusl-arm64": {
"version": "0.34.5",
"resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-arm64/-/sharp-linuxmusl-arm64-0.34.5.tgz",
"integrity": "sha512-fprJR6GtRsMt6Kyfq44IsChVZeGN97gTD331weR1ex1c1rypDEABN6Tm2xa1wE6lYb5DdEnk03NZPqA7Id21yg==",
"cpu": [
"arm64"
],
"license": "Apache-2.0",
"optional": true,
"os": [
"linux"
],
"engines": {
"node": "^18.17.0 || ^20.3.0 || >=21.0.0"
},
"funding": {
"url": "https://opencollective.com/libvips"
},
"optionalDependencies": {
"@img/sharp-libvips-linuxmusl-arm64": "1.2.4"
}
},
"node_modules/@img/sharp-linuxmusl-x64": {
"version": "0.34.5",
"resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-x64/-/sharp-linuxmusl-x64-0.34.5.tgz",
"integrity": "sha512-Jg8wNT1MUzIvhBFxViqrEhWDGzqymo3sV7z7ZsaWbZNDLXRJZoRGrjulp60YYtV4wfY8VIKcWidjojlLcWrd8Q==",
"cpu": [
"x64"
],
"license": "Apache-2.0",
"optional": true,
"os": [
"linux"
],
"engines": {
"node": "^18.17.0 || ^20.3.0 || >=21.0.0"
},
"funding": {
"url": "https://opencollective.com/libvips"
},
"optionalDependencies": {
"@img/sharp-libvips-linuxmusl-x64": "1.2.4"
}
},
"node_modules/@img/sharp-wasm32": {
"version": "0.34.5",
"resolved": "https://registry.npmjs.org/@img/sharp-wasm32/-/sharp-wasm32-0.34.5.tgz",
"integrity": "sha512-OdWTEiVkY2PHwqkbBI8frFxQQFekHaSSkUIJkwzclWZe64O1X4UlUjqqqLaPbUpMOQk6FBu/HtlGXNblIs0huw==",
"cpu": [
"wasm32"
],
"license": "Apache-2.0 AND LGPL-3.0-or-later AND MIT",
"optional": true,
"dependencies": {
"@emnapi/runtime": "^1.7.0"
},
"engines": {
"node": "^18.17.0 || ^20.3.0 || >=21.0.0"
},
"funding": {
"url": "https://opencollective.com/libvips"
}
},
"node_modules/@img/sharp-win32-arm64": {
"version": "0.34.5",
"resolved": "https://registry.npmjs.org/@img/sharp-win32-arm64/-/sharp-win32-arm64-0.34.5.tgz",
"integrity": "sha512-WQ3AgWCWYSb2yt+IG8mnC6Jdk9Whs7O0gxphblsLvdhSpSTtmu69ZG1Gkb6NuvxsNACwiPV6cNSZNzt0KPsw7g==",
"cpu": [
"arm64"
],
"license": "Apache-2.0 AND LGPL-3.0-or-later",
"optional": true,
"os": [
"win32"
],
"engines": {
"node": "^18.17.0 || ^20.3.0 || >=21.0.0"
},
"funding": {
"url": "https://opencollective.com/libvips"
}
},
"node_modules/@img/sharp-win32-ia32": {
"version": "0.34.5",
"resolved": "https://registry.npmjs.org/@img/sharp-win32-ia32/-/sharp-win32-ia32-0.34.5.tgz",
"integrity": "sha512-FV9m/7NmeCmSHDD5j4+4pNI8Cp3aW+JvLoXcTUo0IqyjSfAZJ8dIUmijx1qaJsIiU+Hosw6xM5KijAWRJCSgNg==",
"cpu": [
"ia32"
],
"license": "Apache-2.0 AND LGPL-3.0-or-later",
"optional": true,
"os": [
"win32"
],
"engines": {
"node": "^18.17.0 || ^20.3.0 || >=21.0.0"
},
"funding": {
"url": "https://opencollective.com/libvips"
}
},
"node_modules/@img/sharp-win32-x64": {
"version": "0.34.5",
"resolved": "https://registry.npmjs.org/@img/sharp-win32-x64/-/sharp-win32-x64-0.34.5.tgz",
"integrity": "sha512-+29YMsqY2/9eFEiW93eqWnuLcWcufowXewwSNIT6UwZdUUCrM3oFjMWH/Z6/TMmb4hlFenmfAVbpWeup2jryCw==",
"cpu": [
"x64"
],
"license": "Apache-2.0 AND LGPL-3.0-or-later",
"optional": true,
"os": [
"win32"
],
"engines": {
"node": "^18.17.0 || ^20.3.0 || >=21.0.0"
},
"funding": {
"url": "https://opencollective.com/libvips"
}
},
"node_modules/@jridgewell/gen-mapping": { "node_modules/@jridgewell/gen-mapping": {
"version": "0.3.13", "version": "0.3.13",
"resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz", "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz",
@@ -1540,6 +2006,12 @@
"@types/geojson": "*" "@types/geojson": "*"
} }
}, },
"node_modules/@types/trusted-types": {
"version": "2.0.7",
"resolved": "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.7.tgz",
"integrity": "sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==",
"license": "MIT"
},
"node_modules/@vitest/expect": { "node_modules/@vitest/expect": {
"version": "3.2.4", "version": "3.2.4",
"resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-3.2.4.tgz", "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-3.2.4.tgz",
@@ -1645,6 +2117,7 @@
"version": "5.3.2", "version": "5.3.2",
"resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.2.tgz", "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.2.tgz",
"integrity": "sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw==", "integrity": "sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw==",
"dev": true,
"license": "Apache-2.0", "license": "Apache-2.0",
"engines": { "engines": {
"node": ">= 0.4" "node": ">= 0.4"
@@ -1886,6 +2359,12 @@
"node": ">=8" "node": ">=8"
} }
}, },
"node_modules/devalue": {
"version": "5.7.1",
"resolved": "https://registry.npmjs.org/devalue/-/devalue-5.7.1.tgz",
"integrity": "sha512-MUbZ586EgQqdRnC4yDrlod3BEdyvE4TapGYHMW2CiaW+KkkFmWEFqBUaLltEZCGi0iFXCEjRF0OjF0DV2QHjOA==",
"license": "MIT"
},
"node_modules/dom-accessibility-api": { "node_modules/dom-accessibility-api": {
"version": "0.5.16", "version": "0.5.16",
"resolved": "https://registry.npmjs.org/dom-accessibility-api/-/dom-accessibility-api-0.5.16.tgz", "resolved": "https://registry.npmjs.org/dom-accessibility-api/-/dom-accessibility-api-0.5.16.tgz",
@@ -1987,12 +2466,20 @@
} }
}, },
"node_modules/esrap": { "node_modules/esrap": {
"version": "2.1.3", "version": "2.2.5",
"resolved": "https://registry.npmjs.org/esrap/-/esrap-2.1.3.tgz", "resolved": "https://registry.npmjs.org/esrap/-/esrap-2.2.5.tgz",
"integrity": "sha512-T/Dhhv/QH+yYmiaLz9SA3PW+YyenlnRKDNdtlYJrSOBmNsH4nvPux+mTwx7p+wAedlJrGoZtXNI0a0MjQ2QkVg==", "integrity": "sha512-/yLB1538mag+dn0wsePTe8C0rDIjUOaJpMs2McodSzmM2msWcZsBSdRtg6HOBt0A/r82BN+Md3pgwSc/uWt2Ig==",
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"@jridgewell/sourcemap-codec": "^1.4.15" "@jridgewell/sourcemap-codec": "^1.4.15"
},
"peerDependencies": {
"@typescript-eslint/types": "^8.2.0"
},
"peerDependenciesMeta": {
"@typescript-eslint/types": {
"optional": true
}
} }
}, },
"node_modules/fdir": { "node_modules/fdir": {
@@ -2608,9 +3095,9 @@
"license": "ISC" "license": "ISC"
}, },
"node_modules/picomatch": { "node_modules/picomatch": {
"version": "4.0.3", "version": "4.0.4",
"resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.4.tgz",
"integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", "integrity": "sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==",
"license": "MIT", "license": "MIT",
"engines": { "engines": {
"node": ">=12" "node": ">=12"
@@ -2680,9 +3167,9 @@
} }
}, },
"node_modules/protocol-buffers-schema": { "node_modules/protocol-buffers-schema": {
"version": "3.6.0", "version": "3.6.1",
"resolved": "https://registry.npmjs.org/protocol-buffers-schema/-/protocol-buffers-schema-3.6.0.tgz", "resolved": "https://registry.npmjs.org/protocol-buffers-schema/-/protocol-buffers-schema-3.6.1.tgz",
"integrity": "sha512-TdDRD+/QNdrCGCE7v8340QyuXd4kIWIgapsE2+n/SaGiSSbomYl4TjHlvIoCWRpE7wFt02EpB35VVA2ImcBVqw==", "integrity": "sha512-VG2K63Igkiv9p76tk1lilczEK1cT+kCjKtkdhw1dQZV3k3IXJbd3o6Ho8b9zJZaHSnT2hKe4I+ObmX9w6m5SmQ==",
"license": "MIT" "license": "MIT"
}, },
"node_modules/quickselect": { "node_modules/quickselect": {
@@ -2834,7 +3321,6 @@
"version": "7.7.4", "version": "7.7.4",
"resolved": "https://registry.npmjs.org/semver/-/semver-7.7.4.tgz", "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.4.tgz",
"integrity": "sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==", "integrity": "sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==",
"dev": true,
"license": "ISC", "license": "ISC",
"bin": { "bin": {
"semver": "bin/semver.js" "semver": "bin/semver.js"
@@ -2843,6 +3329,50 @@
"node": ">=10" "node": ">=10"
} }
}, },
"node_modules/sharp": {
"version": "0.34.5",
"resolved": "https://registry.npmjs.org/sharp/-/sharp-0.34.5.tgz",
"integrity": "sha512-Ou9I5Ft9WNcCbXrU9cMgPBcCK8LiwLqcbywW3t4oDV37n1pzpuNLsYiAV8eODnjbtQlSDwZ2cUEeQz4E54Hltg==",
"hasInstallScript": true,
"license": "Apache-2.0",
"dependencies": {
"@img/colour": "^1.0.0",
"detect-libc": "^2.1.2",
"semver": "^7.7.3"
},
"engines": {
"node": "^18.17.0 || ^20.3.0 || >=21.0.0"
},
"funding": {
"url": "https://opencollective.com/libvips"
},
"optionalDependencies": {
"@img/sharp-darwin-arm64": "0.34.5",
"@img/sharp-darwin-x64": "0.34.5",
"@img/sharp-libvips-darwin-arm64": "1.2.4",
"@img/sharp-libvips-darwin-x64": "1.2.4",
"@img/sharp-libvips-linux-arm": "1.2.4",
"@img/sharp-libvips-linux-arm64": "1.2.4",
"@img/sharp-libvips-linux-ppc64": "1.2.4",
"@img/sharp-libvips-linux-riscv64": "1.2.4",
"@img/sharp-libvips-linux-s390x": "1.2.4",
"@img/sharp-libvips-linux-x64": "1.2.4",
"@img/sharp-libvips-linuxmusl-arm64": "1.2.4",
"@img/sharp-libvips-linuxmusl-x64": "1.2.4",
"@img/sharp-linux-arm": "0.34.5",
"@img/sharp-linux-arm64": "0.34.5",
"@img/sharp-linux-ppc64": "0.34.5",
"@img/sharp-linux-riscv64": "0.34.5",
"@img/sharp-linux-s390x": "0.34.5",
"@img/sharp-linux-x64": "0.34.5",
"@img/sharp-linuxmusl-arm64": "0.34.5",
"@img/sharp-linuxmusl-x64": "0.34.5",
"@img/sharp-wasm32": "0.34.5",
"@img/sharp-win32-arm64": "0.34.5",
"@img/sharp-win32-ia32": "0.34.5",
"@img/sharp-win32-x64": "0.34.5"
}
},
"node_modules/source-map": { "node_modules/source-map": {
"version": "0.6.1", "version": "0.6.1",
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
@@ -2921,21 +3451,23 @@
} }
}, },
"node_modules/svelte": { "node_modules/svelte": {
"version": "5.43.13", "version": "5.55.4",
"resolved": "https://registry.npmjs.org/svelte/-/svelte-5.43.13.tgz", "resolved": "https://registry.npmjs.org/svelte/-/svelte-5.55.4.tgz",
"integrity": "sha512-K1QJbpc71OHs3egN/ZHN+nsH/eE/eJQUbtlTAAXVejOOjsFx9hM96fCX5fwPQIYclJfVS8D96RDFA76nZsrJ3w==", "integrity": "sha512-q8DFohk6vUswSng95IZb9nzWJnbINZsK7OiM1snAa3qCjJBL0ZQpvMyAaVXjUukdM75J/m8UE8xwqat8Ors/zQ==",
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"@jridgewell/remapping": "^2.3.4", "@jridgewell/remapping": "^2.3.4",
"@jridgewell/sourcemap-codec": "^1.5.0", "@jridgewell/sourcemap-codec": "^1.5.0",
"@sveltejs/acorn-typescript": "^1.0.5", "@sveltejs/acorn-typescript": "^1.0.5",
"@types/estree": "^1.0.5", "@types/estree": "^1.0.5",
"@types/trusted-types": "^2.0.7",
"acorn": "^8.12.1", "acorn": "^8.12.1",
"aria-query": "^5.3.1", "aria-query": "5.3.1",
"axobject-query": "^4.1.0", "axobject-query": "^4.1.0",
"clsx": "^2.1.1", "clsx": "^2.1.1",
"devalue": "^5.6.4",
"esm-env": "^1.2.1", "esm-env": "^1.2.1",
"esrap": "^2.1.0", "esrap": "^2.2.4",
"is-reference": "^3.0.3", "is-reference": "^3.0.3",
"locate-character": "^3.0.0", "locate-character": "^3.0.0",
"magic-string": "^0.30.11", "magic-string": "^0.30.11",
@@ -3020,6 +3552,15 @@
} }
} }
}, },
"node_modules/svelte/node_modules/aria-query": {
"version": "5.3.1",
"resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.1.tgz",
"integrity": "sha512-Z/ZeOgVl7bcSYZ/u/rh0fOpvEpq//LZmdbkXyc7syVzjPAhfOa9ebsdTSjEBDU4vs5nC98Kfduj1uFo0qyET3g==",
"license": "Apache-2.0",
"engines": {
"node": ">= 0.4"
}
},
"node_modules/svelte2tsx": { "node_modules/svelte2tsx": {
"version": "0.7.51", "version": "0.7.51",
"resolved": "https://registry.npmjs.org/svelte2tsx/-/svelte2tsx-0.7.51.tgz", "resolved": "https://registry.npmjs.org/svelte2tsx/-/svelte2tsx-0.7.51.tgz",

View File

@@ -9,8 +9,8 @@
"preview": "vite preview", "preview": "vite preview",
"storybook": "storybook dev -p 6006", "storybook": "storybook dev -p 6006",
"build-storybook": "storybook build", "build-storybook": "storybook build",
"prestorybook": "node generate-stories.js", "generate-stories": "node scripts/generate-stories.js",
"prebuild-storybook": "node generate-stories.js" "optimise": "node scripts/optimise-images.js"
}, },
"devDependencies": { "devDependencies": {
"@storybook/addon-svelte-csf": "^5.0.11", "@storybook/addon-svelte-csf": "^5.0.11",
@@ -29,6 +29,7 @@
"js-yaml": "^4.1.1", "js-yaml": "^4.1.1",
"lucide-svelte": "^0.554.0", "lucide-svelte": "^0.554.0",
"maplibre-gl": "^5.19.0", "maplibre-gl": "^5.19.0",
"sharp": "^0.34.5",
"svelte-maplibre": "^1.2.6", "svelte-maplibre": "^1.2.6",
"tailwindcss": "^4.1.17" "tailwindcss": "^4.1.17"
} }

View File

@@ -1,35 +1,35 @@
# Management contact info # Management contact info
- name: Christopher Rammul - name: Christopher Rammul
photo: Christopher_Rammul.jpg photo: Christopher_Rammul
role: Juhatuse esimees role: Juhatuse esimees
subrole: Meie suur isa subrole: Meie suur isa
email: christopher@lapikud.ee email: christopher@lapikud.ee
phone: +372 555 00 221 phone: +372 555 00 221
- name: Erki Lasberg - name: Erki Lasberg
photo: Erki_Lasberg.jpg photo: Erki_Lasberg
role: Juhatuse liige role: Juhatuse liige
subrole: Helpdeski juht subrole: Helpdeski juht
email: erki@lapikud.ee email: erki@lapikud.ee
phone: +372 5907 9190 phone: +372 5907 9190
- name: Kerdo Käärma - name: Kerdo Käärma
photo: Kerdo_Kaarma.jpg photo: Kerdo_Kaarma
role: Juhatuse liige role: Juhatuse liige
subrole: Tarkvaravaldkonna juht subrole: Tarkvaravaldkonna juht
email: kerdo@lapikud.ee email: kerdo@lapikud.ee
phone: +372 5807 2867 phone: +372 5807 2867
- name: Reio Opromei - name: Reio Opromei
photo: Reio_Opromei.jpg photo: Reio_Opromei
role: Juhatuse liige role: Juhatuse liige
subrole: Kultuurivaldkonna juht subrole: Kultuurivaldkonna juht
email: reio@lapikud.ee email: reio@lapikud.ee
phone: +372 5315 8489 phone: +372 5315 8489
- name: Rene Arumetsa - name: Rene Arumetsa
photo: Rene_Arumetsa.jpg photo: Rene_Arumetsa
role: Juhatuse liige role: Juhatuse liige
subrole: Finantsjuht subrole: Finantsjuht
email: rene@lapikud.ee email: rene@lapikud.ee

View File

@@ -2,7 +2,7 @@
- name: Agnes Triin Saga - name: Agnes Triin Saga
age: 28 age: 28
photo: agnes_triin_saga_mentor.jpg photo: agnes_triin_saga_mentor
speciality: Süsteemi administaator speciality: Süsteemi administaator
teams: ['Helpdesk'] teams: ['Helpdesk']
term: 3 term: 3
@@ -17,7 +17,7 @@
- name: Christopher Rammul - name: Christopher Rammul
age: 23 age: 23
photo: christopher_rammul_mentor.jpg photo: christopher_rammul_mentor
speciality: Mehhatroonika speciality: Mehhatroonika
teams: ['Kultuur', 'Juhatus'] teams: ['Kultuur', 'Juhatus']
contactMethods: contactMethods:
@@ -33,7 +33,7 @@
- name: Erki Lasberg - name: Erki Lasberg
age: 23 age: 23
photo: erki_lasberg_mentor.jpg photo: erki_lasberg_mentor
speciality: IT süsteemide administreerimine speciality: IT süsteemide administreerimine
teams: ['Helpdesk', 'Juhatus'] teams: ['Helpdesk', 'Juhatus']
term: 3 term: 3
@@ -49,7 +49,7 @@
- name: Jürjo Eibak - name: Jürjo Eibak
age: 26 age: 26
photo: jürjo_eibak_mentor.jpg photo: jürjo_eibak_mentor
speciality: Salastatud speciality: Salastatud
teams: ['Kultuur'] teams: ['Kultuur']
contactMethods: contactMethods:
@@ -69,7 +69,7 @@
- name: Katri Lotamõis - name: Katri Lotamõis
age: 29 age: 29
photo: katri_lotamõis_mentor.jpg photo: katri_lotamõis_mentor
speciality: Tarkvaraarendus speciality: Tarkvaraarendus
teams: ['Kultuur', 'Tarkvara'] teams: ['Kultuur', 'Tarkvara']
term: term:
@@ -83,7 +83,7 @@
- name: Kerdo Käärma - name: Kerdo Käärma
age: 22 age: 22
photo: kerdo_käärma_mentor.jpg photo: kerdo_käärma_mentor
speciality: IT süsteemide arendus speciality: IT süsteemide arendus
teams: ['Kultuur', 'Tarkvara', 'Juhatus'] teams: ['Kultuur', 'Tarkvara', 'Juhatus']
term: 3 term: 3
@@ -103,7 +103,7 @@
- name: Reio Opromei - name: Reio Opromei
age: 24 age: 24
photo: reio_opromei_mentor.jpg photo: reio_opromei_mentor
speciality: IT süsteemide arendus speciality: IT süsteemide arendus
teams: ['Kultuur', 'Juhatus'] teams: ['Kultuur', 'Juhatus']
term: term:
@@ -121,7 +121,7 @@
- name: Rene Arumetsa - name: Rene Arumetsa
age: 29 age: 29
photo: rene_arumetsa_mentor.jpg photo: rene_arumetsa_mentor
speciality: IT süsteemide administeerimine speciality: IT süsteemide administeerimine
teams: ['Helpdesk', 'Tarkvara', 'Juhatus'] teams: ['Helpdesk', 'Tarkvara', 'Juhatus']
term: 3 term: 3
@@ -142,7 +142,7 @@
- name: Lembitu Valdmets - name: Lembitu Valdmets
age: 31 age: 31
photo: lembitu_valdmets_mentor.jpg photo: lembitu_valdmets_mentor
speciality: Arvutisüsteemid (Lõpetanud) speciality: Arvutisüsteemid (Lõpetanud)
teams: ['Helpdesk'] teams: ['Helpdesk']
term: null term: null

View File

@@ -1,22 +1,22 @@
# Our work # Our work
# #
- title: Tipilan - title: Tipilan
photo: tipilan.jpg photo: tipilan
url: http://tipilan.ee/ url: http://tipilan.ee/
description: Tipilan on Eesti suurim üliõpilaste korraldatav LAN-üritus. Lapikud tagas ürituse IT-infrastruktuuri ja veebilehe toimimise. description: Tipilan on Eesti suurim üliõpilaste korraldatav LAN-üritus. Lapikud tagas ürituse IT-infrastruktuuri ja veebilehe toimimise.
- title: Remondikohvik - title: Remondikohvik
photo: remondikohvik.jpg photo: remondikohvik
url: https://remondikohvik.lapikud.ee/ url: https://remondikohvik.lapikud.ee/
description: Remondikohvik on Lapikute poolt algatatud ja korraldatud projekt, mis annab asjadele teise elu läbi parandamise. Projekt hõlmab nii ürituste korraldamist kui ka veebilehe väljatöötamist. description: Remondikohvik on Lapikute poolt algatatud ja korraldatud projekt, mis annab asjadele teise elu läbi parandamise. Projekt hõlmab nii ürituste korraldamist kui ka veebilehe väljatöötamist.
- title: Tallinna Tehnikaülikooli Muuseumi eksponaadid - title: Tallinna Tehnikaülikooli Muuseumi eksponaadid
photo: ttu_muusem_placeholder.jpg photo: ttu_muusem_placeholder
url: url:
description: Töö valmis september 2018. description: Töö valmis september 2018.
- title: ENLi koduleht - title: ENLi koduleht
photo: eesti_noorteühenduste_liit.jpg photo: eesti_noorteühenduste_liit
url: http://enl.ee/ url: http://enl.ee/
description: Tegime Eesti Noorteühenduste Liidule uue landing lehe, samuti tegime pluginatega seotud parandusi. description: Tegime Eesti Noorteühenduste Liidule uue landing lehe, samuti tegime pluginatega seotud parandusi.
@@ -33,72 +33,72 @@
# description: Tartus toimus IRL Hitmani mäng mille veebirakenduse me valmistasime # description: Tartus toimus IRL Hitmani mäng mille veebirakenduse me valmistasime
- title: Taksod.net Android äpp - title: Taksod.net Android äpp
photo: taksod-net-android.jpg photo: taksod-net-android
url: https://play.google.com/store/apps/details?id=net.taksod.android url: https://play.google.com/store/apps/details?id=net.taksod.android
description: Androidi äpp, milles on võimalik taksofirma otsida ning läbi äpi kohe helistada ja takso tellida. description: Androidi äpp, milles on võimalik taksofirma otsida ning läbi äpi kohe helistada ja takso tellida.
- title: Taksod.net iOS äpp - title: Taksod.net iOS äpp
photo: taksod-net-ios.jpg photo: taksod-net-ios
url: https://itunes.apple.com/ee/app/taksod-net/id1230208509?mt=8 url: https://itunes.apple.com/ee/app/taksod-net/id1230208509?mt=8
description: iOS äpp, milles on võimalik taksofirma otsida ning läbi äpi kohe helistada ja takso tellida. description: iOS äpp, milles on võimalik taksofirma otsida ning läbi äpi kohe helistada ja takso tellida.
- title: Osaluskogud Eestis - title: Osaluskogud Eestis
photo: osaluskogud_eestis.jpg photo: osaluskogud_eestis
url: url:
description: Teostasime lehel täiendusi. Tänaseks on portaali omanikud selle sulgenud. description: Teostasime lehel täiendusi. Tänaseks on portaali omanikud selle sulgenud.
- title: Tallinna Tehnikaülikooli Puhkpilliorkester - title: Tallinna Tehnikaülikooli Puhkpilliorkester
photo: orkester.jpg photo: orkester
url: http://orkester.ee url: http://orkester.ee
description: Andsime lehele kaasaegse väljanägemise. description: Andsime lehele kaasaegse väljanägemise.
- title: Tallinna Tehnikaülikooli Studentlife - title: Tallinna Tehnikaülikooli Studentlife
photo: studentlife.jpg photo: studentlife
url: url:
description: Arendasime WordPressi platvormil kliendi ettenägemise järgi uue keskkonna, kus tudengid saavad blogipostitusi kirjutada/lugeda ning ka tulevaste ürituste ja organisatsioonide tegevustega kursis olla. Aegajalt viime lehel ka läbi uuendustöid. Tänaseks on portaali omanikud selle sulgenud. description: Arendasime WordPressi platvormil kliendi ettenägemise järgi uue keskkonna, kus tudengid saavad blogipostitusi kirjutada/lugeda ning ka tulevaste ürituste ja organisatsioonide tegevustega kursis olla. Aegajalt viime lehel ka läbi uuendustöid. Tänaseks on portaali omanikud selle sulgenud.
- title: Eesti Üliõpilasesinduse Liit - title: Eesti Üliõpilasesinduse Liit
photo: sallivkool.jpg photo: sallivkool
url: url:
description: description:
- title: ISIC - title: ISIC
photo: isic.jpg photo: isic
url: url:
description: WordPressi platvormil arendatud veebileht, kust leiab kõik vajaliku info ISIC kaardi kohta (soodustused, tellimine jpm). description: WordPressi platvormil arendatud veebileht, kust leiab kõik vajaliku info ISIC kaardi kohta (soodustused, tellimine jpm).
- title: Eesti Jalgratta Virtuaalmuuseum - title: Eesti Jalgratta Virtuaalmuuseum
photo: jalgrattaveeb.jpg photo: jalgrattaveeb
url: http://www.velomuseum.ee/ url: http://www.velomuseum.ee/
description: description:
- title: Meremeeste tööotsingu portaal - title: Meremeeste tööotsingu portaal
photo: nauticalcrew.jpg photo: nauticalcrew
url: url:
description: Tänaseks on portaali omanikud selle sulgenud. description: Tänaseks on portaali omanikud selle sulgenud.
- title: Võti Tulevikku 2013 infoveeb - title: Võti Tulevikku 2013 infoveeb
photo: votitulevikku.jpg photo: votitulevikku
url: url:
description: description:
- title: Ukseproff - title: Ukseproff
photo: ukseproff.jpg photo: ukseproff
url: url:
description: Tänaseks on portaali omanikud selle sulgenud. description: Tänaseks on portaali omanikud selle sulgenud.
- title: Nõmme Tenniseklubi koduleht - title: Nõmme Tenniseklubi koduleht
photo: nommetenniseklubi.jpg photo: nommetenniseklubi
url: url:
description: Tänaseks on portaali omanikud selle sulgenud. description: Tänaseks on portaali omanikud selle sulgenud.
- title: Sporditrennid.ee trenni otsinguportaal - title: Sporditrennid.ee trenni otsinguportaal
photo: sporditrennid.jpg photo: sporditrennid
url: url:
description: Tänaseks on portaali omanikud selle sulgenud. description: Tänaseks on portaali omanikud selle sulgenud.

View File

@@ -1,25 +1,25 @@
- name: Tehnopol - name: Tehnopol
image: tehnopollogo.png image: tehnopollogo
url: https://www.tehnopol.ee/ url: https://www.tehnopol.ee/
additionalText: additionalText:
- name: Tallinna Tehnikaülikool - name: Tallinna Tehnikaülikool
image: taltech_logo.jpg image: taltech_logo
url: https://www.ttu.ee/ url: https://www.ttu.ee/
additionalText: additionalText:
- name: Eesti Üliõpilaskondade Liit - name: Eesti Üliõpilaskondade Liit
image: eyl_logo.png image: eyl_logo
url: https://eyl.ee/ url: https://eyl.ee/
additionalText: additionalText:
- name: Tallinna Tehnikaülikooli Robotiklubi - name: Tallinna Tehnikaülikooli Robotiklubi
image: robotiklubi_logo.png image: robotiklubi_logo
url: https://www.robotiklubi.ee/ url: https://www.robotiklubi.ee/
additionalText: additionalText:
- name: Tallinna Tehnikaülikooli Infotehnoloogia teaduskond - name: Tallinna Tehnikaülikooli Infotehnoloogia teaduskond
image: taltech_IT_teaduskond_logo.png image: taltech_IT_teaduskond_logo
url: https://taltech.ee/et/infotehnoloogia-teaduskond url: https://taltech.ee/et/infotehnoloogia-teaduskond
additionalText: additionalText:

View File

@@ -1,190 +1,190 @@
- year: 2025 (talv, kevad) - year: 2025 (talv, kevad)
members: members:
- name: Christopher Rammul - name: Christopher Rammul
image: christopher_rammul.jpg image: christopher_rammul
- name: Erki Lasberg - name: Erki Lasberg
image: erki_lasberg.jpg image: erki_lasberg
- name: Rene Arumetsa - name: Rene Arumetsa
image: rene_arumetsa.jpg image: rene_arumetsa
- name: Hanno Vene - name: Hanno Vene
image: hanno_vene2.jpg image: hanno_vene2
- year: 2024 (suvi, sügis, talv) - year: 2024 (suvi, sügis, talv)
members: members:
- name: Eva-Marie Alasi - name: Eva-Marie Alasi
image: Eva-Marie_Alasi.jpg image: Eva-Marie_Alasi
- name: Erki Lasberg - name: Erki Lasberg
image: erki_lasberg.jpg image: erki_lasberg
- name: Rene Arumetsa - name: Rene Arumetsa
image: rene_arumetsa.jpg image: rene_arumetsa
- name: Christopher Rammul - name: Christopher Rammul
image: christopher_rammul.jpg image: christopher_rammul
- name: Karina Reisel - name: Karina Reisel
image: karina_reisel.jpg image: karina_reisel
- year: 2023 - year: 2023
members: members:
- name: Lembitu Valdmets - name: Lembitu Valdmets
image: lembitu_valdmets2.jpg image: lembitu_valdmets2
- name: Ott-Eerik Õun - name: Ott-Eerik Õun
image: ott-eerik_oun.jpg image: ott-eerik_oun
- name: Andree Uuetoa - name: Andree Uuetoa
image: andree_uuetoa.jpg image: andree_uuetoa
- name: Pearu Vaalma - name: Pearu Vaalma
image: siinus.jpg image: siinus
- name: Karina Reisel - name: Karina Reisel
image: karina_reisel.jpg image: karina_reisel
- year: 2022 - year: 2022
members: members:
- name: Carina Ruut - name: Carina Ruut
image: carina_ruut.jpg image: carina_ruut
- name: Karl Eric Mõttus - name: Karl Eric Mõttus
image: karl_eric_mottus.jpg image: karl_eric_mottus
- name: Laura Anni - name: Laura Anni
image: laura_anni.jpg image: laura_anni
- name: Anet Mitt - name: Anet Mitt
image: anet_mitt.jpg image: anet_mitt
- name: Taeri Saar - name: Taeri Saar
image: taeri_saar.jpg image: taeri_saar
- year: 2021 - year: 2021
members: members:
- name: Carina Ruut - name: Carina Ruut
image: carina_ruut.jpg image: carina_ruut
- name: Andrei Gužovski - name: Andrei Gužovski
image: andrei_guzovski.jpg image: andrei_guzovski
- name: Kristjan Kõiv - name: Kristjan Kõiv
image: kristjan_koiv.png image: kristjan_koiv
- name: Ingrid-Regina Vähi - name: Ingrid-Regina Vähi
image: ingrid_regina_vahi.jpg image: ingrid_regina_vahi
- name: Marcus Pruks - name: Marcus Pruks
image: marcus_pruks.JPG image: marcus_pruks
- year: 2020 - year: 2020
members: members:
- name: Liisa Heinla - name: Liisa Heinla
image: liisa_heinla.jpg image: liisa_heinla
- name: Andrei Gužovski - name: Andrei Gužovski
image: andrei_guzovski.jpg image: andrei_guzovski
- name: Mattias Vahtra - name: Mattias Vahtra
image: mattias_vahtra.jpg image: mattias_vahtra
- name: Sander Kornet - name: Sander Kornet
image: sander_kornet.jpg image: sander_kornet
- year: 2019 - year: 2019
members: members:
- name: Risto Leesmäe - name: Risto Leesmäe
image: risto_leesmäe.jpg image: risto_leesmäe
- name: Lembitu Valdmets - name: Lembitu Valdmets
image: lembitu_valdmets.jpg image: lembitu_valdmets
- name: Hanno Vene - name: Hanno Vene
image: hanno_vene.jpg image: hanno_vene
- name: Peter-Sten Annus - name: Peter-Sten Annus
image: peter-sten_annus.jpg image: peter-sten_annus
- name: Roosi-Ann Tõlgu - name: Roosi-Ann Tõlgu
image: roosi-ann_tõlgu.jpg image: roosi-ann_tõlgu
- year: 2018 - year: 2018
members: members:
- name: Hanno Vene - name: Hanno Vene
image: hanno_vene.jpg image: hanno_vene
- name: Kaarel Pärtel - name: Kaarel Pärtel
image: kaarel_pärtel.jpg image: kaarel_pärtel
- name: Martin Oblikas - name: Martin Oblikas
image: martin_oblikas.jpg image: martin_oblikas
- name: Risto Leesmäe - name: Risto Leesmäe
image: risto_leesmäe.jpg image: risto_leesmäe
- name: Asko Närep - name: Asko Närep
image: asko_närep.jpg image: asko_närep
- year: 2017 - year: 2017
members: members:
- name: Kertu Nurmberg - name: Kertu Nurmberg
image: kertu_nurmberg.jpg image: kertu_nurmberg
- name: Tõnis Piirits - name: Tõnis Piirits
image: tõnis_piirits.jpg image: tõnis_piirits
- name: Lembitu Valdmets - name: Lembitu Valdmets
image: lembitu_valdmets.jpg image: lembitu_valdmets
- name: Rasmus Koit - name: Rasmus Koit
image: rasmus_koit.jpg image: rasmus_koit
- name: Sigrid Kirss - name: Sigrid Kirss
image: sigrid_kirss.jpg image: sigrid_kirss
- year: 2016 - year: 2016
members: members:
- name: Kertu Pikk - name: Kertu Pikk
image: kertu_pikk_2016.jpg image: kertu_pikk_2016
- name: Kertu Nurmberg - name: Kertu Nurmberg
image: kertu_nurmberg.jpg image: kertu_nurmberg
- name: Lembitu Valdmets - name: Lembitu Valdmets
image: lembitu_valdmets.jpg image: lembitu_valdmets
- name: Nansy Ly Endma - name: Nansy Ly Endma
image: nansy_ly_endma.jpg image: nansy_ly_endma
- year: 2015 - year: 2015
members: members:
- name: Berta Härsing - name: Berta Härsing
image: berta_harsing.jpg image: berta_harsing
- name: Ann-Claire Utt - name: Ann-Claire Utt
image: ann-claire_utt.jpg image: ann-claire_utt
- name: Oole Tuurmaa - name: Oole Tuurmaa
image: oole_tuurmaa.png image: oole_tuurmaa
- name: Pärlin Luhila - name: Pärlin Luhila
image: pärlin_luhila.png image: pärlin_luhila
- name: Kertu Pikk - name: Kertu Pikk
image: kertu_pikk_2015.png image: kertu_pikk_2015
@@ -192,177 +192,177 @@
- year: 2014 - year: 2014
members: members:
- name: Karli Oruste - name: Karli Oruste
image: karli_oruste.jpg image: karli_oruste
- name: Berta Härsing - name: Berta Härsing
image: berta_harsing.jpg image: berta_harsing
- name: Siim Talts - name: Siim Talts
image: siim_talts.jpg image: siim_talts
- year: 2013 - year: 2013
members: members:
- name: Märt Lepik - name: Märt Lepik
image: märt_lepik.jpg image: märt_lepik
- name: Karli Oruste - name: Karli Oruste
image: karli_oruste.jpg image: karli_oruste
- name: Aleksandr Požidajev - name: Aleksandr Požidajev
image: aleksandr_požidajev.jpg image: aleksandr_požidajev
- year: 2012 - year: 2012
members: members:
- name: Märt Lepik - name: Märt Lepik
image: märt_lepik.jpg image: märt_lepik
- name: Helen Tiitma - name: Helen Tiitma
image: helen_tiitma.jpg image: helen_tiitma
- name: Raul Aassalu - name: Raul Aassalu
image: raul_aassalu.jpg image: raul_aassalu
- year: 2011 - year: 2011
members: members:
- name: Märt Lepik - name: Märt Lepik
image: märt_lepik.jpg image: märt_lepik
- name: Risto Maasing - name: Risto Maasing
image: risto_maasing.jpg image: risto_maasing
- name: Roel Rahkema - name: Roel Rahkema
image: roel_rahkema.jpg image: roel_rahkema
- year: 2010 - year: 2010
members: members:
- name: Margus Mahler - name: Margus Mahler
image: margus_mahler.jpg image: margus_mahler
- name: Janne Raudsepp - name: Janne Raudsepp
image: janne_raudsepp.jpg image: janne_raudsepp
- name: Tõnis Märtmaa - name: Tõnis Märtmaa
image: tõnis_märtmaa.jpg image: tõnis_märtmaa
- year: 2009 - year: 2009
members: members:
- name: Margus Mahler - name: Margus Mahler
image: margus_mahler.jpg image: margus_mahler
- name: Risto Maasing - name: Risto Maasing
image: risto_maasing.jpg image: risto_maasing
- name: Tõnis Trumaa - name: Tõnis Trumaa
image: tõnis_trumaa.jpg image: tõnis_trumaa
- name: Tõnis Märtmaa - name: Tõnis Märtmaa
image: tõnis_märtmaa.jpg image: tõnis_märtmaa
- name: Janne Raudsepp - name: Janne Raudsepp
image: janne_raudsepp.jpg image: janne_raudsepp
- year: 2008 - year: 2008
members: members:
- name: Tõnis Märtmaa - name: Tõnis Märtmaa
image: tõnis_märtmaa.jpg image: tõnis_märtmaa
- name: Kristjan Haavik - name: Kristjan Haavik
image: kristjan_haavik_2008.jpg image: kristjan_haavik_2008
- name: Risto Maasing - name: Risto Maasing
image: risto_maasing.jpg image: risto_maasing
- name: Karin Viil - name: Karin Viil
image: karin_viil.jpg image: karin_viil
- name: Petri Behm - name: Petri Behm
image: petri_behm.jpg image: petri_behm
- year: 2007 - year: 2007
members: members:
- name: Kristjan Haavik - name: Kristjan Haavik
image: kristjan_haavik_2007.jpg image: kristjan_haavik_2007
- name: Priit Lepp - name: Priit Lepp
image: priit_lepp.jpg image: priit_lepp
- name: Ave Tarend - name: Ave Tarend
image: ave_tarend.jpg image: ave_tarend
- name: Õnne Laanmets - name: Õnne Laanmets
image: õnne_laanmets.jpg image: õnne_laanmets
- name: Tõnis Märtmaa - name: Tõnis Märtmaa
image: tõnis_märtmaa.jpg image: tõnis_märtmaa
- name: Margus Mahler - name: Margus Mahler
image: margus_mahler.jpg image: margus_mahler
- year: 2006 - year: 2006
members: members:
- name: Aive Uus - name: Aive Uus
image: aive_uus.jpg image: aive_uus
- name: Margus Mahler - name: Margus Mahler
image: margus_mahler.jpg image: margus_mahler
- name: Kristjan Haavik - name: Kristjan Haavik
image: kristjan_haavik_2007.jpg image: kristjan_haavik_2007
- year: 2005 - year: 2005
members: members:
- name: Aive Uus - name: Aive Uus
image: aive_uus.jpg image: aive_uus
- name: Eret Rääk - name: Eret Rääk
image: eret_rääk.jpg image: eret_rääk
- name: Kristjan Haavik - name: Kristjan Haavik
image: kristjan_haavik_2007.jpg image: kristjan_haavik_2007
- year: 2004 - year: 2004
members: members:
- name: Aive Uus - name: Aive Uus
image: aive_uus.jpg image: aive_uus
- name: Eret Rääk - name: Eret Rääk
image: eret_rääk.jpg image: eret_rääk
- name: Kristjan Haavik - name: Kristjan Haavik
image: kristjan_haavik_2007.jpg image: kristjan_haavik_2007
- year: 2003 - year: 2003
members: members:
- name: Aive Uus - name: Aive Uus
image: aive_uus.jpg image: aive_uus
- name: Jaak Lember - name: Jaak Lember
image: jaak_lember.jpg image: jaak_lember
- name: Siim Valgeväli - name: Siim Valgeväli
image: siim_valgeväli.jpg image: siim_valgeväli
- year: 2002 - year: 2002
members: members:
- name: Lauri Till - name: Lauri Till
image: lauri_till.jpg image: lauri_till
- name: Jaak Lember - name: Jaak Lember
image: jaak_lember.jpg image: jaak_lember
- name: Meelik Gornoi - name: Meelik Gornoi
image: meelik_gornoi.jpg image: meelik_gornoi

View File

@@ -16,8 +16,8 @@
en: March 2026 en: March 2026
est: Märts 2026 est: Märts 2026
gallery: gallery:
- temp1.jpg - temp1
- temp2.jpg - temp2
- title: - title:
en: C workshop en: C workshop
@@ -35,7 +35,7 @@
en: March 2026 en: March 2026
est: Märts 2026 est: Märts 2026
gallery: gallery:
- temp1.jpg - temp1
- temp2.jpg - temp2
- temp3.jpg - temp3

Binary file not shown.

Before

Width:  |  Height:  |  Size: 241 KiB

View File

Before

Width:  |  Height:  |  Size: 1.8 KiB

After

Width:  |  Height:  |  Size: 1.8 KiB

View File

Before

Width:  |  Height:  |  Size: 28 KiB

After

Width:  |  Height:  |  Size: 28 KiB

View File

Before

Width:  |  Height:  |  Size: 363 KiB

After

Width:  |  Height:  |  Size: 363 KiB

View File

Before

Width:  |  Height:  |  Size: 3.2 MiB

After

Width:  |  Height:  |  Size: 3.2 MiB

View File

Before

Width:  |  Height:  |  Size: 86 KiB

After

Width:  |  Height:  |  Size: 86 KiB

View File

Before

Width:  |  Height:  |  Size: 358 KiB

After

Width:  |  Height:  |  Size: 358 KiB

View File

Before

Width:  |  Height:  |  Size: 275 KiB

After

Width:  |  Height:  |  Size: 275 KiB

View File

Before

Width:  |  Height:  |  Size: 264 KiB

After

Width:  |  Height:  |  Size: 264 KiB

View File

Before

Width:  |  Height:  |  Size: 521 KiB

After

Width:  |  Height:  |  Size: 521 KiB

View File

Before

Width:  |  Height:  |  Size: 87 KiB

After

Width:  |  Height:  |  Size: 87 KiB

View File

Before

Width:  |  Height:  |  Size: 85 KiB

After

Width:  |  Height:  |  Size: 85 KiB

View File

Before

Width:  |  Height:  |  Size: 91 KiB

After

Width:  |  Height:  |  Size: 91 KiB

View File

Before

Width:  |  Height:  |  Size: 86 KiB

After

Width:  |  Height:  |  Size: 86 KiB

View File

Before

Width:  |  Height:  |  Size: 93 KiB

After

Width:  |  Height:  |  Size: 93 KiB

View File

@@ -1,11 +0,0 @@
mkdir -p optimised
for file in original/*; do
echo $file
base_name=$(basename $file)
if [[ $base_name == *"airiin"* ]] || [[ $base_name == *"lembitu"* ]] ; then
gravity=north
else
gravity=center
fi
convert ${file} -resize "400x400^>" -gravity $gravity -extent 400x400 optimised/${base_name%}
done

Binary file not shown.

Before

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 31 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 38 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 61 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 38 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 136 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 76 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 29 KiB

View File

@@ -1,8 +0,0 @@
#!/usr/bin/env bash
mkdir -p optimised
for file in original-jpg-converted/*; do
echo $file
base_name=$(basename $file)
convert ${file} -resize "1000x1000>" -quality 89 optimised/${base_name}
done

Binary file not shown.

Before

Width:  |  Height:  |  Size: 143 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 146 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 31 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 189 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 120 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 688 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 152 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 42 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 145 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 76 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 82 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 86 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 29 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 65 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 53 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 25 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 214 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 158 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 97 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 86 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 97 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 280 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 178 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 164 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 103 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 430 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 121 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 337 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 29 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 70 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 98 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 58 KiB

View File

@@ -1,6 +0,0 @@
mkdir -p optimised
for file in original/*; do
echo $file
base_name=$(basename $file)
convert ${file} -resize "200x200^>" -gravity center -crop 200x200+0+0 -quality 89 optimised/${base_name}
done

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 33 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 55 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 46 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 75 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 43 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.5 KiB

Some files were not shown because too many files have changed in this diff Show More