htmlminn / htmlminn
HTMLMin Is A Simple HTML Minifier For Laravel
Requires
- php: >=5.5.9
- illuminate/contracts: 5.1.*|5.2.*|5.3.*|5.4.*|5.5.*|5.6.*|5.7.*|5.8.*|^6.0|^7.0|^8.0|^9.0|^10.0|^11.0
- illuminate/filesystem: 5.1.*|5.2.*|5.3.*|5.4.*|5.5.*|5.6.*|5.7.*|5.8.*|^6.0|^7.0|^8.0|^9.0|^10.0|^11.0
- illuminate/http: 5.1.*|5.2.*|5.3.*|5.4.*|5.5.*|5.6.*|5.7.*|5.8.*|^6.0|^7.0|^8.0|^9.0|^10.0|^11.0
- illuminate/routing: 5.1.*|5.2.*|5.3.*|5.4.*|5.5.*|5.6.*|5.7.*|5.8.*|^6.0|^7.0|^8.0|^9.0|^10.0|^11.0
- illuminate/support: 5.1.*|5.2.*|5.3.*|5.4.*|5.5.*|5.6.*|5.7.*|5.8.*|^6.0|^7.0|^8.0|^9.0|^10.0|^11.0
- illuminate/view: 5.1.*|5.2.*|5.3.*|5.4.*|5.5.*|5.6.*|5.7.*|5.8.*|^6.0|^7.0|^8.0|^9.0|^10.0|^11.0
- mrclay/minify: ^2.2|^3.0
Requires (Dev)
- graham-campbell/testbench: ^3.1|^4.0|^5.0
- mockery/mockery: ^0.9.4|^1.0
- phpunit/phpunit: ^4.8|^5.0|^6.0|^7.0|^8.0|^9.0|^10.0|^11.0
This package is auto-updated.
Last update: 2024-12-17 13:40:12 UTC
README
Laravel HTMLMin, developed by Kenan Gündoğan, is a simple HTML minifier package for Laravel. This package uses Mr Clay's Minify library to minify entire HTTP responses. It can also minify Blade views at compile time.
Installation
Laravel HTMLMin requires PHP 7.3+ and is compatible with Laravel 7.x, 8.x, 9.x, 10.x, and 11.x. You can install the package using Composer:
composer require kenangundogan/htmlmin
Automatic Loading
The package is automatically loaded using Laravel's extra
configuration. There is no need to manually register the Service Provider.
Configuration
Laravel HTMLMin configuration is optional. You can publish the configuration file using the following command:
php artisan vendor:publish
This will create a config/htmlmin.php
file, which you can modify to suit your project's needs.
Configuration Options
-
Automatic Blade Optimizations (
blade
)
Enables automatic minification of Blade views during compilation.
Default:false
-
Force Blade Optimizations (
force
)
Forces minification even on risky Blade views. Use with caution.
Default:false
-
Ignore Blade Files (
ignore
)
Specify file paths to exclude from minification.
Example:'ignore' => [ 'resources/views/emails', 'resources/views/markdown', ],
Usage
HTMLMin Class
The HTMLMin
class is bound to the IOC container as htmlmin
and provides the following methods:
blade($value)
: Quickly minifies a Blade string.css($value)
: Minifies CSS content.js($value)
: Minifies JavaScript content.html($value)
: Minifies HTML content, including inline CSS and JS.
Example Usage:
use HTMLMin\HTMLMin\Facades\HTMLMin; echo HTMLMin::html('<div> <p> Hello World! </p> </div>');
Middleware Usage
You can use middleware to minify HTML responses live. Add the middleware to your routes:
use HTMLMin\HTMLMin\Http\Middleware\MinifyMiddleware; Route::middleware([MinifyMiddleware::class])->group(function () { Route::get('/', function () { return view('welcome'); }); });
Note: Middleware runs on every request and may have a performance cost. For better performance, consider using Blade minification.
Skipping Minification
If you want to exclude certain files or views from minification:
- Using Config:
Add file paths to theignore
setting inconfig/htmlmin.php
. - Using HTML Comments:
Add the following comment within the file:<!-- skip.minification -->
Clearing Cache
To apply changes, you may need to clear Laravel's view cache:
php artisan view:clear
License
Laravel HTMLMin is licensed under the MIT License.