Skip to content
This repository has been archived by the owner on Jan 25, 2020. It is now read-only.

kevintweber/Groundskeeper

Repository files navigation

Groundskeeper

Latest Version on Packagist Software License Build Status Coverage Status Quality Score

Groundskeeper will clean your weedy HTML.

Install

Via Composer

$ composer require kevintweber/groundskeeper

Usage

Here is a simple example:

use Groundskeeper\Groundskeeper;

$groundskeeper = new Groundskeeper(array(
    'output' => 'pretty'
));
$groundskeeper->setLogger($myLogger); // Optional: will log changes to your HTML.

$cleanHtml = $groundskeeper->clean($dirtyHtml);

Options

  • clean-strategy: Describes how the HTML document will be cleaned.
    • Options: none, lenient, standard, aggressive; Default: standard
      • none - No cleaning will be done.
      • lenient - Like standard except no markup will be removed.
      • standard - Standard compliant HTML will be output. Unfixable malformed HTML will be removed.
      • aggressive - Like "standard" plus non-standard elements will be removed. (TODO)
  • element-blacklist: Describes which elements will be removed from the output.
    • Options: Comma seperated list of elements; Default: `` (empty list)
  • indent-spaces: The number of spaces for indentation when using pretty output.
    • Options: integer greater than or equal to 0; Default: 4
  • output: Describes how the HTML will be output.
    • Options: compact, pretty; Default: compact
      • compact - Will remove all whitespace between elements, and will set indent-spaces to 0.
      • pretty - One element per line with indentation. Handy for debugging.
  • type-blacklist: Describes which token types will be removed from the output.
    • Options: Comma seperated list of any of the following: cdata, comment, doctype, element, php, text; Default: cdata,comment

Todo

  1. Implement aggressive cleaning strategy.
  2. pretty output should inline certain elements.
  3. Add option to remove / sanitize all JS attributes.

Change log

Please see CHANGELOG for more information what has changed recently.

Testing

$ phpunit

Contributing

Please see CONTRIBUTING for details.

Security

If you discover any security related issues, please email kevintweber@gmail.com instead of using the issue tracker.

Credits

License

The MIT License (MIT). Please see License File for more information.

About

Groundskeeper will clean your weedy HTML.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages