Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

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

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']
],
];
````