Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/afbora/kirby-minify-html
Enable minify HTML output for Kirby 3 and 4
https://github.com/afbora/kirby-minify-html
kirby kirby-cms kirby-plugin kirby3 kirby3-cms kirby3-plugin kirby4 kirby4-plugin
Last synced: about 2 months ago
JSON representation
Enable minify HTML output for Kirby 3 and 4
- Host: GitHub
- URL: https://github.com/afbora/kirby-minify-html
- Owner: afbora
- License: mit
- Created: 2019-09-19T13:57:27.000Z (over 5 years ago)
- Default Branch: main
- Last Pushed: 2023-12-13T15:47:04.000Z (about 1 year ago)
- Last Synced: 2024-05-21T02:21:50.108Z (8 months ago)
- Topics: kirby, kirby-cms, kirby-plugin, kirby3, kirby3-cms, kirby3-plugin, kirby4, kirby4-plugin
- Language: PHP
- Homepage:
- Size: 226 KB
- Stars: 34
- Watchers: 2
- Forks: 3
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- Funding: .github/FUNDING.yml
- License: LICENSE
Awesome Lists containing this project
README
# Kirby Minify HTML
Enable minify HTML output for Kirby 3 and 4.
## Installation
### Installation with composer
```ssh
composer require afbora/kirby-minify-html
```### Add as git submodule
```ssh
git submodule add https://github.com/afbora/kirby-minify-html.git site/plugins/kirby-minify-html
```## Options
The default values of the package are:
| Option | Default | Values | Description |
|:--|:--|:--|:--|
| afbora.kirby-minify-html.enabled | true | boolean | Enable/disable minify |
| afbora.kirby-minify-html.options | [] | array | Minify options * |### Available Minify Options
| Option | Description |
|:---|:---|
| doOptimizeViaHtmlDomParser | optimize html via "HtmlDomParser()" |
| doRemoveComments | remove default HTML comments (depends on "doOptimizeViaHtmlDomParser(true)") |
| doSumUpWhitespace | sum-up extra whitespace from the Dom (depends on "doOptimizeViaHtmlDomParser(true)") |
| doRemoveWhitespaceAroundTags | remove whitespace around tags (depends on "doOptimizeViaHtmlDomParser(true)") |
| doOptimizeAttributes | optimize html attributes (depends on "doOptimizeViaHtmlDomParser(true)") |
| doRemoveHttpPrefixFromAttributes | remove optional "http:"-prefix from attributes (depends on "doOptimizeAttributes(true)") |
| doRemoveHttpsPrefixFromAttributes | remove optional "https:"-prefix from attributes (depends on "doOptimizeAttributes(true)") |
| doKeepHttpAndHttpsPrefixOnExternalAttributes | keep "http:"- and "https:"-prefix for all external links |
| doMakeSameDomainsLinksRelative | make some links relative, by removing the domain from attributes |
| doRemoveDefaultAttributes | remove defaults (depends on "doOptimizeAttributes(true)" | disabled by default) |
| doRemoveDeprecatedAnchorName | remove deprecated anchor-jump (depends on "doOptimizeAttributes(true)") |
| doRemoveDeprecatedScriptCharsetAttribute | remove deprecated charset-attribute - the browser will use the charset from the HTTP-Header, anyway (depends on "doOptimizeAttributes(true)") |
| doRemoveDeprecatedTypeFromScriptTag | remove deprecated script-mime-types (depends on "doOptimizeAttributes(true)") |
| doRemoveDeprecatedTypeFromStylesheetLink | remove "type=text/css" for css links (depends on "doOptimizeAttributes(true)") |
| doRemoveDeprecatedTypeFromStyleAndLinkTag | remove "type=text/css" from all links and styles |
| doRemoveDefaultMediaTypeFromStyleAndLinkTag | remove "media="all" from all links and styles |
| doRemoveDefaultTypeFromButton | remove type="submit" from button tags |
| doRemoveEmptyAttributes | remove some empty attributes (depends on "doOptimizeAttributes(true)") |
| doRemoveValueFromEmptyInput | remove 'value=""' from empty (depends on "doOptimizeAttributes(true)") |
| doSortCssClassNames | sort css-class-names, for better gzip results (depends on "doOptimizeAttributes(true)") |
| doSortHtmlAttributes | sort html-attributes, for better gzip results (depends on "doOptimizeAttributes(true)") |
| doRemoveSpacesBetweenTags | remove more (aggressive) spaces in the dom (disabled by default) |
| doRemoveOmittedQuotes | remove quotes e.g. class="lall" => class=lall |
| doRemoveOmittedHtmlTags | remove ommitted html tags e.g. \lall\<\/p\> => \
lall |
All the values can be updated in the `config.php` file.
You can get detailed information from `HtmlMin` library:
https://github.com/voku/HtmlMin#options##### Protected HTML
*Inline css, inline js, conditional comments are still protected, no matter what settings you use.*
## Usage
````php
return [
'afbora.kirby-minify-html.enabled' => true,
'afbora.kirby-minify-html.options' => [
'doOptimizeViaHtmlDomParser' => true,
'doRemoveSpacesBetweenTags' => false,
'doMakeSameDomainsLinksRelative' => ['example.com']
],
];
````