RSS

Świat Owoców: nowe narzędzia automatyzują pracę

Liczba odsłon: 17

Sporo miej­sca po­świę­ci­łem ostat­nio za­gad­nie­niu dzie­le­nia wy­ra­zów na stro­nach WWW. Opisałem też roz­wój pro­gra­mu, któ­ry auto­ma­ty­zu­je dzie­le­nie wy­ra­zów, usu­wa­jąc ko­niecz­ność ręcz­ne­go dzie­le­nia ca­łe­go tek­stu na sy­la­by. I choć słow­nik po­dzia­łów wciąż nie jest kom­plet­ny (i wąt­pię, by po­kry­wał kie­dyś ca­ły zbiór wy­ra­zów wy­stę­pu­ją­cych w ję­zy­ku pol­skim), już te­raz uzys­ku­ję po­nad 50% po­kry­cia ty­po­wych tek­stów publi­ko­wa­nych w Świecie Owo­ców.

Idąc za cio­sem, po­sta­no­wi­łem stwo­rzyć dwa ko­lej­ne pro­gra­my ułat­wia­ją­ce utrzy­ma­nie wy­so­kie­go po­zio­mu tech­nicz­ne­go tek­stów jak naj­mniej­szym na­kła­dem pra­cy.

Pierwszy z nich, o za­bój­czej naz­wie nbsper, do­ko­nu­je za­mia­ny zna­ków _ na en­cje   ozna­cza­ją­ce twar­de spac­je. W ten spo­sób mo­gę za­po­bie­gać po­zos­ta­wia­niu na koń­cach wier­szy spój­ni­ków i krót­kich wy­ra­zów. Dotych­czas osią­ga­łem ten sam efekt za po­mo­cą włas­ne­go edy­to­ra Webber, dys­po­nu­ją­ce­go kom­bi­nac­ją kla­wi­szy po­wo­du­ją­cą wsta­wie­nie twar­dej spac­ji i do­ko­nu­ją­ce­go kon­wer­sji en­cji na od­po­wied­nie zna­ki Uni­code i vice versa. Teraz mo­gę pi­sać tekst w do­wol­nym edy­to­rze (choć­by vi).

Drugi pro­gram, o jesz­cze cie­kaw­szej naz­wie abbrer, do­ko­nu­je auto­ma­tycz­nej za­mia­ny spe­cjal­nie ozna­czo­nych miejsc w tekś­cie na znacz­ni­ki XHTML za­wie­ra­ją­ce roz­wi­nię­cia skró­tów. Wystar­czy, bym w ko­dzie wsta­wił sym­bol spe­cjal­ny {HTML}, a w fi­nal­nym ko­dzie po­ja­wi się znacz­nik <acronym> roz­wi­ja­ją­cy skrót HTML na po­trze­by czyt­ni­ków ekra­no­wych i mniej zorien­to­wa­nych czy­tel­ni­ków.

Oczywiś­cie, dzia­ła­nie wszyst­kich trzech pro­gra­mów mo­że być blo­ko­wa­ne w ra­zie po­trze­by po­le­ce­nia­mi umiesz­cza­ny­mi w tekś­cie i włą­cza­ne po­now­nie, gdy zno­wu sta­je się po­trzeb­ne. W ten właś­nie spo­sób umieś­ci­łem po­wy­żej zna­ki i ko­dy tłu­ma­czo­ne prze­cież przez nbsperabbrer.

Ponadto, wszyst­kie pro­gra­my po­wsta­ły zgod­nie z obo­wią­zu­ją­cą w sys­te­mach Unix za­sa­dą „rób jed­ną rzecz do­brze”. Przyjmu­ją one tekst do prze­two­rze­nia ze stan­dar­do­we­go wejś­cia, prze­ka­zu­jąc wy­ni­ki do stan­dar­do­we­go wyj­ścia, dzię­ki cze­mu moż­li­we jest spraw­ne łą­cze­nie ich w do­wol­ny spo­sób i do­łą­cza­nie filt­rów reali­zu­ją­cych in­ne ope­rac­je. Stworze­nie ich w ję­zy­ku C++ umoż­li­wi­ło uzys­ka­nie wy­so­kiej wy­daj­noś­ci: prze­two­rze­nie śred­niej wiel­koś­ci tek­stu trwa nie­za­uwa­żal­nie krót­ko.