Skip to content

Commit 4d7b65d

Browse files
committed
Upgrade Ruby to 3.4 and fix build compatibility issues
- Upgrade Ruby from 3.2 to 3.4 (3.2 EOL in ~3 months) - Update Bundler and gems to latest versions - Upgrade Haml to 7.1 (blocking issue now resolved) - Replace deprecated sass gem with sassc - Replace Redcarpet with Kramdown to fix link_to nil error on Ruby 3.x - Enable Uglifier harmony mode for ES6 syntax support - Remove unused lib/unique_head.rb and lib/multilang.rb Closes middleman/middleman#2818 workaround via Kramdown migration
1 parent 0fbc0d8 commit 4d7b65d

File tree

8 files changed

+102
-152
lines changed

8 files changed

+102
-152
lines changed

.ruby-version

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
3.2.2
1+
3.4.7

Gemfile

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,16 @@
1-
ruby '~> 3.2'
1+
ruby '~> 3.4'
22
source 'https://rubygems.org'
33

44
# Middleman
55
gem 'middleman', '~>4.5'
66
gem 'middleman-syntax', '~> 3.3'
77
gem 'middleman-autoprefixer', '~> 3.0'
8-
# middleman-sprocket can not be updated to 4.1.1 until the below issue is resolved
9-
# https://github.com/middleman/middleman/issues/2302
8+
# middleman-sprockets can not be updated to 4.1.1 due to autoprefixer seeing
9+
# SCSS comments before compilation: https://github.com/middleman/middleman/issues/2302
1010
gem 'middleman-sprockets', '4.1.0'
1111
gem 'rouge', '~> 3.21'
12-
gem 'redcarpet', '~> 3.6.0'
12+
gem 'kramdown', '~> 2.5'
13+
gem 'kramdown-parser-gfm', '~> 1.1'
1314
gem 'nokogiri', '~> 1.15.4'
14-
gem 'sass'
15-
# Haml can't be updated to 6.0 due to a monkey patch in middleman-syntax that needs to be fixed
16-
# https://github.com/middleman/middleman-syntax/issues/80
17-
gem 'haml', '~> 5.2'
15+
gem 'sassc'
16+
gem 'haml', '~> 7.1'

Gemfile.lock

Lines changed: 84 additions & 66 deletions
Original file line numberDiff line numberDiff line change
@@ -1,143 +1,161 @@
11
GEM
22
remote: https://rubygems.org/
33
specs:
4-
activesupport (7.0.8)
5-
concurrent-ruby (~> 1.0, >= 1.0.2)
4+
activesupport (8.1.1)
5+
base64
6+
bigdecimal
7+
concurrent-ruby (~> 1.0, >= 1.3.1)
8+
connection_pool (>= 2.2.5)
9+
drb
610
i18n (>= 1.6, < 2)
11+
json
12+
logger (>= 1.4.2)
713
minitest (>= 5.1)
8-
tzinfo (~> 2.0)
9-
addressable (2.8.5)
10-
public_suffix (>= 2.0.2, < 6.0)
11-
autoprefixer-rails (10.4.15.0)
14+
securerandom (>= 0.3)
15+
tzinfo (~> 2.0, >= 2.0.5)
16+
uri (>= 0.13.1)
17+
addressable (2.8.8)
18+
public_suffix (>= 2.0.2, < 8.0)
19+
autoprefixer-rails (10.4.21.0)
1220
execjs (~> 2)
13-
backports (3.24.1)
21+
base64 (0.3.0)
22+
bigdecimal (4.0.1)
1423
coffee-script (2.4.1)
1524
coffee-script-source
1625
execjs
1726
coffee-script-source (1.12.2)
18-
concurrent-ruby (1.2.2)
19-
contracts (0.17)
20-
dotenv (2.8.1)
21-
erubis (2.7.0)
22-
execjs (2.9.1)
27+
concurrent-ruby (1.3.6)
28+
connection_pool (3.0.2)
29+
contracts (0.17.2)
30+
dotenv (3.2.0)
31+
drb (2.2.3)
32+
erubi (1.13.1)
33+
execjs (2.10.0)
2334
fast_blank (1.0.1)
24-
fastimage (2.2.7)
25-
ffi (1.16.3)
26-
haml (5.2.2)
27-
temple (>= 0.8.0)
35+
fastimage (2.4.0)
36+
ffi (1.17.2)
37+
haml (7.1.0)
38+
temple (>= 0.8.2)
39+
thor
2840
tilt
2941
hamster (3.0.0)
3042
concurrent-ruby (~> 1.0)
31-
hashie (3.6.0)
32-
i18n (1.6.0)
43+
hashie (5.0.0)
44+
i18n (1.14.7)
3345
concurrent-ruby (~> 1.0)
34-
kramdown (2.4.0)
35-
rexml
36-
listen (3.8.0)
46+
json (2.18.0)
47+
kramdown (2.5.1)
48+
rexml (>= 3.3.9)
49+
kramdown-parser-gfm (1.1.0)
50+
kramdown (~> 2.0)
51+
listen (3.9.0)
3752
rb-fsevent (~> 0.10, >= 0.10.3)
3853
rb-inotify (~> 0.9, >= 0.9.10)
54+
logger (1.7.0)
3955
memoist (0.16.2)
40-
middleman (4.5.0)
41-
coffee-script (~> 2.2)
42-
haml (>= 4.0.5)
43-
kramdown (>= 2.3.0)
44-
middleman-cli (= 4.5.0)
45-
middleman-core (= 4.5.0)
56+
middleman (4.6.2)
57+
middleman-cli (= 4.6.2)
58+
middleman-core (= 4.6.2)
4659
middleman-autoprefixer (3.0.0)
4760
autoprefixer-rails (~> 10.0)
4861
middleman-core (>= 4.0.0)
49-
middleman-cli (4.5.0)
50-
thor (>= 0.17.0, < 2.0)
51-
middleman-core (4.5.0)
52-
activesupport (>= 6.1, < 7.1)
62+
middleman-cli (4.6.2)
63+
thor (>= 0.17.0, < 2)
64+
middleman-core (4.6.2)
65+
activesupport (>= 6.1)
5366
addressable (~> 2.4)
54-
backports (~> 3.6)
5567
bundler (~> 2.0)
56-
contracts (~> 0.13)
68+
coffee-script (~> 2.2)
69+
contracts
5770
dotenv
58-
erubis
71+
erubi
5972
execjs (~> 2.0)
6073
fast_blank
6174
fastimage (~> 2.0)
75+
haml (>= 4.0.5)
6276
hamster (~> 3.0)
63-
hashie (~> 3.4)
64-
i18n (~> 1.6.0)
77+
hashie (>= 3.4, < 6.0)
78+
i18n (>= 1.6, < 1.15)
79+
kramdown (~> 2.4)
6580
listen (~> 3.0)
6681
memoist (~> 0.14)
6782
padrino-helpers (~> 0.15.0)
6883
parallel
69-
rack (>= 1.4.5, < 3)
84+
rack (>= 3)
85+
rackup
7086
sassc (~> 2.0)
7187
servolux
72-
tilt (~> 2.0.9)
88+
tilt (~> 2.2)
7389
toml
74-
uglifier (~> 3.0)
90+
uglifier (>= 3, < 5)
7591
webrick
7692
middleman-sprockets (4.1.0)
7793
middleman-core (~> 4.0)
7894
sprockets (>= 3.0)
79-
middleman-syntax (3.3.0)
95+
middleman-syntax (3.6.1)
8096
middleman-core (>= 3.2)
8197
rouge (~> 3.2)
82-
mini_portile2 (2.8.5)
83-
minitest (5.20.0)
84-
nokogiri (1.15.4)
98+
mini_portile2 (2.8.9)
99+
minitest (6.0.0)
100+
prism (~> 1.5)
101+
nokogiri (1.15.7)
85102
mini_portile2 (~> 2.8.2)
86103
racc (~> 1.4)
87104
padrino-helpers (0.15.3)
88105
i18n (>= 0.6.7, < 2)
89106
padrino-support (= 0.15.3)
90107
tilt (>= 1.4.1, < 3)
91108
padrino-support (0.15.3)
92-
parallel (1.23.0)
109+
parallel (1.27.0)
93110
parslet (2.0.0)
94-
public_suffix (5.0.3)
95-
racc (1.7.1)
96-
rack (2.2.8)
111+
prism (1.7.0)
112+
public_suffix (7.0.0)
113+
racc (1.8.1)
114+
rack (3.2.4)
115+
rackup (2.3.1)
116+
rack (>= 3)
97117
rb-fsevent (0.11.2)
98-
rb-inotify (0.10.1)
118+
rb-inotify (0.11.1)
99119
ffi (~> 1.0)
100-
redcarpet (3.6.0)
101-
rexml (3.2.6)
120+
rexml (3.4.4)
102121
rouge (3.30.0)
103-
sass (3.7.4)
104-
sass-listen (~> 4.0.0)
105-
sass-listen (4.0.0)
106-
rb-fsevent (~> 0.9, >= 0.9.4)
107-
rb-inotify (~> 0.9, >= 0.9.7)
108122
sassc (2.4.0)
109123
ffi (~> 1.9)
124+
securerandom (0.4.1)
110125
servolux (0.13.0)
111-
sprockets (4.2.1)
126+
sprockets (4.2.2)
112127
concurrent-ruby (~> 1.0)
128+
logger
113129
rack (>= 2.2.4, < 4)
114-
temple (0.10.3)
115-
thor (1.3.0)
116-
tilt (2.0.11)
130+
temple (0.10.4)
131+
thor (1.4.0)
132+
tilt (2.6.1)
117133
toml (0.3.0)
118134
parslet (>= 1.8.0, < 3.0.0)
119135
tzinfo (2.0.6)
120136
concurrent-ruby (~> 1.0)
121-
uglifier (3.2.0)
137+
uglifier (4.2.1)
122138
execjs (>= 0.3.0, < 3)
123-
webrick (1.8.1)
139+
uri (1.1.1)
140+
webrick (1.9.2)
124141

125142
PLATFORMS
126143
ruby
127144

128145
DEPENDENCIES
129-
haml (~> 5.2)
146+
haml (~> 7.1)
147+
kramdown (~> 2.5)
148+
kramdown-parser-gfm (~> 1.1)
130149
middleman (~> 4.5)
131150
middleman-autoprefixer (~> 3.0)
132151
middleman-sprockets (= 4.1.0)
133152
middleman-syntax (~> 3.3)
134153
nokogiri (~> 1.15.4)
135-
redcarpet (~> 3.6.0)
136154
rouge (~> 3.21)
137-
sass
155+
sassc
138156

139157
RUBY VERSION
140-
ruby 3.2.2p53
158+
ruby 3.4.7p58
141159

142160
BUNDLED WITH
143-
2.4.21
161+
2.7.2

config.rb

Lines changed: 9 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,14 @@
1-
# Unique header generation
2-
require './lib/unique_head.rb'
1+
require 'uglifier'
32

43
# Markdown
5-
set :markdown_engine, :redcarpet
4+
set :markdown_engine, :kramdown
65
set :markdown,
7-
fenced_code_blocks: true,
8-
smartypants: true,
9-
disable_indented_code_blocks: true,
10-
prettify: true,
11-
strikethrough: true,
12-
tables: true,
13-
with_toc_data: true,
14-
no_intra_emphasis: true,
15-
renderer: UniqueHeadCounter
6+
input: 'GFM',
7+
auto_ids: true,
8+
hard_wrap: false,
9+
smart_quotes: ['lsquo', 'rsquo', 'ldquo', 'rdquo'],
10+
syntax_highlighter: :rouge,
11+
syntax_highlighter_opts: { guess_lang: true }
1612

1713
# Assets
1814
set :css_dir, 'stylesheets'
@@ -24,7 +20,6 @@
2420
activate :syntax
2521
ready do
2622
require './lib/monokai_sublime_slate.rb'
27-
require './lib/multilang.rb'
2823
end
2924

3025
activate :sprockets
@@ -50,7 +45,7 @@
5045
# If you're having trouble with Middleman hanging, commenting
5146
# out the following two lines has been known to help
5247
activate :minify_css
53-
activate :minify_javascript
48+
activate :minify_javascript, compressor: -> { Uglifier.new(harmony: true) }
5449
# activate :gzip
5550
end
5651

lib/monokai_sublime_slate.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -92,4 +92,4 @@ class MonokaiSublimeSlate < CSSTheme
9292
Operator, :fg => :bright_pink
9393
end
9494
end
95-
end
95+
end

lib/multilang.rb

Lines changed: 0 additions & 16 deletions
This file was deleted.

lib/nesting_unique_head.rb

Lines changed: 0 additions & 22 deletions
This file was deleted.

lib/unique_head.rb

Lines changed: 0 additions & 24 deletions
This file was deleted.

0 commit comments

Comments
 (0)