http://www.kdesi.ca/user/cesta/stranka.htmlbude 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.htmlPř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.htmlpřípadně
http://www.jinde.cz/cgi-bin/whichcode.cgi/user/cesta/stranka.htmlSkript 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í.
<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čí.
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.
<!--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.
Pro milovníky patologických případů:
<!--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.