[core] DIY CSS/JS minifier
This commit is contained in:
parent
47dfc2c36e
commit
8815b702c5
3 changed files with 258 additions and 584 deletions
|
@ -27,10 +27,6 @@
|
|||
"reference" : "fd4ff50eb577457c1b7b887401663e91e77625ae"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"type" : "vcs",
|
||||
"url" : "https://github.com/shish/php-css.git"
|
||||
}
|
||||
],
|
||||
|
||||
|
@ -39,24 +35,22 @@
|
|||
"ext-pdo": "*",
|
||||
"ext-json": "*",
|
||||
"ext-fileinfo": "*",
|
||||
|
||||
"flexihash/flexihash" : "^2.0",
|
||||
"ifixit/php-akismet" : "^1.0",
|
||||
"google/recaptcha" : "^1.1",
|
||||
"shish/eventtracer-php" : "^2.0",
|
||||
"shish/ffsphp" : "^1.3",
|
||||
"shish/microcrud" : "^2.0",
|
||||
"shish/microhtml" : "^2.2",
|
||||
"shish/gqla" : "dev-main",
|
||||
"enshrined/svg-sanitize" : "^0.16",
|
||||
|
||||
"bower-asset/jquery" : "^1.12",
|
||||
"bower-asset/jquery-timeago" : "^1.5",
|
||||
"bower-asset/js-cookie" : "^2.1",
|
||||
"psr/simple-cache" : "^1.0",
|
||||
"sabre/cache" : "^2.0.1",
|
||||
"flexihash/flexihash": "^2.0",
|
||||
"ifixit/php-akismet": "^1.0",
|
||||
"google/recaptcha": "^1.1",
|
||||
"shish/eventtracer-php": "^2.0",
|
||||
"shish/ffsphp": "^1.3",
|
||||
"shish/microbundler": "^1.0",
|
||||
"shish/microcrud": "^2.0",
|
||||
"shish/microhtml": "^2.2",
|
||||
"shish/gqla": "dev-main",
|
||||
"enshrined/svg-sanitize": "^0.16",
|
||||
"bower-asset/jquery": "^1.12",
|
||||
"bower-asset/jquery-timeago": "^1.5",
|
||||
"bower-asset/js-cookie": "^2.1",
|
||||
"psr/simple-cache": "^1.0",
|
||||
"sabre/cache": "^2.0.1",
|
||||
"naroga/redis-cache": "dev-master",
|
||||
"tbela99/css": "dev-master",
|
||||
"aws/aws-sdk-php": "^3.294"
|
||||
},
|
||||
|
||||
|
|
773
composer.lock
generated
773
composer.lock
generated
File diff suppressed because it is too large
Load diff
|
@ -5,8 +5,6 @@ declare(strict_types=1);
|
|||
namespace Shimmie2;
|
||||
|
||||
use MicroHTML\HTMLElement;
|
||||
use TBela\CSS\Parser;
|
||||
use TBela\CSS\Renderer;
|
||||
|
||||
require_once "core/event.php";
|
||||
|
||||
|
@ -399,26 +397,11 @@ class BasePage
|
|||
$css_md5 = md5(serialize($css_files));
|
||||
$css_cache_file = data_path("cache/style/{$theme_name}.{$css_latest}.{$css_md5}.css");
|
||||
if (!file_exists($css_cache_file)) {
|
||||
// the CSS minifier causes a bunch of deprecation warnings,
|
||||
// so we turn off error reporting while it runs
|
||||
$old_error_level = error_reporting(error_reporting(null) & ~E_DEPRECATED);
|
||||
$parser = new Parser();
|
||||
foreach($css_files as $file) {
|
||||
$parser->append($file);
|
||||
$mcss = new \MicroBundler\MicroBundler();
|
||||
foreach($css_files as $css) {
|
||||
$mcss->addSource($css, file_get_contents($css));
|
||||
}
|
||||
$element = $parser->parse();
|
||||
|
||||
// minified output
|
||||
$renderer = new Renderer([
|
||||
'compress' => true,
|
||||
'convert_color' => 'hex',
|
||||
'css_level' => 3,
|
||||
'sourcemap' => true,
|
||||
'allow_duplicate_declarations' => false,
|
||||
'legacy_rendering' => true, // turn nested CSS into regular
|
||||
]);
|
||||
$renderer->save($element, $css_cache_file);
|
||||
error_reporting($old_error_level);
|
||||
$mcss->save($css_cache_file);
|
||||
}
|
||||
|
||||
return $css_cache_file;
|
||||
|
@ -442,11 +425,11 @@ class BasePage
|
|||
$js_md5 = md5(serialize($js_files));
|
||||
$js_cache_file = data_path("cache/script/{$theme_name}.{$js_latest}.{$js_md5}.js");
|
||||
if (!file_exists($js_cache_file)) {
|
||||
$js_data = "";
|
||||
foreach ($js_files as $file) {
|
||||
$js_data .= file_get_contents($file) . "\n";
|
||||
$mcss = new \MicroBundler\MicroBundler();
|
||||
foreach($js_files as $js) {
|
||||
$mcss->addSource($js, file_get_contents($js));
|
||||
}
|
||||
file_put_contents($js_cache_file, $js_data);
|
||||
$mcss->save($js_cache_file);
|
||||
}
|
||||
|
||||
return $js_cache_file;
|
||||
|
|
Reference in a new issue