SaCzech-Uj: Navod k pouziti

SaCzech-Uj se sklada ze skupiny jednoucelovych konverznich programu. Kazdy z nich preklada dokument z jedineho vychoziho kodu do jednoho kodu ciloveho, jehoz jmeno je soucasti jmena programu. Cleny rodiny SaCzech-Uj tedy jsou toASCII.cgi, toCP1250.cgi, toKEYBCS2.cgi, toMAC.cgi, atd. (tez zvane ascii.cgi, 1250.cgi, kam.cgi, mac.cgi, atd.). Tyto programy predpokladaji, ze budou spusteny jako CGI skripty a vyuzivaji prislusne promenne prostredi. Nelze je spoustet samostatne (alespon ne jednoduse).

Obsah:

Zaklady - URL stranky

Stranku napiste v jednom z osmibitovych kodu, ktere SaCzech-Uj zna, a ktery byl Vami (nebo spravcem serveru) pri instalaci definovan pomoci promenne $source jako kod zdrojovy. Pokud chcete, aby stranka byla prekodovana, musite explicitne vyznacit, ze je napsana v tomto zdrojovem kodu: Na uplny zacatek stranky (jako prvni "slovo" na prvnim radku; muzou mu pripadne predchazet jen prazdne znaky) zaradte komentar <!--MYCHARSET=kod-->. Pokud tento komentar chybi, nebo kdyz kod v nem uvedeny neni shodny s hodnotou promenne $source, stranka bude odeslana beze zmeny (bude povazovana za stranku napsanou v ASCII, kterou neni treba prekodovavat).

Stranku vystavte, jak je obvykle. Jedine, co se zmeni, bude URL, kterym je treba se na ni odkazat. Jestlize URL stranky bez prekodovani by bylo

http://www.kdesi.ca/user/cesta/stranka.html
bude URL teze stranky pri pozadavku jejiho prekodovani do sedmibitoveho ASCII napr.
http://www.kdesi.ca/user/cgi-bin/ascii.cgi/cesta/stranka.html
Predpokladam, ze URL cesta ke kodujicim skriptum je http://www.kdesi.ca/user/cgi-bin. Muzete pouzit libovolny ze skriptu toXXX[.cgi]. nebo yyy[.cgi] (kde XXX ci yyy jsou jmena kodu popsana v predchozich kapitolach). Pokud cesta ke kodujicim skriptum je http://www.jinde.cz/cgi-bin (globalni CGI adresar serveru), bude URL pozadujici prekodovanou stranku mit tvar:
http://www.jinde.cz/cgi-bin/ascii.cgi/user/cesta/stranka.html

Odkazy tohoto typu vsak predpokladaji, ze predem vite, jaky kod bude uzivatel vyzadovat. To casto nemusi byt pravda. V takovem pripade doporucuji pouzit skript whichcode[.cgi] a URL

http://www.kdesi.ca/user/cgi-bin/whichcode.cgi/cesta/stranka.html
pripadne
http://www.jinde.cz/cgi-bin/whichcode.cgi/user/cesta/stranka.html
Skript whichcode uzivateli oznami, ze cilovy dokument obsahuje diakriticka znamenka a umozni mu zvolit kod, ktery povazuje za optimalni.

Zachovani kodu pri odkazech

Je prirozenym pozadavkem, aby uzivatel vybiral kod jen jednou a pri odkazech na dalsi dokumenty z tehoz zdroje se uchovavala informace o zvolenem kodovani. Nejjednodussi cestou je relativni odkaz. Kdyz do dokumentu vlozite odkaz pomoci znacky
<A HREF="kapitola1.html">Prvni kapitola</A>
klient prepracuje relativni URL kapitola1.html na absolutni. Vyjde pritom z URL dokumentu, obsahujiciho znacku. Pokud bylo puvodni URL dokumentu napriklad http://www.kdesi.ca/user/cgi-bin/toCP1250/cesta/obsah.html, povede zmineny odkaz k dokumentu http://www.kdesi.ca/user/cgi-bin/toCP1250/cesta/kapitola1.html. Informace o kodu byla zachovana.

Pozor! Chcete-li vyuzivat pro uchovani kodu relativni odkazy, nesmite v dokumentu pouzit znacku <BASE>, ktera urcuje zakladni URL dokumentu. Kdybyste ji pouzili, budou vsechna relativni URL vztazena k lokatoru, definovanemu touto znackou, nikoli k URL, pod kterym klient ziskal stranku.

Absolutni odkazy se zachovanim kodu distribuovana verze SaCzech-Uju nezvladne. Musite pouzit whichcode[.cgi]. Pokud chcete, bylo by mozno jednoduse zajistit provadeni substituce za retezec __CHARSET__ stejnym zpusobem jako u programu SaCzech-U. Staci vlozit napr. do skriptu mac.cgi tesne pred prikaz print $_; (radek c. 29) nasledujici tri radky:

s/to__CHARSET__/toMAC/g;
s/charset=__CHARSET__/charset=MAC/g;
s/__CHARSET__/mac/g;
(tri separatni substituce jsou mnohem rychlejsi nez jedna substituce se tremi alternativnimi vzory (to|charset=|)). Pripadne jen ty z techto tri substituci, ktere budete pouzivat. Podobne pro ostatni skripty. Tyto substituce mohou ale vyrazne zpomalit konverzi. Pokud je nutne nepotrebujete, vyhnete se jim.

Obrazky se nekoduji!

SaCzech(-Uj) je selektivni. Koduje jen soubory s urcitymi priponami (implicitne .html, .htm a .txt; jak je zmenit se doctete v kapitole Pod kapotou v dokumentaci puvodniho programu SaCzech). Dostane-li k prekodovani soubor s jinou priponou, odmitne se akce ucastnit a presmeruje klienta primo na dotycny soubor. Dusledkem je, ze klient ziska soubor v puvodnim tvaru beze zmeny kodovani.

Diky tomuto mechanismu muzete na sve stranky vkladat relativni odkazy na obrazky, zvuky a dalsi druhy dat, kterym by prekodovani rozhodne neprospelo.

Jestlize se na strance vyskytne znacka

<IMG SRC="obraz.gif">
a URL stranky je http://www.kdesi.cz/cgi-bin/toASCII/cesta/stranka.html, bude klient po serveru pozadovat http://www.kdesi.cz/cgi-bin/toASCII/cesta/obraz.gif. Server spusti skript toASCII. Ten vsak zjisti, ze je po nem pozadovano kodovani souboru s priponou .gif. Misto aby se pustil do dila, odpovi klientovi "hele s timhle ja nechci nic mit, vezmi si rovnou ten soubor". Klient si ho vezme a vse funguje k plne spokojenosti vsech zucastnenych.

Zmena vychoziho kodu

uprostred dokumentu neni mozna. SaCzech-Uj ignoruje vsechny komentare <!--MYCHARSET=kod--> krome jedineho, ktery je umisten na uplnem zacatku dokumentu. Pokud mate ruzne casti dokumentu v ruznych kodovanich, pouzijte nejprve napr. SaCzech-U ke konverzi celeho dokumentu do jedineho kodovani.

Milovnici patologickych pripadu proste prijdou zkratka!

Nabidka kodu

Casto je vhodne nabidnout uzivateli primo na strance moznost zmeny kodu teto stranky. Takovou nabidku je nutno zkonstruovat rucne (nebo predem pomoci programu SaCzech-U a pak rucne "vlepit" do dane stranky).

SaCzech-Uj a CGI

SaCzech-Uj zatim metody http a guess nepodporuje.

Tipy, triky, rizika

Prosim, obratte se primo na dokumentaci puvodniho programu SaCzech.