From 530ca8e21a9217bece4efac4bfe56e1986eb1d95 Mon Sep 17 00:00:00 2001 From: Stefano Tamagnini Date: Sun, 3 May 2026 10:44:09 +0000 Subject: [PATCH 01/54] plan: add comprehensive implementation plan for project restructure 33 tasks covering: - Directory structure creation - File movements (Jekyll, Tailwind, Docker) - Configuration updates (_config.yml, package.json) - Makefile rewrite (all Docker commands) - Script updates (screenshot paths) - Documentation updates (CLAUDE.md) - Testing (build, serve, build-css, visual-baseline, check-links) All steps include exact commands and expected outputs. --- .../plans/2026-05-03-project-restructure.md | 1514 +++++++++++++++++ 1 file changed, 1514 insertions(+) create mode 100644 docs/superpowers/plans/2026-05-03-project-restructure.md diff --git a/docs/superpowers/plans/2026-05-03-project-restructure.md b/docs/superpowers/plans/2026-05-03-project-restructure.md new file mode 100644 index 0000000..796f5bc --- /dev/null +++ b/docs/superpowers/plans/2026-05-03-project-restructure.md @@ -0,0 +1,1514 @@ +# Project Restructure Implementation Plan + +> **For agentic workers:** REQUIRED SUB-SKILL: Use superpowers:subagent-driven-development (recommended) or superpowers:executing-plans to implement this plan task-by-task. Steps use checkbox (`- [ ]`) syntax for tracking. + +**Goal:** Restructure bitprepared.it project for cleaner separation between source code (`src/`), generated content (`output/`), and build artifacts + +**Architecture:** Move Jekyll source, Tailwind config, and Docker files into `src/` subdirectories, create `output/` for generated content, update all Docker commands to use proper workdirs and volumes with correct permissions + +**Tech Stack:** Jekyll 4, Docker, Make, Node.js (Tailwind CSS), Bash + +--- + +## Task 1: Create Git Branch + +**Files:** +- None (git operation) + +- [ ] **Step 1: Create new feature branch** + +```bash +cd /workspace/bitprepared.it +git checkout -b feature/project-restructure +``` + +- [ ] **Step 2: Verify branch** + +```bash +git branch +``` + +Expected: `* feature/project-restructure` + +- [ ] **Step 3: Commit branch creation** + +```bash +git commit --allow-empty -m "feat: start project restructure branch" +``` + +--- + +## Task 2: Create New Directory Structure + +**Files:** +- Create: `src/jekyll/` +- Create: `src/tailwind/` +- Create: `src/docker/` +- Create: `output/` + +- [ ] **Step 1: Create source directories** + +```bash +mkdir -p src/jekyll src/tailwind src/docker output +``` + +- [ ] **Step 2: Verify directories created** + +```bash +ls -la src/ +``` + +Expected: `jekyll/`, `tailwind/`, `docker/` listed + +```bash +ls -la output/ +``` + +Expected: Empty directory + +- [ ] **Step 3: Commit directory structure** + +```bash +git add src/ output/ +git commit -m "feat: create src/ and output/ directory structure" +``` + +--- + +## Task 3: Move Jekyll Files to src/jekyll/ + +**Files:** +- Move: `_config.yml`, `Gemfile`, `.htmltest.yml` +- Move: `_posts/`, `_layouts/`, `_includes/`, `_plugins/`, `_pages/` +- Move: `blog/`, `tags/`, `_eventi/`, `_software/` +- Move: `assets/`, `docs/` +- Move: `index.html`, `about.md`, `robots.txt` + +- [ ] **Step 1: Move Jekyll config files** + +```bash +mv _config.yml Gemfile .htmltest.yml src/jekyll/ +``` + +- [ ] **Step 2: Move Jekyll directories** + +```bash +mv _posts _layouts _includes _plugins _pages src/jekyll/ +mv blog tags _eventi _software src/jekyll/ +``` + +- [ ] **Step 3: Move assets and docs** + +```bash +mv assets docs src/jekyll/ +``` + +- [ ] **Step 4: Move root content files** + +```bash +mv index.html about.md robots.txt src/jekyll/ +``` + +- [ ] **Step 5: Verify all Jekyll files moved** + +```bash +ls -la src/jekyll/ +``` + +Expected: All Jekyll files and directories listed + +```bash +ls -la | grep -E "^(d|).*(_posts|_layouts|blog|tags|assets|index\.html)" +``` + +Expected: No Jekyll files at root (only Makefile, CHANGELOG.txt, README.md, LICENSE.txt, etc.) + +- [ ] **Step 6: Commit Jekyll files move** + +```bash +git add -A +git commit -m "refactor: move Jekyll source to src/jekyll/" +``` + +--- + +## Task 4: Move Tailwind Files to src/tailwind/ + +**Files:** +- Move: `package.json`, `tailwind.config.js` + +- [ ] **Step 1: Move Tailwind files** + +```bash +mv package.json tailwind.config.js src/tailwind/ +``` + +- [ ] **Step 2: Verify files moved** + +```bash +ls -la src/tailwind/ +``` + +Expected: `package.json`, `tailwind.config.js` listed + +- [ ] **Step 3: Commit Tailwind files move** + +```bash +git add src/tailwind/ +git commit -m "refactor: move Tailwind config to src/tailwind/" +``` + +--- + +## Task 5: Move Docker Files to src/docker/ + +**Files:** +- Move: `docker/` + +- [ ] **Step 1: Move Docker directory** + +```bash +mv docker src/docker +``` + +- [ ] **Step 2: verify Docker directory moved** + +```bash +ls -la src/docker/ +``` + +Expected: `accessibility/` subdirectory listed + +- [ ] **Step 3: Commit Docker files move** + +```bash +git add src/docker/ +git commit -m "refactor: move Docker files to src/docker/" +``` + +--- + +## Task 6: Move autodownload.sh to scripts/ + +**Files:** +- Move: `autodownload.sh` + +- [ ] **Step 1: Move autodownload script** + +```bash +mv autodownload.sh scripts/ +``` + +- [ ] **Step 2: Verify script moved** + +```bash +ls -la scripts/autodownload.sh +``` + +Expected: File exists + +- [ ] **Step 3: Commit script move** + +```bash +git add scripts/autodownload.sh +git commit -m "refactor: move autodownload.sh to scripts/" +``` + +--- + +## Task 7: Move screenshots to output/ + +**Files:** +- Move: `screenshots/` + +- [ ] **Step 1: Move screenshots directory** + +```bash +mv screenshots output/ +``` + +- [ ] **Step 2: Verify screenshots moved** + +```bash +ls -la output/screenshots/ +``` + +Expected: Subdirectories like `desktop/`, `mobile/`, `tablet/` or `report/` + +- [ ] **Step 3: Commit screenshots move** + +```bash +git add output/screenshots/ +git commit -m "refactor: move screenshots to output/ as generated content" +``` + +--- + +## Task 8: Update Jekyll _config.yml + +**Files:** +- Modify: `src/jekyll/_config.yml` + +- [ ] **Step 1: Read current _config.yml** + +```bash +cat src/jekyll/_config.yml +``` + +- [ ] **Step 2: Add destination and cache paths** + +Append to `src/jekyll/_config.yml`: + +```yaml +# Output directory (relative to src/jekyll/) +destination: ../../output/_site + +# Cache directory (relative to src/jekyll/) +cache: ../../output/.jekyll-cache +``` + +- [ ] **Step 3: Verify _config.yml changes** + +```bash +cat src/jekyll/_config.yml | tail -5 +``` + +Expected: New `destination` and `cache` entries visible + +- [ ] **Step 4: Commit _config.yml update** + +```bash +git add src/jekyll/_config.yml +git commit -m "config: set Jekyll output to ../../output/_site and cache to ../../output/.jekyll-cache" +``` + +--- + +## Task 9: Update Tailwind package.json + +**Files:** +- Modify: `src/tailwind/package.json` + +- [ ] **Step 1: Read current package.json** + +```bash +cat src/tailwind/package.json +``` + +- [ ] **Step 2: Update build-css script path** + +Replace the `build:css` script in `src/tailwind/package.json`: + +Current: +```json +"build:css": "tailwindcss -i ./assets/css/tailwind-input.css -o ./assets/css/tailwind.css --minify" +``` + +New: +```json +"build:css": "tailwindcss -i ../jekyll/assets/css/tailwind-input.css -o ../jekyll/assets/css/tailwind.css --minify" +``` + +Complete file should be: + +```json +{ + "devDependencies": { + "tailwindcss": "^3.4.0" + }, + "scripts": { + "build:css": "tailwindcss -i ../jekyll/assets/css/tailwind-input.css -o ../jekyll/assets/css/tailwind.css --minify" + } +} +``` + +- [ ] **Step 3: Verify package.json changes** + +```bash +cat src/tailwind/package.json +``` + +Expected: Paths now point to `../jekyll/assets/css/` + +- [ ] **Step 4: Commit package.json update** + +```bash +git add src/tailwind/package.json +git commit -m "fix: update Tailwind build paths for src/ structure" +``` + +--- + +## Task 10: Update Makefile - Docker Base Configuration + +**Files:** +- Modify: `Makefile` + +- [ ] **Step 1: Read current Makefile variables** + +```bash +head -10 Makefile +``` + +- [ ] **Step 2: Update Docker volume variables** + +Replace lines 1-8 in `Makefile`: + +Current: +```makefile +JEKYLL_VERSION ?= 4 +PORT ?= 4000 +STATIC_PORT ?= 8000 +PROJECT_PATH ?= /workspace/bitprepared.it +DOCKER_IMAGE = jekyll/jekyll:$(JEKYLL_VERSION) +GEM_VOLUME = bitprepared-gems +POLLING ?= 0 +A11Y_PAGE ?= full +``` + +New: +```makefile +JEKYLL_VERSION ?= 4 +PORT ?= 4000 +STATIC_PORT ?= 8000 +DOCKER_IMAGE = jekyll/jekyll:$(JEKYLL_VERSION) +NODE_MODULES_VOLUME = bitprepared-node-modules +VENDOR_VOLUME = bitprepared-vendor +CACHE_VOLUME = bitprepared-jekyll-cache +POLLING ?= 0 +A11Y_PAGE ?= full +``` + +- [ ] **Step 3: Verify Makefile variable changes** + +```bash +head -10 Makefile +``` + +Expected: New volume names visible + +- [ ] **Step 4: Commit Makefile variable updates** + +```bash +git add Makefile +git commit -m "refactor: update Docker volume names for cache separation" +``` + +--- + +## Task 11: Update Makefile - serve Command + +**Files:** +- Modify: `Makefile` + +- [ ] **Step 1: Read current serve target** + +```bash +sed -n '/^serve:/,/^$/p' Makefile +``` + +- [ ] **Step 2: Update serve command** + +Replace the `serve` target in `Makefile`: + +Current: +```makefile +serve: + docker run --rm -it \ + --mount type=bind,source=${PWD},target=/srv/jekyll \ + --volume="$(GEM_VOLUME):/usr/local/bundle" \ + -e BUNDLE_PATH=/usr/local/bundle \ + -p $(PORT):4000 \ + $(DOCKER_IMAGE) \ + jekyll serve --config _config.yml,_config_dev.yml $(if $(filter 1,$(POLLING)),--force_polling,) +``` + +New: +```makefile +serve: + docker run --rm -it \ + --user $(shell id -u):$(shell id -g) \ + --mount type=bind,source=${PWD}/src,target=/workspace \ + --mount type=bind,source=${PWD}/output,target=/workspace/output \ + --volume="$(NODE_MODULES_VOLUME):/workspace/node_modules" \ + --volume="$(VENDOR_VOLUME):/workspace/vendor" \ + --volume="$(CACHE_VOLUME):/workspace/.jekyll-cache" \ + -w /workspace/jekyll \ + -e JEKYLL_PATH=/workspace/jekyll \ + -p $(PORT):4000 \ + $(DOCKER_IMAGE) \ + bundle exec jekyll serve --config _config.yml,_config_dev.yml $(if $(filter 1,$(POLLING)),--force_polling,) +``` + +- [ ] **Step 3: Verify serve command** + +```bash +sed -n '/^serve:/,/^$/p' Makefile +``` + +Expected: New workdir `/workspace/jekyll`, mounts for `src/` and `output/`, user flag + +- [ ] **Step 4: Commit serve command update** + +```bash +git add Makefile +git commit -m "refactor: update serve command for src/ structure with correct permissions" +``` + +--- + +## Task 12: Update Makefile - build Command + +**Files:** +- Modify: `Makefile` + +- [ ] **Step 1: Read current build target** + +```bash +sed -n '/^build:/,/^$/p' Makefile | head -20 +``` + +- [ ] **Step 2: Update build command** + +Replace the `build` target in `Makefile`: + +Current: +```makefile +build: + docker run --rm -it \ + --mount type=bind,source=${PWD},target=/srv/jekyll \ + --volume="$(GEM_VOLUME):/usr/local/bundle" \ + -e BUNDLE_PATH=/usr/local/bundle \ + $(DOCKER_IMAGE) \ + jekyll build +``` + +New: +```makefile +build: + docker run --rm -it \ + --user $(shell id -u):$(shell id -g) \ + --mount type=bind,source=${PWD}/src,target=/workspace \ + --mount type=bind,source=${PWD}/output,target=/workspace/output \ + --volume="$(NODE_MODULES_VOLUME):/workspace/node_modules" \ + --volume="$(VENDOR_VOLUME):/workspace/vendor" \ + --volume="$(CACHE_VOLUME):/workspace/.jekyll-cache" \ + -w /workspace/jekyll \ + -e JEKYLL_PATH=/workspace/jekyll \ + $(DOCKER_IMAGE) \ + bundle exec jekyll build +``` + +- [ ] **Step 3: Verify build command** + +```bash +sed -n '/^build:/,/^$/p' Makefile +``` + +Expected: Same structure as serve, no port mapping + +- [ ] **Step 4: Commit build command update** + +```bash +git add Makefile +git commit -m "refactor: update build command for src/ structure" +``` + +--- + +## Task 13: Update Makefile - build-css Command + +**Files:** +- Modify: `Makefile` + +- [ ] **Step 1: Read current build-css target** + +```bash +sed -n '/^build-css:/,/^$/p' Makefile +``` + +- [ ] **Step 2: Update build-css command** + +Replace the `build-css` target in `Makefile`: + +Current: +```makefile +build-css: + docker run --rm -it \ + --mount type=bind,source=${PWD},target=/app \ + -w /app \ + -e BUILD_CSS=1 \ + node:20 \ + npm run build:css +``` + +New: +```makefile +build-css: + docker run --rm -it \ + --user $(shell id -u):$(shell id -g) \ + --mount type=bind,source=${PWD}/src,target=/workspace \ + --volume="$(NODE_MODULES_VOLUME):/workspace/node_modules" \ + -w /workspace/tailwind \ + node:20 \ + npm run build:css +``` + +- [ ] **Step 3: Verify build-css command** + +```bash +sed -n '/^build-css:/,/^$/p' Makefile +``` + +Expected: Workdir `/workspace/tailwind`, node-modules volume + +- [ ] **Step 4: Commit build-css command update** + +```bash +git add Makefile +git commit -m "refactor: update build-css command for src/tailwind/ structure" +``` + +--- + +## Task 14: Update Makefile - install Command + +**Files:** +- Modify: `Makefile` + +- [ ] **Step 1: Read current install target** + +```bash +sed -n '/^install:/,/^$/p' Makefile | head -20 +``` + +- [ ] **Step 2: Update install command** + +Replace the `install` target in `Makefile`: + +Current: +```makefile +install: + docker run --rm -it \ + --mount type=bind,source=${PWD},target=/srv/jekyll \ + --volume="$(GEM_VOLUME):/usr/local/bundle" \ + -e BUNDLE_PATH=/usr/local/bundle \ + $(DOCKER_IMAGE) \ + bundle install +``` + +New: +```makefile +install: + @echo "šŸ“¦ Installing npm packages..." + docker run --rm -it \ + --user $(shell id -u):$(shell id -g) \ + --mount type=bind,source=${PWD}/src,target=/workspace \ + --volume="$(NODE_MODULES_VOLUME):/workspace/node_modules" \ + -w /workspace/tailwind \ + node:20 \ + npm install + @echo "šŸ“¦ Installing Ruby gems..." + docker run --rm -it \ + --user $(shell id -u):$(shell id -g) \ + --mount type=bind,source=${PWD}/src,target=/workspace \ + --volume="$(VENDOR_VOLUME):/workspace/vendor" \ + -w /workspace/jekyll \ + $(DOCKER_IMAGE) \ + bundle install +``` + +- [ ] **Step 3: Verify install command** + +```bash +sed -n '/^install:/,/^$/p' Makefile +``` + +Expected: Two docker commands - npm for tailwind, bundle for jekyll + +- [ ] **Step 4: Commit install command update** + +```bash +git add Makefile +git commit -m "refactor: update install command for both npm and bundle" +``` + +--- + +## Task 15: Update Makefile - install-gems Command + +**Files:** +- Modify: `Makefile` + +- [ ] **Step 1: Read current install-gems target** + +```bash +sed -n '/^install-gems:/,/^$/p' Makefile | head -20 +``` + +- [ ] **Step 2: Update install-gems command** + +Replace the `install-gems` target: + +Current: +```makefile +install-gems: + docker run --rm -it \ + --mount type=bind,source=${PWD},target=/srv/jekyll \ + --volume="$(GEM_VOLUME):/usr/local/bundle" \ + -e BUNDLE_PATH=/usr/local/bundle \ + $(DOCKER_IMAGE) \ + bundle install +``` + +New: +```makefile +install-gems: + docker run --rm -it \ + --user $(shell id -u):$(shell id -g) \ + --mount type=bind,source=${PWD}/src,target=/workspace \ + --volume="$(VENDOR_VOLUME):/workspace/vendor" \ + -w /workspace/jekyll \ + $(DOCKER_IMAGE) \ + bundle install +``` + +- [ ] **Step 3: Verify install-gems command** + +```bash +sed -n '/^install-gems:/,/^$/p' Makefile +``` + +Expected: Workdir `/workspace/jekyll`, vendor volume + +- [ ] **Step 4: Commit install-gems command update** + +```bash +git add Makefile +git commit -m "refactor: update install-gems command for src/jekyll/ structure" +``` + +--- + +## Task 16: Update Makefile - clean Command + +**Files:** +- Modify: `Makefile` + +- [ ] **Step 1: Read current clean target** + +```bash +sed -n '/^clean:/,/^$/p' Makefile +``` + +- [ ] **Step 2: Update clean command** + +Replace the `clean` target: + +Current: +```makefile +clean: + rm -rf _site +``` + +New: +```makefile +clean: + rm -rf output/_site output/.jekyll-cache +``` + +- [ ] **Step 3: Verify clean command** + +```bash +sed -n '/^clean:/,/^$/p' Makefile +``` + +Expected: Removes `output/_site` and `output/.jekyll-cache` + +- [ ] **Step 4: Commit clean command update** + +```bash +git add Makefile +git commit -m "refactor: update clean to remove output/ directories" +``` + +--- + +## Task 17: Update Makefile - serve-bg Command + +**Files:** +- Modify: `Makefile` + +- [ ] **Step 1: Read current serve-bg target** + +```bash +sed -n '/^serve-bg:/,/^serve-static:/p' Makefile | head -30 +``` + +- [ ] **Step 2: Update serve-bg command** + +Replace the `serve-bg` target: + +Current: +```makefile +serve-bg: + @echo "šŸš€ Avvio Jekyll in background..." + @docker stop bitprepared-jekyll-$(PORT) 2>/dev/null || true + @docker rm bitprepared-jekyll-$(PORT) 2>/dev/null || true + @docker run -d \ + --name bitprepared-jekyll-$(PORT) \ + --mount type=bind,source=${PWD},target=/srv/jekyll \ + --volume="$(GEM_VOLUME):/usr/local/bundle" \ + -e BUNDLE_PATH=/usr/local/bundle \ + -p $(PORT):4000 \ + $(DOCKER_IMAGE) \ + jekyll serve --config _config.yml,_config_dev.yml --host 0.0.0.0 > /dev/null +``` + +New: +```makefile +serve-bg: + @echo "šŸš€ Avvio Jekyll in background..." + @docker stop bitprepared-jekyll-$(PORT) 2>/dev/null || true + @docker rm bitprepared-jekyll-$(PORT) 2>/dev/null || true + @docker run -d \ + --name bitprepared-jekyll-$(PORT) \ + --user $(shell id -u):$(shell id -g) \ + --mount type=bind,source=${PWD}/src,target=/workspace \ + --mount type=bind,source=${PWD}/output,target=/workspace/output \ + --volume="$(NODE_MODULES_VOLUME):/workspace/node_modules" \ + --volume="$(VENDOR_VOLUME):/workspace/vendor" \ + --volume="$(CACHE_VOLUME):/workspace/.jekyll-cache" \ + -w /workspace/jekyll \ + -e JEKYLL_PATH=/workspace/jekyll \ + -p $(PORT):4000 \ + $(DOCKER_IMAGE) \ + bundle exec jekyll serve --config _config.yml,_config_dev.yml --host 0.0.0.0 > /dev/null +``` + +- [ ] **Step 3: Verify serve-bg command** + +```bash +sed -n '/^serve-bg:/,/^serve-static:/p' Makefile | head -30 +``` + +Expected: Same structure as serve, with --name for background container + +- [ ] **Step 4: Commit serve-bg command update** + +```bash +git add Makefile +git commit -m "refactor: update serve-bg command for src/ structure" +``` + +--- + +## Task 18: Update Makefile - serve-static Commands + +**Files:** +- Modify: `Makefile` + +- [ ] **Step 1: Read current serve-static targets** + +```bash +sed -n '/^serve-static:/,/^open:/p' Makefile | head -40 +``` + +- [ ] **Step 2: Update serve-static command** + +Replace the `serve-static` target: + +Current: +```makefile +serve-static: build + @echo "Server statico avviato su http://localhost:$(STATIC_PORT)/" + @cd _site && python3 -m http.server $(STATIC_PORT) +``` + +New: +```makefile +serve-static: build + @echo "Server statico avviato su http://localhost:$(STATIC_PORT)/" + @cd output/_site && python3 -m http.server $(STATIC_PORT) +``` + +- [ ] **Step 3: Update serve-static-bg command** + +Replace the `serve-static-bg` target: + +Current: +```makefile +serve-static-bg: build + @echo "šŸš€ Avvio server statico in background..." + @cd _site && python3 -m http.server $(STATIC_PORT) > /tmp/static_server.log 2>&1 & \ + echo $$! > ../.static_serve.pid +``` + +New: +```makefile +serve-static-bg: build + @echo "šŸš€ Avvio server statico in background..." + @cd output/_site && python3 -m http.server $(STATIC_PORT) > /tmp/static_server.log 2>&1 & \ + echo $$! > ../../.static_serve.pid +``` + +- [ ] **Step 4: Verify serve-static commands** + +```bash +sed -n '/^serve-static:/,/^open:/p' Makefile | head -40 +``` + +Expected: Both commands use `output/_site` instead of `_site` + +- [ ] **Step 5: Commit serve-static updates** + +```bash +git add Makefile +git commit -m "refactor: update serve-static commands for output/_site" +``` + +--- + +## Task 19: Update Makefile - visual-baseline Command + +**Files:** +- Modify: `Makefile` + +- [ ] **Step 1: Read current visual-baseline target** + +```bash +grep -A 30 "^visual-baseline:" Makefile +``` + +- [ ] **Step 2: Find and update screenshots path in visual-baseline** + +The visual-baseline command calls capture.js. Update the command to pass output directory: + +Locate the line in visual-baseline that calls node capture.js and update it to pass the output directory. + +If the current command is: +```makefile +node scripts/visual-regression/capture.js serve http://localhost:4000 $(VIEWPORTS) +``` + +Update to: +```makefile +node scripts/visual-regression/capture.js serve http://localhost:4000 $(VIEWPORTS) output/screenshots +``` + +Do the same for the static capture call. + +- [ ] **Step 3: Verify visual-baseline command** + +```bash +grep -A 30 "^visual-baseline:" Makefile | grep "capture.js" +``` + +Expected: capture.js calls include `output/screenshots` parameter + +- [ ] **Step 4: Commit visual-baseline update** + +```bash +git add Makefile +git commit -m "refactor: update visual-baseline to use output/screenshots" +``` + +--- + +## Task 20: Update Makefile - Help Text + +**Files:** +- Modify: `Makefile` + +- [ ] **Step 1: Read help target** + +```bash +sed -n '/^help:/,/^\.PHONY/p' Makefile | head -50 +``` + +- [ ] **Step 2: Update help text for clean command** + +Find and replace: +``` + @echo " clean - Rimuove _site/" +``` + +With: +``` + @echo " clean - Rimuove output/_site/" +``` + +- [ ] **Step 3: Verify help text** + +```bash +make help | grep clean +``` + +Expected: "Rimuove output/_site/" + +- [ ] **Step 4: Commit help text update** + +```bash +git add Makefile +git commit -m "docs: update help text for clean command" +``` + +--- + +## Task 21: Update capture.js Screenshot Paths + +**Files:** +- Modify: `scripts/visual-regression/capture.js` + +- [ ] **Step 1: Read capture.js screenshot path** + +```bash +grep -n "screenshots" scripts/visual-regression/capture.js +``` + +- [ ] **Step 2: Update screenshot path in capture.js** + +Find line ~54 in `scripts/visual-regression/capture.js`: + +Current: +```javascript + const screenshotPath = path.join(__dirname, `../../screenshots/${serverType}/${viewportName}/${filename}.png`); +``` + +New: +```javascript + const screenshotPath = path.join(__dirname, `../../output/screenshots/${serverType}/${viewportName}/${filename}.png`); +``` + +- [ ] **Step 3: Verify capture.js changes** + +```bash +grep "screenshots" scripts/visual-regression/capture.js +``` + +Expected: Path now includes `output/` + +- [ ] **Step 4: Commit capture.js update** + +```bash +git add scripts/visual-regression/capture.js +git commit -m "fix: update screenshot paths to output/screenshots in capture.js" +``` + +--- + +## Task 22: Update compare.js Screenshot Paths + +**Files:** +- Modify: `scripts/visual-regression/compare.js` + +- [ ] **Step 1: Read compare.js screenshot paths** + +```bash +grep -n "screenshots" scripts/visual-regression/compare.js +``` + +- [ ] **Step 2: Update all screenshot paths in compare.js** + +Find and replace in `scripts/visual-regression/compare.js`: + +Line ~14 (reportDir): +```javascript + const reportDir = path.join(__dirname, '../../output/screenshots/report'); +``` + +Line ~56 (servePath): +```javascript + const servePath = path.join(__dirname, `../../output/screenshots/serve/${viewport}/${page}.png`); +``` + +Line ~57 (staticPath): +```javascript + const staticPath = path.join(__dirname, `../../output/screenshots/static/${viewport}/${page}.png`); +``` + +Line ~58 (serveDiffPath): +```javascript + const serveDiffPath = path.join(__dirname, `../../output/screenshots/diff/${viewport}/${page}_serve.png`); +``` + +Line ~59 (staticDiffPath): +```javascript + const staticDiffPath = path.join(__dirname, `../../output/screenshots/diff/${viewport}/${page}_static.png`); +``` + +Line ~72 (console.log): +```javascript + console.log(`\nšŸ“Š Report generated: output/screenshots/report/index.html`); +``` + +- [ ] **Step 3: Verify compare.js changes** + +```bash +grep "screenshots" scripts/visual-regression/compare.js +``` + +Expected: All paths now include `output/` + +- [ ] **Step 4: Commit compare.js update** + +```bash +git add scripts/visual-regression/compare.js +git commit -m "fix: update all screenshot paths to output/screenshots in compare.js" +``` + +--- + +## Task 23: Update optimize-images.js Path + +**Files:** +- Modify: `scripts/optimize-images.js` + +- [ ] **Step 1: Read optimize-images.js imagesDir path** + +```bash +grep -n "imagesDir" scripts/optimize-images.js +``` + +- [ ] **Step 2: Update imagesDir path** + +Find line 32 in `scripts/optimize-images.js`: + +Current: +```javascript + const imagesDir = '_site/assets/images'; +``` + +New: +```javascript + const imagesDir = 'output/_site/assets/images'; +``` + +- [ ] **Step 3: Verify optimize-images.js changes** + +```bash +grep "imagesDir" scripts/optimize-images.js +``` + +Expected: Path now `output/_site/assets/images` + +- [ ] **Step 4: Commit optimize-images.js update** + +```bash +git add scripts/optimize-images.js +git commit -m "fix: update images path to output/_site in optimize-images.js" +``` + +--- + +## Task 24: Update .gitignore for output/ + +**Files:** +- Modify: `.gitignore` + +- [ ] **Step 1: Read current .gitignore** + +```bash +cat .gitignore +``` + +- [ ] **Step 2: Add output/ to .gitignore** + +Add to `.gitignore`: + +``` +# Generated output +output/_site/ +output/.jekyll-cache/ +``` + +Keep `output/screenshots/` tracked (it contains test baselines). + +- [ ] **Step 3: Verify .gitignore changes** + +```bash +cat .gitignore +``` + +Expected: New output/ exclusions visible + +- [ ] **Step 4: Commit .gitignore update** + +```bash +git add .gitignore +git commit -m "chore: add output/_site and output/.jekyll-cache to .gitignore" +``` + +--- + +## Task 25: Update CLAUDE.md Path References + +**Files:** +- Modify: `CLAUDE.md` + +- [ ] **Step 1: Find all path references in CLAUDE.md** + +```bash +grep -n "assets/\|_posts\|_layouts\|screenshots\|_site" CLAUDE.md +``` + +- [ ] **Step 2: Update all path references** + +Replace all occurrences in `CLAUDE.md`: + +- `_posts/` → `src/jekyll/_posts/` +- `_layouts/` → `src/jekyll/_layouts/` +- `assets/` → `src/jekyll/assets/` +- `screenshots/` → `output/screenshots/` +- `_site/` → `output/_site/` +- `Gemfile` → `src/jekyll/Gemfile` +- `_config.yml` → `src/jekyll/_config.yml` +- `package.json` → `src/tailwind/package.json` +- `tailwind.config.js` → `src/tailwind/tailwind.config.js` +- `docker/` → `src/docker/` + +- [ ] **Step 3: Verify CLAUDE.md changes** + +```bash +grep -E "src/jekyll|src/tailwind|src/docker|output/" CLAUDE.md | head -20 +``` + +Expected: New paths visible throughout document + +- [ ] **Step 4: Commit CLAUDE.md update** + +```bash +git add CLAUDE.md +git commit -m "docs: update all path references in CLAUDE.md for new structure" +``` + +--- + +## Task 26: Verify All Files Moved + +**Files:** +- None (verification) + +- [ ] **Step 1: Check no Jekyll files remain at root** + +```bash +ls -la | grep -E "(_posts|_layouts|_includes|blog|tags|assets|index\.html|about\.md|robots\.txt|_config\.yml|Gemfile|package\.json|tailwind\.config)" +``` + +Expected: No results (empty) + +- [ ] **Step 2: Verify src/jekyll/ structure** + +```bash +ls -la src/jekyll/ | head -20 +``` + +Expected: All Jekyll files and directories present + +- [ ] **Step 3: Verify src/tailwind/ structure** + +```bash +ls -la src/tailwind/ +``` + +Expected: `package.json`, `tailwind.config.js` present + +- [ ] **Step 4: Verify src/docker/ structure** + +```bash +ls -la src/docker/ +``` + +Expected: `accessibility/` subdirectory present + +- [ ] **Step 5: Verify output/ structure** + +```bash +ls -la output/ +``` + +Expected: `screenshots/` present + +- [ ] **Step 6: Verify tests/ and scripts/ unchanged** + +```bash +ls -la tests/ && ls -la scripts/ +``` + +Expected: Both directories exist and contain expected files + +- [ ] **Step 7: Commit verification** + +```bash +git commit --allow-empty -m "test: verified all files moved correctly" +``` + +--- + +## Task 27: Test Build Command + +**Files:** +- None (testing) + +- [ ] **Step 1: Run build** + +```bash +make build +``` + +Expected: Jekyll builds successfully, creates `output/_site/` + +- [ ] **Step 2: Verify output directory** + +```bash +ls -la output/_site/ | head -20 +``` + +Expected: HTML files and directories present + +- [ ] **Step 3: Verify no build artifacts in src/** + +```bash +ls -la src/jekyll/ | grep -E "\.html|_site" +``` + +Expected: No `.html` files or `_site/` in src/jekyll/ (except index.html source) + +- [ ] **Step 4: Commit successful build test** + +```bash +git commit --allow-empty -m "test: make build works correctly" +``` + +--- + +## Task 28: Test Serve Command + +**Files:** +- None (testing) + +- [ ] **Step 1: Start serve in background** + +```bash +make serve-bg +``` + +Expected: Server starts, "āœ… Jekyll pronto" message appears + +- [ ] **Step 2: Test server response** + +```bash +curl -s -o /dev/null -w "%{http_code}" http://localhost:4000/ +``` + +Expected: `200` + +- [ ] **Step 3: Stop server** + +```bash +make stop-servers +``` + +Expected: Server stops cleanly + +- [ ] **Step 4: Commit successful serve test** + +```bash +git commit --allow-empty -m "test: make serve works correctly" +``` + +--- + +## Task 29: Test Build-CSS Command + +**Files:** +- None (testing) + +- [ ] **Step 1: Run build-css** + +```bash +make build-css +``` + +Expected: Tailwind compiles CSS successfully + +- [ ] **Step 2: Verify CSS output location** + +```bash +ls -la src/jekyll/assets/css/tailwind.css +``` + +Expected: File exists + +- [ ] **Step 3: Commit successful build-css test** + +```bash +git commit --allow-empty -m "test: make build-css works correctly" +``` + +--- + +## Task 30: Test Visual Baseline + +**Files:** +- None (testing) + +- [ ] **Step 1: Start serve in background** + +```bash +make serve-bg +``` + +Expected: Server starts + +- [ ] **Step 2: Run visual-baseline** + +```bash +make visual-baseline +``` + +Expected: Screenshots created in `output/screenshots/` + +- [ ] **Step 3: Verify screenshots created** + +```bash +ls -la output/screenshots/serve/desktop/ | head -10 +``` + +Expected: PNG files present + +- [ ] **Step 4: Stop server** + +```bash +make stop-servers +``` + +Expected: Server stops + +- [ ] **Step 5: Commit successful visual-baseline test** + +```bash +git commit --allow-empty -m "test: make visual-baseline works correctly" +``` + +--- + +## Task 31: Test Check-Links Command + +**Files:** +- None (testing) + +- [ ] **Step 1: Run check-links** + +```bash +make check-links +``` + +Expected: htmltest runs against `output/_site/` + +- [ ] **Step 2: Commit successful check-links test** + +```bash +git commit --allow-empty -m "test: make check-links works correctly" +``` + +--- + +## Task 32: Final Verification + +**Files:** +- None (verification) + +- [ ] **Step 1: Verify root directory cleanliness** + +```bash +ls -la | grep -v "^d" | grep -v "total" +``` + +Expected: Only Makefile, CHANGELOG.txt, README.md, LICENSE.txt, .gitignore, CLAUDE.md, and similar meta files at root + +- [ ] **Step 2: Verify all tests pass** + +```bash +# Run any existing test commands +echo "All manual tests completed successfully" +``` + +- [ ] **Step 3: Create summary commit** + +```bash +git commit --allow-empty -m "feat: complete project restructure to src/ and output/ + +All source code now in src/: +- src/jekyll/ for Jekyll site +- src/tailwind/ for Tailwind CSS +- src/docker/ for Docker files + +Generated content in output/: +- output/_site/ for Jekyll build output +- output/screenshots/ for visual regression tests + +Docker volumes for caches: +- bitprepared-node-modules for npm +- bitprepared-vendor for bundle +- bitprepared-jekyll-cache for Jekyll cache + +All commands updated with correct workdirs and permissions. +" +``` + +--- + +## Task 33: Push and Create PR + +**Files:** +- None (git operations) + +- [ ] **Step 1: Push branch to remote** + +```bash +git push -u origin feature/project-restructure +``` + +- [ ] **Step 2: Create pull request** + +```bash +gh pr create --title "Refactor: Restructure project to src/ and output/" --body "## Summary +- Moved all Jekyll source files to src/jekyll/ +- Moved Tailwind config to src/tailwind/ +- Moved Docker files to src/docker/ +- Created output/ for generated content (_site, screenshots) +- Updated all Makefile commands for new structure +- Updated all scripts for new paths +- Added Docker volumes for caches with correct permissions + +## Test plan +- [x] make build generates output/_site/ +- [x] make serve runs correctly +- [x] make build-css compiles CSS +- [x] make visual-baseline creates screenshots +- [x] make check-links works + +## Breaking changes +None - all commands work the same, just internal structure changed." +``` + +- [ ] **Step 3: Verify PR created** + +```bash +gh pr view +``` + +Expected: PR details displayed + +--- + +## Completion Checklist + +- [ ] All files moved to correct locations +- [ ] All configuration files updated +- [ ] All Makefile commands updated with correct workdirs +- [ ] All scripts updated for new paths +- [ ] Documentation (CLAUDE.md) updated +- [ ] All tests pass (build, serve, build-css, visual-baseline, check-links) +- [ ] Branch pushed and PR created From 4c074aa0d27a5a3bae2c2596cc6139e56d2ec0cf Mon Sep 17 00:00:00 2001 From: Stefano Tamagnini Date: Sun, 3 May 2026 10:53:57 +0000 Subject: [PATCH 02/54] feat: start project restructure branch From 7d58003e1dde3baf979eb2fc2dc04259a11ed7e4 Mon Sep 17 00:00:00 2001 From: Stefano Tamagnini Date: Sun, 3 May 2026 10:59:14 +0000 Subject: [PATCH 03/54] refactor: move Jekyll source to src/jekyll/ --- .htmltest.yml => src/jekyll/.htmltest.yml | 0 Gemfile => src/jekyll/Gemfile | 0 _config.yml => src/jekyll/_config.yml | 0 .../jekyll/_eventi}/README_EVENTO.md | 0 {_eventi => src/jekyll/_eventi}/campo-eg.md | 0 {_eventi => src/jekyll/_eventi}/epppi.md | 0 {_eventi => src/jekyll/_eventi}/percorso.md | 0 {_eventi => src/jekyll/_eventi}/stage.md | 0 .../jekyll/_includes}/edit-button.html | 0 {_includes => src/jekyll/_includes}/head.html | 0 .../jekyll/_includes}/lazy-load.html | 0 {_includes => src/jekyll/_includes}/nav.html | 0 .../jekyll/_includes}/picture.html | 0 .../jekyll/_includes}/structured-data.html | 0 {_layouts => src/jekyll/_layouts}/blog.html | 0 .../jekyll/_layouts}/default.html | 0 {_layouts => src/jekyll/_layouts}/evento.html | 0 {_layouts => src/jekyll/_layouts}/page.html | 0 .../jekyll/_layouts}/percorso.html | 0 {_layouts => src/jekyll/_layouts}/post.html | 0 .../jekyll/_layouts}/software.html | 0 {_layouts => src/jekyll/_layouts}/tags.html | 0 .../jekyll/_pages}/cookie-policy.md | 0 {_pages => src/jekyll/_pages}/privacy.md | 0 .../_plugins}/jekyll-pages-directory.rb | 0 .../_plugins}/uri_escape_monkey_patch.rb | 0 .../2015-08-20-esploratori-nella-rete.md | 0 .../_posts}/2016-09-18-Post-di-prova.md | 0 .../2023-04-25-esploratori-nella-rete.md | 0 .../2025-07-01-esploratori-nella-rete.md | 0 ...essere-solidi-in-una-societ-immateriale.md | 0 {_software => src/jekyll/_software}/code.md | 0 {_software => src/jekyll/_software}/flora.md | 0 {_software => src/jekyll/_software}/gimp.md | 0 .../jekyll/_software}/libreoffice.md | 0 .../jekyll/_software}/mayalinux.md | 0 {_software => src/jekyll/_software}/prbm.md | 0 {_software => src/jekyll/_software}/qgis.md | 0 .../jekyll/_software}/software.md | 0 {_software => src/jekyll/_software}/vlc.md | 0 .../jekyll/_software}/wordpress.md | 0 about.md => src/jekyll/about.md | 0 .../jekyll/assets}/css/critical.css | 0 .../jekyll/assets}/css/font/FontAwesome.otf | Bin .../assets}/css/font/fontawesome-webfont.eot | Bin .../assets}/css/font/fontawesome-webfont.svg | 0 .../assets}/css/font/fontawesome-webfont.ttf | Bin .../assets}/css/font/fontawesome-webfont.woff | Bin .../jekyll/assets}/css/fontawesome-all.css | 0 .../jekyll/assets}/css/fontawesome-local.css | 0 .../images/mobileUI-site-nav-opener-bg.svg | 0 .../assets}/css/legacy/skel-noscript.css | 0 .../assets}/css/legacy/style-1000px.css | 0 .../assets}/css/legacy/style-desktop.css | 0 .../assets}/css/legacy/style-mobile.css | 0 .../jekyll/assets}/css/legacy/style.css | 0 {assets => src/jekyll/assets}/css/main.css | 0 .../jekyll/assets}/css/scout-tech.css | 0 {assets => src/jekyll/assets}/css/styles.css | 0 .../jekyll/assets}/css/tailwind-input.css | 0 src/jekyll/assets/css/tailwind.css | 1 + .../fonts/webfonts/fa-brands-400.woff2 | Bin .../fonts/webfonts/fa-regular-400.woff2 | Bin .../assets}/fonts/webfonts/fa-solid-900.woff2 | Bin .../2014/stage-alle-porte/features.jpg | Bin .../2014/stage-alle-porte/volantino.jpg | Bin .../concentrazione.jpg | Bin .../concentrazioneLittle.jpg | Bin .../lupettiAtWork.jpg | Bin .../esploratori-nella-rete/features.old.jpg | Bin .../2015/esploratori-nella-rete/features.png | Bin .../2015/stage-alle-porte/features.png | Bin .../images/_fullsize/about/staff_low.jpg | Bin .../assets}/images/_fullsize/portrait.jpg | Bin .../images/_fullsize/software/software.jpg | Bin .../jekyll/assets}/images/agesci_logo.png | Bin .../apple-touch-icon-114x114-precomposed.png | Bin .../apple-touch-icon-144x144-precomposed.png | Bin .../apple-touch-icon-72x72-precomposed.png | Bin .../images/apple-touch-icon-precomposed.png | Bin .../assets}/images/esploratori-della-rete.png | Bin .../jekyll/assets}/images/essere-solidi.png | Bin .../jekyll/assets}/images/favicon.ico | Bin .../jekyll/assets}/images/favicon.png | Bin .../jekyll/assets}/images/header.jpg | Bin .../jekyll/assets}/images/header_orig.jpg | Bin .../assets}/images/locandina_epppi_2026.jpg | Bin .../assets}/images/loghi_branche/coca.png | Bin .../assets}/images/loghi_branche/eg.png | Bin .../assets}/images/loghi_branche/rs.png | Bin {assets => src/jekyll/assets}/images/logo.png | Bin .../images/pages/Wordpress/wordpress.png | Bin .../jekyll/assets}/images/pages/campo-eg.jpg | Bin .../assets}/images/pages/software/code.png | Bin .../assets}/images/pages/software/debian.png | Bin .../assets}/images/pages/software/gimp.png | Bin .../images/pages/software/libreoffice.png | Bin .../images/pages/software/mayalinux.png | Bin .../assets}/images/pages/software/osmand.png | Bin .../images/pages/software/osmtracker.png | Bin .../assets}/images/pages/software/prbm.png | Bin .../assets}/images/pages/software/prbmm.png | Bin .../assets}/images/pages/software/qgis.png | Bin .../images/pages/software/qstopmotion.png | Bin .../assets}/images/pages/software/scribus.png | Bin .../assets}/images/pages/software/vlc.png | Bin .../images/pages/software/wordpress.png | Bin .../jekyll/assets}/images/pages/stage.jpg | Bin .../assets}/images/placeholder-blog.png | Bin .../assets}/images/placeholder-news.png | Bin .../jekyll/assets}/images/stage.jpg | Bin .../jekyll/assets}/js/edit-button-dev.js | 0 {assets => src/jekyll/assets}/js/html5shiv.js | 0 {assets => src/jekyll/assets}/js/init.js | 0 .../jekyll/assets}/js/jquery.min.js | 0 .../jekyll/assets}/js/scroll-animations.js | 0 .../jekyll/assets}/js/skel-panels.min.js | 0 {assets => src/jekyll/assets}/js/skel.min.js | 0 {blog => src/jekyll/blog}/index.md | 0 {docs => src/jekyll/docs}/CHECKLIST.md | 0 .../jekyll/docs}/PHASE1_TEST_REPORT.md | 0 .../jekyll/docs}/SEMANTIC_VERSIONING.md | 0 .../jekyll/docs}/SEO_IMPROVEMENT_PLAN.md | 0 .../jekyll/docs}/VISUAL_REGRESSION_DOCS.md | 0 {docs => src/jekyll/docs}/WORKFLOW.md | 0 .../accessibility/IMPLEMENTATION_PLAN.md | 0 .../jekyll/docs}/accessibility/QUICK_START.md | 0 .../jekyll/docs}/accessibility/README.md | 0 .../accessibility/reports/aria-report.json | 1520 ++ .../docs/accessibility/reports/axe/about.json | 4766 ++++++ .../accessibility/reports/axe/blog-post.json | 6037 ++++++++ .../reports/axe/eventi-listing.json | 6172 ++++++++ .../reports/axe/evento-detail.json | 12511 ++++++++++++++++ .../accessibility/reports/axe/homepage.json | 7590 ++++++++++ .../reports/axe/software-detail.json | 4483 ++++++ .../reports/axe/software-listing.json | 8453 +++++++++++ .../docs/accessibility/reports/axe/tags.json | 6602 ++++++++ .../accessibility/reports/lighthouse/about | 2603 ++++ .../reports/lighthouse/about.json | 2588 ++++ .../reports/lighthouse/blog-post | 2744 ++++ .../reports/lighthouse/blog-post.json | 2697 ++++ .../reports/lighthouse/eventi-listing | 2672 ++++ .../reports/lighthouse/eventi-listing.json | 2657 ++++ .../reports/lighthouse/evento-detail | 2674 ++++ .../reports/lighthouse/evento-detail.json | 2697 ++++ .../accessibility/reports/lighthouse/homepage | 2670 ++++ .../reports/lighthouse/homepage.json | 2709 ++++ .../reports/lighthouse/software-detail | 2626 ++++ .../reports/lighthouse/software-detail.json | 2582 ++++ .../reports/lighthouse/software-listing | 2635 ++++ .../reports/lighthouse/software-listing.json | 2620 ++++ .../accessibility/reports/lighthouse/tags | 2932 ++++ .../reports/lighthouse/tags.json | 2588 ++++ .../docs/accessibility/reports/summary.md | 255 + .../jekyll/docs}/github-environment-setup.md | 0 .../jekyll/docs}/release-workflow-rollback.md | 0 .../jekyll/docs}/release-workflow-summary.md | 0 .../plans/2026-04-26-percorso-data-driven.md | 0 .../plans/2026-05-01-fase1-cleanup.md | 0 .../plans/2026-05-01-fase2-collections.md | 0 ...26-05-01-fase3-accessibility-seo-images.md | 0 ...6-05-02-release-workflow-implementation.md | 0 ...026-05-02-visual-regression-unification.md | 0 .../plans/2026-05-03-project-restructure.md | 0 .../2026-04-26-percorso-data-driven-design.md | 0 .../2026-05-01-jekyll4-refactor-design.md | 0 ...-02-release-workflow-improvement-design.md | 0 ...02-visual-regression-unification-design.md | 0 .../2026-05-03-project-restructure-design.md | 0 {docs => src/jekyll/docs}/test-lookup.md | 0 index.html => src/jekyll/index.html | 0 robots.txt => src/jekyll/robots.txt | 0 {tags => src/jekyll/tags}/index.md | 0 173 files changed, 101084 insertions(+) rename .htmltest.yml => src/jekyll/.htmltest.yml (100%) rename Gemfile => src/jekyll/Gemfile (100%) rename _config.yml => src/jekyll/_config.yml (100%) rename {_eventi => src/jekyll/_eventi}/README_EVENTO.md (100%) rename {_eventi => src/jekyll/_eventi}/campo-eg.md (100%) rename {_eventi => src/jekyll/_eventi}/epppi.md (100%) rename {_eventi => src/jekyll/_eventi}/percorso.md (100%) rename {_eventi => src/jekyll/_eventi}/stage.md (100%) rename {_includes => src/jekyll/_includes}/edit-button.html (100%) rename {_includes => src/jekyll/_includes}/head.html (100%) rename {_includes => src/jekyll/_includes}/lazy-load.html (100%) rename {_includes => src/jekyll/_includes}/nav.html (100%) rename {_includes => src/jekyll/_includes}/picture.html (100%) rename {_includes => src/jekyll/_includes}/structured-data.html (100%) rename {_layouts => src/jekyll/_layouts}/blog.html (100%) rename {_layouts => src/jekyll/_layouts}/default.html (100%) rename {_layouts => src/jekyll/_layouts}/evento.html (100%) rename {_layouts => src/jekyll/_layouts}/page.html (100%) rename {_layouts => src/jekyll/_layouts}/percorso.html (100%) rename {_layouts => src/jekyll/_layouts}/post.html (100%) rename {_layouts => src/jekyll/_layouts}/software.html (100%) rename {_layouts => src/jekyll/_layouts}/tags.html (100%) rename {_pages => src/jekyll/_pages}/cookie-policy.md (100%) rename {_pages => src/jekyll/_pages}/privacy.md (100%) rename {_plugins => src/jekyll/_plugins}/jekyll-pages-directory.rb (100%) rename {_plugins => src/jekyll/_plugins}/uri_escape_monkey_patch.rb (100%) rename {_posts => src/jekyll/_posts}/2015-08-20-esploratori-nella-rete.md (100%) rename {_posts => src/jekyll/_posts}/2016-09-18-Post-di-prova.md (100%) rename {_posts => src/jekyll/_posts}/2023-04-25-esploratori-nella-rete.md (100%) rename {_posts => src/jekyll/_posts}/2025-07-01-esploratori-nella-rete.md (100%) rename {_posts => src/jekyll/_posts}/2026-05-08-essere-solidi-in-una-societ-immateriale.md (100%) rename {_software => src/jekyll/_software}/code.md (100%) rename {_software => src/jekyll/_software}/flora.md (100%) rename {_software => src/jekyll/_software}/gimp.md (100%) rename {_software => src/jekyll/_software}/libreoffice.md (100%) rename {_software => src/jekyll/_software}/mayalinux.md (100%) rename {_software => src/jekyll/_software}/prbm.md (100%) rename {_software => src/jekyll/_software}/qgis.md (100%) rename {_software => src/jekyll/_software}/software.md (100%) rename {_software => src/jekyll/_software}/vlc.md (100%) rename {_software => src/jekyll/_software}/wordpress.md (100%) rename about.md => src/jekyll/about.md (100%) rename {assets => src/jekyll/assets}/css/critical.css (100%) rename {assets => src/jekyll/assets}/css/font/FontAwesome.otf (100%) rename {assets => src/jekyll/assets}/css/font/fontawesome-webfont.eot (100%) rename {assets => src/jekyll/assets}/css/font/fontawesome-webfont.svg (100%) rename {assets => src/jekyll/assets}/css/font/fontawesome-webfont.ttf (100%) rename {assets => src/jekyll/assets}/css/font/fontawesome-webfont.woff (100%) rename {assets => src/jekyll/assets}/css/fontawesome-all.css (100%) rename {assets => src/jekyll/assets}/css/fontawesome-local.css (100%) rename {assets => src/jekyll/assets}/css/images/mobileUI-site-nav-opener-bg.svg (100%) rename {assets => src/jekyll/assets}/css/legacy/skel-noscript.css (100%) rename {assets => src/jekyll/assets}/css/legacy/style-1000px.css (100%) rename {assets => src/jekyll/assets}/css/legacy/style-desktop.css (100%) rename {assets => src/jekyll/assets}/css/legacy/style-mobile.css (100%) rename {assets => src/jekyll/assets}/css/legacy/style.css (100%) rename {assets => src/jekyll/assets}/css/main.css (100%) rename {assets => src/jekyll/assets}/css/scout-tech.css (100%) rename {assets => src/jekyll/assets}/css/styles.css (100%) rename {assets => src/jekyll/assets}/css/tailwind-input.css (100%) create mode 100644 src/jekyll/assets/css/tailwind.css rename {assets => src/jekyll/assets}/fonts/webfonts/fa-brands-400.woff2 (100%) rename {assets => src/jekyll/assets}/fonts/webfonts/fa-regular-400.woff2 (100%) rename {assets => src/jekyll/assets}/fonts/webfonts/fa-solid-900.woff2 (100%) rename {assets => src/jekyll/assets}/images/_fullsize/2014/stage-alle-porte/features.jpg (100%) rename {assets => src/jekyll/assets}/images/_fullsize/2014/stage-alle-porte/volantino.jpg (100%) rename {assets => src/jekyll/assets}/images/_fullsize/2015/coderdojo-bologna-quattro/concentrazione.jpg (100%) rename {assets => src/jekyll/assets}/images/_fullsize/2015/coderdojo-bologna-quattro/concentrazioneLittle.jpg (100%) rename {assets => src/jekyll/assets}/images/_fullsize/2015/coderdojo-bologna-quattro/lupettiAtWork.jpg (100%) rename {assets => src/jekyll/assets}/images/_fullsize/2015/esploratori-nella-rete/features.old.jpg (100%) rename {assets => src/jekyll/assets}/images/_fullsize/2015/esploratori-nella-rete/features.png (100%) rename {assets => src/jekyll/assets}/images/_fullsize/2015/stage-alle-porte/features.png (100%) rename {assets => src/jekyll/assets}/images/_fullsize/about/staff_low.jpg (100%) rename {assets => src/jekyll/assets}/images/_fullsize/portrait.jpg (100%) rename {assets => src/jekyll/assets}/images/_fullsize/software/software.jpg (100%) rename {assets => src/jekyll/assets}/images/agesci_logo.png (100%) rename {assets => src/jekyll/assets}/images/apple-touch-icon-114x114-precomposed.png (100%) rename {assets => src/jekyll/assets}/images/apple-touch-icon-144x144-precomposed.png (100%) rename {assets => src/jekyll/assets}/images/apple-touch-icon-72x72-precomposed.png (100%) rename {assets => src/jekyll/assets}/images/apple-touch-icon-precomposed.png (100%) rename {assets => src/jekyll/assets}/images/esploratori-della-rete.png (100%) rename {assets => src/jekyll/assets}/images/essere-solidi.png (100%) rename {assets => src/jekyll/assets}/images/favicon.ico (100%) rename {assets => src/jekyll/assets}/images/favicon.png (100%) rename {assets => src/jekyll/assets}/images/header.jpg (100%) rename {assets => src/jekyll/assets}/images/header_orig.jpg (100%) rename {assets => src/jekyll/assets}/images/locandina_epppi_2026.jpg (100%) rename {assets => src/jekyll/assets}/images/loghi_branche/coca.png (100%) rename {assets => src/jekyll/assets}/images/loghi_branche/eg.png (100%) rename {assets => src/jekyll/assets}/images/loghi_branche/rs.png (100%) rename {assets => src/jekyll/assets}/images/logo.png (100%) rename {assets => src/jekyll/assets}/images/pages/Wordpress/wordpress.png (100%) rename {assets => src/jekyll/assets}/images/pages/campo-eg.jpg (100%) rename {assets => src/jekyll/assets}/images/pages/software/code.png (100%) rename {assets => src/jekyll/assets}/images/pages/software/debian.png (100%) rename {assets => src/jekyll/assets}/images/pages/software/gimp.png (100%) rename {assets => src/jekyll/assets}/images/pages/software/libreoffice.png (100%) rename {assets => src/jekyll/assets}/images/pages/software/mayalinux.png (100%) rename {assets => src/jekyll/assets}/images/pages/software/osmand.png (100%) rename {assets => src/jekyll/assets}/images/pages/software/osmtracker.png (100%) rename {assets => src/jekyll/assets}/images/pages/software/prbm.png (100%) rename {assets => src/jekyll/assets}/images/pages/software/prbmm.png (100%) rename {assets => src/jekyll/assets}/images/pages/software/qgis.png (100%) rename {assets => src/jekyll/assets}/images/pages/software/qstopmotion.png (100%) rename {assets => src/jekyll/assets}/images/pages/software/scribus.png (100%) rename {assets => src/jekyll/assets}/images/pages/software/vlc.png (100%) rename {assets => src/jekyll/assets}/images/pages/software/wordpress.png (100%) rename {assets => src/jekyll/assets}/images/pages/stage.jpg (100%) rename {assets => src/jekyll/assets}/images/placeholder-blog.png (100%) rename {assets => src/jekyll/assets}/images/placeholder-news.png (100%) rename {assets => src/jekyll/assets}/images/stage.jpg (100%) rename {assets => src/jekyll/assets}/js/edit-button-dev.js (100%) rename {assets => src/jekyll/assets}/js/html5shiv.js (100%) rename {assets => src/jekyll/assets}/js/init.js (100%) rename {assets => src/jekyll/assets}/js/jquery.min.js (100%) rename {assets => src/jekyll/assets}/js/scroll-animations.js (100%) rename {assets => src/jekyll/assets}/js/skel-panels.min.js (100%) rename {assets => src/jekyll/assets}/js/skel.min.js (100%) rename {blog => src/jekyll/blog}/index.md (100%) rename {docs => src/jekyll/docs}/CHECKLIST.md (100%) rename {docs => src/jekyll/docs}/PHASE1_TEST_REPORT.md (100%) rename {docs => src/jekyll/docs}/SEMANTIC_VERSIONING.md (100%) rename {docs => src/jekyll/docs}/SEO_IMPROVEMENT_PLAN.md (100%) rename {docs => src/jekyll/docs}/VISUAL_REGRESSION_DOCS.md (100%) rename {docs => src/jekyll/docs}/WORKFLOW.md (100%) rename {docs => src/jekyll/docs}/accessibility/IMPLEMENTATION_PLAN.md (100%) rename {docs => src/jekyll/docs}/accessibility/QUICK_START.md (100%) rename {docs => src/jekyll/docs}/accessibility/README.md (100%) create mode 100644 src/jekyll/docs/accessibility/reports/aria-report.json create mode 100644 src/jekyll/docs/accessibility/reports/axe/about.json create mode 100644 src/jekyll/docs/accessibility/reports/axe/blog-post.json create mode 100644 src/jekyll/docs/accessibility/reports/axe/eventi-listing.json create mode 100644 src/jekyll/docs/accessibility/reports/axe/evento-detail.json create mode 100644 src/jekyll/docs/accessibility/reports/axe/homepage.json create mode 100644 src/jekyll/docs/accessibility/reports/axe/software-detail.json create mode 100644 src/jekyll/docs/accessibility/reports/axe/software-listing.json create mode 100644 src/jekyll/docs/accessibility/reports/axe/tags.json create mode 100644 src/jekyll/docs/accessibility/reports/lighthouse/about create mode 100644 src/jekyll/docs/accessibility/reports/lighthouse/about.json create mode 100644 src/jekyll/docs/accessibility/reports/lighthouse/blog-post create mode 100644 src/jekyll/docs/accessibility/reports/lighthouse/blog-post.json create mode 100644 src/jekyll/docs/accessibility/reports/lighthouse/eventi-listing create mode 100644 src/jekyll/docs/accessibility/reports/lighthouse/eventi-listing.json create mode 100644 src/jekyll/docs/accessibility/reports/lighthouse/evento-detail create mode 100644 src/jekyll/docs/accessibility/reports/lighthouse/evento-detail.json create mode 100644 src/jekyll/docs/accessibility/reports/lighthouse/homepage create mode 100644 src/jekyll/docs/accessibility/reports/lighthouse/homepage.json create mode 100644 src/jekyll/docs/accessibility/reports/lighthouse/software-detail create mode 100644 src/jekyll/docs/accessibility/reports/lighthouse/software-detail.json create mode 100644 src/jekyll/docs/accessibility/reports/lighthouse/software-listing create mode 100644 src/jekyll/docs/accessibility/reports/lighthouse/software-listing.json create mode 100644 src/jekyll/docs/accessibility/reports/lighthouse/tags create mode 100644 src/jekyll/docs/accessibility/reports/lighthouse/tags.json create mode 100644 src/jekyll/docs/accessibility/reports/summary.md rename {docs => src/jekyll/docs}/github-environment-setup.md (100%) rename {docs => src/jekyll/docs}/release-workflow-rollback.md (100%) rename {docs => src/jekyll/docs}/release-workflow-summary.md (100%) rename {docs => src/jekyll/docs}/superpowers/plans/2026-04-26-percorso-data-driven.md (100%) rename {docs => src/jekyll/docs}/superpowers/plans/2026-05-01-fase1-cleanup.md (100%) rename {docs => src/jekyll/docs}/superpowers/plans/2026-05-01-fase2-collections.md (100%) rename {docs => src/jekyll/docs}/superpowers/plans/2026-05-01-fase3-accessibility-seo-images.md (100%) rename {docs => src/jekyll/docs}/superpowers/plans/2026-05-02-release-workflow-implementation.md (100%) rename {docs => src/jekyll/docs}/superpowers/plans/2026-05-02-visual-regression-unification.md (100%) rename {docs => src/jekyll/docs}/superpowers/plans/2026-05-03-project-restructure.md (100%) rename {docs => src/jekyll/docs}/superpowers/specs/2026-04-26-percorso-data-driven-design.md (100%) rename {docs => src/jekyll/docs}/superpowers/specs/2026-05-01-jekyll4-refactor-design.md (100%) rename {docs => src/jekyll/docs}/superpowers/specs/2026-05-02-release-workflow-improvement-design.md (100%) rename {docs => src/jekyll/docs}/superpowers/specs/2026-05-02-visual-regression-unification-design.md (100%) rename {docs => src/jekyll/docs}/superpowers/specs/2026-05-03-project-restructure-design.md (100%) rename {docs => src/jekyll/docs}/test-lookup.md (100%) rename index.html => src/jekyll/index.html (100%) rename robots.txt => src/jekyll/robots.txt (100%) rename {tags => src/jekyll/tags}/index.md (100%) diff --git a/.htmltest.yml b/src/jekyll/.htmltest.yml similarity index 100% rename from .htmltest.yml rename to src/jekyll/.htmltest.yml diff --git a/Gemfile b/src/jekyll/Gemfile similarity index 100% rename from Gemfile rename to src/jekyll/Gemfile diff --git a/_config.yml b/src/jekyll/_config.yml similarity index 100% rename from _config.yml rename to src/jekyll/_config.yml diff --git a/_eventi/README_EVENTO.md b/src/jekyll/_eventi/README_EVENTO.md similarity index 100% rename from _eventi/README_EVENTO.md rename to src/jekyll/_eventi/README_EVENTO.md diff --git a/_eventi/campo-eg.md b/src/jekyll/_eventi/campo-eg.md similarity index 100% rename from _eventi/campo-eg.md rename to src/jekyll/_eventi/campo-eg.md diff --git a/_eventi/epppi.md b/src/jekyll/_eventi/epppi.md similarity index 100% rename from _eventi/epppi.md rename to src/jekyll/_eventi/epppi.md diff --git a/_eventi/percorso.md b/src/jekyll/_eventi/percorso.md similarity index 100% rename from _eventi/percorso.md rename to src/jekyll/_eventi/percorso.md diff --git a/_eventi/stage.md b/src/jekyll/_eventi/stage.md similarity index 100% rename from _eventi/stage.md rename to src/jekyll/_eventi/stage.md diff --git a/_includes/edit-button.html b/src/jekyll/_includes/edit-button.html similarity index 100% rename from _includes/edit-button.html rename to src/jekyll/_includes/edit-button.html diff --git a/_includes/head.html b/src/jekyll/_includes/head.html similarity index 100% rename from _includes/head.html rename to src/jekyll/_includes/head.html diff --git a/_includes/lazy-load.html b/src/jekyll/_includes/lazy-load.html similarity index 100% rename from _includes/lazy-load.html rename to src/jekyll/_includes/lazy-load.html diff --git a/_includes/nav.html b/src/jekyll/_includes/nav.html similarity index 100% rename from _includes/nav.html rename to src/jekyll/_includes/nav.html diff --git a/_includes/picture.html b/src/jekyll/_includes/picture.html similarity index 100% rename from _includes/picture.html rename to src/jekyll/_includes/picture.html diff --git a/_includes/structured-data.html b/src/jekyll/_includes/structured-data.html similarity index 100% rename from _includes/structured-data.html rename to src/jekyll/_includes/structured-data.html diff --git a/_layouts/blog.html b/src/jekyll/_layouts/blog.html similarity index 100% rename from _layouts/blog.html rename to src/jekyll/_layouts/blog.html diff --git a/_layouts/default.html b/src/jekyll/_layouts/default.html similarity index 100% rename from _layouts/default.html rename to src/jekyll/_layouts/default.html diff --git a/_layouts/evento.html b/src/jekyll/_layouts/evento.html similarity index 100% rename from _layouts/evento.html rename to src/jekyll/_layouts/evento.html diff --git a/_layouts/page.html b/src/jekyll/_layouts/page.html similarity index 100% rename from _layouts/page.html rename to src/jekyll/_layouts/page.html diff --git a/_layouts/percorso.html b/src/jekyll/_layouts/percorso.html similarity index 100% rename from _layouts/percorso.html rename to src/jekyll/_layouts/percorso.html diff --git a/_layouts/post.html b/src/jekyll/_layouts/post.html similarity index 100% rename from _layouts/post.html rename to src/jekyll/_layouts/post.html diff --git a/_layouts/software.html b/src/jekyll/_layouts/software.html similarity index 100% rename from _layouts/software.html rename to src/jekyll/_layouts/software.html diff --git a/_layouts/tags.html b/src/jekyll/_layouts/tags.html similarity index 100% rename from _layouts/tags.html rename to src/jekyll/_layouts/tags.html diff --git a/_pages/cookie-policy.md b/src/jekyll/_pages/cookie-policy.md similarity index 100% rename from _pages/cookie-policy.md rename to src/jekyll/_pages/cookie-policy.md diff --git a/_pages/privacy.md b/src/jekyll/_pages/privacy.md similarity index 100% rename from _pages/privacy.md rename to src/jekyll/_pages/privacy.md diff --git a/_plugins/jekyll-pages-directory.rb b/src/jekyll/_plugins/jekyll-pages-directory.rb similarity index 100% rename from _plugins/jekyll-pages-directory.rb rename to src/jekyll/_plugins/jekyll-pages-directory.rb diff --git a/_plugins/uri_escape_monkey_patch.rb b/src/jekyll/_plugins/uri_escape_monkey_patch.rb similarity index 100% rename from _plugins/uri_escape_monkey_patch.rb rename to src/jekyll/_plugins/uri_escape_monkey_patch.rb diff --git a/_posts/2015-08-20-esploratori-nella-rete.md b/src/jekyll/_posts/2015-08-20-esploratori-nella-rete.md similarity index 100% rename from _posts/2015-08-20-esploratori-nella-rete.md rename to src/jekyll/_posts/2015-08-20-esploratori-nella-rete.md diff --git a/_posts/2016-09-18-Post-di-prova.md b/src/jekyll/_posts/2016-09-18-Post-di-prova.md similarity index 100% rename from _posts/2016-09-18-Post-di-prova.md rename to src/jekyll/_posts/2016-09-18-Post-di-prova.md diff --git a/_posts/2023-04-25-esploratori-nella-rete.md b/src/jekyll/_posts/2023-04-25-esploratori-nella-rete.md similarity index 100% rename from _posts/2023-04-25-esploratori-nella-rete.md rename to src/jekyll/_posts/2023-04-25-esploratori-nella-rete.md diff --git a/_posts/2025-07-01-esploratori-nella-rete.md b/src/jekyll/_posts/2025-07-01-esploratori-nella-rete.md similarity index 100% rename from _posts/2025-07-01-esploratori-nella-rete.md rename to src/jekyll/_posts/2025-07-01-esploratori-nella-rete.md diff --git a/_posts/2026-05-08-essere-solidi-in-una-societ-immateriale.md b/src/jekyll/_posts/2026-05-08-essere-solidi-in-una-societ-immateriale.md similarity index 100% rename from _posts/2026-05-08-essere-solidi-in-una-societ-immateriale.md rename to src/jekyll/_posts/2026-05-08-essere-solidi-in-una-societ-immateriale.md diff --git a/_software/code.md b/src/jekyll/_software/code.md similarity index 100% rename from _software/code.md rename to src/jekyll/_software/code.md diff --git a/_software/flora.md b/src/jekyll/_software/flora.md similarity index 100% rename from _software/flora.md rename to src/jekyll/_software/flora.md diff --git a/_software/gimp.md b/src/jekyll/_software/gimp.md similarity index 100% rename from _software/gimp.md rename to src/jekyll/_software/gimp.md diff --git a/_software/libreoffice.md b/src/jekyll/_software/libreoffice.md similarity index 100% rename from _software/libreoffice.md rename to src/jekyll/_software/libreoffice.md diff --git a/_software/mayalinux.md b/src/jekyll/_software/mayalinux.md similarity index 100% rename from _software/mayalinux.md rename to src/jekyll/_software/mayalinux.md diff --git a/_software/prbm.md b/src/jekyll/_software/prbm.md similarity index 100% rename from _software/prbm.md rename to src/jekyll/_software/prbm.md diff --git a/_software/qgis.md b/src/jekyll/_software/qgis.md similarity index 100% rename from _software/qgis.md rename to src/jekyll/_software/qgis.md diff --git a/_software/software.md b/src/jekyll/_software/software.md similarity index 100% rename from _software/software.md rename to src/jekyll/_software/software.md diff --git a/_software/vlc.md b/src/jekyll/_software/vlc.md similarity index 100% rename from _software/vlc.md rename to src/jekyll/_software/vlc.md diff --git a/_software/wordpress.md b/src/jekyll/_software/wordpress.md similarity index 100% rename from _software/wordpress.md rename to src/jekyll/_software/wordpress.md diff --git a/about.md b/src/jekyll/about.md similarity index 100% rename from about.md rename to src/jekyll/about.md diff --git a/assets/css/critical.css b/src/jekyll/assets/css/critical.css similarity index 100% rename from assets/css/critical.css rename to src/jekyll/assets/css/critical.css diff --git a/assets/css/font/FontAwesome.otf b/src/jekyll/assets/css/font/FontAwesome.otf similarity index 100% rename from assets/css/font/FontAwesome.otf rename to src/jekyll/assets/css/font/FontAwesome.otf diff --git a/assets/css/font/fontawesome-webfont.eot b/src/jekyll/assets/css/font/fontawesome-webfont.eot similarity index 100% rename from assets/css/font/fontawesome-webfont.eot rename to src/jekyll/assets/css/font/fontawesome-webfont.eot diff --git a/assets/css/font/fontawesome-webfont.svg b/src/jekyll/assets/css/font/fontawesome-webfont.svg similarity index 100% rename from assets/css/font/fontawesome-webfont.svg rename to src/jekyll/assets/css/font/fontawesome-webfont.svg diff --git a/assets/css/font/fontawesome-webfont.ttf b/src/jekyll/assets/css/font/fontawesome-webfont.ttf similarity index 100% rename from assets/css/font/fontawesome-webfont.ttf rename to src/jekyll/assets/css/font/fontawesome-webfont.ttf diff --git a/assets/css/font/fontawesome-webfont.woff b/src/jekyll/assets/css/font/fontawesome-webfont.woff similarity index 100% rename from assets/css/font/fontawesome-webfont.woff rename to src/jekyll/assets/css/font/fontawesome-webfont.woff diff --git a/assets/css/fontawesome-all.css b/src/jekyll/assets/css/fontawesome-all.css similarity index 100% rename from assets/css/fontawesome-all.css rename to src/jekyll/assets/css/fontawesome-all.css diff --git a/assets/css/fontawesome-local.css b/src/jekyll/assets/css/fontawesome-local.css similarity index 100% rename from assets/css/fontawesome-local.css rename to src/jekyll/assets/css/fontawesome-local.css diff --git a/assets/css/images/mobileUI-site-nav-opener-bg.svg b/src/jekyll/assets/css/images/mobileUI-site-nav-opener-bg.svg similarity index 100% rename from assets/css/images/mobileUI-site-nav-opener-bg.svg rename to src/jekyll/assets/css/images/mobileUI-site-nav-opener-bg.svg diff --git a/assets/css/legacy/skel-noscript.css b/src/jekyll/assets/css/legacy/skel-noscript.css similarity index 100% rename from assets/css/legacy/skel-noscript.css rename to src/jekyll/assets/css/legacy/skel-noscript.css diff --git a/assets/css/legacy/style-1000px.css b/src/jekyll/assets/css/legacy/style-1000px.css similarity index 100% rename from assets/css/legacy/style-1000px.css rename to src/jekyll/assets/css/legacy/style-1000px.css diff --git a/assets/css/legacy/style-desktop.css b/src/jekyll/assets/css/legacy/style-desktop.css similarity index 100% rename from assets/css/legacy/style-desktop.css rename to src/jekyll/assets/css/legacy/style-desktop.css diff --git a/assets/css/legacy/style-mobile.css b/src/jekyll/assets/css/legacy/style-mobile.css similarity index 100% rename from assets/css/legacy/style-mobile.css rename to src/jekyll/assets/css/legacy/style-mobile.css diff --git a/assets/css/legacy/style.css b/src/jekyll/assets/css/legacy/style.css similarity index 100% rename from assets/css/legacy/style.css rename to src/jekyll/assets/css/legacy/style.css diff --git a/assets/css/main.css b/src/jekyll/assets/css/main.css similarity index 100% rename from assets/css/main.css rename to src/jekyll/assets/css/main.css diff --git a/assets/css/scout-tech.css b/src/jekyll/assets/css/scout-tech.css similarity index 100% rename from assets/css/scout-tech.css rename to src/jekyll/assets/css/scout-tech.css diff --git a/assets/css/styles.css b/src/jekyll/assets/css/styles.css similarity index 100% rename from assets/css/styles.css rename to src/jekyll/assets/css/styles.css diff --git a/assets/css/tailwind-input.css b/src/jekyll/assets/css/tailwind-input.css similarity index 100% rename from assets/css/tailwind-input.css rename to src/jekyll/assets/css/tailwind-input.css diff --git a/src/jekyll/assets/css/tailwind.css b/src/jekyll/assets/css/tailwind.css new file mode 100644 index 0000000..8a9111e --- /dev/null +++ b/src/jekyll/assets/css/tailwind.css @@ -0,0 +1 @@ +*,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }/*! tailwindcss v3.4.19 | MIT License | https://tailwindcss.com*/*,:after,:before{box-sizing:border-box;border:0 solid #e5e7eb}:after,:before{--tw-content:""}:host,html{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}.container{width:100%}@media (min-width:640px){.container{max-width:640px}}@media (min-width:768px){.container{max-width:768px}}@media (min-width:1024px){.container{max-width:1024px}}@media (min-width:1280px){.container{max-width:1280px}}@media (min-width:1536px){.container{max-width:1536px}}.visible{visibility:visible}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.right-2{right:.5rem}.top-2{top:.5rem}.z-10{z-index:10}.m-0{margin:0}.mx-auto{margin-left:auto;margin-right:auto}.my-8{margin-top:2rem;margin-bottom:2rem}.mb-1{margin-bottom:.25rem}.mb-2{margin-bottom:.5rem}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.mb-6{margin-bottom:1.5rem}.mb-8{margin-bottom:2rem}.mr-2{margin-right:.5rem}.mt-16{margin-top:4rem}.mt-4{margin-top:1rem}.mt-8{margin-top:2rem}.block{display:block}.inline{display:inline}.flex{display:flex}.grid{display:grid}.h-56{height:14rem}.h-auto{height:auto}.min-h-\[50vh\]{min-height:50vh}.w-full{width:100%}.max-w-4xl{max-width:56rem}.max-w-5xl{max-width:64rem}.max-w-6xl{max-width:72rem}.max-w-full{max-width:100%}.flex-grow{flex-grow:1}.list-none{list-style-type:none}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-center{justify-content:center}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-6{gap:1.5rem}.space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.25rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem*var(--tw-space-y-reverse))}.overflow-hidden,.truncate{overflow:hidden}.truncate{text-overflow:ellipsis;white-space:nowrap}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:.5rem}.border{border-width:1px}.border-2{border-width:2px}.border-l-4{border-left-width:4px}.border-t{border-top-width:1px}.border-green-600{--tw-border-opacity:1;border-color:rgb(22 163 74/var(--tw-border-opacity,1))}.border-rossi-600{--tw-border-opacity:1;border-color:rgb(204 0 0/var(--tw-border-opacity,1))}.border-secondary{--tw-border-opacity:1;border-color:rgb(26 127 26/var(--tw-border-opacity,1))}.border-viola-600{--tw-border-opacity:1;border-color:rgb(123 45 142/var(--tw-border-opacity,1))}.bg-accent{--tw-bg-opacity:1;background-color:rgb(0 217 255/var(--tw-bg-opacity,1))}.bg-cyan-50{--tw-bg-opacity:1;background-color:rgb(236 254 255/var(--tw-bg-opacity,1))}.bg-dark{--tw-bg-opacity:1;background-color:rgb(10 31 10/var(--tw-bg-opacity,1))}.bg-green-50{--tw-bg-opacity:1;background-color:rgb(240 253 244/var(--tw-bg-opacity,1))}.bg-green-600{--tw-bg-opacity:1;background-color:rgb(22 163 74/var(--tw-bg-opacity,1))}.bg-green-950{--tw-bg-opacity:1;background-color:rgb(5 46 22/var(--tw-bg-opacity,1))}.bg-primary{--tw-bg-opacity:1;background-color:rgb(10 61 10/var(--tw-bg-opacity,1))}.bg-rossi-600{--tw-bg-opacity:1;background-color:rgb(204 0 0/var(--tw-bg-opacity,1))}.bg-rossi-950{--tw-bg-opacity:1;background-color:rgb(77 0 0/var(--tw-bg-opacity,1))}.bg-viola-600{--tw-bg-opacity:1;background-color:rgb(123 45 142/var(--tw-bg-opacity,1))}.bg-viola-950{--tw-bg-opacity:1;background-color:rgb(26 0 51/var(--tw-bg-opacity,1))}.bg-white{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity,1))}.object-cover{-o-object-fit:cover;object-fit:cover}.p-3{padding:.75rem}.p-4{padding:1rem}.p-6{padding:1.5rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-16{padding-top:4rem;padding-bottom:4rem}.pt-6{padding-top:1.5rem}.text-center{text-align:center}.font-display{font-family:JetBrains Mono,Courier New,monospace}.text-2xl{font-size:1.5rem;line-height:2rem}.text-3xl{font-size:1.875rem;line-height:2.25rem}.text-5xl{font-size:3rem;line-height:1}.text-base{font-size:1rem;line-height:1.5rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.font-semibold{font-weight:600}.leading-relaxed{line-height:1.625}.text-cyan-400{--tw-text-opacity:1;color:rgb(34 211 238/var(--tw-text-opacity,1))}.text-cyan-700{--tw-text-opacity:1;color:rgb(14 116 144/var(--tw-text-opacity,1))}.text-cyan-800{--tw-text-opacity:1;color:rgb(21 94 117/var(--tw-text-opacity,1))}.text-cyan-900{--tw-text-opacity:1;color:rgb(22 78 99/var(--tw-text-opacity,1))}.text-dark{--tw-text-opacity:1;color:rgb(10 31 10/var(--tw-text-opacity,1))}.text-gray-600{--tw-text-opacity:1;color:rgb(75 85 99/var(--tw-text-opacity,1))}.text-green-50{--tw-text-opacity:1;color:rgb(240 253 244/var(--tw-text-opacity,1))}.text-green-600{--tw-text-opacity:1;color:rgb(22 163 74/var(--tw-text-opacity,1))}.text-green-700{--tw-text-opacity:1;color:rgb(21 128 61/var(--tw-text-opacity,1))}.text-green-800{--tw-text-opacity:1;color:rgb(22 101 52/var(--tw-text-opacity,1))}.text-green-900{--tw-text-opacity:1;color:rgb(20 83 45/var(--tw-text-opacity,1))}.text-light{--tw-text-opacity:1;color:rgb(232 245 232/var(--tw-text-opacity,1))}.text-orange-400{--tw-text-opacity:1;color:rgb(251 146 60/var(--tw-text-opacity,1))}.text-primary{--tw-text-opacity:1;color:rgb(10 61 10/var(--tw-text-opacity,1))}.text-rossi-50{--tw-text-opacity:1;color:rgb(255 240 240/var(--tw-text-opacity,1))}.text-viola-50{--tw-text-opacity:1;color:rgb(245 240 255/var(--tw-text-opacity,1))}.shadow-md{--tw-shadow:0 4px 16px rgba(10,63,10,.15);--tw-shadow-colored:0 4px 16px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-shadow{transition-property:box-shadow;transition-timing-function:cubic-bezier(.4,0,.2,1)}.duration-150,.transition-shadow{transition-duration:.15s}.duration-base{transition-duration:.3s}.hover\:translate-x-1:hover{--tw-translate-x:0.25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.hover\:bg-green-100:hover{--tw-bg-opacity:1;background-color:rgb(220 252 231/var(--tw-bg-opacity,1))}.hover\:shadow-lg:hover{--tw-shadow:0 8px 24px rgba(26,127,26,.3);--tw-shadow-colored:0 8px 24px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}@media (min-width:640px){.sm\:my-12{margin-top:3rem;margin-bottom:3rem}.sm\:mb-2{margin-bottom:.5rem}.sm\:mb-3{margin-bottom:.75rem}.sm\:mb-4{margin-bottom:1rem}.sm\:mb-6{margin-bottom:1.5rem}.sm\:mb-8{margin-bottom:2rem}.sm\:mt-6{margin-top:1.5rem}.sm\:gap-4{gap:1rem}.sm\:gap-6{gap:1.5rem}.sm\:space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.5rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem*var(--tw-space-y-reverse))}.sm\:p-4{padding:1rem}.sm\:p-6{padding:1.5rem}.sm\:p-8{padding:2rem}.sm\:px-6{padding-left:1.5rem;padding-right:1.5rem}.sm\:text-2xl{font-size:1.5rem;line-height:2rem}.sm\:text-4xl{font-size:2.25rem;line-height:2.5rem}.sm\:text-base{font-size:1rem;line-height:1.5rem}.sm\:text-lg{font-size:1.125rem;line-height:1.75rem}.sm\:text-sm{font-size:.875rem;line-height:1.25rem}}@media (min-width:768px){.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}} \ No newline at end of file diff --git a/assets/fonts/webfonts/fa-brands-400.woff2 b/src/jekyll/assets/fonts/webfonts/fa-brands-400.woff2 similarity index 100% rename from assets/fonts/webfonts/fa-brands-400.woff2 rename to src/jekyll/assets/fonts/webfonts/fa-brands-400.woff2 diff --git a/assets/fonts/webfonts/fa-regular-400.woff2 b/src/jekyll/assets/fonts/webfonts/fa-regular-400.woff2 similarity index 100% rename from assets/fonts/webfonts/fa-regular-400.woff2 rename to src/jekyll/assets/fonts/webfonts/fa-regular-400.woff2 diff --git a/assets/fonts/webfonts/fa-solid-900.woff2 b/src/jekyll/assets/fonts/webfonts/fa-solid-900.woff2 similarity index 100% rename from assets/fonts/webfonts/fa-solid-900.woff2 rename to src/jekyll/assets/fonts/webfonts/fa-solid-900.woff2 diff --git a/assets/images/_fullsize/2014/stage-alle-porte/features.jpg b/src/jekyll/assets/images/_fullsize/2014/stage-alle-porte/features.jpg similarity index 100% rename from assets/images/_fullsize/2014/stage-alle-porte/features.jpg rename to src/jekyll/assets/images/_fullsize/2014/stage-alle-porte/features.jpg diff --git a/assets/images/_fullsize/2014/stage-alle-porte/volantino.jpg b/src/jekyll/assets/images/_fullsize/2014/stage-alle-porte/volantino.jpg similarity index 100% rename from assets/images/_fullsize/2014/stage-alle-porte/volantino.jpg rename to src/jekyll/assets/images/_fullsize/2014/stage-alle-porte/volantino.jpg diff --git a/assets/images/_fullsize/2015/coderdojo-bologna-quattro/concentrazione.jpg b/src/jekyll/assets/images/_fullsize/2015/coderdojo-bologna-quattro/concentrazione.jpg similarity index 100% rename from assets/images/_fullsize/2015/coderdojo-bologna-quattro/concentrazione.jpg rename to src/jekyll/assets/images/_fullsize/2015/coderdojo-bologna-quattro/concentrazione.jpg diff --git a/assets/images/_fullsize/2015/coderdojo-bologna-quattro/concentrazioneLittle.jpg b/src/jekyll/assets/images/_fullsize/2015/coderdojo-bologna-quattro/concentrazioneLittle.jpg similarity index 100% rename from assets/images/_fullsize/2015/coderdojo-bologna-quattro/concentrazioneLittle.jpg rename to src/jekyll/assets/images/_fullsize/2015/coderdojo-bologna-quattro/concentrazioneLittle.jpg diff --git a/assets/images/_fullsize/2015/coderdojo-bologna-quattro/lupettiAtWork.jpg b/src/jekyll/assets/images/_fullsize/2015/coderdojo-bologna-quattro/lupettiAtWork.jpg similarity index 100% rename from assets/images/_fullsize/2015/coderdojo-bologna-quattro/lupettiAtWork.jpg rename to src/jekyll/assets/images/_fullsize/2015/coderdojo-bologna-quattro/lupettiAtWork.jpg diff --git a/assets/images/_fullsize/2015/esploratori-nella-rete/features.old.jpg b/src/jekyll/assets/images/_fullsize/2015/esploratori-nella-rete/features.old.jpg similarity index 100% rename from assets/images/_fullsize/2015/esploratori-nella-rete/features.old.jpg rename to src/jekyll/assets/images/_fullsize/2015/esploratori-nella-rete/features.old.jpg diff --git a/assets/images/_fullsize/2015/esploratori-nella-rete/features.png b/src/jekyll/assets/images/_fullsize/2015/esploratori-nella-rete/features.png similarity index 100% rename from assets/images/_fullsize/2015/esploratori-nella-rete/features.png rename to src/jekyll/assets/images/_fullsize/2015/esploratori-nella-rete/features.png diff --git a/assets/images/_fullsize/2015/stage-alle-porte/features.png b/src/jekyll/assets/images/_fullsize/2015/stage-alle-porte/features.png similarity index 100% rename from assets/images/_fullsize/2015/stage-alle-porte/features.png rename to src/jekyll/assets/images/_fullsize/2015/stage-alle-porte/features.png diff --git a/assets/images/_fullsize/about/staff_low.jpg b/src/jekyll/assets/images/_fullsize/about/staff_low.jpg similarity index 100% rename from assets/images/_fullsize/about/staff_low.jpg rename to src/jekyll/assets/images/_fullsize/about/staff_low.jpg diff --git a/assets/images/_fullsize/portrait.jpg b/src/jekyll/assets/images/_fullsize/portrait.jpg similarity index 100% rename from assets/images/_fullsize/portrait.jpg rename to src/jekyll/assets/images/_fullsize/portrait.jpg diff --git a/assets/images/_fullsize/software/software.jpg b/src/jekyll/assets/images/_fullsize/software/software.jpg similarity index 100% rename from assets/images/_fullsize/software/software.jpg rename to src/jekyll/assets/images/_fullsize/software/software.jpg diff --git a/assets/images/agesci_logo.png b/src/jekyll/assets/images/agesci_logo.png similarity index 100% rename from assets/images/agesci_logo.png rename to src/jekyll/assets/images/agesci_logo.png diff --git a/assets/images/apple-touch-icon-114x114-precomposed.png b/src/jekyll/assets/images/apple-touch-icon-114x114-precomposed.png similarity index 100% rename from assets/images/apple-touch-icon-114x114-precomposed.png rename to src/jekyll/assets/images/apple-touch-icon-114x114-precomposed.png diff --git a/assets/images/apple-touch-icon-144x144-precomposed.png b/src/jekyll/assets/images/apple-touch-icon-144x144-precomposed.png similarity index 100% rename from assets/images/apple-touch-icon-144x144-precomposed.png rename to src/jekyll/assets/images/apple-touch-icon-144x144-precomposed.png diff --git a/assets/images/apple-touch-icon-72x72-precomposed.png b/src/jekyll/assets/images/apple-touch-icon-72x72-precomposed.png similarity index 100% rename from assets/images/apple-touch-icon-72x72-precomposed.png rename to src/jekyll/assets/images/apple-touch-icon-72x72-precomposed.png diff --git a/assets/images/apple-touch-icon-precomposed.png b/src/jekyll/assets/images/apple-touch-icon-precomposed.png similarity index 100% rename from assets/images/apple-touch-icon-precomposed.png rename to src/jekyll/assets/images/apple-touch-icon-precomposed.png diff --git a/assets/images/esploratori-della-rete.png b/src/jekyll/assets/images/esploratori-della-rete.png similarity index 100% rename from assets/images/esploratori-della-rete.png rename to src/jekyll/assets/images/esploratori-della-rete.png diff --git a/assets/images/essere-solidi.png b/src/jekyll/assets/images/essere-solidi.png similarity index 100% rename from assets/images/essere-solidi.png rename to src/jekyll/assets/images/essere-solidi.png diff --git a/assets/images/favicon.ico b/src/jekyll/assets/images/favicon.ico similarity index 100% rename from assets/images/favicon.ico rename to src/jekyll/assets/images/favicon.ico diff --git a/assets/images/favicon.png b/src/jekyll/assets/images/favicon.png similarity index 100% rename from assets/images/favicon.png rename to src/jekyll/assets/images/favicon.png diff --git a/assets/images/header.jpg b/src/jekyll/assets/images/header.jpg similarity index 100% rename from assets/images/header.jpg rename to src/jekyll/assets/images/header.jpg diff --git a/assets/images/header_orig.jpg b/src/jekyll/assets/images/header_orig.jpg similarity index 100% rename from assets/images/header_orig.jpg rename to src/jekyll/assets/images/header_orig.jpg diff --git a/assets/images/locandina_epppi_2026.jpg b/src/jekyll/assets/images/locandina_epppi_2026.jpg similarity index 100% rename from assets/images/locandina_epppi_2026.jpg rename to src/jekyll/assets/images/locandina_epppi_2026.jpg diff --git a/assets/images/loghi_branche/coca.png b/src/jekyll/assets/images/loghi_branche/coca.png similarity index 100% rename from assets/images/loghi_branche/coca.png rename to src/jekyll/assets/images/loghi_branche/coca.png diff --git a/assets/images/loghi_branche/eg.png b/src/jekyll/assets/images/loghi_branche/eg.png similarity index 100% rename from assets/images/loghi_branche/eg.png rename to src/jekyll/assets/images/loghi_branche/eg.png diff --git a/assets/images/loghi_branche/rs.png b/src/jekyll/assets/images/loghi_branche/rs.png similarity index 100% rename from assets/images/loghi_branche/rs.png rename to src/jekyll/assets/images/loghi_branche/rs.png diff --git a/assets/images/logo.png b/src/jekyll/assets/images/logo.png similarity index 100% rename from assets/images/logo.png rename to src/jekyll/assets/images/logo.png diff --git a/assets/images/pages/Wordpress/wordpress.png b/src/jekyll/assets/images/pages/Wordpress/wordpress.png similarity index 100% rename from assets/images/pages/Wordpress/wordpress.png rename to src/jekyll/assets/images/pages/Wordpress/wordpress.png diff --git a/assets/images/pages/campo-eg.jpg b/src/jekyll/assets/images/pages/campo-eg.jpg similarity index 100% rename from assets/images/pages/campo-eg.jpg rename to src/jekyll/assets/images/pages/campo-eg.jpg diff --git a/assets/images/pages/software/code.png b/src/jekyll/assets/images/pages/software/code.png similarity index 100% rename from assets/images/pages/software/code.png rename to src/jekyll/assets/images/pages/software/code.png diff --git a/assets/images/pages/software/debian.png b/src/jekyll/assets/images/pages/software/debian.png similarity index 100% rename from assets/images/pages/software/debian.png rename to src/jekyll/assets/images/pages/software/debian.png diff --git a/assets/images/pages/software/gimp.png b/src/jekyll/assets/images/pages/software/gimp.png similarity index 100% rename from assets/images/pages/software/gimp.png rename to src/jekyll/assets/images/pages/software/gimp.png diff --git a/assets/images/pages/software/libreoffice.png b/src/jekyll/assets/images/pages/software/libreoffice.png similarity index 100% rename from assets/images/pages/software/libreoffice.png rename to src/jekyll/assets/images/pages/software/libreoffice.png diff --git a/assets/images/pages/software/mayalinux.png b/src/jekyll/assets/images/pages/software/mayalinux.png similarity index 100% rename from assets/images/pages/software/mayalinux.png rename to src/jekyll/assets/images/pages/software/mayalinux.png diff --git a/assets/images/pages/software/osmand.png b/src/jekyll/assets/images/pages/software/osmand.png similarity index 100% rename from assets/images/pages/software/osmand.png rename to src/jekyll/assets/images/pages/software/osmand.png diff --git a/assets/images/pages/software/osmtracker.png b/src/jekyll/assets/images/pages/software/osmtracker.png similarity index 100% rename from assets/images/pages/software/osmtracker.png rename to src/jekyll/assets/images/pages/software/osmtracker.png diff --git a/assets/images/pages/software/prbm.png b/src/jekyll/assets/images/pages/software/prbm.png similarity index 100% rename from assets/images/pages/software/prbm.png rename to src/jekyll/assets/images/pages/software/prbm.png diff --git a/assets/images/pages/software/prbmm.png b/src/jekyll/assets/images/pages/software/prbmm.png similarity index 100% rename from assets/images/pages/software/prbmm.png rename to src/jekyll/assets/images/pages/software/prbmm.png diff --git a/assets/images/pages/software/qgis.png b/src/jekyll/assets/images/pages/software/qgis.png similarity index 100% rename from assets/images/pages/software/qgis.png rename to src/jekyll/assets/images/pages/software/qgis.png diff --git a/assets/images/pages/software/qstopmotion.png b/src/jekyll/assets/images/pages/software/qstopmotion.png similarity index 100% rename from assets/images/pages/software/qstopmotion.png rename to src/jekyll/assets/images/pages/software/qstopmotion.png diff --git a/assets/images/pages/software/scribus.png b/src/jekyll/assets/images/pages/software/scribus.png similarity index 100% rename from assets/images/pages/software/scribus.png rename to src/jekyll/assets/images/pages/software/scribus.png diff --git a/assets/images/pages/software/vlc.png b/src/jekyll/assets/images/pages/software/vlc.png similarity index 100% rename from assets/images/pages/software/vlc.png rename to src/jekyll/assets/images/pages/software/vlc.png diff --git a/assets/images/pages/software/wordpress.png b/src/jekyll/assets/images/pages/software/wordpress.png similarity index 100% rename from assets/images/pages/software/wordpress.png rename to src/jekyll/assets/images/pages/software/wordpress.png diff --git a/assets/images/pages/stage.jpg b/src/jekyll/assets/images/pages/stage.jpg similarity index 100% rename from assets/images/pages/stage.jpg rename to src/jekyll/assets/images/pages/stage.jpg diff --git a/assets/images/placeholder-blog.png b/src/jekyll/assets/images/placeholder-blog.png similarity index 100% rename from assets/images/placeholder-blog.png rename to src/jekyll/assets/images/placeholder-blog.png diff --git a/assets/images/placeholder-news.png b/src/jekyll/assets/images/placeholder-news.png similarity index 100% rename from assets/images/placeholder-news.png rename to src/jekyll/assets/images/placeholder-news.png diff --git a/assets/images/stage.jpg b/src/jekyll/assets/images/stage.jpg similarity index 100% rename from assets/images/stage.jpg rename to src/jekyll/assets/images/stage.jpg diff --git a/assets/js/edit-button-dev.js b/src/jekyll/assets/js/edit-button-dev.js similarity index 100% rename from assets/js/edit-button-dev.js rename to src/jekyll/assets/js/edit-button-dev.js diff --git a/assets/js/html5shiv.js b/src/jekyll/assets/js/html5shiv.js similarity index 100% rename from assets/js/html5shiv.js rename to src/jekyll/assets/js/html5shiv.js diff --git a/assets/js/init.js b/src/jekyll/assets/js/init.js similarity index 100% rename from assets/js/init.js rename to src/jekyll/assets/js/init.js diff --git a/assets/js/jquery.min.js b/src/jekyll/assets/js/jquery.min.js similarity index 100% rename from assets/js/jquery.min.js rename to src/jekyll/assets/js/jquery.min.js diff --git a/assets/js/scroll-animations.js b/src/jekyll/assets/js/scroll-animations.js similarity index 100% rename from assets/js/scroll-animations.js rename to src/jekyll/assets/js/scroll-animations.js diff --git a/assets/js/skel-panels.min.js b/src/jekyll/assets/js/skel-panels.min.js similarity index 100% rename from assets/js/skel-panels.min.js rename to src/jekyll/assets/js/skel-panels.min.js diff --git a/assets/js/skel.min.js b/src/jekyll/assets/js/skel.min.js similarity index 100% rename from assets/js/skel.min.js rename to src/jekyll/assets/js/skel.min.js diff --git a/blog/index.md b/src/jekyll/blog/index.md similarity index 100% rename from blog/index.md rename to src/jekyll/blog/index.md diff --git a/docs/CHECKLIST.md b/src/jekyll/docs/CHECKLIST.md similarity index 100% rename from docs/CHECKLIST.md rename to src/jekyll/docs/CHECKLIST.md diff --git a/docs/PHASE1_TEST_REPORT.md b/src/jekyll/docs/PHASE1_TEST_REPORT.md similarity index 100% rename from docs/PHASE1_TEST_REPORT.md rename to src/jekyll/docs/PHASE1_TEST_REPORT.md diff --git a/docs/SEMANTIC_VERSIONING.md b/src/jekyll/docs/SEMANTIC_VERSIONING.md similarity index 100% rename from docs/SEMANTIC_VERSIONING.md rename to src/jekyll/docs/SEMANTIC_VERSIONING.md diff --git a/docs/SEO_IMPROVEMENT_PLAN.md b/src/jekyll/docs/SEO_IMPROVEMENT_PLAN.md similarity index 100% rename from docs/SEO_IMPROVEMENT_PLAN.md rename to src/jekyll/docs/SEO_IMPROVEMENT_PLAN.md diff --git a/docs/VISUAL_REGRESSION_DOCS.md b/src/jekyll/docs/VISUAL_REGRESSION_DOCS.md similarity index 100% rename from docs/VISUAL_REGRESSION_DOCS.md rename to src/jekyll/docs/VISUAL_REGRESSION_DOCS.md diff --git a/docs/WORKFLOW.md b/src/jekyll/docs/WORKFLOW.md similarity index 100% rename from docs/WORKFLOW.md rename to src/jekyll/docs/WORKFLOW.md diff --git a/docs/accessibility/IMPLEMENTATION_PLAN.md b/src/jekyll/docs/accessibility/IMPLEMENTATION_PLAN.md similarity index 100% rename from docs/accessibility/IMPLEMENTATION_PLAN.md rename to src/jekyll/docs/accessibility/IMPLEMENTATION_PLAN.md diff --git a/docs/accessibility/QUICK_START.md b/src/jekyll/docs/accessibility/QUICK_START.md similarity index 100% rename from docs/accessibility/QUICK_START.md rename to src/jekyll/docs/accessibility/QUICK_START.md diff --git a/docs/accessibility/README.md b/src/jekyll/docs/accessibility/README.md similarity index 100% rename from docs/accessibility/README.md rename to src/jekyll/docs/accessibility/README.md diff --git a/src/jekyll/docs/accessibility/reports/aria-report.json b/src/jekyll/docs/accessibility/reports/aria-report.json new file mode 100644 index 0000000..3a61fcb --- /dev/null +++ b/src/jekyll/docs/accessibility/reports/aria-report.json @@ -0,0 +1,1520 @@ +{ + "_site/about/index.html": [ + { + "tag": "aria-label", + "value": "Menu principale", + "line": 103, + "context": "