31 lines
591 B
PHP
31 lines
591 B
PHP
<?php
|
|
|
|
namespace App\Twig\Extension;
|
|
|
|
use Twig\Extension\AbstractExtension;
|
|
use Twig\TwigFilter;
|
|
use Twig\TwigFunction;
|
|
|
|
class TypoExtension extends AbstractExtension
|
|
{
|
|
public function getFilters(): array
|
|
{
|
|
return [
|
|
new TwigFilter('nbsp', [$this, 'nbsp']),
|
|
];
|
|
}
|
|
|
|
public function nbsp(string $value)
|
|
{
|
|
foreach (['!', '?', ':'] as $char) {
|
|
$value = str_replace(
|
|
sprintf(' %s', $char),
|
|
sprintf(' %s', $char),
|
|
$value
|
|
);
|
|
}
|
|
|
|
return $value;
|
|
}
|
|
}
|