Gemfile| Commit | Message |
|---|---|
ac75fabf3 | 2021-08-10 Jekyll site migration |
bundle install reads this file and installs exact gem versions into Gemfile.lock. Running bundle exec jekyll serve starts the dev server using these locked versions. The ecosystem: Ruby → Bundler → Jekyll → Liquid → HTML.gem "jekyll", "4.4.1" # Static site generator group :jekyll_plugins do gem "jekyll-feed", "~> 0.17.0" # RSS/Atom feed generation gem 'jekyll-paginate', '~> 1.1' # Page splitting for blog lists gem 'jekyll-seo-tag', '~> 2.8.0' # SEO meta tags (og:, twitter:) gem 'jekyll-gist', '~> 1.5.0' # Embed GitHub Gists in pages gem 'jekyll-avatar', '~> 0.8.0' # GitHub avatar images gem 'jekyll-asciidoc', '~> 3.0.1' # AsciiDoc → HTML conversion ⭐ gem 'jekyll-numbered-headings', '~> 0.1.1' # Auto-numbered section headings gem 'kramdown-parser-gfm', '~> 1.1.0' # GitHub-Flavored Markdown parser end gem "webrick", "~> 1.9.0" # Ruby HTTP server for dev
| Operator | Example | Meaning |
|---|---|---|
| Exact | "4.4.1" | jekyll 4.4.1 exactly — no other version |
| Pessimistic | "~> 0.17.0" | >= 0.17.0 AND < 0.18.0 — patch updates allowed, minor frozen |
| Pessimistic | "~> 3.0.1" | >= 3.0.1 AND < 3.1.0 — for jekyll-asciidoc |
Jekyll itself is pinned to EXACT version 4.4.1 — major Jekyll upgrades often break themes and plugins. Plugins use pessimistic versioning (~>) to allow security patches without risking breaking changes.
Commented-out alternatives: Lines 15-19 show the standard Jekyll boilerplate for GitHub Pages — uncomment github-pages gem if hosting on GitHub Pages directly. The ProjectForge site uses a custom Jekyll setup (not GitHub Pages' built-in Jekyll), so these are left commented.
jekyll-asciidocis the critical plugin: Without it, all 63.adocdocumentation files (installation.adoc, userguide.adoc, etc.) would not render. This gem bridges Jekyll's Liquid templating with AsciiDoc's markup — it's the reason the ProjectForge docs can use both{% include %}(Liquid) and== Section ==(AsciiDoc) in the same file.Gemfile.lock companion: The
Gemfile.lockfile (also insite/) records the EXACT versions installed, including transitive dependencies. This ensures reproducible builds across machines. It's the Ruby equivalent ofpackage-lock.json.