Skip to content

Commit 4daa36a

Browse files
author
o10n-x
committed
core update
1 parent d6de03b commit 4daa36a

15 files changed

+1933
-167
lines changed

README.txt

+5-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ Tags: css, critical css, async, minify, editor, concat, minifier, concatenation,
55
Requires at least: 4.0
66
Requires PHP: 5.4
77
Tested up to: 4.9.4
8-
Stable tag: 0.0.48
8+
Stable tag: 0.0.49
99
License: GPLv2 or later
1010
License URI: http://www.gnu.org/licenses/gpl-2.0.html
1111

@@ -50,6 +50,10 @@ Documentation is available on [Github](https://github.com/o10n-x/wordpress-css-o
5050

5151
== Changelog ==
5252

53+
= 0.0.49 =
54+
* Added: support for multiple CSS minifiers.
55+
* Added: Yahoo [YUI CSS Compressor PHP Port](https://github.com/tubalmartin/YUI-CSS-compressor-PHP-port) v4.1.1
56+
5357
= 0.0.48 =
5458
* Bugfix: HTTP/2 Server Push applied when HTTP/2 Optimization plugin is disabled.
5559
* Bugfix: Async loaded concatenated stylesheet not pushed by HTTP/2 Server Push.

admin/css.inc.php

+105-19
Original file line numberDiff line numberDiff line change
@@ -21,37 +21,90 @@
2121
<th scope="row">Minify</th>
2222
<td>
2323
<label><input type="checkbox" value="1" name="o10n[css.minify.enabled]" data-json-ns="1"<?php $checked('css.minify.enabled'); ?> /> Enabled</label>
24-
<p class="description">Compress CSS using <a href="https://github.com/JoeScylla/cssmin" target="_blank">CssMin.php</a>.</p>
25-
<?php
26-
/*
27-
$x = $get('css.minify.filter.enabled');
28-
;
29-
$x = $get('css.minify.filter.enabled');
30-
;
31-
print_r($x);
32-
*/
33-
?>
34-
<p data-ns="css.minify"<?php $visible('css.minify'); ?>>
24+
<p class="description">Compress, bundle and optimize CSS code.</p>
25+
26+
<div class="suboption" data-ns="css.minify"<?php $visible('css.minify'); ?>>
27+
28+
<p class="poweredby" data-ns="css.minify"<?php $visible('css.minify', ($get('css.minify.minifier') === 'cssmin')); ?> data-ns-condition="css.minify.minifier==cssmin">Powered by <a href="https://github.com/JoeScylla/cssmin" target="_blank">CssMin</a><span class="google-code"><a href="https://code.google.com/archive/p/cssmin/" target="_blank"><img src="<?php print trailingslashit(O10N_CORE_URI); ?>admin/images/google-code-18h.png" width="25" height="18" border="0" alt="Google Code" title="View on Google Code" /></a></span><span class="star">
29+
<a class="github-button" data-manual="1" href="https://github.com/JoeScylla/cssmin" data-icon="octicon-star" data-show-count="true" aria-label="Star JoeScylla/cssmin on GitHub">Star</a></span></p>
30+
31+
<p class="poweredby" data-ns="css.minify"<?php $visible('css.minify', ($get('css.minify.minifier') === 'yui')); ?> data-ns-condition="css.minify.minifier==yui">Powered by <a href="https://github.com/tubalmartin/YUI-CSS-compressor-PHP-port" target="_blank">YUI Compressor PHP Port</a><span class="star">
32+
<a class="github-button" data-manual="1" href="https://github.com/tubalmartin/YUI-CSS-compressor-PHP-port" data-icon="octicon-star" data-show-count="true" aria-label="Star tubalmartin/YUI-CSS-compressor-PHP-port on GitHub">Star</a></span></p>
33+
34+
<p class="poweredby" data-ns="css.minify"<?php $visible('css.minify', ($get('css.minify.minifier') === 'regex')); ?> data-ns-condition="css.minify.minifier==regex">Powered by <a href="https://github.com/mrclay/minify" target="_blank">Minify's Compressor.php</a><span class="star">
35+
<a class="github-button" data-manual="1" href="https://github.com/mrclay/minify" data-icon="octicon-star" data-show-count="true" aria-label="Star mrclay/minify on GitHub">Star</a></span></p>
36+
37+
<select name="o10n[css.minify.minifier]" data-ns-change="css.minify" data-json-default="<?php print esc_attr(json_encode('cssmin')); ?>">
38+
<option value="cssmin"<?php $selected('css.minify.minifier', 'cssmin'); ?>>CssMin.php (Joe Scylla)</option>
39+
<option value="yui"<?php $selected('css.minify.minifier', 'yui'); ?>>Yahoo YUI Compressor PHP Port v4.1.1</option>
40+
<!--option value="regex"<?php $selected('css.minify.minifier', 'regex'); ?>>Regular Expression Compressor.php from Minify (mrclay)</option-->
41+
</select>
42+
<p class="description">Choose a minifier that provides the best performance for your CSS code.</p>
43+
</div>
44+
45+
46+
<div class="suboption" data-ns="css.minify"<?php $visible('css.minify', ($get('css.minify.minifier') === 'cssmin')); ?> data-ns-condition="css.minify.minifier==cssmin">
3547
<label><input type="checkbox" value="1" name="o10n[css.minify.ignore_errors.enabled]" data-json-ns="1"<?php $checked('css.minify.ignore_errors.enabled'); ?> /> Ignore CssMin.php errors</label>
3648
<p class="description">By default invalid CSS code will trigger a CSS parser error. This option enables to suppress errors.</p>
3749
<p class="info_yellow" style="margin-bottom:1em;" data-ns="css.minify.ignore_errors"<?php $visible('css.minify.ignore_errors'); ?>><strong><span class="dashicons dashicons-lightbulb"></span></strong> It is advised to use the CSS editor's CSS Lint feature to repair invalid CSS code.</p>
38-
</p>
39-
<p data-ns="css.minify"<?php $visible('css.minify'); ?>>
40-
<label><input type="checkbox" value="1" name="o10n[css.minify.filter.enabled]" data-json-ns="1"<?php $checked('css.minify.filter.enabled'); ?> /> Enable filter</label>
41-
<span data-ns="css.minify.filter"<?php $visible('css.minify.filter'); ?>>
50+
</div>
51+
52+
<div class="suboption" data-ns="css.minify"<?php $visible('css.minify', ($get('css.minify.minifier') === 'yui')); ?> data-ns-condition="css.minify.minifier==yui">
53+
54+
<p class="poweredby" data-ns="css.minify.rebase"<?php $visible('css.minify.rebase'); ?>>Powered by <a href="https://github.com/pear/Net_URL2/" target="_blank">Net_URL2</a><span class="star">
55+
<a class="github-button" data-manual="1" href="https://github.com/pear/Net_URL2" data-icon="octicon-star" data-show-count="true" aria-label="Star pear/Net_URL2 on GitHub">Star</a></span></p>
56+
57+
<label><input type="checkbox" value="1" name="o10n[css.minify.rebase.enabled]" data-json-ns="1"<?php $checked('css.minify.rebase.enabled'); ?> /> Rebase relative paths in the CSS</label>
58+
59+
<p class="suboption"><label><input type="checkbox" value="1" name="o10n[css.minify.import.enabled]" data-json-ns="1"<?php $checked('css.minify.import.enabled'); ?> /> Import stylesheets defined with the <code>@import</code> at-rule</label></p>
60+
<div data-ns="css.minify.import"<?php $visible('css.minify.import'); ?>>
61+
<div>
62+
<label><input type="checkbox" value="1" name="o10n[css.minify.import.filter.enabled]" data-json-ns="1"<?php $checked('css.minify.import.filter.enabled'); ?> /> Enable filter</label>
63+
<span style="margin-left:0.2em;" data-ns="css.minify.filter"<?php $visible('css.minify.filter'); ?>>
64+
<select name="o10n[css.minify.import.filter.type]" data-ns-change="css.minify.import.filter" data-json-default="<?php print esc_attr(json_encode('include')); ?>">
65+
<option value="include"<?php $selected('css.minify.import.filter.type', 'include'); ?>>Include List</option>
66+
<option value="exclude"<?php $selected('css.minify.import.filter.type', 'exclude'); ?>>Exclude List</option>
67+
</select>
68+
</span>
69+
</div>
70+
71+
<div style="margin-top:0.5em;" data-ns="css.minify.import.filter"<?php $visible('css.minify.import.filter', ($get('css.minify.import.filter.type') === 'include')); ?> data-ns-condition="css.minify.import.filter.type==include">
72+
<h5 class="h">&nbsp;Minify Include List</h5>
73+
<textarea class="json-array-lines" name="o10n[css.minify.import.filter.include]" data-json-type="json-array-lines" placeholder="Exclude stylesheets by default. Import stylesheets on this list."><?php $line_array('css.minify.import.filter.include'); ?></textarea>
74+
<p class="description">Enter (parts of) stylesheet URLs to import, e.g. <code>bootstrap.min.css</code>. One match string per line.</p>
75+
</div>
76+
<div style="margin-top:0.5em;" data-ns="css.minify.import.filter"<?php $visible('css.minify.import.filter', ($get('css.minify.import.filter.type') === 'exclude')); ?> data-ns-condition="css.minify.import.filter.type==exclude">
77+
<h5 class="h">&nbsp;Minify Exclude List</h5>
78+
<textarea class="json-array-lines" name="o10n[css.minify.import.filter.exclude]" data-json-type="json-array-lines" placeholder="Import stylesheets by default. Exclude stylesheets on this list."><?php $line_array('css.minify.import.filter.exclude'); ?></textarea>
79+
<p class="description">Enter (parts of) stylesheet URLs to exclude from import. One match string per line.</p>
80+
</div>
81+
</div>
82+
</div>
83+
84+
<!--p class="suboption"><a href="" class="button button-large">Test Minifier Performance</a></p>
85+
<p class="description">Minify a concatenated version of your front page CSS and compare minify speed, compression size and CSS render performance for each minifier. This tool relies on <a href="https://developer.mozilla.org/en-US/docs/Web/API/Performance#Browser_compatibility" target="_blank">Performance API</a>.</p-->
86+
87+
</td>
88+
</tr>
89+
<tr valign="top" data-ns="css.minify"<?php $visible('css.minify'); ?>>
90+
<th scope="row">Minify Filter</th>
91+
<td>
92+
<div>
93+
<label><input type="checkbox" value="1" name="o10n[css.minify.filter.enabled]" data-json-ns="1"<?php $checked('css.minify.filter.enabled'); ?> /> Enable</label>
94+
<span style="margin-left:0.2em;" data-ns="css.minify.filter"<?php $visible('css.minify.filter'); ?>>
4295
<select name="o10n[css.minify.filter.type]" data-ns-change="css.minify.filter" data-json-default="<?php print esc_attr(json_encode('include')); ?>">
4396
<option value="include"<?php $selected('css.minify.filter.type', 'include'); ?>>Include List</option>
4497
<option value="exclude"<?php $selected('css.minify.filter.type', 'exclude'); ?>>Exclude List</option>
4598
</select>
4699
</span>
47-
</p>
100+
</div>
48101

49-
<div data-ns="css.minify.filter"<?php $visible('css.minify.filter', ($get('css.minify.filter.type') === 'include')); ?> data-ns-condition="css.minify.filter.type==include">
102+
<div style="margin-top:0.5em;" data-ns="css.minify.filter"<?php $visible('css.minify.filter', ($get('css.minify.filter.type') === 'include')); ?> data-ns-condition="css.minify.filter.type==include">
50103
<h5 class="h">&nbsp;Minify Include List</h5>
51104
<textarea class="json-array-lines" name="o10n[css.minify.filter.include]" data-json-type="json-array-lines" placeholder="Exclude stylesheets by default. Include stylesheets on this list."><?php $line_array('css.minify.filter.include'); ?></textarea>
52105
<p class="description">Enter (parts of) stylesheet <code>&lt;link&gt;</code> elements to minify, e.g. <code>bootstrap.min.css</code> or <code>id="stylesheet"</code>. One match string per line.</p>
53106
</div>
54-
<div data-ns="css.minify.filter"<?php $visible('css.minify.filter', ($get('css.minify.filter.type') === 'exclude')); ?> data-ns-condition="css.minify.filter.type==exclude">
107+
<div style="margin-top:0.5em;" data-ns="css.minify.filter"<?php $visible('css.minify.filter', ($get('css.minify.filter.type') === 'exclude')); ?> data-ns-condition="css.minify.filter.type==exclude">
55108
<h5 class="h">&nbsp;Minify Exclude List</h5>
56109
<textarea class="json-array-lines" name="o10n[css.minify.filter.exclude]" data-json-type="json-array-lines" placeholder="Include stylesheets by default. Exclude stylesheets on this list."><?php $line_array('css.minify.filter.exclude'); ?></textarea>
57110
<p class="description">Enter (parts of) stylesheet <code>&lt;link&gt;</code> elements to exclude from minification. One match string per line.</p>
@@ -61,7 +114,7 @@
61114
</tr>
62115
</table>
63116

64-
<div class="advanced-options" data-ns="css.minify" data-json-advanced="css.minify"<?php $visible('css.minify'); ?>>
117+
<div class="advanced-options" data-ns="css.minify" data-json-advanced="css.minify.cssmin"<?php $visible('css.minify', ($get('css.minify.minifier') === 'cssmin')); ?> data-ns-condition="css.minify.minifier==cssmin">>
65118

66119
<table class="advanced-options-table widefat fixed striped">
67120
<colgroup><col style="width: 85px;"/><col style="width: 250px;"/><col /></colgroup>
@@ -103,6 +156,39 @@
103156
<br />
104157
</div>
105158

159+
160+
<div class="advanced-options" data-ns="css.minify" data-json-advanced="css.minify.yui"<?php $visible('css.minify', ($get('css.minify.minifier') === 'yui')); ?> data-ns-condition="css.minify.minifier==yui">>
161+
162+
<table class="advanced-options-table widefat fixed striped">
163+
<colgroup><col style="width: 85px;"/><col style="width: 250px;"/><col /></colgroup>
164+
<thead class="first">
165+
<tr>
166+
<th class="toggle">
167+
<a href="javascript:void(0);" class="advanced-toggle-all button button-small">Toggle All</a>
168+
</th>
169+
<th class="head">
170+
YUI Compressor Options
171+
</th>
172+
<th>
173+
<p class="poweredby">Powered by <a href="https://github.com/tubalmartin/YUI-CSS-compressor-PHP-port" target="_blank">YUI Compressor PHP Port</a><span class="star">
174+
<a class="github-button" data-manual="1" href="https://github.com/tubalmartin/YUI-CSS-compressor-PHP-port" data-icon="octicon-star" data-show-count="true" aria-label="Star tubalmartin/YUI-CSS-compressor-PHP-port on GitHub">Star</a></span>
175+
</p>
176+
</th>
177+
</tr>
178+
</thead>
179+
<tbody>
180+
<?php
181+
$advanced_options('css.minify.yui.options');
182+
?>
183+
</tbody>
184+
</table>
185+
<br />
186+
<?php
187+
submit_button(__('Save'), 'primary large', 'is_submit', false);
188+
?>
189+
<br />
190+
</div>
191+
106192
<table class="form-table">
107193
<tr valign="top" data-ns="css.minify"<?php $visible('css.minify');?>>
108194
<th scope="row">Concatenate</th>

changelog.txt

+4-1
Original file line numberDiff line numberDiff line change
@@ -151,4 +151,7 @@ Added: minify critical CSS using [PHP CssMin](https://code.google.com/archive/p/
151151

152152
= 0.0.1 =
153153

154-
Beta release. Please provide feedback on [Github forum](https://github.com/o10n-x/wordpress-css-optimization/issues).
154+
Beta release. Please provide feedback on [Github forum](https://github.com/o10n-x/wordpress-css-optimization/issues).
155+
156+
157+
* Added: Regular Expression [Compressor.php from Minify](https://github.com/mrclay/minify) (mrclay)

controllers/admin/css.class.php

-32
Original file line numberDiff line numberDiff line change
@@ -232,38 +232,6 @@ final public function upgrade()
232232
// deleted options
233233
$delete = array();
234234

235-
if (isset($options['css.minify.rebase.enabled'])) {
236-
if ($options['css.minify.rebase.enabled']) {
237-
$update['css.minify.cssmin.filters.RebaseURLs'] = true;
238-
}
239-
$delete[] = 'css.minify.rebase.enabled';
240-
}
241-
242-
if (isset($options['css.minify.import.enabled'])) {
243-
if ($options['css.minify.import.enabled']) {
244-
$update['css.minify.cssmin.filters.ImportImports.enabled'] = true;
245-
}
246-
$delete[] = 'css.minify.import.enabled';
247-
248-
if (isset($options['css.minify.import.filter.enabled'])) {
249-
if ($options['css.minify.import.filter.enabled']) {
250-
$type = $this->options->get('css.minify.import.filter.type');
251-
$list = $this->options->get('css.minify.import.filter.' . $type);
252-
253-
$update['css.minify.cssmin.filters.ImportImports.filter.enabled'] = true;
254-
$update['css.minify.cssmin.filters.ImportImports.filter.type'] = $type;
255-
$update['css.minify.cssmin.filters.ImportImports.filter.' . $type] = $list;
256-
}
257-
258-
$delete[] = 'css.minify.import.filter.enabled';
259-
if (isset($options['css.minify.import.filter.type'])) {
260-
$delete[] = 'css.minify.import.filter.type';
261-
$delete[] = 'css.minify.import.filter.include';
262-
$delete[] = 'css.minify.import.filter.exclude';
263-
}
264-
}
265-
}
266-
267235
if (version_compare($version, '0.0.27', '<=')) {
268236

269237
// convert critical css array to new format

0 commit comments

Comments
 (0)