Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
54 commits
Select commit Hold shift + click to select a range
530ca8e
plan: add comprehensive implementation plan for project restructure
yoghi May 3, 2026
4c074aa
feat: start project restructure branch
yoghi May 3, 2026
7d58003
refactor: move Jekyll source to src/jekyll/
yoghi May 3, 2026
70860dd
refactor: move Tailwind config to src/tailwind/
yoghi May 3, 2026
d4a89a0
refactor: move Docker files to src/docker/
yoghi May 3, 2026
bfc980c
refactor: move autodownload.sh to scripts/
yoghi May 3, 2026
9367fab
config: set Jekyll output to ../../output/_site and cache to ../../ou…
yoghi May 3, 2026
fdb8dfe
fix: update Tailwind build paths for src/ structure
yoghi May 3, 2026
8f93424
refactor: update Docker volume names for cache separation
yoghi May 3, 2026
0c06638
refactor: update serve and build commands for src/ structure
yoghi May 3, 2026
133aceb
refactor: update Makefile commands (Tasks 13-16)
yoghi May 3, 2026
a22ba01
refactor: update serve-bg, serve-static commands for new structure
yoghi May 3, 2026
505f899
fix: update screenshot paths to output/screenshots in capture.js
yoghi May 3, 2026
883b938
fix: update all screenshot paths to output/screenshots in compare.js
yoghi May 3, 2026
daca0b7
fix: update images path to output/_site in optimize-images.js
yoghi May 3, 2026
a8f3211
chore: add output/_site and output/.jekyll-cache to .gitignore
yoghi May 3, 2026
9a91e03
docs: update all path references in CLAUDE.md for new structure
yoghi May 3, 2026
0f404d0
test: verified all files moved correctly
yoghi May 3, 2026
f5f72d2
chore: move remaining files to src/ and clean root directory
yoghi May 3, 2026
e983b90
test: verify src/ and output/ structure is correct
yoghi May 3, 2026
702fdd8
test: verify Makefile commands are correctly updated
yoghi May 3, 2026
4dc02e6
test: verify no build artifacts in source directories
yoghi May 3, 2026
27ed349
feat: complete project restructure to src/ and output/
yoghi May 3, 2026
f2c4fad
bugfix
yoghi May 3, 2026
8ce637c
fix: force bundle config with sh -c to resolve gem not found
yoghi May 3, 2026
8f3bc84
fix: update Makefile and Jekyll config for src/ structure
yoghi May 3, 2026
26f62df
chore: remove old _site, node_modules, vendor directories
yoghi May 3, 2026
9ee9037
fix: update clean command and ignore Docker-generated dirs in src/
yoghi May 3, 2026
ca56147
fix: clean removes all output/screenshots
yoghi May 3, 2026
b5775cc
refactor: move docs/ from src/jekyll/ to project root
yoghi May 3, 2026
14348bc
fix
yoghi May 3, 2026
7aff137
fix: update check-links to use htmltest config and ignore production …
yoghi May 3, 2026
d716223
update README.md
yoghi May 3, 2026
5e9ea56
update
yoghi May 3, 2026
4c6bea9
fix: clean removes all Docker-generated directories
yoghi May 3, 2026
99d82a1
fix
yoghi May 3, 2026
140ec2f
refactor: move accessibility reports to output/accessibility
yoghi May 3, 2026
92c6844
ci: update GitHub workflow for new src/output structure
yoghi May 3, 2026
b7b0da4
fix: update accessibility Dockerfile path in Makefile
yoghi May 3, 2026
bf45168
fix
yoghi May 3, 2026
152d8e3
bugfix
yoghi May 3, 2026
47679ff
bugfix
yoghi May 3, 2026
7acb45b
clean html from md
yoghi May 4, 2026
7d1089f
fix output directory
yoghi May 4, 2026
d07fea7
fix
yoghi May 4, 2026
b12fa61
update changelog
yoghi May 4, 2026
fbd8535
fix node_modules dir
yoghi May 4, 2026
545d11b
update baseline
yoghi May 4, 2026
8d7d3d4
update generation script
yoghi May 4, 2026
a82dc7c
edit con marktext
yoghi May 4, 2026
ca67975
update doc position
yoghi May 4, 2026
180b436
clean css
yoghi May 4, 2026
a57a562
pulizia font
yoghi May 4, 2026
0b75574
clean js
yoghi May 4, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
21 changes: 11 additions & 10 deletions .github/workflows/create-release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -70,20 +70,21 @@ jobs:
- name: Build the site in the jekyll/builder container
run: |
docker run \
-v ${{ github.workspace }}:/srv/jekyll -v ${{ github.workspace }}/_site:/srv/jekyll/_site \
jekyll/builder:latest /bin/bash -c "chmod -R 777 /srv/jekyll && jekyll build --future"
-v ${{ github.workspace }}:/srv/jekyll -v ${{ github.workspace }}/output:/srv/jekyll/output \
jekyll/builder:latest /bin/bash -c "chmod -R 777 /srv/jekyll && cd src/jekyll && jekyll build --future"

- name: Run accessibility audit
run: |
# Build a11y Docker image
docker build -t bitprepared-a11y:latest -f docker/accessibility/Dockerfile .
docker build -t bitprepared-a11y:latest -f src/docker/accessibility/Dockerfile .
# Start Jekyll in background
docker run -d \
--name bitprepared-jekyll \
-v ${{ github.workspace }}:/srv/jekyll \
-v ${{ github.workspace }}/output:/srv/jekyll/output \
-p 4000:4000 \
jekyll/jekyll:latest \
jekyll serve --config _config.yml,_config_dev.yml --host 0.0.0.0
jekyll/jekyll:4 \
bash -c "cd src/jekyll && jekyll serve --config _config.yml,_config_dev.yml --host 0.0.0.0"
# Wait for Jekyll to be ready
for i in {1..30}; do
if curl -f -s -o /dev/null http://localhost:4000; then
Expand All @@ -93,9 +94,9 @@ jobs:
sleep 1
done
# Run accessibility audit
mkdir -p docs/accessibility/reports
mkdir -p output/accessibility/reports
docker run --rm --init \
-v ${{ github.workspace }}/docs/accessibility/reports:/app/reports \
-v ${{ github.workspace }}/output/accessibility/reports:/app/reports \
--add-host=host.docker.internal:host-gateway \
-e SITE_URL=http://host.docker.internal:4000 \
bitprepared-a11y:latest \
Expand All @@ -106,17 +107,17 @@ jobs:

- name: Generate accessibility summary
run: |
./scripts/analyze-a11y-reports.sh docs/accessibility/reports > docs/accessibility/reports/summary.md
./scripts/analyze-a11y-reports.sh output/accessibility/reports > output/accessibility/reports/summary.md

- uses: montudor/action-zip@v1
with:
args: zip -qq -r release.zip _site
args: zip -qq -r release.zip output/_site

- name: Upload accessibility summary as artifact
uses: actions/upload-artifact@v4
with:
name: accessibility-report
path: docs/accessibility/reports/summary.md
path: output/accessibility/reports/summary.md

- name: Create GitHub Release
uses: ncipollo/release-action@v1
Expand Down
43 changes: 43 additions & 0 deletions .github/workflows/validate-pr.yml
Original file line number Diff line number Diff line change
Expand Up @@ -70,3 +70,46 @@ jobs:
echo "❌ CHANGELOG validation failed"
exit 1
fi

check-html-in-markdown:
runs-on: ubuntu-latest
env:
FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: true
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0

- name: Check for HTML in markdown files
id: check-html
run: |
chmod +x ./scripts/check-html-in-markdown.sh
./scripts/check-html-in-markdown.sh

- name: Comment on PR if HTML found
if: failure() && steps.check-html.outcome == 'failure'
uses: actions/github-script@v6
with:
script: |
github.rest.issues.createComment({
issue_number: context.issue.number,
owner: context.repo.owner,
repo: context.repo.repo,
body: '❌ **HTML Found in Markdown Files**\n\n' +
'Jekyll usa Liquid templates, non HTML inline nei file markdown.\n\n' +
'**Problemi trovati:**\n' +
'- Rimuovi tutti i tag HTML dai file markdown (`.md`)\n' +
'- Usa componenti Liquid o layout invece\n' +
'- Per script con variabili Liquid, mantienili inline in `.md`\n\n' +
'Per details, vedi il workflow log.'
})

- name: Check result
if: always()
run: |
if [[ "${{ steps.check-html.outcome }}" == "success" ]]; then
echo "✅ No HTML found in markdown files"
else
echo "❌ HTML found in markdown files"
exit 1
fi
16 changes: 16 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -11,3 +11,19 @@ node_modules/
assets/css/tailwind.css
docs/accessibility/reports/
.worktrees/

# Generated output
output/_site/
output/.jekyll-cache/
output/accessibility/
output/screenshots/

# Docker can create these in src/ during builds (ignore)
src/.jekyll-cache/
src/node_modules/
src/output/
src/vendor/

# Old accessibility reports location (now in output/accessibility/)
docs/accessibility/reports/
src/jekyll/.jekyll-cache/
90 changes: 89 additions & 1 deletion CHANGELOG.txt
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,94 @@ All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [Unreleased]


### Added
- Project structure reorganization
- All source files moved to src/ subdirectories (src/jekyll/, src/tailwind/, src/docker/)
- New output/ directory for generated content (output/_site/, output/screenshots/)
- Clear separation between source code and build artifacts
- Better project organization and cleaner repository root
- docs/ moved from src/jekyll/ to project root (project-wide, not Jekyll-specific)

### Removed
- Obsolete CSS files in src/jekyll/assets/css/
- Removed main.css (6.4KB) - content already included in styles.css
- Removed scout-tech.css (18KB) - old design system no longer used
- Removed critical.css (468 bytes) - not used in production
- Removed legacy/ directory (28KB) - old CSS files from pre-refactor era
- Removed font/ directory (614KB) - obsolete Font Awesome 5 fonts (.eot, .svg, .ttf, .woff, .otf)
- Site now uses Font Awesome 6.4.0 with modern woff2 fonts in src/jekyll/assets/fonts/webfonts/
- Total cleanup: ~710KB saved (81% reduction in CSS directory size)
- Only necessary CSS files remain: styles.css, fontawesome-all.css, tailwind-input.css
- Obsolete JavaScript files in src/jekyll/assets/js/
- Removed jquery.min.js (95KB) - jQuery not used in modern site
- Removed skel.min.js (20KB) - old skel framework no longer used
- Removed skel-panels.min.js (14KB) - skel plugin no longer used
- Removed init.js (1.1KB) - skel configuration no longer used
- Removed html5shiv.js (2.4KB) - IE8 polyfill obsolete
- Total cleanup: ~132KB saved (90% reduction in JS directory size)
- Only necessary JS files remain: scroll-animations.js, edit-button-dev.js
- Site now uses modern vanilla JavaScript instead of old frameworks

### Changed
- Tailwind CSS configuration paths
- Fixed tailwind.config.js content paths for new src/ structure
- Changed from relative paths (_layouts/**/*.html) to correct paths (../jekyll/_layouts/**/*.html)
- make build-css now works correctly without "No utility classes were detected" warning

### Changed
- Jekyll configuration: Updated paths in _config.yml
- destination: /workspace/output/_site (absolute path in container)
- cache: /workspace/output/.jekyll-cache (absolute path in container)
- robots.txt path: src/jekyll/robots.txt
- Makefile Docker commands: All updated for new src/ structure
- Mount points: src/ → /workspace, output/ → /workspace/output
- build, serve, build-css, install commands all use new structure
- serve command: Added --host 0.0.0.0 for Docker accessibility
- install commands: Added --no-cache to prevent permission errors
- Visual regression scripts: Updated screenshot paths
- capture.js, compare.js: output/screenshots/ instead of screenshots/
- All scripts now point to correct output directory
- .gitignore: Added new patterns
- output/_site/, output/.jekyll-cache/ (generated content)
- src/.jekyll-cache/, src/node_modules/, src/output/, src/vendor/ (Docker artifacts)
- clean command: Enhanced to remove output/_site, output/.jekyll-cache, output/screenshots
- Docker volumes: Improved permission handling
- Removed cache volume from install commands (prevents permission issues)
- VENDOR_VOLUME for gems, NODE_MODULES_VOLUME for npm packages

### Fixed
- Docker permission errors during bundle install
- Removed CACHE_VOLUME mount from install commands
- Added --no-cache flag to prevent cache directory access issues
- Jekyll serve not accessible from host
- Added --host 0.0.0.0 to bind to all interfaces in container
- Path resolution issues with relative paths in Jekyll config
- Changed to absolute paths (/workspace/output/...) for reliable resolution
- Jekyll creating src/output and src/jekyll/.jekyll-cache with root ownership
- Removed CACHE_VOLUME mount from serve, serve-bg, and build commands (was conflicting with bind mounts)
- Removed NODE_MODULES_VOLUME mount from serve-bg command (Jekyll doesn't need npm packages)
- Pre-create directories with correct user ownership (755 permissions) before Jekyll runs
- Added automatic cleanup after make serve, make build, and make stop-serve
- Added src/jekyll/.jekyll-cache/ to .gitignore
- Removed .jekyll-cache/ from Jekyll exclude list (was conflicting with cache path)
- Fixed project_path in _config.yml and _config_dev.yml for new src/ structure
- project_path now points to /workspace/src/jekyll (was /workspace)
- Edit button now opens files with correct paths in MarkText
- Added explicit --destination flag to Jekyll commands for reliable path resolution
- make generate-blog-post errors
- Fixed undefined GEM_VOLUME variable (changed to VENDOR_VOLUME)
- Added missing working directory (-w /srv/jekyll) to Docker command
- Fixed mount points: now mounts src/jekyll/ and scripts/ separately
- Added --user flag to prevent root-owned files
- Fixed blog post generation using event date instead of current date
- Blog posts now generated with today's date (not future event date)
- Added numbered event selection for easier use
- Fixed MarkText integration: script now communicates filename to Makefile
- MarkText now opens files with correct absolute paths from host perspective

## [1.2.0] - 2026-05-03


Expand Down Expand Up @@ -273,7 +361,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- Aggiornamento software list

[1.2.0]: https://github.com/bitprepared/bitprepared.it/compare/v1.1.0...v1.2.0
[Unreleased]: https://github.com/bitprepared/bitprepared.it/compare/v1.1.0...HEAD
[Unreleased]: https://github.com/bitprepared/bitprepared.it/compare/v1.2.0...HEAD
[1.1.0]: https://github.com/bitprepared/bitprepared.it/compare/v1.0.0...v1.1.0
[1.0.0]: https://github.com/bitprepared/bitprepared.it/compare/v20260426T125004...v1.0.0
[20260426T125004]: https://github.com/bitprepared/bitprepared.it/compare/v0.9.0...v20260426T125004
Expand Down
14 changes: 7 additions & 7 deletions CLAUDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
**Domande standard**:
- "Hai eseguito make validate-graphics?"
- "Vuoi aggiornare la baseline con make visual-baseline?"
- "Vuoi revieware il report in screenshots/report/index.html?"
- "Vuoi revieware il report in output/screenshots/report/index.html?"

**Quando NON ricordare**:
- Modifica contenuto testuale solo
Expand All @@ -21,15 +21,15 @@
## Pattern Progetto

### Layout Eventi
- Layout: `_layouts/evento.html` (NON `_layouts/epppi.html`)
- Layout: `src/jekyll/_layouts/evento.html` (NON `src/jekyll/_layouts/epppi.html`)
- Classi CSS: `.evento-*` (NON `.epppi-*`)
- CSS: `assets/css/evento-custom.css`
- CSS: `src/jekyll/assets/css/evento-custom.css`

### Struttura File
- Pagine: `_pages/*.md` o `*.html`
- Blog: `_posts/YYYY-MM-DD-titolo.md`
- Template: `_layouts/*.html` (default, page, post, evento)
- Assets: `assets/css/*.css`, `assets/js/*`
- Blog: `src/jekyll/_posts/YYYY-MM-DD-titolo.md`
- Template: `src/jekyll/_layouts/*.html` (default, page, post, evento)
- Assets: `src/jekyll/assets/css/*.css`, `src/jekyll/assets/js/*`

### Frontmatter Jekyll
```yaml
Expand Down Expand Up @@ -76,7 +76,7 @@ Quando utente aggiunge/modifica features:
```bash
# Ricorda di dire:
1. Esegui make validate-graphics (richiede 3 terminali: serve, serve-static, validate)
2. Review screenshots/report/index.html se fallisce
2. Review output/screenshots/report/index.html se fallisce
3. Fix bug grafici OR aggiorna baseline con make visual-baseline
```

Expand Down
Loading
Loading