Nedělitelné mezery za předložkami — česká typografie ve WordPressu
Čeština: zalomení vloží nedělitelnou mezeru za jednopísmenné předložky a spojky (k, s, v, z, o, u, a, i), aby nikdy nezůstaly osamocené na konci řádku. Funguje na obsahu, titulcích i ACF textových a WYSIWYG polích — bez nutnosti volat vlastní filtr v šabloně.
Hlavní funkce
- Funguje na the_content, the_title, the_excerpt i ACF textová/textarea/WYSIWYG pole
- Pracuje jen s textovými uzly — nezasahuje dovnitř HTML tagů, atributů, <script> ani <pre>
- Idempotentní — opakovaným průchodem se mezery nezdvojí
- Twig filtr `nbsp` se zaregistruje jen pokud web používá Timber (žádná zbytečná integrace navíc)
- Veřejná funkce `smrk_nbsp()` pro ruční použití i mimo standardní filtry
Jak to funguje
Text se nejdřív rozdělí na HTML tagy a čisté textové úseky pomocí vyvážené párové analýzy tagů (ne naivní regex nad celým HTML), takže se nedělitelná mezera nikdy nevloží doprostřed atributu nebo tagu.
Na každý textový úsek se pak aplikuje regulární výraz `/(?<=^|\s|\()([ksvzaiou])(\s)+/iu`, který jednopísmennou předložku/spojku na začátku slova spojí s následujícím slovem přes ` `.
Alternativa k pluginům Zalomení, Čeština: zalomení řádků nebo Sirotci (sierotki) — s integrací do ACF bez nutnosti volat vlastní filtr v šabloně.