['formatHtml', -100],
];
}
public function formatHtml(SourceSetEvent $event): void
{
$indenter = new Indenter([
'indentation_character' => ' ',
]);
$sources = $this->filterSource($event->sourceSet());
/** @var \Sculpin\Core\Source\SourceInterface $source */
foreach ($sources as $source) {
$html = $source->formattedContent();
$formatted = $indenter->indent($html);
$source->setFormattedContent($formatted);
}
}
private function filterSource(SourceSet $sourceSet): \Generator
{
/** @var \Sculpin\Core\Source\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);
}
}