CMS 2.: tri typy medzier z jedinej I.

V predošlej časti „CMS I.: medzery v texte“ menšej série „Fiktívny CMS by mal vedieť viac“ som prekvapivo oznámil existenciu troch typov medzier, ktoré sa používajú pre text na webových stránkach. Takisto poznáme príčiny, prečo vznikajú texty len s jediným typom medzier. Našou požiadavkou je však aspoň čiastočne sa priblížiť dodržiavaniu typografických pravidiel aj v textoch webových stránok.


Pretože renderovacie jadrá prehliadačov zanedbávajú niektoré striktné pravidlá typografie, nie je možné dosiahnuť uspokojivý výsledok z pohľadu sadzača. V prvom rade by to vyžadovalo nedosiahnuteľnú úroveň znalostí obsluhy systémov pre správu obsahu a v druhom rade naša snaha algoritmizovať niektoré pravidlá z nevhodne pripraveného textu jednoducho zlyhávajú. Pretože prevažná väčšina CMS sa pripravuje ako webová aplikácia najčastejšie v prostredí vytvorenom bežným webovým serverom, niektorým zo skriptovacích jazykov s podporou databázových prostredí na strane servera a niektorým z množstva internetových prehliadačov na strane klienta.
V taktomto prostredí však CMS neposkytujú príliš jednoduchú kontrolu nad pripravovaným textom a obmedzujú sa prakticky na možnosti poskytované internetovým prehliadačom v spojení s programovým vybavením samotného systému správy obsahu. V reáli to znamená praktickú invaliditu formulárov pre vkladanie textu (TEXTAREA nie je kvalitný textový editor). Konkrétne CMS sa s touto úlohou vysporiadajú vo väčšine prípadou náhradou HTMLAREA s viac alebo menej kvalitným filtrovaním vkladaného textu. Povedzme si rovno: nikdy to nie je dokonalé.
Nahradzovať výskyt viac ako jednej medzery medzi slovami v texte sme už previedli a vieme to ľahko realizovať bežným skriptovacím či programovacím jazykom.
Dnes sa zahryznem do zložitejšieho problému viacerých typov medzier v texte v spojení s pravidlami pre ich používanie.
Prvý typ medzery je bežný a v textovom editore sa vkladá z klávesnice medzerníkom. Z pochopiteľných dôvodov sa v texte vyskytuje najčastejšie. Je pre to objektívny dôvod: proste aj typografia túto medzeru doporučuje ako prirodzený oddeľovač slov, interpunkcie či viet. Menej objektívny a nežiadúci výskyt je už všade tam, kde patrí iný typ medzery alebo pokiaľ medzera nemá čo hľadať v texte.
Zúžená medzera sa vkladá HTML entitou thinsp a mala by sa vkladať do textu v týchto prípadoch:
1. oddeľovanie tisícok v číslach (napr. aj telefónnych),
2. oddeľovanie dní, mesiacov a rokov v dátume,
Našim problémom je však vymeniť medzery v týchto častiach textu za zúženú alebo pokiaľ sa takáto medzera v nich žiada a nie je tam.
Pokiaľ pri prezeraní textu našou fiktívnou procedúrou (časť programu) narazíme na sled číslic, môže ísť o náš prípad. Problémom je, že výnimočne nemusí a preto si musíme podmienkami ešte vyšpecifikovať kandidátov na úpravu.
Pokiaľ teda v texte nájdeme takéto prípady, môžeme ich upravovať (prvý je bežný tvar aký vkladá používateľ a za dvojbodkou nasledujú vhodnejšie tvary a zúžená medzera je vizuálne nahradená podtržítkom):
1000000: 1_000_000, 1 mil.
2123.45: 2_123,45
23 158: 23_158
V texte sa však môže vyskytovať sled číslic, ktoré nie je vhodné oddeľovať medzerami. Žiarivým príkladom sú napríklad sériové čísla (vtipná vsuvka: pokiaľ programujete web uverejňujúci tieto čísla, máte problém). Tieto čísla však už v drvivej väčšine obsahujú aj iné znaky ako pomlčky a písmená.
Preto náš algoritmus musí vylúčiť „slová“, ktoré neobsahujú výhradne desatinnú bodku (čiarku) a číslice.


Zhrnutie článkov na tému CMS do 21. mája 2004:

Written by rony