{"id":14974966,"url":"https://github.com/dz-id/laravel-html-minifier","last_synced_at":"2025-10-27T10:32:02.549Z","repository":{"id":43119308,"uuid":"382945063","full_name":"dz-id/laravel-html-minifier","owner":"dz-id","description":"Html Minifier adalah paket simpel untuk minify output Html, Css style, dan Javascript sebelum dirender ke browser untuk aplikasi Laravel anda.","archived":false,"fork":false,"pushed_at":"2022-03-17T10:57:41.000Z","size":452,"stargazers_count":17,"open_issues_count":1,"forks_count":3,"subscribers_count":1,"default_branch":"master","last_synced_at":"2024-09-28T19:42:33.321Z","etag":null,"topics":["laravel-framework","laravel8","minify","minify-css","minify-html","minify-javascript"],"latest_commit_sha":null,"homepage":"","language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/dz-id.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2021-07-04T20:44:45.000Z","updated_at":"2023-07-18T08:38:59.000Z","dependencies_parsed_at":"2022-08-30T17:01:26.290Z","dependency_job_id":null,"html_url":"https://github.com/dz-id/laravel-html-minifier","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dz-id%2Flaravel-html-minifier","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dz-id%2Flaravel-html-minifier/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dz-id%2Flaravel-html-minifier/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dz-id%2Flaravel-html-minifier/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dz-id","download_url":"https://codeload.github.com/dz-id/laravel-html-minifier/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":219861468,"owners_count":16555994,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["laravel-framework","laravel8","minify","minify-css","minify-html","minify-javascript"],"created_at":"2024-09-24T13:51:19.819Z","updated_at":"2025-10-27T10:31:57.137Z","avatar_url":"https://github.com/dz-id.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n\u003ca href=\"https://travis-ci.org/dz-id/laravel-html-minifier\"\u003e\u003cimg src=\"https://travis-ci.org/renatomarinho/laravel-page-speed.svg?branch=master\" alt=\"Build Status\"\u003e\u003c/a\u003e\n\u003ca href=\"https://packagist.org/packages/dz-id/laravel-html-minifier\"\u003e\u003cimg src=\"https://poser.pugx.org/renatomarinho/laravel-page-speed/version\" alt=\"Latest Stable Version\"\u003e\u003c/a\u003e\n\u003ca href=\"https://packagist.org/packages/dz-id/laravel-html-minifier\"\u003e\u003cimg src=\"https://poser.pugx.org/renatomarinho/laravel-page-speed/downloads\" alt=\"Total Downloads\"\u003e\u003c/a\u003e\n\u003ca href=\"https://packagist.org/packages/dz-id/laravel-html-minifier\"\u003e\u003cimg src=\"https://poser.pugx.org/renatomarinho/laravel-page-speed/license\" alt=\"License\"\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n# Laravel Html Minifier\n\nAdalah Paket simpel untuk minify HTML, Css Style, dan Javascript sebelum dirender ke browser untuk aplikasi Laravel anda.\n\nAlat ini hanya bekerja jika output yang diberikan adalah bentuk struktur html yang valid meliputi tag html, head dan body. contohnya\n\n- Html yang valid (akan diproses dan diminify)\n\n```html\n\u003chtml\u003e\n   \u003chead\u003e\n      \u003c!-- head --\u003e\n   \u003c/head\u003e\n   \u003cbody\u003e\n      \u003c!-- body --\u003e\n   \u003c/body\u003e\n\u003c/html\u003e\n```\n\n- Html yang tidak valid (tidak diminify)\n\n```html\n\u003c html\u003e\n   \u003chead\u003e\n      \u003c!-- head --\u003e\n   \u003c/head\u003e\n   \u003cbody\u003e\n      \u003c!-- body --\u003e\n   \u003c/body\u003e\n\u003c/ html\u003e\n\natau\n\n\u003chtml\u003e\n   \u003chead\u003e\n      \u003c!-- head --\u003e\n   \u003c/head\u003e\n\u003c/html\u003e\n```\n\n## Contoh Hasilnya :\n\n![Sebelum](example-output/before.jpg)\n\n![Sesudah](example-output/after.jpg)\n\n## Installasi\n\n\u003e **Membutuhkan:**\n- **[PHP 7.2.5+](https://php.net/releases/)**\n- **[Laravel 6.0+](https://github.com/laravel/laravel)**\n\n## Tahap pertama anda bisa menginstall paket ini dengan [Composer 2x](https://getcomposer.org/download/)\n\n```sh\ncomposer require dz-id/laravel-html-minifier\n```\n\n## Publish konfigurasi file\n\n```sh\nphp artisan vendor:publish --provider=\"DzId\\LaravelHtmlMinifier\\HtmlMinifierServiceProvider\"\n```\n\n## Jangan lupa untuk mendaftarkan ke Global Middleware\n\n[\\DzId\\LaravelHtmlMinifier\\Middleware\\MinifyHtml::class](src/Middleware/MinifyHtml.php) dan Middleware lainnya harus didaftarkan ke kernel jika diperlukan, contoh :\n\n```php\n\n// file : app/Http/Karnel.php\n\nprotected $middleware = [\n    ....\n    \\DzId\\LaravelHtmlMinifier\\Middleware\\MinifyHtml::class,         // middleware untuk minify html\n    \\DzId\\LaravelHtmlMinifier\\Middleware\\MinifyCss::class,         // middleware untuk minify css style\n    \\DzId\\LaravelHtmlMinifier\\Middleware\\MinifyJavascript::class, // middleware untuk minify kode javascript\n];\n```\n\n## Informasi Middleware\n\n##### [\\DzId\\LaravelHtmlMinifier\\Middleware\\MinifyHtml::class](src/Middleware/MinifyHtml.php)\n\n```MinifyHtml::class``` fungsinya adalah untuk minify html menghapus blank spasi dan juga baris baru menjadi satu baris.\n\n\u003cb\u003eContoh Hasil :\u003c/b\u003e\n\n- Sebelum diminify\n```html\n\u003chtml lang=\"id\"\u003e\n    \u003chead\u003e\n        \u003ctitle\u003eLaravel Html Minifier\u003c/title\u003e\n    \u003c/head\u003e\n    \u003cbody\u003e\n       \u003ch1\u003eLaravel Html Minifier\u003c/h1\u003e\n    \u003c/body\u003e\n\u003c/html\u003e\n```\n\n- Sesudah diminify\n```html\n\u003chtml lang=\"id\"\u003e\u003chead\u003e\u003ctitle\u003eLaravel Html Minifier\u003c/title\u003e\u003c/head\u003e\u003cbody\u003e\u003ch1\u003eLaravel Html Minifier\u003c/h1\u003e\u003c/body\u003e\u003c/html\u003e\n```\n\n##### [\\DzId\\LaravelHtmlMinifier\\Middleware\\MinifyCss::class](src/Middleware/MinifyCss.php)\n\n```MinifyCss::class``` fungsinya adalah untuk minify css style menghapus blank spasi dan juga baris baru menjadi satu baris.\n\n\u003cb\u003eContoh Hasil :\u003c/b\u003e\n\n- Sebelum diminify\n```css\nbody {\n   background-color: salmon;\n   width: 100%;\n   height: 100%;\n}\n```\n\n- Sesudah diminify \n```css\nbody{background-color:salmon;width:100%;height:100%}\n```\n\n##### [\\DzId\\LaravelHtmlMinifier\\Middleware\\MinifyJavascript::class](src/Middleware/MinifyJavascript.php)\n\n```MinifyJavascript::class``` fungsinya adalah untuk minify kode javascript menghapus blank spasi dan juga baris baru menjadi satu baris.\n\nCatatan: jangan menggunakan kode tanpa kurung kurawal (```{}```) untuk if, elseif, else, while, for, dll. ini akan menyebebkan kode anda error, contohnya\n\n- kode yang disarankan\n```javascript\nfor (let i = 0; i \u003c 10; i++) {\n  console.log('hello dunia');\n}\n```\n\n- kode yang tidak disarankan, tanpa kurung kurawal biasanya akan menyebabkan error jika menggunakan ```MinifyJavascript::class```\n```javascript\nfor (let i = 0; i \u003c 10; i++)    // tanpa\n    console.log('hello dunia'); // kurung kurawal\n```\n\n- sesudah diminify\n```javascript\nfor (let i = 0; i \u003c 10; i++){console.log('hello dunia')}\n```\n\nkamu juga bisa mengaburkan kode javascript dengan menyetel ke ```true``` bagian ```\"obfuscate_javascript\"``` dalam file : [config/laravel-html-minifier.php](config/laravel-html-minifier.php)\n\n## File Konfigurasi\n\nSetelah menginstall paket anda mungkin perlu mengkonfigurasi beberapa opsi\nSilahkan masuk ke file [config/laravel-html-minifier.php](config/laravel-html-minifier.php) untuk mengubah konfigurasi\n\n##### Nonaktifkan Layanan\n\nAnda cukup menyetel ke ```false``` untuk menonaktifkan Layanan.\n\n```php\n\n// file: config/laravel-html-minifier.php\n\n// setel bagian ini ke false untuk menonaktifkan layanan minify Laravel.\n\"enable\" =\u003e env(\"LARAVEL_HTML_MINIFIER_ENABLE\", true),\n```\n\n##### Otomatis Menambahkan Semicolon Atau Titik Koma Diakhir kode Pada CSS\n\nJika kode css anda mengalami bug saat menggunakan ```MinifyCss::class``` silahkan setel bidang ini ke ```false```.\n\n```php\n\n// file: config/laravel-html-minifier.php\n\n\"css_automatic_insert_semicolon\" =\u003e env(\"LARAVEL_HTML_MINIFIER_CSS_AUTOMATIC_INSERT_SEMICOLON\", true),\n```\n\n##### Otomatis Menambahkan Semicolon Atau Titik Koma Diakhir kode Pada Javascript\n\nCatatan: Jangan menggunakan jeda baris untuk while, do while, for, if, elseif, else, return, dll. ataupun kode tanpa kurung kurawal (```{}```). contohnya\n\n- kode yang disarankan\n```javascript\nvar log = function(log) {\n   return console.log(log);\n}\n\nlet i = 0;\n\ndo {\n    if (i == 5) {\n       break;\n    }\n    i++;\n    log(\"hello dunia\");\n} while (true);\n```\n\n- kode yang tidak disarankan, akan menyebabkan error jika mengaktifkan \"js_automatic_insert_semicolon\"\n```javascript\nvar log = function(log) {\n   return               // jeda\n      console.log(log); // baris\n}\n\nlet i = 0;\n\ndo\n// jeda baris\n{\n    if (i == 5)  // tanpa\n        break;   // kurung kurawal\n    i++;\n    log(\"hello dunia\");\n}\n// jeda baris\nwhile (true);\n```\n\nmungkin aja jika mengaktifkan bidang ini kode anda akan menjadi bug karena suatu kondisi yang salah\ndalam hal ini jika itu terjadi anda cukup menyetel bidang ini ke ```false```\n\njangan lupa untuk selalu menggunakan titik koma pada kode javascript jika bidang ini disetel ke ```false```\n\nfungsi ini hanya berlaku jika menggunakan ```MinifyJavascript::class```\n\n```php\n\n// file: config/laravel-html-minifier.php\n\n\"js_automatic_insert_semicolon\" =\u003e env(\"LARAVEL_HTML_MINIFIER_JS_AUTOMATIC_INSERT_SEMICOLON\", true),\n```\n\n##### Menghapus Komentar HTML\n\nCukup setel ke ```true``` untuk mengaktifkan dan setel ke ```false``` untuk menonaktifkan.\n\nFungsi ini hanya berlaku jika menggunakan Middleware ```MinifyHtml::class```\n\n```php\n\n// file: config/laravel-html-minifier.php\n\n// setel bidang ini ke false untuk mematikan\n\"remove_comments\" =\u003e env(\"LARAVEL_HTML_MINIFIER_REMOVE_COMMENTS\", true),\n```\n\n##### Kaburkan Kode Javascript (Obfuscate)\n\nCatatan : jika ada mengaktifkan fungsi ini mungkin kode javascript anda akan menjadi panjang, \nFungsi ini akan mengubah satu per satu dari setiap string / text ke ```chr()``` fungsi PHP dan didecode dengan ```String.fromCharCode()``` fungsi javascript.\n\nFungsi ini hanya berlaku jika kamu menggunakan Middleware ```MinifyJavascript::class``` jika bidang ini disetel ke ```false``` kode javascript hanya diminify tidak dikaburkan/Obfuscate\n\n\u003cb\u003eContoh Hasil :\u003c/b\u003e\n\n- Sebelum dikaburkan\n```javascript\nalert(1);\n```\n\n- Sesudah dikaburkan\n```javascript\neval(((_,__,___,____,_____,______,_______)=\u003e{______[___](x=\u003e_______[__](String[____](x)));return _______[_](_____)})('join','push','forEach','fromCharCode','',[97,108,101,114,116,40,49,41,59],[]))\n```\n\nDalam kasus ini kamu cukup menyetelnya ke ```false``` untuk menonaktifkan dan menyetelnya ke ```true``` untuk mengaktifkan\n\n```php\n\n// file : config/laravel-html-minifier.php\n\n// setel ke true untuk mengaktifkan\n\"obfuscate_javascript\" =\u003e env(\"LARAVEL_HTML_MINIFIER_OBFUSCATE_JS\", false),\n```\n\n##### Ignore / Abaikan Route\n\nAnda mungkin ingin mengonfigurasi paket untuk melewati beberapa rute.\n\n```php\n\n// file : config/laravel-html-minifier.php\n\n\"ignore\" =\u003e [\n    \"*/download/*\", // Abaikan semua route yang mengandung download\n    \"admin/*\",     // Abaikan semua route dengan awalan admin,\n    \"*/user\"      // Abaikan route dengan akhiran user\n]\n```\n\n## Skip / Lewati dengan menambahkan attribute ignore--minify\n\nKamu cukup menambahkan attribute ```ignore--minify``` dalam tag script / style untuk melewati proses minify.\n\nContoh :\n\n```html\n\n\u003cstyle ignore--minify\u003e\n    /* css kode */\n\u003c/style\u003e\n\n\u003cscript ignore--minify\u003e\n   /* javascript kode */\n\u003c/script\u003e\n```\n\nSetiap tag style/script yang memiliki attribute ```ignore--minify``` akan dilewati tidak diminify.\n\n## Skip / Lewati View dengan menambahkan data \"ignore_minify\" ke dalam view\n\nKamu juga bisa melewati minify dengan memasukan data ```\"ignore_minify\"``` kedalam view\n\nContoh :\n\n```php\n\n// View ini tidak diminify akan di skip.\nreturn view(\"welcome\", [\"ignore_minify\" =\u003e true]);\n```\n\n## Lisensi\n\n[MIT](LICENSE) (MIT)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdz-id%2Flaravel-html-minifier","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdz-id%2Flaravel-html-minifier","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdz-id%2Flaravel-html-minifier/lists"}