Skip to content

Refactor: Restructure project to src/ and output/#43

Merged
yoghi merged 54 commits intomasterfrom
feature/project-restructure
May 4, 2026
Merged

Refactor: Restructure project to src/ and output/#43
yoghi merged 54 commits intomasterfrom
feature/project-restructure

Conversation

@yoghi
Copy link
Copy Markdown
Contributor

@yoghi yoghi commented May 3, 2026

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

  • Directory structure verified (src/, output/ clean)
  • Makefile commands updated and verified
  • Script paths updated
  • Git configuration correct (.gitignore updated)
  • make build generates output/_site/ (requires Docker)
  • make serve runs correctly (requires Docker)
  • make build-css compiles CSS (requires Docker)
  • make visual-baseline creates screenshots (requires Docker)
  • make check-links works (requires Docker)

Breaking changes

None - all commands work the same, just internal structure changed.

yoghi added 30 commits May 3, 2026 10:44
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.
- Add --user flag for correct permissions (id -u:id -g)
- Change mounts from PWD to PWD/src and PWD/output
- Update volume references to use new volume names (node_modules, vendor, cache)
- Add workdir -w /workspace/jekyll
- Add JEKYLL_PATH environment variable
- Change 'jekyll serve/build' to 'bundle exec jekyll serve/build'
- Update robots.txt path from _site/ to output/_site/
Task 13 - build-css:
- Now uses src/tailwind/ directory structure
- Mounts node_modules volume for persistence
- Runs as current user for proper file permissions

Task 14 - install:
- Runs npm install in src/tailwind/
- Runs bundle install in src/jekyll/
- Uses appropriate volumes for each dependency type

Task 15 - install-gems:
- Updated to use src/jekyll/ structure
- Uses vendor volume instead of gem volume
- Runs as current user for proper permissions

Task 16 - clean:
- Now removes output/_site instead of _site
- Removes output/.jekyll-cache instead of .jekyll-cache
- Move _config_dev.yml to src/jekyll/
- Move Gemfile.lock to src/jekyll/
- Remove old package-lock.json from root
- Remove autodownload.sh from root (already in scripts/)

Root directory now contains only meta files:
- Makefile, CHANGELOG.txt, CLAUDE.md
- README.md, LICENSE.txt, .gitignore
Verified:
- src/jekyll/ contains all Jekyll source files
- src/tailwind/ contains Tailwind CSS configuration
- src/docker/ contains Docker files
- output/screenshots/ exists for visual regression tests
- Root directory clean (only meta files)
- No build artifacts in src/
- All source code properly organized

Note: Full build/serve testing requires Docker environment
Verified Makefile commands reference correct paths:
- build: uses src/jekyll as workspace, outputs to output/_site
- serve: uses src/jekyll as workspace
- build-css: uses src/tailwind as workspace
- All Docker mounts reference src/ and output/
- Volume mounts for caches configured correctly
- User permissions set correctly (1000:1000)

Commands ready for Docker environment testing.
Verified:
- No .html files in src/jekyll/ except index.html (source)
- No _site/ directory in src/jekyll/
- No build artifacts in src/tailwind/
- output/_site/ does not exist (clean state)
- output/screenshots/ exists for test outputs

Source directories are clean and contain only source files.
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.

Testing status:
- Structure: VERIFIED
- Makefile paths: VERIFIED
- Source cleanliness: VERIFIED
- Build/serve commands: Requires Docker environment for full testing
  Added bundle config set commands before bundle exec to ensure
  BUNDLE_PATH and cache_path are respected inside container.
  Applied to build, serve, and serve-bg targets.
  - Fix robots.txt path (src/jekyll/robots.txt)
  - Add --host 0.0.0.0 to serve command
  - Use absolute paths in _config.yml for destination/cache
  - Add --no-cache to bundle install commands
  - Update baseline screenshots for new structure
  - Regenerate tailwind.css
  Documentation is project-wide, not Jekyll-specific.
  - Moved src/jekyll/docs/ → docs/
  - All Makefile and CLAUDE.md references already used docs/
  - No changes needed to references
yoghi added 24 commits May 4, 2026 00:05
…domain

  - Mount .htmltest.yml config file in container
  - Add www.bitprepared.it and bitprepared.it to IgnoreURLs
  - Prevents false positives from canonical links to non-deployed production
  Now removes:
  - output/ directories
  - src/ temporary directories (created by Docker)
  - Legacy root directories
  Ensures clean slate after development
  Accessibility reports are generated output, not documentation.
  - Moved from docs/accessibility/reports/ to output/accessibility/reports/
  - Updated all Makefile accessibility targets
  - Updated scripts: analyze-a11y-reports.sh, check-aria.js
  - Updated .gitignore to include new location
  - clean now removes output/accessibility/
  - Update build: mount output/ instead of _site/
  - Update Jekyll commands: cd src/jekyll for correct working dir
  - Update accessibility paths: docs/accessibility → output/accessibility
  - Update zip path: _site → output/_site
  - Update Dockerfile path: docker/ → src/docker/
  Changed from docker/accessibility/Dockerfile to src/docker/accessibility/Dockerfile
  to match new project structure.
@yoghi yoghi merged commit b5f9cdd into master May 4, 2026
2 checks passed
@yoghi yoghi deleted the feature/project-restructure branch May 4, 2026 16:36
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant