Challenge10k · Deployment

Jekyll Scripterix - Redesign and i18n Migration

09 October 2025 15 h 35 h total
Czysty kod

15 hours refactoring Jekyll Scripterix: removing the i18n plugin, switching to translation_id links, rolling out a new layout, and updating posts plus logbooks.

Focus area
Jekyll + Liquid + redesign + translation linking
Mood
Determined
Tags
jekyll liquid redesign translations github-pages

Context and decisions

GitHub Pages blocks custom plugins, so I had to refactor the Jekyll Scripterix app. The translation system now relies entirely on translation_id pairs (PL/EN) and the old i18n plugin is gone. The change required reviewing every post and logbook entry and manually wiring each language counterpart.

Key work (15h)

  1. Translation migration

    • removed _plugins/i18n.rb and related helpers
    • updated layouts so language links render via translation_id
    • verified post + logbook pairs and filled any gaps
  2. New layout and components

    • deployed a refreshed structure for the main pages and subpages
    • updated _includes with focus on portfolio, archive, and logbook sections
    • tidied Liquid: refactored loops, conditions, and blocks {% capture %}
  3. Working with _site and builds

    • swapped the previous _site output for a version compliant with GitHub Pages
    • ran repeated builds (bundle exec jekyll build) and local server checks
    • monitored Liquid/Markdown errors after each iteration
  4. Content updates

    • synced and paired posts (EN/PL) by translation_id
    • cleaned logbooks: metadata alignment, style fixes, added missing entries
    • drafted the backlog of remaining content for upcoming sprints

Results

  • stable translation system based on translation_id, fully GitHub Pages compatible
  • new layout in production: cleaner code and improved section structure
  • _site aligned with the repository, refreshed assets and includes
  • posts plus logbooks updated; backlog for missing items is underway

Challenges and takeaways

  • lack of custom plugin support on GitHub Pages forces translation planning directly in content and YAML
  • Liquid can get complex in larger layouts without clean blocks—lean partials helped a lot
  • manually pairing posts and logbooks confirms how critical consistent translation_id values are from day one

Next: Finish the remaining EN/PL entries, refine the language switcher component, and prepare the checklist ahead of CI/CD rollout.