From a8aa59e96ef64a11073d7c84a9af93077f98bf8a Mon Sep 17 00:00:00 2001 From: Douwe Maan <douwe@selenight.nl> Date: Thu, 28 Jan 2016 17:54:13 +0100 Subject: [PATCH] Inline mailer CSS using premailer. # Conflicts: # Gemfile.lock --- Gemfile | 2 ++ Gemfile.lock | 10 ++++++++++ app/assets/stylesheets/notify.scss | 24 ++++++++++++++++++++++++ app/views/layouts/notify.html.haml | 30 +++--------------------------- config/application.rb | 1 + config/initializers/premailer.rb | 7 +++++++ 6 files changed, 47 insertions(+), 27 deletions(-) create mode 100644 app/assets/stylesheets/notify.scss create mode 100644 config/initializers/premailer.rb diff --git a/Gemfile b/Gemfile index e500bfb78859b..99c1dfa7c0c8f 100644 --- a/Gemfile +++ b/Gemfile @@ -222,6 +222,8 @@ gem 'net-ssh', '~> 3.0.1' # Sentry integration gem 'sentry-raven', '~> 0.15' +gem 'premailer-rails', '~> 1.9.0' + # Metrics group :metrics do gem 'allocations', '~> 1.0', require: false, platform: :mri diff --git a/Gemfile.lock b/Gemfile.lock index 63ed9441c62da..cc83215a2e9f4 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -150,6 +150,8 @@ GEM crack (0.4.3) safe_yaml (~> 1.0.0) creole (0.5.0) + css_parser (1.3.7) + addressable d3_rails (3.5.11) railties (>= 3.1.0) daemons (1.2.3) @@ -423,6 +425,7 @@ GEM haml (~> 4.0.0) nokogiri (~> 1.6.0) ruby_parser (~> 3.5) + htmlentities (4.3.4) http-cookie (1.0.2) domain_name (~> 0.5) http_parser.rb (0.5.3) @@ -564,6 +567,12 @@ GEM websocket-driver (>= 0.2.0) posix-spawn (0.3.11) powerpack (0.1.1) + premailer (1.8.6) + css_parser (>= 1.3.6) + htmlentities (>= 4.0.0) + premailer-rails (1.9.0) + actionmailer (>= 3, < 5) + premailer (~> 1.7, >= 1.7.9) pry (0.10.3) coderay (~> 1.1.0) method_source (~> 0.8.1) @@ -992,6 +1001,7 @@ DEPENDENCIES paranoia (~> 2.0) pg (~> 0.18.2) poltergeist (~> 1.9.0) + premailer-rails (~> 1.9.0) pry-rails quiet_assets (~> 1.0.2) rack-attack (~> 4.3.1) diff --git a/app/assets/stylesheets/notify.scss b/app/assets/stylesheets/notify.scss new file mode 100644 index 0000000000000..f1d42f80f5635 --- /dev/null +++ b/app/assets/stylesheets/notify.scss @@ -0,0 +1,24 @@ +img { + max-width: 100%; + height: auto; +} +p.details { + font-style:italic; + color:#777 +} +.footer p { + font-size:small; + color:#777 +} +pre.commit-message { + white-space: pre-wrap; +} +.file-stats a { + text-decoration: none; +} +.file-stats .new-file { + color: #090; +} +.file-stats .deleted-file { + color: #B00; +} diff --git a/app/views/layouts/notify.html.haml b/app/views/layouts/notify.html.haml index 37b4d562966bd..2997f59d946b4 100644 --- a/app/views/layouts/notify.html.haml +++ b/app/views/layouts/notify.html.haml @@ -1,33 +1,9 @@ %html{lang: "en"} %head %meta{content: "text/html; charset=utf-8", "http-equiv" => "Content-Type"} - %title - GitLab - :css - img { - max-width: 100%; - height: auto; - } - p.details { - font-style:italic; - color:#777 - } - .footer p { - font-size:small; - color:#777 - } - pre.commit-message { - white-space: pre-wrap; - } - .file-stats a { - text-decoration: none; - } - .file-stats .new-file { - color: #090; - } - .file-stats .deleted-file { - color: #B00; - } + %title + GitLab + = stylesheet_link_tag 'notify' %body %div.content = yield diff --git a/config/application.rb b/config/application.rb index 2b103c4592db1..5a0ac70aa2aab 100644 --- a/config/application.rb +++ b/config/application.rb @@ -49,6 +49,7 @@ class Application < Rails::Application config.assets.paths << Gemojione.index.images_path config.assets.precompile << "*.png" config.assets.precompile << "print.css" + config.assets.precompile << "notify.css" # Version of your assets, change this if you want to expire all your assets config.assets.version = '1.0' diff --git a/config/initializers/premailer.rb b/config/initializers/premailer.rb new file mode 100644 index 0000000000000..a44316bc3a429 --- /dev/null +++ b/config/initializers/premailer.rb @@ -0,0 +1,7 @@ +# See https://github.com/fphilipe/premailer-rails#configuration +Premailer::Rails.config.merge!( + generate_text_part: false, + preserve_styles: true, + remove_comments: true, + remove_ids: true +) -- GitLab