['formatHtml', -100],
        ];
    }
    public function formatHtml(SourceSetEvent $event): void
    {
        $config = [
            'output-html' => true,
            'drop-empty-elements' => false,
            'indent' => true,
            'wrap' => 120,
        ];
        $sources = $this->filterSource($event->sourceSet());
        /** @var SourceInterface $source */
        foreach ($sources as $source) {
            $html = $source->formattedContent();
            $tidy = new \tidy();
            $tidy->parseString($html, $config, 'utf8');
            $tidy->cleanRepair();
            $source->setFormattedContent((string) $tidy);
        }
    }
    private function filterSource(SourceSet $sourceSet): Generator
    {
        /** @var SourceInterface $source */
        foreach ($sourceSet->allSources() as $source) {
            $filename = $source->filename();
            $isSuitable = $filename === 'sitemap.xml'
                || $this->endsWith($filename, '.md')
                || $this->endsWith($filename, '.html.twig')
            ;
            if ($isSuitable) {
                yield $source;
            }
        }
    }
    private function endsWith($haystack, $needle): bool
    {
        $length = strlen($needle);
        return $length === 0 || (substr($haystack, -$length) === $needle);
    }
}