diff --git a/app/controllers/users_controller.rb b/app/controllers/users_controller.rb index b364b5bd6..9ab672097 100644 --- a/app/controllers/users_controller.rb +++ b/app/controllers/users_controller.rb @@ -75,6 +75,11 @@ class UsersController < ApplicationController end end + def custom_style + @css = CustomCss.parse(CurrentUser.user.custom_style) + expires_in 10.years + end + private def check_privilege(user) diff --git a/app/logical/custom_css.rb b/app/logical/custom_css.rb new file mode 100644 index 000000000..0f3629095 --- /dev/null +++ b/app/logical/custom_css.rb @@ -0,0 +1,11 @@ +module CustomCss + def self.parse(css) + css.to_s.split(/\r\n|\r|\n/).map do |line| + if line =~ /\A@import/ + line + else + line.gsub(/([^[:space:]])[[:space:]]*(?:!important)?[[:space:]]*(;|})/, "\\1 !important\\2") + end + end.join("\n") + end +end diff --git a/app/presenters/user_presenter.rb b/app/presenters/user_presenter.rb index 5608faebd..aafecb8a5 100644 --- a/app/presenters/user_presenter.rb +++ b/app/presenters/user_presenter.rb @@ -172,14 +172,4 @@ class UserPresenter def previous_names(template) user.user_name_change_requests.map { |req| template.link_to req.original_name, req }.join(", ").html_safe end - - def custom_css - user.custom_style.to_s.split(/\r\n|\r|\n/).map do |line| - if line =~ /\A@import/ - line - else - line.gsub(/([^[:space:]])[[:space:]]*(?:!important)?[[:space:]]*(;|})/, "\\1 !important\\2") - end - end.join("\n") - end end diff --git a/app/views/layouts/default.html.erb b/app/views/layouts/default.html.erb index 4f0cb1fcd..790043c20 100644 --- a/app/views/layouts/default.html.erb +++ b/app/views/layouts/default.html.erb @@ -32,7 +32,7 @@ <%= javascript_pack_tag "application" %> <%= stylesheet_pack_tag "application" %> <% if CurrentUser.user.custom_style.present? %> - <%= stylesheet_link_tag custom_style_users_path, :media => "screen" %> + <%= stylesheet_link_tag custom_style_users_path(md5: Digest::MD5.hexdigest(CurrentUser.user.custom_style)), media: "screen" %> <% end %> <% if Danbooru.config.twitter_site %>