card-mod-assets 0.15.0 → 0.15.1.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +114 -0
- data/lib/tasks/card/assets.rake +20 -0
- data/set/abstract/asset_file.rb +1 -1
- data/set/abstract/asset_inputter.rb +12 -5
- data/set/abstract/mod_assets.rb +1 -0
- data/set/right/asset_input.rb +1 -1
- metadata +18 -16
- /data/{locales → config/locales}/de.yml +0 -0
- /data/{locales → config/locales}/en.yml +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 372fad6c3d3b2c7e3f8a23a3768aee184dbd21c3007940b8c76f2cc2be4f0419
|
4
|
+
data.tar.gz: bbafac714318a3a99305f3b7d725104666f6cd83be3ba96cee225ccc40bdbf81
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e6e2019fcfe69c261653ffedbc3c781e64bfd8dff00b56c72038114b9954e52981ab25d6911da60debad88aaa23e71c1601a7bd215c93f1570556592ea84c38d
|
7
|
+
data.tar.gz: c1307ea771dcf132cb52cb711b04aa195c36b9237954dfc5c3058c01617a1697415ab3f136eea173d046c8db3660f7f709e948ea628d4b93586393aea34bf60d
|
data/README.md
ADDED
@@ -0,0 +1,114 @@
|
|
1
|
+
<!--
|
2
|
+
# @title README - mod: assets
|
3
|
+
-->
|
4
|
+
|
5
|
+
# Assets mod
|
6
|
+
|
7
|
+
This mod unifies handling of styles (CSS, SCSS, etc) and scripts
|
8
|
+
(JavaScript, CoffeeScript, etc).
|
9
|
+
|
10
|
+
For both styles and scripts, the idea is to output optimized files for
|
11
|
+
browser caching and thus improve users' experience by reducing loading times. In other
|
12
|
+
words, we use a wide variety of asset sources to assemble a ready-for-prime-time
|
13
|
+
.js and .css files.
|
14
|
+
|
15
|
+
There are two main kinds of cards in the asset pipeline: inputters (where
|
16
|
+
the code comes from) and outputters (where it ends up).
|
17
|
+
|
18
|
+
## Inputters
|
19
|
+
|
20
|
+
Inputters are can be created in multiple ways:
|
21
|
+
|
22
|
+
1. By adding code to the assets directory in a mod
|
23
|
+
2. By adding remote and/or local assets to a manifest.yml file
|
24
|
+
3. By combining other inputters
|
25
|
+
4. By directly creating cards of an inputter type
|
26
|
+
|
27
|
+
### adding code to the assets directory
|
28
|
+
|
29
|
+
Each mod can have an `assets` directory with `style` and `script` subdirectories.
|
30
|
+
By adding CSS or SCSS files to `assets/style` (or JavaScript or CoffeeScript
|
31
|
+
files to `assets/script`) to a mod in use, your code will automatically be included
|
32
|
+
in standard asset output.
|
33
|
+
|
34
|
+
After adding the first asset to a mod, you may need to run `rake card:mod:install` (or
|
35
|
+
the more comprehensive `decko update`) for the change to take effect. Otherwise,
|
36
|
+
everything should pretty much handle itself.
|
37
|
+
|
38
|
+
By default, the load order within a mod is alphabetical, and the load order across mods
|
39
|
+
is governed by the mod load order, which can be seen using `rake card:mod:list`.
|
40
|
+
|
41
|
+
### using manifest.yml files
|
42
|
+
|
43
|
+
If you want to customize the load order of asset files, you can add a `manifest.yml`
|
44
|
+
file to `assets/style` or `assets/script`.
|
45
|
+
|
46
|
+
For example, consider these lines from the manifest.yml file in the bootstrap mod:
|
47
|
+
|
48
|
+
libraries:
|
49
|
+
items:
|
50
|
+
- font_awesome.css
|
51
|
+
- material_icons.css
|
52
|
+
- bootstrap_colorpicker.scss
|
53
|
+
- ../../vendor/bootstrap-colorpicker/src/sass/_colorpicker.scss
|
54
|
+
|
55
|
+
The word `libraries` is an arbitrary name for the manifest group; you can use any name
|
56
|
+
(other than `remote`) as long as it isn't duplicated in the file. The `items` specify
|
57
|
+
the load order for this manifest group.
|
58
|
+
|
59
|
+
Note that the manifest also makes it possible to include source files that are not in
|
60
|
+
the assets directory using relative path references.
|
61
|
+
|
62
|
+
Manifests also make it possible to include remote files. For example:
|
63
|
+
|
64
|
+
remote:
|
65
|
+
items:
|
66
|
+
- src: https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.6-rc.1/js/select2.full.min.js
|
67
|
+
integrity: ...
|
68
|
+
referrerpolicy: no-referrer
|
69
|
+
crossorigin: anonymous
|
70
|
+
|
71
|
+
### combining other inputters
|
72
|
+
|
73
|
+
There are various special cards that combine inputters and are inputters themselves:
|
74
|
+
|
75
|
+
- the `:style_mods` card contains all the standard assets from mods' asset directories
|
76
|
+
- _Skin_ cards combine a particular set of styles
|
77
|
+
- `(Mod)+:style` and `(Mod)+:script` assemble the assets for a given mod
|
78
|
+
|
79
|
+
### creating inputter cards
|
80
|
+
|
81
|
+
Many Cardtypes are coded to be inputters. If you create a card with the type CSS,
|
82
|
+
for example, it will automatically be treated as an inputter. The same goes for SCSS,
|
83
|
+
CoffeeScript, and JavaScript cards. (In code terms, this is achieved by having those
|
84
|
+
sets include the `Abstract::AssetInputter` set).
|
85
|
+
|
86
|
+
Because these cards are intended for Sharks, they are predominantly documented on
|
87
|
+
decko.org
|
88
|
+
|
89
|
+
## Outputters
|
90
|
+
|
91
|
+
Outputters produce the final asset (.js and .css) files delivered to users' browsers.
|
92
|
+
|
93
|
+
They work slightly differently with style and script cards. JavaScript (.js) output is
|
94
|
+
produced on a mod-by-mod basis. The `:all+:script` rule maintains a list of all mods
|
95
|
+
with script inputters, and output is produced for each mod that assembles all the
|
96
|
+
javascript for that mod. The output is managed with a file card using the name pattern
|
97
|
+
`MOD+:asset_ouput`
|
98
|
+
|
99
|
+
With style cards, SCSS variables are often shared across many mods, so the output CSS
|
100
|
+
cannot be constructed on a mod-by-mod basis; it has to be generated across all mods at
|
101
|
+
once. Thus the site's main CSS is served as a single file associated with `:all+:style`,
|
102
|
+
which typically points to a skin card. The output is managed as a file card at
|
103
|
+
`:all+:style+:asset_output`.
|
104
|
+
|
105
|
+
### generating output from input
|
106
|
+
|
107
|
+
For each inputter, we generate a VirtualCache card following this pattern:
|
108
|
+
`(Inputter)+:asset_input`. This card processes the inputs as much as it safely can.
|
109
|
+
For example, SCSS cards cannot be converted to CSS here, because they often
|
110
|
+
involve variables that must be used by other inputters.
|
111
|
+
|
112
|
+
When changes to inputters are detected, they trigger changes to all inputters and
|
113
|
+
outputters that depend on them.
|
114
|
+
|
@@ -0,0 +1,20 @@
|
|
1
|
+
namespace :card do
|
2
|
+
namespace :assets do
|
3
|
+
desc "regenerate asset outputs"
|
4
|
+
task refresh: :environment do
|
5
|
+
Card::Assets.refresh force: true
|
6
|
+
end
|
7
|
+
|
8
|
+
desc "update coded asset outputs"
|
9
|
+
task code: :environment do
|
10
|
+
Cardio.config.compress_assets = true
|
11
|
+
Card::Cache.reset_all
|
12
|
+
Card::Assets.make_output_coded
|
13
|
+
end
|
14
|
+
|
15
|
+
desc "delete all cached asset outputs and inputs"
|
16
|
+
task wipe: :environment do
|
17
|
+
Card::Assets.wipe
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
data/set/abstract/asset_file.rb
CHANGED
@@ -12,11 +12,13 @@ def referers_responding_to method_name
|
|
12
12
|
referers.select { |referer| referer.respond_to? method_name }
|
13
13
|
end
|
14
14
|
|
15
|
-
event :asset_input_changed, :finalize,
|
15
|
+
event :asset_input_changed, :finalize,
|
16
|
+
on: :save, when: :asset_inputter?, skip: :allowed do
|
16
17
|
update_asset_input
|
17
18
|
end
|
18
19
|
|
19
|
-
event :asset_input_changed_on_delete, :finalize,
|
20
|
+
event :asset_input_changed_on_delete, :finalize,
|
21
|
+
on: :delete, when: :asset_inputter?, before: :clear_references do
|
20
22
|
update_referers_after_input_changed
|
21
23
|
end
|
22
24
|
|
@@ -39,13 +41,13 @@ def update_asset_input
|
|
39
41
|
end
|
40
42
|
|
41
43
|
def asset_input_content
|
42
|
-
return
|
44
|
+
return assemble_asset_input_content if virtual?
|
43
45
|
update_asset_input if asset_input.blank?
|
44
46
|
asset_input
|
45
47
|
end
|
46
48
|
|
47
|
-
def
|
48
|
-
format(input_format).render
|
49
|
+
def assemble_asset_input_content
|
50
|
+
format(input_format).render input_view
|
49
51
|
end
|
50
52
|
|
51
53
|
def input_view
|
@@ -64,6 +66,11 @@ def asset_input_needs_refresh?
|
|
64
66
|
false
|
65
67
|
end
|
66
68
|
|
69
|
+
# for override
|
70
|
+
def asset_inputter?
|
71
|
+
true
|
72
|
+
end
|
73
|
+
|
67
74
|
format :html do
|
68
75
|
def edit_success
|
69
76
|
{ reload: true }
|
data/set/abstract/mod_assets.rb
CHANGED
data/set/right/asset_input.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: card-mod-assets
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.15.
|
4
|
+
version: 0.15.1.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ethan McCutchen
|
@@ -10,7 +10,7 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date: 2023-
|
13
|
+
date: 2023-03-29 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: card
|
@@ -18,14 +18,14 @@ dependencies:
|
|
18
18
|
requirements:
|
19
19
|
- - '='
|
20
20
|
- !ruby/object:Gem::Version
|
21
|
-
version: 1.105.
|
21
|
+
version: 1.105.1
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
24
|
version_requirements: !ruby/object:Gem::Requirement
|
25
25
|
requirements:
|
26
26
|
- - '='
|
27
27
|
- !ruby/object:Gem::Version
|
28
|
-
version: 1.105.
|
28
|
+
version: 1.105.1
|
29
29
|
- !ruby/object:Gem::Dependency
|
30
30
|
name: execjs
|
31
31
|
requirement: !ruby/object:Gem::Requirement
|
@@ -52,70 +52,70 @@ dependencies:
|
|
52
52
|
requirements:
|
53
53
|
- - '='
|
54
54
|
- !ruby/object:Gem::Version
|
55
|
-
version: 0.15.
|
55
|
+
version: 0.15.1.1
|
56
56
|
type: :runtime
|
57
57
|
prerelease: false
|
58
58
|
version_requirements: !ruby/object:Gem::Requirement
|
59
59
|
requirements:
|
60
60
|
- - '='
|
61
61
|
- !ruby/object:Gem::Version
|
62
|
-
version: 0.15.
|
62
|
+
version: 0.15.1.1
|
63
63
|
- !ruby/object:Gem::Dependency
|
64
64
|
name: card-mod-format
|
65
65
|
requirement: !ruby/object:Gem::Requirement
|
66
66
|
requirements:
|
67
67
|
- - '='
|
68
68
|
- !ruby/object:Gem::Version
|
69
|
-
version: 0.15.
|
69
|
+
version: 0.15.1.1
|
70
70
|
type: :runtime
|
71
71
|
prerelease: false
|
72
72
|
version_requirements: !ruby/object:Gem::Requirement
|
73
73
|
requirements:
|
74
74
|
- - '='
|
75
75
|
- !ruby/object:Gem::Version
|
76
|
-
version: 0.15.
|
76
|
+
version: 0.15.1.1
|
77
77
|
- !ruby/object:Gem::Dependency
|
78
78
|
name: card-mod-list
|
79
79
|
requirement: !ruby/object:Gem::Requirement
|
80
80
|
requirements:
|
81
81
|
- - '='
|
82
82
|
- !ruby/object:Gem::Version
|
83
|
-
version: 0.15.
|
83
|
+
version: 0.15.1.1
|
84
84
|
type: :runtime
|
85
85
|
prerelease: false
|
86
86
|
version_requirements: !ruby/object:Gem::Requirement
|
87
87
|
requirements:
|
88
88
|
- - '='
|
89
89
|
- !ruby/object:Gem::Version
|
90
|
-
version: 0.15.
|
90
|
+
version: 0.15.1.1
|
91
91
|
- !ruby/object:Gem::Dependency
|
92
92
|
name: card-mod-carrierwave
|
93
93
|
requirement: !ruby/object:Gem::Requirement
|
94
94
|
requirements:
|
95
95
|
- - '='
|
96
96
|
- !ruby/object:Gem::Version
|
97
|
-
version: 0.15.
|
97
|
+
version: 0.15.1.1
|
98
98
|
type: :runtime
|
99
99
|
prerelease: false
|
100
100
|
version_requirements: !ruby/object:Gem::Requirement
|
101
101
|
requirements:
|
102
102
|
- - '='
|
103
103
|
- !ruby/object:Gem::Version
|
104
|
-
version: 0.15.
|
104
|
+
version: 0.15.1.1
|
105
105
|
- !ruby/object:Gem::Dependency
|
106
106
|
name: card-mod-content
|
107
107
|
requirement: !ruby/object:Gem::Requirement
|
108
108
|
requirements:
|
109
109
|
- - '='
|
110
110
|
- !ruby/object:Gem::Version
|
111
|
-
version: 0.15.
|
111
|
+
version: 0.15.1.1
|
112
112
|
type: :runtime
|
113
113
|
prerelease: false
|
114
114
|
version_requirements: !ruby/object:Gem::Requirement
|
115
115
|
requirements:
|
116
116
|
- - '='
|
117
117
|
- !ruby/object:Gem::Version
|
118
|
-
version: 0.15.
|
118
|
+
version: 0.15.1.1
|
119
119
|
description: ''
|
120
120
|
email:
|
121
121
|
- info@decko.org
|
@@ -123,11 +123,13 @@ executables: []
|
|
123
123
|
extensions: []
|
124
124
|
extra_rdoc_files: []
|
125
125
|
files:
|
126
|
+
- README.md
|
127
|
+
- config/locales/de.yml
|
128
|
+
- config/locales/en.yml
|
126
129
|
- data/real.yml
|
127
130
|
- db/migrate_core_cards/202108028112352_death_to_machines.rb
|
128
131
|
- lib/card/assets.rb
|
129
|
-
-
|
130
|
-
- locales/en.yml
|
132
|
+
- lib/tasks/card/assets.rake
|
131
133
|
- set/abstract/01_manifest_group.rb
|
132
134
|
- set/abstract/asset_file.rb
|
133
135
|
- set/abstract/asset_group.rb
|
File without changes
|
File without changes
|