Browse Source

Fix #2922 - Load stylesheet from "custom.css" entrypoint when present (#3332)

* Fix #2922 - Load stylesheet from "custom.css" entrypoint when present

This is pretty much the same way it worked as before, albeit with
having to create app/javascript/packs/custom.js with
require('../styles/custom.scss') (or whatever you want really), which
will be a blank slate for you to import whatever you want

* Remove old assets directory

* Extract font-awesome into common.css and always load it
closed-social-v3
Eugen Rochko 7 years ago
committed by GitHub
parent
commit
62ca37884a
5 changed files with 25 additions and 7 deletions
  1. +0
    -0
     
  2. +17
    -0
      app/helpers/style_helper.rb
  3. +0
    -6
      app/javascript/mastodon/main.js
  4. +2
    -1
      app/views/layouts/application.html.haml
  5. +6
    -0
      config/webpack/shared.js

+ 0
- 0
View File


+ 17
- 0
app/helpers/style_helper.rb View File

@ -0,0 +1,17 @@
# frozen_string_literal: true
module StyleHelper
def stylesheet_for_layout
if asset_exist? 'custom.css'
'custom'
else
'application'
end
end
def asset_exist?(path)
true if Webpacker::Manifest.lookup(path)
rescue Webpacker::FileLoader::NotFoundError
false
end
end

+ 0
- 6
app/javascript/mastodon/main.js View File

@ -1,8 +1,5 @@
const perf = require('./performance');
// allow override variables here
require.context('../../assets/stylesheets/', false, /variables.*\.scss$/);
// import default stylesheet with variables
require('font-awesome/css/font-awesome.css');
require('../styles/application.scss');
@ -23,9 +20,6 @@ function main() {
require.context('../images/', true);
// import customization styles
require.context('../../assets/stylesheets/', false, /custom.*\.scss$/);
onDomContentLoaded(() => {
const mountNode = document.getElementById('mastodon');
const props = JSON.parse(mountNode.getAttribute('data-props'));

+ 2
- 1
app/views/layouts/application.html.haml View File

@ -18,7 +18,8 @@
= ' - '
= title
= stylesheet_pack_tag 'application', media: 'all'
= stylesheet_pack_tag 'common', media: 'all'
= stylesheet_pack_tag stylesheet_for_layout, media: 'all'
= javascript_pack_tag 'common', integrity: true, crossorigin: 'anonymous'
= javascript_pack_tag "locale_#{I18n.locale}", integrity: true, crossorigin: 'anonymous'
= csrf_meta_tags

+ 6
- 0
config/webpack/shared.js View File

@ -53,6 +53,12 @@ module.exports = {
// be loaded together
return false;
}
if (module.resource && /node_modules\/font-awesome/.test(module.resource)) {
// extract vendor css into common module
return true;
}
return count >= 2;
},
}),

Loading…
Cancel
Save