SaCzech-U: Návod k pouzití

SaCzech-U se skládá ze skupiny jednoúçelových konverzních programű. Kazdý z nich prekládá dokument ze vsech implementovaných výchozích kódu do jednoho kódu cílového, jehoz jméno je souçástí jména programu. Çleny rodiny SaCzech-U 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-U zná, nejlépe samozrejmë v kódu, který byl Vámi (nebo správcem serveru) pri instalaci definován pomocí promënné $source jako kód implicitní, protoze se predpokládá, ze bude pouzit ve vëtsinë dokumentű. Vystavte ji, jak je obvyklé. Jediné, co se zmëní, bude URL, kterým je treba se odkázat na stránku. 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 je treba resit jinak. Tady pouzívá SaCzech(-U) metodu podobnou programu WWWdia. Do textu műzete na kterékoli místo (vçetnë cest) vlozit retëzec

__CHARSET__
Kódující skript nahradí kazdý výskyt tohoto retëzce identifikací kódu, do kterého právë prevádí stránku. Pokud se tento retëzec vyskytuje ve spojení to__CHARSET__ nebo charset=__CHARSET__, je vzdy nahrazen jménem kódu uzívaným v programu WWWdia (a pűvodním SaCzechu), ve vsech ostatních prípadech bude nahrazen jménem EUnet modulu pro stejný kód. Proto műzete v textu pouzít znaçku
<A HREF="http://www.jinde.cz/cgi-bin/to__CHARSET__/jinacesta/str.html">odkaz</A>
Pokud stránka projde skriptem toKEYBCS2, který ji prevede do kódu KEYBCS2, bude v odeslaném dokumentu v této znaçce uvedeno URL
<A HREF="http://www.saczechserver.cz/cgi-bin/toKEYBCS2/jinacesta/str.html">odkaz</A>
Predpokládám, ze server, urçený tímto absolutním URL, má instalován SaCzech-U. Műze, ale nemusí se jednat o tentýz server, který poskytl pűvodní dokument. Stejnë je zvládnut i odkaz na stránku 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>
Stejný skript toKEYBCS2 z rodiny SaCzech-U navíc zvládne na téze stránce i pouzití znaçky
<a href="http://pes.eunet.cz/__CHARSET__">odkaz</A>
V odeslaném dokumentu se v tom prípadë objeví
<a href="http://pes.eunet.cz/kam">odkaz</A>
Schopnost automaticky zachovávat kód pri kontaktu s co nejvëtsím poçtem serverű stála za nápadem zavést podporu alternativních jmen kódu v programu SaCzech-U. Problémem ale je, ze server vëtsinou neví co má dëlat s zádostí typu <a href="http://pes.eunet.cz/__CHARSET__">, kdyz výse uvedená stránka náhodou neprojde zádným konverzním skriptem. Neví to dokonce i nëkteré servery, které pouzívají SaCzech a na nichz bylo zrejmë opomenuto zavést synonyma doporuçená pro to__CHARSET__.cgi. K tomu navíc existují i moduly se jmény kódű, které se lisí od jmen EUnetu, takze dvë sady jmen kódű na vsechno stejnë nestaçí.

Obrázky se nekódují!

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

Implicitní výchozí kód, ve kterém budou psány dokumenty si urçíte pri instalaci programű SaCzech-U. Mëlo by se jednat o kód, ve kterém bude vytvárena vëtsina stránek (nejlépe vsechny). Pokud autor pouzívá i kód jiný, má dvë moznosti:
Prevést stránku do implicitního kódu.
To je ménë pohodlné a navíc to komplikuje pozdëjsí úpravy na stránce (kazdá úprava bude vyzadovat nové prekódování - SaCzech-U to ale usnadńuje, je mozno ho pouzívat k rychlé a snadné konverzi dokumentű mezi dvëma kódy obëma smëry mezi jednotlivými úpravami - viz dalsí odstavec).
Ponechat stránku v kódu pűvodním a vyznaçit jej.
K vyznaçení pűvodního kódu dokumentu se pouzívá HTML komentár v presnë definovaném tvaru
<!--MYCHARSET=kód-->
Napríklad <!--MYCHARSET=CP1250-->. Poçínaje rádkem, obsahujícím tento komentár (doporuçuji jej uvést na samostatném rádku na zaçátku dokumentu), bude za výchozí kód dokumentu povazován kód CP1250. SaCzech-U bëhem konverze nevkládá do výsledného dokumentu pűvodní komentáre typu <!--MYCHARSET=kód-->, protoze jiz neplatí, a místo nich vlozí na jeho úplný poçátek komentár s vyznaçením kódu do nëhoz je dokument prekládán. Po ulození pak není pochyby v jakém kódu je daná kopie dokumentu zapsána. Je mozno pak pokraçovat v upravování dokumentu v novém kódu.
Dokonce műzete pouzívat nëkolik rűzných kódű v jednom dokumentu. Jestlize je první polovina textu psána v kódu Kamenických a druhá v MS-Windows, staçí pred kazdou çást vlozit príslusný komentár a výsledek bude uzivateli odeslán ve správné podobë - obë poloviny se korektnë prekódují napríklad do ISO Latin 2. Takové dokumenty je sice mozno povazovat za zvërstvo, ale ta moznost tu je. SaCzech-U ji ovsem çiní naprosto zbyteçnou jak vysvëtleno výse.

Pro milovníky patologických prípadű:

Nabídka kódű

Çasto je vhodné nabídnout uzivateli prímo na stránce moznost zmëny kódu této stránky. Nechce-li autor tuto nabídku konstruovat ruçnë, műze SaCzech-U instruovat, aby ji vytvoril automaticky. Na príslusné místo stránky vlozte HTML komentár
<!--BAR-->
SaCzech-U jej bëhem zpracování textu nahradí nabídkou mozných kódű, do kterých lze stránku prevést. Ridte se podobnými pravidly, jako v prípadë MYCHARSET - v komentári neuvádëjte nic jiného.

Chcete-li, aby nabídka kódű byla nadepsána anglicky (napr. na anglické stránce, která obsahuje çeská jména), pouzijte komentár

<!--BAR E-->

Pokud uvedete na jednom rádku více nez jeden komentár <!--BAR --> nebo <!--BAR E-->, SaCzech-U vygeneruje jen jednu nabídku podle prvního komentáre a vsechny ostatní ignoruje. Aby se zamezilo opakovanému generování nabídek pri opëtovném pouzití konvertovaného dokumentu, SaCzech-U neprekopíruje ani komentáre typu BAR do odesílaného dokumentu, pred kazdou nabídkou ale vypíse pozmënëný komentár upozorńující na to, ze byla vygenerovaná automaticky.

SaCzech-U a CGI

Aby mohl spolupracovat s CGI skripty a mënit kód jejich výsledkű je treba SaCzech-U instalovat tak, aby kódované dokumenty získával metodou http (kazdý dokument získává od serveru protokolem HTTP) nebo guess (snazí se uhádnout, co je obyçejný soubor a co volání CGI skriptu, ve druhém prípadë opët sáhne k protokolu HTTP). Podrobnosti se doçtete v kapitole o instalaci.

Provedl jsem i vsechny zmëny v souboru enchttp.tpl, které byly potrebné pro podporu metody http pri instalaci SaCzech-U v soukromém adresári uzivatele. Zdá se, ze výsledný kód funguje správnë, nemël jsem ale zatím moznost ho dostaçnë otestovat.

Zachování kódu v obrázcích s klikou. Tipy, triky, rizika

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