/typograf

πŸ“– Π’ΠΈΠΏΠΎΠ³Ρ€Π°Ρ„ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ тСкста Π½Π° php

Primary LanguagePHPMIT LicenseMIT

php Π’ΠΈΠΏΠΎΠ³Ρ€Π°Ρ„

tests codecov

Π’ΠΈΠΏΠΎΠ³Ρ€Π°Ρ„ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ тСкста Π½Π° php, ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ Ρ€Π°ΡΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π½Π΅Ρ€Π°Π·Ρ€Ρ‹Π²Π½Ρ‹Π΅ ΠΏΡ€ΠΎΠ±Π΅Π»Ρ‹, ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹Π΅ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ ΠΈ ΠΈΡΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ ΠΌΠ΅Π»ΠΊΠΈΠ΅ ΠΎΠΏΠ΅Ρ‡Π°Ρ‚ΠΊΠΈ.

Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠ°Π½ΠΈΠ΅

Установка

composer require akh/typograf

ИспользованиС

$t = new \Akh\Typograf\Typograf();
$typoText = $t->apply('"ΠŸΡ€ΠΈΠ²Π΅Ρ‚, ΠΌΠΈΡ€!"');
echo $typoText; //Β«ΠŸΡ€ΠΈΠ²Π΅Ρ‚, ΠΌΠΈΡ€!Β»

Π’ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΈ Π²Ρ‹ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΏΡ€Π°Π²ΠΈΠ»

$t = new \Akh\Typograf\Typograf();
// Π’ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ
$t->enableRule('Nbsp\ReplaceNbsp');
// Π’ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ всС ΠΏΡ€Π°Π²ΠΈΠ»Π° Π² Π³Ρ€ΡƒΠΏΠΏΠ΅ 
$t->enableRule('Nbsp\*');
// Π’ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ всС ΠΏΡ€Π°Π²ΠΈΠ»Π°
$t->enableRule('*');

// ΠžΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ
$t->disableRule('Nbsp\ReplaceNbsp'); 
// ΠžΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ всС ΠΏΡ€Π°Π²ΠΈΠ»Π° Π² Π³Ρ€ΡƒΠΏΠΏΠ΅
$t->disableRule('Nbsp\*'); 
// ΠžΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ всС ΠΏΡ€Π°Π²ΠΈΠ»Π°
$t->disableRule('*'); 

ЧастичноС ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Ρ‚ΠΈΠΏΠΎΠ³Ρ€Π°Ρ„ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ для участка тСкста, Π΅Π³ΠΎ Π½ΡƒΠΆΠ½ΠΎ ΠΎΠ±Π΅Ρ€ΡƒΠ½Ρ‚ΡŒ Π²

<span class="no-typo">"ΠŸΡ€ΠΈΠ²Π΅Ρ‚"</span>

Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ своСго ΠΏΡ€Π°Π²ΠΈΠ»Π°

$typo = new \Akh\Typograf\Typograf();
$simpleRule = new class extends \Akh\Typograf\Rule\AbstractRule {
    public $name = 'Π—Π°ΠΌΠ΅Π½Π° названия сайта';
    protected $sort = 1000;
    public function handler(string $text): string
    {
        return str_replace('old.ru', 'new.ru', $text);
    }
};

$typo->addRule($simpleRule);
$typo->apply('old.ru'); //new.ru

Π’Π΄ΠΎΡ…Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ чСрпаСтся ΠΈΠ·