CMS 2.: tri typy medzier z jedinej II.

Ešte pár slov k nedeliteľnej medzere.


Najprv doplnenie k počtu typov medzier: samozrejme som medzi entitami XHTML našiel viac ako mnou doteraz uvádzané.
V mojom uvažovacom seriáli o CMS som už načrtol algoritmy pre spracovanie textu s ohľadom na správne uvádzanie medzier a prebehli sme si tieto:
– nahradenie nežiadúceho výskytu dvoch a viac medzier za sebou,
– umiestnenie zúženej medzery.
Známejšia varianta medzery je nedeliteľná a používa sa ako entita nbsp.
V bežnom texte sa nedeliteľná medzera použije medzi slovami, ktoré by sa za žiadnych okolností nemali nachádzať inak ako v jedinom riadku. Sú to teda prípady:
– jednopísmenné prvky gramatiky ako sú spojky, predložky,
– skratky mien (Sk, Kč) pred alebo za ich číselným vyjadrením,
– mená osôb uvádzané napr. R._Madaj.
Veľmi často sa nedeliteľná medzera používa v HTML kóde ako barlička autora kódu pre vytvorenie miesta. Znalejší kóderi však ich už eliminujú vhodným definovaním pravidiel CSS.
Prvý adept pre automatické nahradzovanie bežnej medzery sú práve pravidlá našej gramatiky predpisujúce, aby jednopísmenné spojky či predložky neboli nikdy na konci riadka v odstavci s textom.
Pokiaľ vám už teraz nezapol v hlave algoritmus, tak ho skúsim načrtnúť na príklade:
Naša cesta_k_pravde je zložitá_a_tŕnistá.
Podtržítkom som zvýraznil záchytné body pre náš program. Vyhľadávanie teda bude mať podmienku jediného znaku obklopeného medzerami. Medzeru vpravo nahradíme nedeliteľnou medzerou a všetko je v poriadku. Toto pravidlo by sme mali však poštvať na text až po vložení zúžených medzier v číslach.
Pokiaľ by sme chceli programovať vlastný editor, ktorý by už dokázal počas písania pomáhať autorovi textu, tak je postup prakticky rovnaký. Pokiaľ poznáme pozíciu kurzora v texte a používateľ akurát za jednoznakovým prvkom (pred ktorým je medzera) stlačil medzerník, tak do textu nepôjde bežná medzera.
Na tomto mieste chcem doplniť pravidlo jedinej medzery – ani dva rôzne typy medzier sa nesmú v texte nachádzať tesne vedľa seba.
U mien osôb je to komplikovanejšie ale predpokladáme, že jedno písmeno ako verzálka sa na konci vety nenachádza často. Napriek tomu je nahrádzanie medzier v tomto prípade môžem doporučiť aj keby sa nedeliteľná medzera vložila aj za bodku uzatvárajúcu vetu.
Tiež ste si všimli, že sa vyhýbam príkladom pre niektorý z programovacích jazykov? Mojou podstatou je lenivosť a snaha vyhnúť sa pristihnutiu pri programátorskej chybe v nich. Môžem však vyhlásiť, že väčšinu z nich som už realizoval v mojom historickom produkte, ktorý som spomenul na začiatku – bohužiaľ v Pascale. A zdroják už nemám.


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

Môže sa Vám ešte páčiť...

3 komentáre

  1. dusoft píše:

    pozri si:
    http://www.pixy.cz/blog/2003_02_archiv.html#1046432237
    Pozri si tiez toto (vyborne veci):
    Delenie slov cez antitu ­ :
    http://www.tuke.sk/podlubny/oh.html
    Predlozky na konci riadkov neostanu:
    http://www.tuke.sk/podlubny/predlozky/
    cez   pocitam

  2. dusoft píše:

    pozri si:
    http://www.pixy.cz/blog/2003_02_archiv.html#1046432237
    Pozri si tiez toto (vyborne veci):
    Delenie slov cez entitu ­ :
    http://www.tuke.sk/podlubny/oh.html
    Predlozky na konci riadkov neostanu:
    http://www.tuke.sk/podlubny/predlozky/
    cez   pocitam

  3. rony píše:

    to je v poriadku ale tie nastroje z tuke su uz finalny produkt a nie nakopnutie pre zabudovanie do vlastnych skriptov ;-) alebo budeme nutit pouzivatelov chodit na tie stranky aby si cez copypaste prefiltrovavali texty? ;-) urcite nie.
    Clanok pixyho som samozrejme cital, ja nechcem ucit ludi typografiu, ja chcem, aby ju aplikovali pri vyvoji svojich programov prave preto, aby sa ju ludia ucit nemuseli ;-)