kevintweber/groundskeeper

This package is abandoned and no longer maintained. No replacement package was suggested.

Groundskeeper will clean your weedy HTML.

v0.2 2017-03-12 19:49 UTC

This package is not auto-updated.

Last update: 2020-01-25 01:08:59 UTC


README

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.