SaCzech-Uj: Návod k pouzití

SaCzech-Uj se skládá ze skupiny jednoúçelových konverzních programű. Kazdý z nich prekládá dokument z jediného výchozího kódu do jednoho kódu cílového, jehoz jméno je souçástí jména programu. Çleny rodiny SaCzech-Uj tedy jsou toASCII.cgi, toCP1250.cgi, toKEYBCS2.cgi, toMAC.cgi, atd. (téz zvané ascii.cgi, 1250.cgi, kam.cgi, mac.cgi, atd.). Tyto programy predpokládají, ze budou spustëny jako CGI skripty a vyuzívají príslusné promënné prostredí. Nelze je spoustët samostatnë (alespoń ne jednoduse).

Obsah:

Základy - URL stránky

Stránku napiste v jednom z osmibitových kódu, které SaCzech-Uj zná, a který byl Vámi (nebo správcem serveru) pri instalaci definován pomocí promënné $source jako kód zdrojový. Pokud chcete, aby stránka byla prekódována, musíte explicitnë vyznaçit, ze je napsána v tomto zdrojovém kódu: Na úplný zaçátek stránky (jako první "slovo" na prvním rádku; műzou mu prípadnë predcházet jen prázdné znaky) zaradte komentár <!--MYCHARSET=kód-->. Pokud tento komentár chybí, nebo kdyz kód v nëm uvedený není shodný s hodnotou promënné $source, stránka bude odeslána beze zmëny (bude povazována za stránku napsanou v ASCII, kterou není treba prekódovávat).

Stránku vystavte, jak je obvyklé. Jediné, co se zmëní, bude URL, kterým je treba se na ni odkázat. Jestlize URL stránky bez prekódování by bylo

http://www.kdesi.ca/user/cesta/stranka.html
bude URL téze stránky pri pozadavku jejího prekódování do sedmibitového ASCII napr.
http://www.kdesi.ca/user/cgi-bin/ascii.cgi/cesta/stranka.html
Predpokládám, ze URL cesta ke kódujícím skriptűm je http://www.kdesi.ca/user/cgi-bin. Műzete pouzít libovolný ze skriptű toXXX[.cgi]. nebo yyy[.cgi] (kde XXX çi yyy jsou jména kódű popsaná v predchozích kapitolách). Pokud cesta ke kódujícím skriptűm je http://www.jinde.cz/cgi-bin (globální CGI adresár serveru), bude URL pozadující prekódovanou stránku mít tvar:
http://www.jinde.cz/cgi-bin/ascii.cgi/user/cesta/stranka.html

Odkazy tohoto typu vsak predpokládájí, ze predem víte, jaký kód bude uzivatel vyzadovat. To çasto nemusí být pravda. V takovém prípadë doporuçuji pouzít skript whichcode[.cgi] a URL

http://www.kdesi.ca/user/cgi-bin/whichcode.cgi/cesta/stranka.html
prípadnë
http://www.jinde.cz/cgi-bin/whichcode.cgi/user/cesta/stranka.html
Skript whichcode uzivateli oznámí, ze cílový dokument obsahuje diakritická znaménka a umozní mu zvolit kód, který povazuje za optimální.

Zachování kódu pri odkazech

Je prirozeným pozadavkem, aby uzivatel vybíral kód jen jednou a pri odkazech na dalsí dokumenty z téhoz zdroje se uchovávala informace o zvoleném kódování. Nejjednodussí cestou je relativní odkaz. Kdyz do dokumentu vlozíte odkaz pomocí znaçky
<A HREF="kapitola1.html">První kapitola</A>
klient prepracuje relativní URL kapitola1.html na absolutní. Vyjde pritom z URL dokumentu, obsahujícího znaçku. Pokud bylo pűvodní URL dokumentu napríklad http://www.kdesi.ca/user/cgi-bin/toCP1250/cesta/obsah.html, povede zmínëný odkaz k dokumentu http://www.kdesi.ca/user/cgi-bin/toCP1250/cesta/kapitola1.html. Informace o kódu byla zachována.

Pozor! Chcete-li vyuzívat pro uchování kódu relativní odkazy, nesmíte v dokumentu pouzít znaçku <BASE>, která urçuje základní URL dokumentu. Kdybyste ji pouzili, budou vsechna relativní URL vztazena k lokátoru, definovanému touto znaçkou, nikoli k URL, pod kterým klient získal stránku.

Absolutní odkazy se zachováním kódu distribuovaná verze SaCzech-Uju nezvládne. Musíte pouzít whichcode[.cgi]. Pokud chcete, bylo by mozno jednoduse zajistit provádëní substituce za retëzec __CHARSET__ stejným zpűsobem jako u programu SaCzech-U. Staçí vlozit napr. do skriptu mac.cgi tësnë pred príkaz print $_; (rádek ç. 29) následující tri rádky:

s/to__CHARSET__/toMAC/g;
s/charset=__CHARSET__/charset=MAC/g;
s/__CHARSET__/mac/g;
(tri separátní substituce jsou mnohem rychlejsí nez jedna substituce se tremi alternativními vzory (to|charset=|)). Prípadnë jen ty z tëchto trí substitucí, které budete pouzívat. Podobnë pro ostatní skripty. Tyto substituce mohou ale výraznë zpomalit konverzi. Pokud je nutnë nepotrebujete, vyhnëte se jim.

Obrázky se nekódují!

SaCzech(-Uj) je selektivní. Kóduje jen soubory s urçitými príponami (implicitnë .html, .htm a .txt; jak je zmënit se doçtete v kapitole Pod kapotou v dokumentaci pűvodního programu SaCzech). Dostane-li k prekódování soubor s jinou príponou, odmítne se akce úçastnit a presmëruje klienta prímo na dotyçný soubor. Dűsledkem je, ze klient získá soubor v pűvodním tvaru beze zmëny kódování.

Díky tomuto mechanismu műzete na své stránky vkládat relativní odkazy na obrázky, zvuky a dalsí druhy dat, kterým by prekódování rozhodnë neprospëlo.

Jestlize se na stránce vyskytne znaçka

<IMG SRC="obraz.gif">
a URL stránky 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 spustí skript toASCII. Ten vsak zjistí, ze je po nëm pozadováno kódování souboru s príponou .gif. Místo aby se pustil do díla, odpoví klientovi "hele s tímhle já nechci nic mít, vezmi si rovnou ten soubor". Klient si ho vezme a vse funguje k plné spokojenosti vsech zúçastnëných.

Zmëna výchozího kódu

uprostred dokumentu není mozná. SaCzech-Uj ignoruje vsechny komentáre <!--MYCHARSET=kód--> kromë jediného, který je umístën na úplném zaçátku dokumentu. Pokud máte rűzné çásti dokumentu v rűzných kódováních, pouzijte nejprve napr. SaCzech-U ke konverzi celého dokumentu do jediného kódování.

Milovníci patologických prípadű prostë prijdou zkrátka!

Nabídka kódű

Çasto je vhodné nabídnout uzivateli prímo na stránce moznost zmëny kódu této stránky. Takovou nabídku je nutno zkonstruovat ruçnë (nebo predem pomocí programu SaCzech-U a pak ruçnë "vlepit" do dané stránky).

SaCzech-Uj a CGI

SaCzech-Uj zatím metody http a guess nepodporuje.

Tipy, triky, rizika

Prosím, obratte se prímo na dokumentaci pűvodního programu SaCzech.