SaCzech-Uj: N‡vod k pouìit’

SaCzech-Uj se skl‡d‡ ze skupiny jednoœ‹elovùch konverzn’ch programó. Kaìdù z nich pÞekl‡d‡ dokument z jedinŽho vùchoz’ho k—du do jednoho k—du c’lovŽho, jehoì jmŽno je sou‹‡st’ jmŽna programu. ‰leny rodiny SaCzech-Uj 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-Uj zn‡, a kterù byl V‡mi (nebo spr‡vcem serveru) pÞi instalaci definov‡n pomoc’ promžnnŽ $source jako k—d zdrojovù. Pokud chcete, aby str‡nka byla pÞek—dov‡na, mus’te explicitnž vyzna‹it, ìe je naps‡na v tomto zdrojovŽm k—du: Na œplnù za‹‡tek str‡nky (jako prvn’ "slovo" na prvn’m Þ‡dku; móìou mu pÞ’padnž pÞedch‡zet jen pr‡zdnŽ znaky) zaÞa“te koment‡Þ <!--MYCHARSET=k—d-->. Pokud tento koment‡Þ chyb’, nebo kdyì k—d v nžm uvedenù nen’ shodnù s hodnotou promžnnŽ $source, str‡nka bude odesl‡na beze zmžny (bude povaìov‡na za str‡nku napsanou v ASCII, kterou nen’ tÞeba pÞek—dov‡vat).

Str‡nku vystavte, jak je obvyklŽ. JedinŽ, co se zmžn’, bude URL, kterùm je tÞeba se na ni odk‡zat. 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 se zachov‡n’m k—du distribuovan‡ verze SaCzech-Uju nezvl‡dne. Mus’te pouì’t whichcode[.cgi]. Pokud chcete, bylo by moìno jednoduäe zajistit prov‡džn’ substituce za Þetžzec __CHARSET__ stejnùm zpósobem jako u programu SaCzech-U. Sta‹’ vloìit napÞ. do skriptu mac.cgi tžsnž pÞed pÞ’kaz print $_; (Þ‡dek ‹. 29) n‡sleduj’c’ tÞi Þ‡dky:

s/to__CHARSET__/toMAC/g;
s/charset=__CHARSET__/charset=MAC/g;
s/__CHARSET__/mac/g;
(tÞi separ‡tn’ substituce jsou mnohem rychlejä’ neì jedna substituce se tÞemi alternativn’mi vzory (to|charset=|)). PÞ’padnž jen ty z tžchto tÞ’ substituc’, kterŽ budete pouì’vat. Podobnž pro ostatn’ skripty. Tyto substituce mohou ale vùraznž zpomalit konverzi. Pokud je nutnž nepotÞebujete, vyhnžte se jim.

Obr‡zky se nek—duj’!

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

uprostÞed dokumentu nen’ moìn‡. SaCzech-Uj ignoruje väechny koment‡Þe <!--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, pouìijte nejprve napÞ. SaCzech-U ke konverzi celŽho dokumentu do jedinŽho k—dov‡n’.

Milovn’ci patologickùch pÞ’padó prostž pÞijdou zkr‡tka!

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. Takovou nab’dku je nutno zkonstruovat ru‹nž (nebo pÞedem 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, obraéte se pÞ’mo na dokumentaci póvodn’ho programu SaCzech.