-
-
Notifications
You must be signed in to change notification settings - Fork 29
/
casset.php
223 lines (208 loc) · 7.04 KB
/
casset.php
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
<?php
/**
* Casset: Convenient asset library for FuelPHP.
*
* @package Casset
* @version v1.13
* @author Antony Male
* @license MIT License
* @copyright 2011 Antony Male
* @link http://github.com/canton7/fuelphp-casset
*/
return array(
/**
* An array of paths that will be searched for assets.
* Each path is assigned a name, which is used when referring to that asset.
* See the js() and css() docs for more info.
* Each asset is a RELATIVE path from the base_url WITH a trailing slash.
* There must be an entry with the key 'core'. This is used when no path
* is specified.
*
* array(
* 'core' => 'assets/'
* )
*
* You can also choose to override the js_dir, css_dir and/or img_dir config
* options on a per-path basis. You can override just one dir, two, or all
* of them.
* In this case, the syntax is
* array (
* 'some_key' => array(
* 'path' => 'more_assets/',
* 'js_dir' => 'javascript/',
* 'css_dir' => 'styles/'
* 'img_dir' => 'images/',
* ),
* )
*/
'paths' => array(
'core' => 'assets/',
),
/**
* URL to your Fuel root. Typically this will be your base URL,
* WITH a trailing slash:
*
* Config::get('base_url')
*/
'url' => Config::get('base_url'),
/**
* Asset Sub-folders
*
* Names for the js and css folders (inside the asset path).
*
* Examples:
*
* js/
* css/
* img/
*
* This MUST include the trailing slash ('/')
*/
'js_dir' => 'js/',
'css_dir' => 'css/',
'img_dir' => 'img/',
/**
* When minifying, the minified, combined files are cached.
* This value specifies the location of those files, relative to public/
*
* This MUST include the trailing slash ('/')
*/
'cache_path' => 'assets/cache/',
/**
* Note the following with regards to combining / minifying files:
* Combine and minify:
* Files are minified (or the minified form used, if given), and combined
* into a single cache file.
* Combine and not minify:
* Non-minified versions of files are combined into a single cache file.
* Not combine and minify:
* Minified versions of files are linked to, if given. Otherwise the non-
* minified versions are linked to.
* NOTE THIS IS POTENTIALLY UNEXPECTED BEHAVIOUR, but makes sense when you
* take remote assets into account.
* Not combine and not minify:
* Non-minified versions of files are linked to.
*/
/**
* Whether to minify files.
*/
'min' => true,
/**
* Whether to combine files
*/
'combine' => true,
/**
* When minifying, whether to show the files names in each combined
* file in a comment before the tag to the file.
*/
'show_files' => false,
/**
* When minifying, whether to put comments in each minified file showing
* the origin location of each part of the file.
*/
'show_files_inline' => false,
/**
* How deep to go when resolving deps, before assuming that there're some
* circular ones.
*/
'deps_max_depth' => 5,
/**
* Here you can pass the name of a callback that is called after a while is loaded from
* disk, and before it is stored in a cache file.
* This set of circumstances only occurs when 'combine' is true -- the callback
* will *not* be called if 'combine' is false.
*
* This parameter expects a string, which is the name of a closure, with the
* following prototype:
* function($content, $filename, $type, $group_name)
* and should return the content after being processed.
* $content = the file content which casset has loaded from file
* $filename = the name of the file casset has loaded
* $type = 'js' or 'css'
* $group_name = the name of the group to which the file belongs
*
* Alternatively, or you can use
* Casset::set_post_load_callback(function($content, ...) { ... }); instead
*/
'post_load_callback' => null,
/**
* This config key specifies the name of a callback which is called when Casset
* wants to create a <script> or <link> tag pointing at a remote asset path,
* or you've called img() and Casset is about to return the image path to you.
* The callback allows you to overwrite / modify that path.
*
* As with the post_load_callback, this parameter expects a string.
* The function prototype for the function named is:
* function($filepath, $type, $remote);
* and should return the modified filepath after being processed.
* $filepath = the path to the file
* $type = 'js' / 'css' / 'img'
* $remote = true if the file is located on another server, false otherwise
*
* Alternatively, you can use
* Casset::set_filepath_callback(function($filepath, ...) { ... }); instead
*/
'filepath_callback' => null,
/**
* Groups of scripts.
* You can predefine groups of js and css scripts which can be enabled/disabled
* and rendered.
* There isn't much flexibility in this syntax, and no error-checking is performed,
* so please be careful!
*
* The groups array follows the following structure:
* array(
* 'js' => array(
* 'group_name' => array(
* 'files' => array(
* array('file1.js', 'file1.min.js'),
* 'file2.js'
* ),
* 'enabled' => true,
* 'min' => false,
* ),
* 'group_name_2' => array(.....),
* ),
* 'css' => aarray(
* 'group_name' => array(
* 'files' => array(
* array('file1.css', 'file1.min.css'),
* 'file2.css',
* ),
* 'enabled' => true,
* 'deps' => array('some_other_group'),
* ),
* 'group_name_2' => array(.....),
* ),
* ),
*
* - 'js' and 'css' are special keys, used by functions like render_js and
* render_css. Either can happily be omitted.
* - 'group_name' is a user-defined group name. Files can be added to a
* particular group using the third argument of css() or js().
* Similarly, individual groups can be rendered by passing the group
* name to render_css() or render_js().
* Another point to note is that each group is minified into its own
* distinct cache file. This is a compromise between allowing the
* browser to cache files, and flooding it with too many files.
* - 'files' is a list of the files present in the group.
* Each file can either be defined by a string, or by an array of 2 elements.
* If the string form is used, the file will be minified using an internal
* library when 'min' = true.
* If the array form is used, the second element in the array is used
* when 'min' = true. This is useful when a library also provided a minified
* version of itself (eg jquery).
* - 'enabled': whether the group will be rendered when render_css() or
* render_js() is called.
* - 'min: an optional key, allowing you to override the global 'min' config
* key on a per-group basis. If null or not specified, the 'min' config
* key will be used.
* Using this,
* - 'deps': an optional key, allowing you to specify other groups
* which are automatically rendered when this group is. See the readme
* for more details.
*/
'groups' => array(
),
);
/* End of file config/casset.php */