wongyip/html-beautify

HTML Formatter

v1.1.0 2024-04-22 06:21 UTC

This package is auto-updated.

Last update: 2025-03-23 17:59:08 UTC


README

Based on the Beautify HTML by Ivan Weiler, I'm here to bring it to the Packagist only, no feature is added. Please find the original README for details.

Installation

composer require wongyip/html-beautify

Usage

The same usage with the original Beautify HTML is maintained, except of the namespaced classname. As in most cases (at least in most of my cases), Beautify::class will be used once only within the whole request/command life cycle, so a static Beautify::html() method is added to format HTML in a state-less manner.

use \Wongyip\HTML\Beautify;

$html = <<<HTML
    <!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"><title>Title</title></head>
    <body><div class="row col-sm12"><ol><li></li><li></li><li></li></ol></div></body></html>
    HTML;

# State-less
echo Beautify::html($html);

# Reusable
$beautifier = new Beautify();
echo $beautifier->beautify($html);

# Alternative static constructor
echo Beautify::init()->beautify($html);

All the above echo statements output the same HTML below:

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>

<body>
<div class="row" style="color: brown;">
    <ul>
        <li>Hello</li>
        <li>World!</li>
    </ul>
</div>
</body>

</html>

Options

use \Wongyip\HTML\Beautify;

# All options are optional.
$options = [
    'indent_inner_html'     => false,
    'indent_char'           => " ",
    'indent_size'           => 4,
    'wrap_line_length'      => 32768,
    'unformatted'           => ['code', 'pre'],
    'preserve_newlines'     => false,
    'preserve_newlines_max' => 32768,
    'indent_scripts'        => 'normal',
];

# Set on instantiate.
$beautifier = new Beautify($options);

# Update option(s)
$beautifier->options(['indent_size' => 2]);

# Get options
$options = $beautifier->options();

Try it out

composer create-project wongyip/html-beautify
cd html-beautify
composer install
php demo/demo.php