Update Jekyll to latest 3.x to support Ruby 3

Debian ships Ruby 3.1.2 and Jekyll 3.9.5 manages to build and serve the
pages.

I had to explicitly add `kramdown-parser-gfm`. Ruby 3 moved `rexml` and
`webrick` out of the standard library.

Also update the Dockerfile base to Ruby 3.3.

Change-Id: I8702537dde1acd5ce272e1babac70ec480781353
diff --git a/Dockerfile b/Dockerfile
index d39b056..fba59b6 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -1,4 +1,4 @@
-FROM ruby:2.4-alpine
+FROM ruby:3.3-alpine
 
 RUN apk add --no-cache build-base gcc bash cmake
 
diff --git a/Gemfile b/Gemfile
index 0e4d179..0653a2d 100644
--- a/Gemfile
+++ b/Gemfile
@@ -1,4 +1,7 @@
 source "https://rubygems.org"
 
-gem 'jekyll', group: :jekyll_plugins
+gem 'jekyll', '<4', group: :jekyll_plugins
+gem 'kramdown-parser-gfm'
+gem "webrick", "~> 1.8" if RUBY_VERSION >= '3.0'
+gem 'rexml' if RUBY_VERSION >= '3.0'
 gem 'wdm', '>= 0.1.0' if Gem.win_platform?
diff --git a/Gemfile.lock b/Gemfile.lock
index e57c53c..d4cd3f2 100644
--- a/Gemfile.lock
+++ b/Gemfile.lock
@@ -1,51 +1,69 @@
 GEM
   remote: https://rubygems.org/
   specs:
-    addressable (2.5.2)
-      public_suffix (>= 2.0.2, < 4.0)
+    addressable (2.8.6)
+      public_suffix (>= 2.0.2, < 6.0)
     colorator (1.1.0)
-    ffi (1.9.18)
+    concurrent-ruby (1.2.3)
+    em-websocket (0.5.3)
+      eventmachine (>= 0.12.9)
+      http_parser.rb (~> 0)
+    eventmachine (1.2.7)
+    ffi (1.16.3)
     forwardable-extended (2.6.0)
-    jekyll (3.6.2)
+    http_parser.rb (0.8.0)
+    i18n (1.14.4)
+      concurrent-ruby (~> 1.0)
+    jekyll (3.9.5)
       addressable (~> 2.4)
       colorator (~> 1.0)
+      em-websocket (~> 0.5)
+      i18n (>= 0.7, < 2)
       jekyll-sass-converter (~> 1.0)
-      jekyll-watch (~> 1.1)
-      kramdown (~> 1.14)
+      jekyll-watch (~> 2.0)
+      kramdown (>= 1.17, < 3)
       liquid (~> 4.0)
       mercenary (~> 0.3.3)
       pathutil (~> 0.9)
-      rouge (>= 1.7, < 3)
+      rouge (>= 1.7, < 4)
       safe_yaml (~> 1.0)
-    jekyll-sass-converter (1.5.0)
+    jekyll-sass-converter (1.5.2)
       sass (~> 3.4)
-    jekyll-watch (1.5.0)
-      listen (~> 3.0, < 3.1)
-    kramdown (1.14.0)
-    liquid (4.0.0)
-    listen (3.0.6)
-      rb-fsevent (>= 0.9.3)
-      rb-inotify (>= 0.9.7)
+    jekyll-watch (2.2.1)
+      listen (~> 3.0)
+    kramdown (2.4.0)
+      rexml
+    kramdown-parser-gfm (1.1.0)
+      kramdown (~> 2.0)
+    liquid (4.0.4)
+    listen (3.9.0)
+      rb-fsevent (~> 0.10, >= 0.10.3)
+      rb-inotify (~> 0.9, >= 0.9.10)
     mercenary (0.3.6)
-    pathutil (0.16.0)
+    pathutil (0.16.2)
       forwardable-extended (~> 2.6)
-    public_suffix (2.0.5)
-    rb-fsevent (0.10.2)
-    rb-inotify (0.9.10)
-      ffi (>= 0.5.0, < 2)
-    rouge (2.2.1)
-    safe_yaml (1.0.4)
-    sass (3.5.3)
+    public_suffix (5.0.5)
+    rb-fsevent (0.11.2)
+    rb-inotify (0.10.1)
+      ffi (~> 1.0)
+    rexml (3.2.6)
+    rouge (3.30.0)
+    safe_yaml (1.0.5)
+    sass (3.7.4)
       sass-listen (~> 4.0.0)
     sass-listen (4.0.0)
       rb-fsevent (~> 0.9, >= 0.9.4)
       rb-inotify (~> 0.9, >= 0.9.7)
+    webrick (1.8.1)
 
 PLATFORMS
   ruby
 
 DEPENDENCIES
-  jekyll
+  jekyll (< 4)
+  kramdown-parser-gfm
+  rexml
+  webrick (~> 1.8)
 
 BUNDLED WITH
-   1.17.1
+   2.5.3