SaCzech-U: NÁvod k pouÚitÉ

SaCzech-U se sklÁdÁ ze skupiny jednoÕÃelovÙch konverznÉch programÊ. KaÚdÙ z nich pÒeklÁdÁ dokument ze vÓech implementovanÙch vÙchozÉch kÏdu do jednoho kÏdu cÉlov×ho, jehoÚ jm×no je souÃÁstÉ jm×na programu. ãleny rodiny SaCzech-U tedy jsou toASCII.cgi, toCP1250.cgi, toKEYBCS2.cgi, toMAC.cgi, atd. (t×Ú zvan× ascii.cgi, 1250.cgi, kam.cgi, mac.cgi, atd.). Tyto programy pÒedpoklÁdajÉ, Úe budou spuÓtÅny jako CGI skripty a vyuÚÉvajÉ pÒÉsluÓn× promÅnn× prostÒedÉ. Nelze je spouÓtÅt samostatnÅ (alespoÎ ne jednoduÓe).

Obsah:

ZÁklady - URL strÁnky

StrÁnku napiÓte v jednom z osmibitovÙch kÏdu, kter× SaCzech-U znÁ, nejl×pe samozÒejmÅ v kÏdu, kterÙ byl VÁmi (nebo sprÁvcem serveru) pÒi instalaci definovÁn pomocÉ promÅnn× $source jako kÏd implicitnÉ, protoÚe se pÒedpoklÁdÁ, Úe bude pouÚit ve vÅtÓinÅ dokumentÊ. Vystavte ji, jak je obvykl×. Jedin×, co se zmÅnÉ, bude URL, kterÙm je tÒeba se odkÁzat na strÁnku. JestliÚe URL strÁnky bez pÒekÏdovÁnÉ by bylo
http://www.kdesi.ca/user/cesta/stranka.html
bude URL t×Úe strÁnky pÒi poÚadavku jejÉho pÒekÏdovÁnÉ do sedmibitov×ho ASCII napÒ.
http://www.kdesi.ca/user/cgi-bin/ascii.cgi/cesta/stranka.html
PÒedpoklÁdÁm, Úe URL cesta ke kÏdujÉcÉm skriptÊm je http://www.kdesi.ca/user/cgi-bin. MÊÚete pouÚÉt libovolnÙ ze skriptÊ toXXX[.cgi]. nebo yyy[.cgi] (kde XXX Ãi yyy jsou jm×na kÏdÊ popsanÁ v pÒedchozÉch kapitolÁch). Pokud cesta ke kÏdujÉcÉm skriptÊm je http://www.jinde.cz/cgi-bin (globÁlnÉ CGI adresÁÒ serveru), bude URL poÚadujÉcÉ pÒekÏdovanou strÁnku mÉt tvar:
http://www.jinde.cz/cgi-bin/ascii.cgi/user/cesta/stranka.html

Odkazy tohoto typu vÓak pÒedpoklÁdÁjÉ, Úe pÒedem vÉte, jakÙ kÏd bude uÚivatel vyÚadovat. To Ãasto nemusÉ bÙt pravda. V takov×m pÒÉpadÅ doporuÃuji pouÚÉt skript whichcode[.cgi] a URL

http://www.kdesi.ca/user/cgi-bin/whichcode.cgi/cesta/stranka.html
pÒÉpadnÅ
http://www.jinde.cz/cgi-bin/whichcode.cgi/user/cesta/stranka.html
Skript whichcode uÚivateli oznÁmÉ, Úe cÉlovÙ dokument obsahuje diakritickÁ znam×nka a umoÚnÉ mu zvolit kÏd, kterÙ povaÚuje za optimÁlnÉ.

ZachovÁnÉ kÏdu pÒi odkazech

Je pÒirozenÙm poÚadavkem, aby uÚivatel vybÉral kÏd jen jednou a pÒi odkazech na dalÓÉ dokumenty z t×hoÚ zdroje se uchovÁvala informace o zvolen×m kÏdovÁnÉ. NejjednoduÓÓÉ cestou je relativnÉ odkaz. KdyÚ do dokumentu vloÚÉte odkaz pomocÉ znaÃky
<A HREF="kapitola1.html">PrvnÉ kapitola</A>
klient pÒepracuje relativnÉ URL kapitola1.html na absolutnÉ. Vyjde pÒitom z URL dokumentu, obsahujÉcÉho znaÃku. Pokud bylo pÊvodnÉ URL dokumentu napÒÉ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 vyuÚÉvat pro uchovÁnÉ kÏdu relativnÉ odkazy, nesmÉte v dokumentu pouÚÉt znaÃku <BASE>, kterÁ urÃuje zÁkladnÉ URL dokumentu. Kdybyste ji pouÚili, budou vÓechna relativnÉ URL vztaÚena k lokÁtoru, definovan×mu touto znaÃkou, nikoli k URL, pod kterÙm klient zÉskal strÁnku.

AbsolutnÉ odkazy je tÒeba ÒeÓit jinak. Tady pouÚÉvÁ SaCzech(-U) metodu podobnou programu WWWdia. Do textu mÊÚete na kter×koli mÉsto (vÃetnÅ cest) vloÚit ÒetÅzec

__CHARSET__
KÏdujÉcÉ skript nahradÉ kaÚdÙ vÙskyt tohoto ÒetÅzce identifikacÉ kÏdu, do kter×ho prÁvÅ pÒevÁdÉ strÁnku. Pokud se tento ÒetÅzec vyskytuje ve spojenÉ to__CHARSET__ nebo charset=__CHARSET__, je vÚdy nahraÚen jm×nem kÏdu uÚÉvanÙm v programu WWWdia (a pÊvodnÉm SaCzechu), ve vÓech ostatnÉch pÒÉpadech bude nahraÚen jm×nem EUnet modulu pro stejnÙ kÏd. Proto mÊÚete v textu pouÚÉ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 pÒevede 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>
PÒedpoklÁdÁm, Úe server, urÃenÙ tÉmto absolutnÉm URL, mÁ instalovÁn SaCzech-U. MÊÚe, ale nemusÉ se jednat o tentÙÚ server, kterÙ poskytl pÊvodnÉ dokument. StejnÅ je zvlÁdnut i odkaz na strÁnku v pravomoci WWWdia, pouÚijete-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×Úe strÁnce i pouÚitÉ znaÃky
<a href="http://pes.eunet.cz/__CHARSET__">odkaz</A>
V odeslan×m dokumentu se v tom pÒÉpadÅ objevÉ
<a href="http://pes.eunet.cz/kam">odkaz</A>
Schopnost automaticky zachovÁvat kÏd pÒi kontaktu s co nejvÅtÓÉ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, Úe server vÅtÓinou nevÉ co mÁ dÅlat s ÚÁdostÉ typu <a href="http://pes.eunet.cz/__CHARSET__">, kdyÚ vÙÓe uvedenÁ strÁnka nÁhodou neprojde ÚÁdnÙm konverznÉm skriptem. NevÉ to dokonce i nÅkter× servery, kter× pouÚÉvajÉ SaCzech a na nichÚ bylo zÒejmÅ opomenuto zav×st synonyma doporuÃenÁ pro to__CHARSET__.cgi. K tomu navÉc existujÉ i moduly se jm×ny kÏdÊ, kter× se liÓÉ od jmen EUnetu, takÚe dvÅ sady jmen kÏdÊ na vÓechno stejnÅ nestaÃÉ.

ObrÁzky se nekÏdujÉ!

SaCzech(-U) je selektivnÉ. KÏduje jen soubory s urÃitÙmi pÒÉ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 pÒekÏdovÁnÉ soubor s jinou pÒÉponou, odmÉtne se akce ÕÃastnit a pÒesmÅruje klienta pÒÉmo na dotyÃnÙ soubor. DÊsledkem je, Úe klient zÉskÁ soubor v pÊvodnÉm tvaru beze zmÅny kÏdovÁnÉ.

DÉky tomuto mechanismu mÊÚete na sv× strÁnky vklÁdat relativnÉ odkazy na obrÁzky, zvuky a dalÓÉ druhy dat, kterÙm by pÒekÏdovÁnÉ rozhodnÅ neprospÅlo.

JestliÚe 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 poÚadovat http://www.kdesi.cz/cgi-bin/toASCII/cesta/obraz.gif. Server spustÉ skript toASCII. Ten vÓak zjistÉ, Úe je po nÅm poÚadovÁno kÏdovÁnÉ souboru s pÒÉ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 vÓe funguje k pln× spokojenosti vÓech 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 pÒi instalaci programÊ SaCzech-U. MÅlo by se jednat o kÏd, ve kter×m bude vytvÁÒena vÅtÓina strÁnek (nejl×pe vÓechny). Pokud autor pouÚÉvÁ i kÏd jinÙ, mÁ dvÅ moÚnosti:
PÒev×st strÁnku do implicitnÉho kÏdu.
To je m×nÅ pohodln× a navÉc to komplikuje pozdÅjÓÉ Õpravy na strÁnce (kaÚdÁ Õprava bude vyÚadovat nov× pÒekÏdovÁnÉ - SaCzech-U to ale usnadÎuje, je moÚno ho pouÚÉvat k rychl× a snadn× konverzi dokumentÊ mezi dvÅma kÏdy obÅma smÅry mezi jednotlivÙmi Õpravami - viz dalÓÉ odstavec).
Ponechat strÁnku v kÏdu pÊvodnÉm a vyznaÃit jej.
K vyznaÃenÉ pÊvodnÉho kÏdu dokumentu se pouÚÉvÁ HTML komentÁÒ v pÒesnÅ definovan×m tvaru
<!--MYCHARSET=kÏd-->
NapÒÉklad <!--MYCHARSET=CP1250-->. PoÃÉnaje ÒÁdkem, obsahujÉcÉm tento komentÁÒ (doporuÃuji jej uv×st na samostatn×m ÒÁdku na zaÃÁtku dokumentu), bude za vÙchozÉ kÏd dokumentu povaÚovÁn kÏd CP1250. SaCzech-U bÅhem konverze nevklÁdÁ do vÙsledn×ho dokumentu pÊvodnÉ komentÁÒe typu <!--MYCHARSET=kÏd-->, protoÚe jiÚ neplatÉ, a mÉsto nich vloÚÉ na jeho ÕplnÙ poÃÁtek komentÁÒ s vyznaÃenÉm kÏdu do nÅhoÚ je dokument pÒeklÁdÁn. Po uloÚenÉ pak nenÉ pochyby v jak×m kÏdu je danÁ kopie dokumentu zapsÁna. Je moÚno pak pokraÃovat v upravovÁnÉ dokumentu v nov×m kÏdu.
Dokonce mÊÚete pouÚÉvat nÅkolik rÊznÙch kÏdÊ v jednom dokumentu. JestliÚe je prvnÉ polovina textu psÁna v kÏdu KamenickÙch a druhÁ v MS-Windows, staÃÉ pÒed kaÚdou ÃÁst vloÚit pÒÉsluÓnÙ komentÁÒ a vÙsledek bude uÚivateli odeslÁn ve sprÁvn× podobÅ - obÅ poloviny se korektnÅ pÒekÏdujÉ napÒÉklad do ISO Latin 2. Takov× dokumenty je sice moÚno povaÚovat za zvÅrstvo, ale ta moÚnost tu je. SaCzech-U ji ovÓem ÃinÉ naprosto zbyteÃnou jak vysvÅtleno vÙÓe.

Pro milovnÉky patologickÙch pÒÉpadÊ:

NabÉdka kÏdÊ

ãasto je vhodn× nabÉdnout uÚivateli pÒÉmo na strÁnce moÚnost zmÅny kÏdu t×to strÁnky. Nechce-li autor tuto nabÉdku konstruovat ruÃnÅ, mÊÚe SaCzech-U instruovat, aby ji vytvoÒil automaticky. Na pÒÉsluÓn× mÉsto strÁnky vloÚte HTML komentÁÒ
<!--BAR-->
SaCzech-U jej bÅhem zpracovÁnÉ textu nahradÉ nabÉdkou moÚnÙch kÏdÊ, do kterÙch lze strÁnku pÒev×st. òiÄte se podobnÙmi pravidly, jako v pÒÉpadÅ MYCHARSET - v komentÁÒi neuvÁdÅjte nic jin×ho.

Chcete-li, aby nabÉdka kÏdÊ byla nadepsÁna anglicky (napÒ. na anglick× strÁnce, kterÁ obsahuje ÃeskÁ jm×na), pouÚijte komentÁÒ

<!--BAR E-->

Pokud uvedete na jednom ÒÁdku vÉce neÚ jeden komentÁÒ <!--BAR --> nebo <!--BAR E-->, SaCzech-U vygeneruje jen jednu nabÉdku podle prvnÉho komentÁÒe a vÓechny ostatnÉ ignoruje. Aby se zamezilo opakovan×mu generovÁnÉ nabÉdek pÒi opÅtovn×m pouÚitÉ konvertovan×ho dokumentu, SaCzech-U nepÒekopÉruje ani komentÁÒe typu BAR do odesÉlan×ho dokumentu, pÒed kaÚdou nabÉdkou ale vypÉÓe pozmÅnÅnÙ komentÁÒ upozorÎujÉcÉ na to, Úe byla vygenerovanÁ automaticky.

SaCzech-U a CGI

Aby mohl spolupracovat s CGI skripty a mÅnit kÏd jejich vÙsledkÊ je tÒeba SaCzech-U instalovat tak, aby kÏdovan× dokumenty zÉskÁval metodou http (kaÚdÙ dokument zÉskÁvÁ od serveru protokolem HTTP) nebo guess (snaÚÉ se uhÁdnout, co je obyÃejnÙ soubor a co volÁnÉ CGI skriptu, ve druh×m pÒÉpadÅ opÅt sÁhne k protokolu HTTP). Podrobnosti se doÃtete v kapitole o instalaci.

Provedl jsem i vÓechny zmÅny v souboru enchttp.tpl, kter× byly potÒebn× pro podporu metody http pÒi instalaci SaCzech-U v soukrom×m adresÁÒi uÚivatele. ZdÁ se, Úe vÙslednÙ kÏd funguje sprÁvnÅ, nemÅl jsem ale zatÉm moÚnost ho dostaÃnÅ otestovat.

ZachovÁnÉ kÏdu v obrÁzcÉch s klikou. Tipy, triky, rizika

ProsÉm, obraÔte se pÒÉmo na dokumentaci pÊvodnÉho programu SaCzech.