SaCzech-U: Navod k pouziti

SaCzech-U se sklada ze skupiny jednoucelovych konverznich programu. Kazdy z nich preklada dokument ze vsech implementovanych vychozich kodu do jednoho kodu ciloveho, jehoz jmeno je soucasti jmena programu. Cleny rodiny SaCzech-U 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-U zna, nejlepe samozrejme v kodu, ktery byl Vami (nebo spravcem serveru) pri instalaci definovan pomoci promenne $source jako kod implicitni, protoze se predpoklada, ze bude pouzit ve vetsine dokumentu. Vystavte ji, jak je obvykle. Jedine, co se zmeni, bude URL, kterym je treba se odkazat na stranku. 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 je treba resit jinak. Tady pouziva SaCzech(-U) metodu podobnou programu WWWdia. Do textu muzete na kterekoli misto (vcetne cest) vlozit retezec

__CHARSET__
Kodujici skript nahradi kazdy vyskyt tohoto retezce identifikaci kodu, do ktereho prave prevadi stranku. Pokud se tento retezec vyskytuje ve spojeni to__CHARSET__ nebo charset=__CHARSET__, je vzdy nahrazen jmenem kodu uzivanym v programu WWWdia (a puvodnim SaCzechu), ve vsech ostatnich pripadech bude nahrazen jmenem EUnet modulu pro stejny kod. Proto muzete v textu pouzit znacku
<A HREF="http://www.jinde.cz/cgi-bin/to__CHARSET__/jinacesta/str.html">odkaz</A>
Pokud stranka projde skriptem toKEYBCS2, ktery ji prevede do kodu KEYBCS2, bude v odeslanem dokumentu v teto znacce uvedeno URL
<A HREF="http://www.saczechserver.cz/cgi-bin/toKEYBCS2/jinacesta/str.html">odkaz</A>
Predpokladam, ze server, urceny timto absolutnim URL, ma instalovan SaCzech-U. Muze, ale nemusi se jednat o tentyz server, ktery poskytl puvodni dokument. Stejne je zvladnut i odkaz na stranku v pravomoci WWWdia, pouzijete-li pro tento odkaz URL
<A HREF="http://www.diaserver.cz/cgi-bin/charset/jestecesta/str.html?charset=__CHARSET__">odkaz</A>
Stejny skript toKEYBCS2 z rodiny SaCzech-U navic zvladne na teze strance i pouziti znacky
<a href="http://pes.eunet.cz/__CHARSET__">odkaz</A>
V odeslanem dokumentu se v tom pripade objevi
<a href="http://pes.eunet.cz/kam">odkaz</A>
Schopnost automaticky zachovavat kod pri kontaktu s co nejvetsim poctem serveru stala za napadem zavest podporu alternativnich jmen kodu v programu SaCzech-U. Problemem ale je, ze server vetsinou nevi co ma delat s zadosti typu <a href="http://pes.eunet.cz/__CHARSET__">, kdyz vyse uvedena stranka nahodou neprojde zadnym konverznim skriptem. Nevi to dokonce i nektere servery, ktere pouzivaji SaCzech a na nichz bylo zrejme opomenuto zavest synonyma doporucena pro to__CHARSET__.cgi. K tomu navic existuji i moduly se jmeny kodu, ktere se lisi od jmen EUnetu, takze dve sady jmen kodu na vsechno stejne nestaci.

Obrazky se nekoduji!

SaCzech(-U) 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

Implicitni vychozi kod, ve kterem budou psany dokumenty si urcite pri instalaci programu SaCzech-U. Melo by se jednat o kod, ve kterem bude vytvarena vetsina stranek (nejlepe vsechny). Pokud autor pouziva i kod jiny, ma dve moznosti:
Prevest stranku do implicitniho kodu.
To je mene pohodlne a navic to komplikuje pozdejsi upravy na strance (kazda uprava bude vyzadovat nove prekodovani - SaCzech-U to ale usnadnuje, je mozno ho pouzivat k rychle a snadne konverzi dokumentu mezi dvema kody obema smery mezi jednotlivymi upravami - viz dalsi odstavec).
Ponechat stranku v kodu puvodnim a vyznacit jej.
K vyznaceni puvodniho kodu dokumentu se pouziva HTML komentar v presne definovanem tvaru
<!--MYCHARSET=kod-->
Napriklad <!--MYCHARSET=CP1250-->. Pocinaje radkem, obsahujicim tento komentar (doporucuji jej uvest na samostatnem radku na zacatku dokumentu), bude za vychozi kod dokumentu povazovan kod CP1250. SaCzech-U behem konverze nevklada do vysledneho dokumentu puvodni komentare typu <!--MYCHARSET=kod-->, protoze jiz neplati, a misto nich vlozi na jeho uplny pocatek komentar s vyznacenim kodu do nehoz je dokument prekladan. Po ulozeni pak neni pochyby v jakem kodu je dana kopie dokumentu zapsana. Je mozno pak pokracovat v upravovani dokumentu v novem kodu.
Dokonce muzete pouzivat nekolik ruznych kodu v jednom dokumentu. Jestlize je prvni polovina textu psana v kodu Kamenickych a druha v MS-Windows, staci pred kazdou cast vlozit prislusny komentar a vysledek bude uzivateli odeslan ve spravne podobe - obe poloviny se korektne prekoduji napriklad do ISO Latin 2. Takove dokumenty je sice mozno povazovat za zverstvo, ale ta moznost tu je. SaCzech-U ji ovsem cini naprosto zbytecnou jak vysvetleno vyse.

Pro milovniky patologickych pripadu:

Nabidka kodu

Casto je vhodne nabidnout uzivateli primo na strance moznost zmeny kodu teto stranky. Nechce-li autor tuto nabidku konstruovat rucne, muze SaCzech-U instruovat, aby ji vytvoril automaticky. Na prislusne misto stranky vlozte HTML komentar
<!--BAR-->
SaCzech-U jej behem zpracovani textu nahradi nabidkou moznych kodu, do kterych lze stranku prevest. Ridte se podobnymi pravidly, jako v pripade MYCHARSET - v komentari neuvadejte nic jineho.

Chcete-li, aby nabidka kodu byla nadepsana anglicky (napr. na anglicke strance, ktera obsahuje ceska jmena), pouzijte komentar

<!--BAR E-->

Pokud uvedete na jednom radku vice nez jeden komentar <!--BAR --> nebo <!--BAR E-->, SaCzech-U vygeneruje jen jednu nabidku podle prvniho komentare a vsechny ostatni ignoruje. Aby se zamezilo opakovanemu generovani nabidek pri opetovnem pouziti konvertovaneho dokumentu, SaCzech-U neprekopiruje ani komentare typu BAR do odesilaneho dokumentu, pred kazdou nabidkou ale vypise pozmeneny komentar upozornujici na to, ze byla vygenerovana automaticky.

SaCzech-U a CGI

Aby mohl spolupracovat s CGI skripty a menit kod jejich vysledku je treba SaCzech-U instalovat tak, aby kodovane dokumenty ziskaval metodou http (kazdy dokument ziskava od serveru protokolem HTTP) nebo guess (snazi se uhadnout, co je obycejny soubor a co volani CGI skriptu, ve druhem pripade opet sahne k protokolu HTTP). Podrobnosti se doctete v kapitole o instalaci.

Provedl jsem i vsechny zmeny v souboru enchttp.tpl, ktere byly potrebne pro podporu metody http pri instalaci SaCzech-U v soukromem adresari uzivatele. Zda se, ze vysledny kod funguje spravne, nemel jsem ale zatim moznost ho dostacne otestovat.

Zachovani kodu v obrazcich s klikou. Tipy, triky, rizika

Prosim, obratte se primo na dokumentaci puvodniho programu SaCzech.