-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathinline_premailer.rb
31 lines (31 loc) · 1.02 KB
/
inline_premailer.rb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
module PreMailer
class << self
def registered(app)
require "premailer"
app.after_build do |builder|
prefix = "#{build_dir}#{File::SEPARATOR}"
Dir.chdir(build_dir) do
Dir.glob('**/*.html') do |file|
premailer = Premailer.new(file,
:warn_level => Premailer::Warnings::SAFE,
:preserve_styles => false,
:css_to_attributes => true,
:remove_comments => true,
:remove_ids => true,
:remove_classes => true
)
File.open(file, "w") do |f|
f.write(premailer.to_inline_css)
end
premailer.warnings.each do |w|
builder.say_status :premailer, "#{w[:message]} (#{w[:level]}) may not render properly in #{w[:clients]}"
end
builder.say_status :premailer, "#{prefix}#{file}"
end
end
end
end
alias :included :registered
end
end
::Middleman::Extensions.register(:inline_premailer, PreMailer)