A complete automatic theme version display system for the zer0-mistakes Jekyll theme that shows version information and system details accessible from any page.
_includes/components/theme-info.html)_plugins/theme_version.rb)site.theme_specs_includes/components/info-section.html)_includes/core/footer.html)docs/THEME_VERSION_FEATURE.md)┌─────────────────────────────────────────────────────────────┐
│ Jekyll Build Process │
├─────────────────────────────────────────────────────────────┤
│ │
│ 1. Plugin Executes (_plugins/theme_version.rb) │
│ ├─ Scans for jekyll-theme-* gems │
│ ├─ Extracts version from Gem::Specification │
│ ├─ Handles remote_theme gracefully │
│ └─ Populates site.theme_specs array │
│ │
│ 2. Template Renders (_includes/components/theme-info.html) │
│ ├─ Reads site.theme_specs data │
│ ├─ Displays version (or "Latest" for remote) │
│ ├─ Shows Jekyll/Ruby versions │
│ ├─ Lists active plugins │
│ └─ Provides documentation links │
│ │
│ 3. User Access Points │
│ ├─ Header: Gear icon (⚙️) button │
│ ├─ Footer: "Info" button │
│ └─ Opens modal with all information │
│ │
└─────────────────────────────────────────────────────────────┘
✅ Zero Hardcoding: Version pulled automatically from gemspec
✅ Always Accurate: Reflects actual installed theme version
✅ User-Friendly: Accessible from any page via header/footer
✅ Comprehensive: Full system and environment information
✅ Maintainable: Single source of truth (version.rb)
✅ Helpful: Links to docs, changelog, support
✅ GitHub Pages Compatible: Works with remote_theme
To test this feature:
Build the site:
bundle exec jekyll serve
Check build logs for theme version output:
ThemeVersion: jekyll-theme-zer0 v0.5.0 (gem)
The it-journey site will automatically get this feature because it uses:
remote_theme: "bamr87/zer0-mistakes"
When GitHub Pages builds the site, it will:
No changes needed to the it-journey repository!
Update version in ONE place:
# lib/jekyll-theme-zer0/version.rb
module JekyllThemeZer0
VERSION = "0.5.0" # ← Only change here!
end
No configuration needed! Version displays automatically.
_includes/components/theme-info.html (Display template)_plugins/theme_version.rb (Version extraction)docs/THEME_VERSION_FEATURE.md (Documentation)_includes/components/info-section.html (Modal integration)_includes/core/footer.html (Info button)Consider adding:
Result: A professional, maintainable, and user-friendly way to display theme version information that requires zero configuration and zero hardcoding! 🎉