An asset compression plugin for CakePHP. Provides file concatenation and a flexible filter system for preprocessing and minification.

Overview

Asset Compress

Build Status codecov.io Total Downloads License

Asset Compress is CakePHP plugin for helping reduce the number of requests, and optimizing the remaining requests your application makes for Javascript and CSS files.

Features

  • Development mode builder that rebuilds assets on each request.
  • Command line build tool to compile static assets for deployment.
  • Built-in support for LESScss, Sass and CoffeeScript, as well as several minifiers.
  • Powerful and flexible filter system allowing you to add your own minifiers/pre-processors.
  • Simple configuration file.
  • Incremental builds that don't recompile assets when they don't need to be.

Installing

Add this plugin to your application with composer:

php composer.phar require markstory/asset_compress

Then make sure you load the plugin:

// in src/Application.php
// in the bootstrap() method add
$this->addPlugin('AssetCompress');

Copy the config/asset_compress.sample.ini from the plugin to your app's config/asset_compress.ini. From there read the wiki for more information.

Documentation

Documentation for AssetCompress is available on the github wiki pages

Issues

Please report any issues you have with the plugin to the issue tracker on github.

License

Asset Compress is offered under an MIT license.

Authors

See the github contributors list

Changelog

See CHANGELOG for changes only available on master. See github releases for changelogs on previous releases.

Comments
  • Combined file not being written to cache dir

    Combined file not being written to cache dir

    I apologize in advance because this is one of those difficult issues, and may very well be human error on my part, but I've pulled out a fair amount of hair so I'm going to give it a shot and see if anyone has some insight.

    I have asset_compress working great in development (OSX/Apache2/PHP5.3). Once I move it to production (Ubuntu/Nginx to Apache/PHP5.3) it ceases to write the combined JS file to webroot/cache_js. Both are running the latest version of Cake 1.3.

    I have asset_compress.ini setup just like in development. I have the routes setup exactly the same as in development. The folders(cache_js & cache_css) are setup in webroot and set to 777. The helper is writing the time to tmp/asset_compress_build_time. When the helper writes the script tags it's writing:

    <script type="text/javascript" src="/cache_js/common.1291384289.js?file[]=modernizr-1.6.min&amp;file[]=jquery.orbit.min.js&amp;file[]=underscore-min&amp;file[]=mustache.min&amp;file[]=plugins"></script>

    Debug is set to 0 in production.

    It just won't seem to write the combined file into the cache directory. I've monkeyed around with the settings in all different ways, and just can't seem to get a solution.

    This is my INI file:

    [Javascript]

    searchPaths[] = WEBROOT/js/ stripComments = true cacheFiles = true timestamp = true cacheFilePath = WEBROOT/cache_js/

    [Css]

    searchPaths[] = WEBROOT/css/ searchPaths[] = WEBROOT/css/skins/ stripComments = true timestamp = true cacheFilePath = WEBROOT/cache_css/ cacheFiles = true

    Thanks for your help.

    D

    defect 
    opened by DarrenN 23
  • Inlining an asset

    Inlining an asset

    Although I am going to be talking about assets and improving speed (two things this plugin deals with), this may be outside the scope of this plugin.

    Let's say that I had some CSS and JavaScript specific to my "Contact" page. I would include this in the "Contact" page's view file:

    $this->AssetCompress->addCss('contact.css');
    $this->AssetCompress->addScript('contact.js');
    

    This method does work, but what about the scenario where the files are very small? Google Page Speed recommends inlining small assets because doing so can save the overhead of fetching these small files. I'm still new to this plugin, but, as far as I can tell, there's no way to indicate that these assets should be inlined. Is this a feature that could and/or should be added?

    enhancement 
    opened by ataylor32 17
  • 2.6 (Engine: Redis) cakephp_asset_config_ts gets deleted when there are no changes

    2.6 (Engine: Redis) cakephp_asset_config_ts gets deleted when there are no changes

    Today after moving asset_compress to cache on redis, we came across a bug, when there is no changes in any files it issues a CACHE::DELETE and the keys gets deleted from redis and it serves from the last stored file, which is creating an issue since we want to use Redis only not filesystem

    defect 
    opened by AltamashShaikh 16
  • Sass cache issue

    Sass cache issue

    I'm using ScssFilter for compiling sass. It works fine at first, but when I made some changes to scss files and refresh the web page, it didn't update. It worked only after I changed asset_compress.ini or asset_compress.local.ini file. Am I missing any config options for resolving this?

    defect 
    opened by elquimista 16
  • Missing Folder class in asset_compressor.php

    Missing Folder class in asset_compressor.php

    Just starting to use this plugin - looks very promising, nice work. Js is working fine for me, but when the css_files controller is getting hit, I get:

    Fatal error: Class 'Folder' not found in <myapp>/app/plugins/asset_compress/models/asset_compressor.php on line 89 
    

    Do you just need to do a App::import('Core', 'Folder'); before Making a Folder obj on line 89? or is my app not including this core library for some reason, when it should be?

    When I add the import line to line 89, and re-run I get:

    Failed to load source for: https://<mylocalhostdomain>/cache_css/be2b2b82466d97e351dc2a17c872742d.css?file[]=pages/home&file[]=common/custom&file[]=common/jquery.qtip
    

    Here is the HTML:

    <link href="/cache_css/be2b2b82466d97e351dc2a17c872742d.css?file[]=pages/home&amp;file[]=common/custom&amp;file[]=common/jquery.qtip" type="text/css" rel="stylesheet">
    

    Here is my ini. My routes are copy/paste from the wiki.

    [Javascript]
    searchPaths[] = WEBROOT/js/
    searchPaths[] = WEBROOT/js/common/
    searchPaths[] = WEBROOT/js/plugins/
    stripComments = true
    cacheFilePath = WEBROOT/cache_js/
    cacheFiles = true
    filters[] = JsMin
    timestamp = true
    stripComments = true
    
    [Css]
    searchPaths[] = WEBROOT/css/
    searchPaths[] = WEBROOT/css/common/
    searchPaths[] = WEBROOT/css/pages/
    stripComments = true
    cacheFilePath = WEBROOT/cache_css/
    cacheFiles = true
    filters[] = CssMin
    timestamp = true
    stripComments = true
    

    I've tried removing CssMin filter, but run into same problem.

    1 more piece of info that may help, my web user has write permissions to app/webroot/cache_js and app/webroot/cache_css but I dont see any files written into them.

    I'm ubuntu 10.10 64bit, PHP 5.3.3.

    any ideas? thx in advance.

    opened by rynop 16
  • Loading layout multiple times.

    Loading layout multiple times.

    //error400.ctp

    layout('default'); ?>

    <section> <div class="container"> <h1>Oh, oh!</h1> <h3>Looks like you took wrong turn for 400!</h3> </div> </section>

    //error500.ctp

    layout('default'); ?>

    <section> <div class="container"> <h1>Oh, oh!</h1> <h3>Looks like you took wrong turn for 500!</h3> </div> </section>

    //default.ctp

    AssetCompress->script('jquery-combined'); ?>

    If I am entering a wrong url getting error message from error500.ctp and loading the default layout multiple times. Once I comment the assetCompress it is working fine just load the error400.ctp file and the layout just load once.

    defect 
    opened by aavrug 14
  • Scripts included in layout is preceeded by script included in view file.

    Scripts included in layout is preceeded by script included in view file.

    This causes a problem when you include jquery in the layout file and then in the view file, you include a plugin that requires jquery. The plugin.js precedes jquery.js in the html source code so your js doesn't work.

    I managed to solve the issue by changing script function in the helper file thus:

    public function script($file, $destination = 'default') {
        if (empty($this->_scripts[$destination])) {
            $this->_scripts[$destination] = array();
        }
        $this->_scripts[$destination] = array_merge($this->_scripts[$destination], (array)$file);
        $tmp[$destination] = $this->_scripts[$destination];
        unset($this->_scripts[$destination]);
        $this->_scripts = array_merge($tmp, $this->_scripts);
    }
    

    Might not be too clever, but worked for me. Perhaps there is some way we could send a flag saying wich order you would like to use?

    opened by wyrd-code 13
  • not dynamically building assets when debug > 0

    not dynamically building assets when debug > 0

    I like the new feature of not exposing the controller on production apps, so I upgraded from 0.5 to latest master. After doing so, when using debug > 0 (for local development) my assets switched from rendering urls like /asset_compress/assets/get/common.css to /cache_css/common.css. I'm guessing the new version always writes the built asset to the 'cache_path' but it does not seem to be doing it for me.

    Here is my ini: https://gist.github.com/5fccb0d3bb58db632158

    I have tried alwaysEnableController = true and alwaysEnableController = false. I have tried [css_common.css] and [common.css]. I have tried filters and no filters.

    Cake 2.2.3, My debug is 2, loading via CakePlugin::load('AssetCompress', array('bootstrap' => true)); CakePlugin::load('DebugKit'); calling echo $this->AssetCompress->css('common.css'); in my default.ctp layout. webroot/cache_css and cache_js are writeable by everyone. echo $this->AssetCompress->css('common.css',array('raw'=>true)); renders my individual css files and things work as expected.

    Any idea what I'm doing wrong?

    opened by doapp-ryanp 12
  • You can have custom filters, but not processors

    You can have custom filters, but not processors

    You know I was talking about making a LESS filter. Well I did and it worked fine, but when I went along and used it in conjunction with normal CSS files (Blueprint CSS framework), the LESS compiler died.

    So what I need to do is per-file processing and only if it is a LESS file. What I was thinking is to implement custom processors. They will basically work the same way as the filters only for every file. They will be executed before AssetCompressor::preprocess() in AssetCompressor::process().

    The AssetCompressor::$processedOutput property needs a little change too, so the contents of the files remain separated from eachother until all processors have been triggered. After that it will be a simple implode("\n") and then it will continue like it was by calling AssetCompressor::preprocess(), etc.

    What do you think? Should I go for it or do you have a better idea?

    P.S. I couldn't use underscores because markdown saw it like it should be italic.

    enhancement 
    opened by Phally 12
  • Installation guide is outdated since 3.4.0

    Installation guide is outdated since 3.4.0

    Hi Mark, just want to give the info that the Installation guide in the Readme file/Wiki does not work any more since version 3.4.0.

    // in config/bootstrap.php
    Plugin::load('AssetCompress', ['bootstrap' => true]);
    

    should be changed to

    // in src/Application.php
    // Load AssetCompress Plugin >= 3.4.0
    $this->addPlugin('AssetCompress');
    

    Using the old method to load the plugin I get an error when requesting assets in debug mode.

    opened by calcosta 11
  • Why js and css build files have different filenames?

    Why js and css build files have different filenames?

    For Js files, I get filenames like

    product_view.v1373003935.js

    For Css files, I get filenames like product_view.css

    Is there anything wrong with that?

    I am using Cake 2.4.0-beta and AssetCompress commit (dev-master f555812)

    My config settings are:

    My localhost development tends to use debug 2 And I always set Asset.timestamp to true

    In production, I use debug 0 and also Asset.timestamp to true as well.

    Please advise.

    question 
    opened by simkimsia 11
  • matthiasmullie/minify Filter

    matthiasmullie/minify Filter

    A more regularly updated filter with support for both JS and CSS would be nice, especially without dependencies like Ruby or Java.

    https://github.com/matthiasmullie/minify seems to fit the bill.

    I'm thinking I'll make a PR adding this filter in the future.

    opened by umer936 1
  • AssetCompressHelper  Not Found

    AssetCompressHelper Not Found

    i'm migrate cake3 to cake 4 but i get this error Helper class AssetCompressHelper could not be found in line $this->loadHelper('AssetCompress.AssetCompress'); in AppView.php

    @markstory please help

    opened by ahmedsafroot 1
  • AssetCompressHelper::url() does not add base name

    AssetCompressHelper::url() does not add base name

    home page : http://localhost/sub_folder

    $this->AssetCompress->url('css-combined.css');
    

    What happened

    returns

    /assets/css/css-combined.v123.css
    

    What you expected to happen

    should be

    /sub_folder/assets/css/css-combined.v123.css
    

    version :

    markstory/asset_compress | 3.3.0 -- | --

    defect 
    opened by saeideng 2
  • Filter that blindly executes a command

    Filter that blindly executes a command

    Hi @markstory.

    I want to use an automatic CSS prefixer but I don't see any filter for this task. Creating filter is easy but repetitive work.

    Most or all filters are available as commands. It would be very convenient having a type of filter that I can provide a command line to and the filter just executes the command feeding the assets in the input and collecting the output. I think such filter doesn't exist, does it?

    I'd prefer implementing such filter than implementing a filter for every new command that I want to add to the filter chain. Any downsides? Would you accept PRs to do so?

    opened by berarma 4
  • build all js files from source folder to target folder with its same name

    build all js files from source folder to target folder with its same name

    I have a lot of js files in webroot/js folder. And I want to build js files separately for each. is there any to do this in easily with a configuration file? I want to like this. [*.js] files[] = *.js

    opened by metapeace-dev 1
  • working with plugin assets is not working

    working with plugin assets is not working

    Hi, I am trying to compress assets in both main webroot folder and plugin webroot folder.

    webroot/assets/js/*.js => webroot/js/*.js {plugin name}/webroot/assets/js/*.js => {plugin name}/webroot/js/*.js

    the problem is that there is only one cachePath. so if main webroot assets work, then plugin assets don't work. is there any way to build both assets at the same time?

    opened by metapeace-dev 2
Releases(4.1.0)
  • 4.1.0(Sep 7, 2021)

  • 4.0.4(Aug 16, 2020)

  • 4.0.3(Aug 15, 2020)

    Fixes

    • Update tests to use integration base classes.
    • Fixed the --force flag on commands.
    • Updated to the new middleware interface in 4.0
    • asset_compress clear will now clear all managed file types instead of only js and css files.

    Internal Breaking Changes

    • Converted Shells to Command classes. If you have subclassed assetcompress tasks your application will be broken.
    Source code(tar.gz)
    Source code(zip)
  • 4.0.2(Mar 18, 2020)

  • 4.0.1(Dec 28, 2019)

  • 4.0.0(Dec 17, 2019)

  • 3.5.1(Jun 26, 2019)

  • 0.26(Dec 15, 2018)

  • 3.4.2(Nov 9, 2018)

  • 3.4.1(Sep 4, 2018)

  • v0.17(Nov 10, 2014)

    New features

    • AssetCompressHelper::inlineCss() and AssetCompressHelper::inlineScript() were added. They allow build targets to be inlined into your HTML pages.
    • The development filter now caches build targets. This will improve performance when build targets don't change.
    • The console tool clears the cached build outputs.

    Bugfixes

    • Build targets with multiple . in them work correctly.
    Source code(tar.gz)
    Source code(zip)
  • v0.16(Sep 29, 2014)

    Bugfixes

    • Updated default configuration files.
    • Fixed a issue with accessing build files while the build tool was being run. If you overwrote a deployment's files with the build tool, 404's would be served for the duration that it took to build a target.
    Source code(tar.gz)
    Source code(zip)
  • v0.15(Jul 20, 2014)

    Bugfixes

    • Build timestamp file is now generated with 0644 permissions instead of 0777.
    • Fix raw asset links when js/css had multiple paths. This required making dynamic builds require the extension when combining raw links and dynamic build files.
    Source code(tar.gz)
    Source code(zip)
  • v0.14(Apr 6, 2014)

    Bugfixes

    • Fallback to parse_ini_string when parse_ini_file has been disabled.
    • Plugin script files are output correctly on windows when using the raw option.

    New features

    • Added SimpleCssMin filter. It is a very basic alternative for node/java tools.
    Source code(tar.gz)
    Source code(zip)
  • v0.13(Mar 22, 2014)

    New Features

    • Added per install .local.ini config files. This allows you to store the build file descriptions in one file, and put environment specific configuration like platform specific paths to nodejs in a separate configuration file. Thanks QTSdev
    • Added ClosureCompiler filter. This adds support for google's closure compiler webservice as a javascript minifier. Thanks jadb
    Source code(tar.gz)
    Source code(zip)
  • v0.12(Feb 1, 2014)

  • v0.11(Nov 6, 2013)

    New features and bug fixes:

    • NodeJS based filters now work correctly on windows systems.
    • Sprockets filter now supports theme: and plugin: prefixes.
    • Added AssetCompressHelper::url() to get the URL of any known build file.
    Source code(tar.gz)
    Source code(zip)
  • v0.10(Sep 24, 2013)

  • v0.9(Aug 25, 2013)

    Enhancements

    • Static assets will be re-built if the configuration file changes. This prevents issues where the configuration would result in different build files without the source files changing.
    • AssetCompress will now attempt to load configuration files from all loaded plugins. If a plugin contains Config/asset_compress.ini, that file will be loaded and appended to the application configuration file.
    • ScssPHP filter was added. This allows you to use SCSS without ruby dependencies.
    • A new line is inserted between concatenated files. This helps fix parse errors when concatenating poorly authored javascript files together.
    • Loading filters from the App dir works as documented.
    Source code(tar.gz)
    Source code(zip)
  • v0.8(Aug 25, 2013)

    Backwards Incompatible Changes

    • AssetCompress requires at least CakePHP 2.3.0. CakePHP 2.3.0 added type hints to Dispatcher filters. While this version will work with CakePHP 2.2.x it will trigger E_STRICT errors.

    Enhancements

    • Added the Hogan filter. This provides precompilation for mustache templates.
    Source code(tar.gz)
    Source code(zip)
  • v0.7(Aug 25, 2013)

    Backwards Incompatible Changes

    • AssetCompress requires at least CakePHP 2.2.0. As of 0.7 the controller has been replaced by a dispatcher filter, which requires CakePHP 2.2.0.

    Other changes

    • Import paths are now set for the less filter.
    • ROOT/ no longer needs // to work correctly.
    • paths[] can now contain remote URL's allowing you to create build files using assets on CDN's or other remote hosts.
    • paths[] can now be defined inside a build target. This lets you only scan certain paths for specific builds. Or when you might have duplicate file names that should not be shared between builds.
    Source code(tar.gz)
    Source code(zip)
  • v0.6(Aug 25, 2013)

    Backwards Incompatible Changes

    • baseUrl now only takes effect when debug = 0. Build file existence is not checked anymore. It is assumed that build files exist at the location specified in baseUrl. Because of this baseUrl will need to include the directory names as well.
    • Removed General.writeCache. It made for more complex deployments. Instead General.alwaysEnableController has been added to allow the controller to be used in production instead of pre-generated static files. The default value is off.

    Other changes

    • Support for CakePHP 2.0.
    • Added TimestampImage filter class. This filter provides the ability to timestamp background images used in CSS files. This is useful for cache busting CSS sprites or other CSS background images.
    • Added ROOT/ path variable for use in configuration files.
    • Added ScssFilter
    • Added support for plugin asset Using the p:PluginName:resource.xx syntax.
    Source code(tar.gz)
    Source code(zip)
  • v0.5(Aug 25, 2013)

    Backwards Incompatible Changes

    • Ini file flag General.debug was removed. Instead Configure::read('debug') is used. This means one less configuration option to manage. Use debug = 1 to test output filters.
    • The timestamp file format has changed. Remember to clear all builds when upgrading.
    • A number of internal API changes have been made. If you are using the internals of AssetCompress you may have to update your code.
    • The General.timestampFile config option was removed. Timestamp files are always used now.

    Other changes

    • Ini file naming for build files made simpler. Instead of having to prefix sections with the extension you can omit the prefix. The extension will be read off of the build file name. Instead of js_library.js you can just use library.js as the build name.
    • Controller/view javascript files are now combined into minified asset automatically now.
    • When using the shell, asset targets that are still fresh will be skipped on subsequent builds. A target is fresh if the build file's mtime is later than all of the files that go into the target. This behavior can be ignored using the -force option.
    • If you don't define the paths[] keys in your js and css extensions, AssetCompress will recursively include all paths in the standard CakePHP directories.
    • Theme support has been added. When defining a build you can set theme = true in the build definition. When the shell is run, a build will be created for every theme installed. Themes support only works for builds defined in the ini file.
    • The timestamp file format has changed and contains timestamps for each build. This was required as part of the incremental builds feature.
    Source code(tar.gz)
    Source code(zip)
  • v0.4(Aug 25, 2013)

    Backwards Incompatible Changes

    • Internals of the plugin re-factored and re-architected to be simpler.
    • New configuration file format.
    • Helper method changes, creating builds on the fly now works differently.
    • Comment stripping features removed, you should use one of the built-in minifier integrations to accomplish this.
    • Sprockets features and InlineImport feature extracted into filters.
    • Helper methods changed.

    Other changes

    • CoffeeScript, and LESS css support added.
    • Can add any additional attributes to generated link or stylesheet tags.
    Source code(tar.gz)
    Source code(zip)
  • v0.3(Aug 25, 2013)

    Backwards incompatible changes:

    • Inflection of file names for javascript and css was removed. This affects both the helper, and the directives supported by each file type.
    • Auto inclusion of all build files in the afterRender() callback was removed. You now need to manually call includeAssets().
    • The default build file is now a magic-hash. Magic-hash build files, use the md5() of their components as the build filename. This allows you to easily create build files without worrying about keeping them unique across your application.

    Enhancements

    • AssetCompressHelper::includeAssets() takes an array of build files you wish to output in that call. This lets you place some build files at the top of the document, and others at the bottom.
    • AssetCompressHelper::includeJs() and AssetCompressHelper::includeCss() were added. These methods function similar to includeAssets(). Each allows you to only include some of the build files.
    • Assets that do not exist now return 404 errors.
    • Two basic filters have been added. JsMin and CssMin are now built-in filters. Both require you to put their libraries in app/vendors.
    • Filters for YUI Compressor have been added. Both a CSS and Javascript filter have been added. They require you to put yuicompressor in your app's vendors directories.
    • The asset_compress shell can now generate build files. This allows you to integrate asset generation into your deployment/build scripts.
    Source code(tar.gz)
    Source code(zip)
  • 0.2(Aug 25, 2013)

    New features:

    • Timestampping of build files was added.
    • Filters for CSS files were fixed.
    • Location for asset_compress.ini file was moved into app/config/asset_compres.ini.
    • Files in themes should now be auto discovered.
    Source code(tar.gz)
    Source code(zip)
Owner
Mark Story
Mark Story
:cake: Less parser plugin for CakePHP

Less parser plugin for CakePHP 3.X This plugin has a helper to help you parsing .less files in CakePHP 3.0 applications. By default, the helper will p

Òscar Casajuana 17 Jan 1, 2022
CakePHP Minify HTML Plugin

MinifyHtml CakePHP 4, HTML Minify Plugin Installation To install via Composer, use the command below, it will automatically detect the latest version

Cees-Jan Kiewiet 19 Dec 28, 2021
The Asset component manages URL generation and versioning of web assets such as CSS stylesheets, JavaScript files and image files.

Asset Component The Asset component manages URL generation and versioning of web assets such as CSS stylesheets, JavaScript files and image files. Res

Symfony 2.9k Jan 5, 2023
GLPI is a Free Asset and IT Management Software package, Data center management, ITIL Service Desk, licenses tracking and software auditing.

GLPI stands for Gestionnaire Libre de Parc Informatique is a Free Asset and IT Management Software package, that provides ITIL Service Desk features, licenses tracking and software auditing.

GLPI 2.9k Jan 2, 2023
Asset Management for PHP

Assetic Assetic is an asset management framework for PHP. Project status This project is not maintained anymore. Development has been taken over at ht

Kris Wallsmith 3.8k Jan 4, 2023
Munee: Standalone PHP 5.3 Asset Optimisation & Manipulation

Munee: Standalone PHP 5.3 Asset Optimisation & Manipulation #####On-The-Fly Image Resizing, On-the-fly LESS, SCSS, CoffeeScript Compiling, CSS & JavaS

Cody Lundquist 837 Dec 21, 2022
Phraseanet 4.1 - Digital Asset Management application

Phraseanet 4.1 - Digital Asset Management application Main Features : Several GUI : Prod, Admin, Thesaurus, Lightbox ,Report, Metadata Management (inc

Alchemy 201 Jan 6, 2023
Doki Doki Literature Club Plus Asset Decrypter

DDLC Plus Asset Decrypter Doki Doki Literature Club Plus Asset Decrypter Used to decrypt encrypted Streaming Asset Bundle files (*.cy) in DDLC-Plus. H

Jim Wu 16 Nov 16, 2022
NotrinosERP is an open source, web-based enterprise management system that written in PHP and MySql.

NotrinosERP is an open source, web-based enterprise management system that written in PHP and MySql. NotrinosERP contains all the required modules for running any small to medium size businesses. It supports multi users, multi currencies, multi languages

Phương 56 Dec 20, 2022
An ultimate troll plugin for PocketMine-MP

LMAO An ultimate troll plugin for PocketMine-MP Feature Feature Description Alone Hides every player, let them feed alone Burn Burn the player FakeOp

Ngọc Lam 5 Apr 14, 2022
Assets Manager for "Vitewind" Theme, will inject CSS and JS assets for "Vitewind" theme to work properly with viteJS in development and production

Vitewind Manager plugin ?? Windi CSS and ⚡️ Vite, for ?? OctoberCMS & ❄️ WinterCMS Introduction This is a helper plugin for ?? Vitewind theme, don't i

Adil Chehabi 4 May 29, 2022
Put your assets into the pipe and smoke them.

Pipe Put your assets into the pipe and smoke them. Pipe is an asset pipeline in the spirit of Sprockets. It's meant as the practical way for managing

Christoph Hochstrasser 121 May 5, 2021
A Parser for CSS Files written in PHP. Allows extraction of CSS files into a data structure, manipulation of said structure and output as (optimized) CSS

PHP CSS Parser A Parser for CSS Files written in PHP. Allows extraction of CSS files into a data structure, manipulation of said structure and output

Raphael Schweikert 1.6k Jan 5, 2023
Combines. minifies, and serves CSS or Javascript files

Welcome to Minify! Minify is an HTTP server for JS and CSS assets. It compresses and combines files and serves it with appropriate headers, allowing c

Steve Clay 3k Jan 7, 2023
Commenting program developed with Html & Css & Php JavaScript Languages ​​and MySql

CommentSystem [BETA] Commenting program developed with Html & Css & Php JavaScript Languages and MySql How does it work ? After you set up your Databa

Azad 0 May 19, 2022
A fast Javascript minifier that removes unnecessary whitespace and comments

js-minify A fast Javascript minifier that removes unnecessary whitespace and comments Installation If you are using Composer, use composer require gar

Patrick van Bergen 5 Aug 19, 2022
Middleware to minify the Html, CSS and Javascript content using wyrihaximus/compress

middlewares/minifier Middleware to minify the Html, CSS and Javascript content using wyrihaximus/compress and the following compressors by default: wy

Middlewares 15 Oct 25, 2022
Enqueueror - Assisted WordPress Asset Preprocessing & Enqueueing

Enqueueror - Assisted WordPress Asset Preprocessing & Enqueueing Enqueueror is a plugin assisting WordPress developers in loading JavaScript and CSS c

Panagiotis Anastasiadis 3 Jan 19, 2022
[READ-ONLY] CakePHP Utility classes such as Inflector, Text, Hash, Security and Xml. This repo is a split of the main code that can be found in https://github.com/cakephp/cakephp

CakePHP Utility Classes This library provides a range of utility classes that are used throughout the CakePHP framework What's in the toolbox? Hash A

CakePHP 112 Feb 15, 2022
[READ-ONLY] Collection library in CakePHP. This repo is a split of the main code that can be found in https://github.com/cakephp/cakephp

CakePHP Collection Library The collection classes provide a set of tools to manipulate arrays or Traversable objects. If you have ever used underscore

CakePHP 85 Nov 28, 2022