machy8/xhtml-formatter

Simple, lightweight, customizable (X)HTML and XML formatter / beautifier.

v1.0.0 2017-08-14 16:31 UTC

This package is auto-updated.

Last update: 2024-09-11 14:57:12 UTC


README

Build Status

Installation

composer require machy8/xhtml-formatter

Usage

Compiles this 💩

<!DOCTYPE html>
<html lang="en">
    <head><meta charset="utf-8"><title>title</title>
    <link rel="stylesheet" href="style.css">
<script src="script.js"></script></head><body><!-- page content --></body></html>

into this 😱😭

<!DOCTYPE html>
<html lang="en">
	<head>
		<meta charset="utf-8">
		<title>
			title
		</title>
		<link rel="stylesheet" href="style.css">
		<script src="script.js"></script>
	</head>
	<body>
		<!-- page content -->
	</body>
</html>

and all you need is

use XhtmlFormatter\Formatter;

$formatter = new Formatter();

$output = $formatter->format($string);

and if you want to disable formatting

<div>
	<formatter-off>
		<p>
			<b>Unformatted code goes <u>here</u></b>!
		</p>
	</formatter-off>
</div>

Setup

$formatter

	// Change the content type from CONTENT_HTML (default) to CONTENT_XML or CONTENT_XHTML
	->setContentType(Formatter::CONTENT_XML)

	// Add new unpaired element
	->addUnpairedElement('element', Formatter::CONTENT_XML)

	// Add skipped elements
	->addSkippedElement('elementA elementB')

	// Indent file by 4 spaces instead of tabs
	->setSpacesIndentationMethod(4);