<TITLE>
anebo prvním tagem <H1>
, pokud
<TITLE>
chybí. Jinak obsahuje jméno souboru.
Defaultní nastavení parametru "item" bylo změněno, aby používalo
tento parametr.
OnSearch je program na jednoduché vyhledávání v HTML stránkách. Program čte HTML stránky přímo z disku serveru, na kterém je umístěn. Aby byla zajištěna alespoň základní ochrana souborů, využívá se pro hledání konfigurační soubor obsahující seznam stránek, které je možné prohledávat. Konfigurační soubor také umožňuje kompletně předefinovat vzhled generovaných stránek podle potřeb uživatele.
Vyhledávání je možné do HTML stránky přidat například následujícím způsobem:
Hledání na našich stránkách:<BR>
<FORM ACTION="/cgi-bin/onsearch" METHOD=POST>
<INPUT TYPE=HIDDEN NAME="user" VALUE="IDU">
<INPUT TYPE=TEXT NAME="word">
<INPUT TYPE=SUBMIT>
</FORM>
Soubor ~/config/search.cfg
potom může vypadat třeba takto:
title:Hledání na stránkách !!! user !!!
gimp/index.html
gimp/features.html
gimp/usage.html
gimp/layers.html
gimp/tools.html
gimp/gallery.html
gtk/index.html
Formát konfiguračního souboru je celkem jednoduchý. Je to textový soubor,
který má na prvním řádku identifikační hlavičku
a na každém dalším řádku obsahuje buď definici parametru, anebo relativní
jméno souboru. Prázdné řádky a řádky začínající znakem '#' (kromě výše
zmíněné hlavičky) se ignorují.
Definice parametru slouží ponejvíce k definování podoby stránky se seznamem nalezených souborů. Definice parametru má podobu
parametr : hodnota
- Parametru je přiřazena uvedená
hodnota.
parametr < soubor
- Parametru je jako hodnota přiřazen
obsah uvedeného souboru.
parametr ^= hodnota
- Uvedená hodnota je vložena na
začátek aktuální hodnoty parametru.
parametr $= hodnota
- Uvedená hodnota je připojena na
konec aktuální hodnoty parametru.
parametr:hodnota!!! jiny_parametr !!!hodnota
(Mezera mezi vykřičníky a názvem parametru musí být zachována).
Odkaz na parametr je nahrazen jeho hodnotou. Pokud tato hodnota obsahuje opět
odkaz na parametr, nahradí se i ten atd. - ovšem jen do určité hloubky vnoření.
Odkazy na parametry jsou nahrazovány hdonotou až po přečtení konfiguračního
souboru, takže rekurzivní přiřazení, jako např.:
udělá něco jiného, než že k slovu "text" připojí původní obsah parametru!
parametr:text !!! parametr !!!
Jméno souboru definuje soubor, který se má prohledávat. Pokud soubor není přímo v domovském adresáři uživatele, obsahuje jméno i cestu k souboru, relativní k domovskému adresáři uživatele.
Nezapomeňte, že na Unixu se používají k oddělování adresářů dopředná lomítka '/', a ne zpětná lomítka '\' jako MSDOS-ovských klonech.
Soubor ~/config/search.cfg
:
item:!!! dirfile !!!
gimp/index.html
gimp/features.html
V konfiguračním souboru je možné definovat libovolné parametry podle potřeb uživatele. Zde ale následuje seznam parametrů, které jsou definovány přímo programem OnSearch nebo mají zvláštní význam.
charset
Definuje kódování použité v prohledávaných WWW stránkách a ve zbývající části konfiguračního souboru. Pokud je toto kódování něco jiného, než ISO-8859-2, je vhodné tento parametr zadat pro správnou funkci vyhledávání v textech s diakritikou.
Hodnotou tohoto parametru je název kódování. Rozpoznává se například ISO-8859-2, CP-1250, MAC, ASCII, KEYBCS2 a jiné.
Příklad:
charset:MAC
context_size, context_margin
context_size
určuje základní velikost kontextu nalezeného
slova, který se zobrazí při použití parametru !!! context !!!
.
Velikostí se rozumí počet znaků na každou stranu od místa výskytu.
context_margin
určuje maximální počet znaků, o který se
může kontext na každé straně prodloužit nebo zkrátit při hledání mezery mezi
slovy.
Hodnotou obou parametrů je počet znaků. Implicitní nastavení je 80 a 20.
Příklad:
context_size:150
context_margin:30
header
Definuje podobu záhlaví stránky se seznamem nalezených výskytů.
Příklad:
header:<HTML><BODY BACKGROUND="#FFFFFF"><H1>!!! title !!!</H1>
title
Definuje titulek stránky se seznamem nalezených výskytů. Titulek je použit například v jejím záhlaví (viz výše).
Příklad:
title:Výsledek hledání na našich stránkách
footer
Definuje spodek stránky se seznamem nalezených výskytů.
Příklad:
footer:<HR></BODY></HTML>
item
Definuje vzhled části stránky obasahující odkaz na nalezený soubor. Tato část se v HTML stránce s výsledky opakuje tolikrát, kolik bylo nalezeno souborů.
Příklad:
item:<HR><P><A HREF="/!!! dirfile !!!">!!! dirfile !!!</A></P>
empty_item
Pokud nebyl nalezen žádný výskyt hledaného slova, použije se tento parametr
na místě parametru item
.
Příklad:
empty_item:<HR><P>Slovo '!!! word !!!' nebylo nalezeno.</P>
user
Tento parametr obsahuje jméno uživatele, v jehož WWW prostoru se vyhledává. Nastavování tohoto parametru na jinou hodnotu sice funguje, ale nemá valný smysl.
Příklad:title:Výsledek hledání ve WWW prostoru !!! user !!!
word
Tento parametr obsahuje vyhledávané slovo. Nastavování tohoto parametru na jinou hodnotu sice funguje, ale nemá valný smysl.
Příklad:title:Výsledek hledání !!! word !!!
dirfile
Hodnota tohoto parametru je postupně nastavována na jméno každého souboru, ve kterém byl nalezen výskyt zadaného slova. Nastavování tohoto parametru na jinou hodnotu sice funguje, ale nemá valný smysl.
Příklad:item:<HR><P><A HREF="/!!! dirfile !!!">!!! dirfile !!!</A></P>
heading
Hodnota tohoto parametru je postupně nastavována na název každého HTML
dokumentu, ve kterém byl nalezen výskyt zadaného slova. Název je určen buď
HTML tagem <TITLE>
anebo prvním tagem
<H1>
, pokud <TITLE>
chybí.
Jinak obsahuje jméno souboru.
Nastavování tohoto parametru na jinou hodnotu sice funguje, ale nemá valný smysl.
Příklad:item:<HR><P><A HREF="/!!! dirfile !!!">!!! heading !!!</A></P>
matches
Hodnota tohoto parametru je postupně nastavována na počet výskytů zadaného slova v každém souboru, ve kterém se slovo vyskytuje alespoň jednou. Nastavování tohoto parametru na jinou hodnotu sice funguje, ale nemá valný smysl.
Příklad:item:!!! dirfile !!! - !!! matches !!!<BR>
context
Hodnota tohoto parametru je postupně v každém 'pozitivním' souboru nastavována
na text v nejbližším okolí prvního výskytu hledaného slova - neboli jeho
kontext. Samotný hledaný výraz je v něm ohraničen parametry em_on
a em_off
.
Velikost kontextu určují parametry context_size
a
context_margin
.
Příklad:item:!!! dirfile !!!<BR>!!! context !!!<BR>
em_on, em_off
Tyto parametry bezprostředně obklopují v nalezeném kontextu hledaný výraz.
(viz. parametr context
). Tyto parametry se dají s výhodou
použít pro zvýraznění slova v kontextu.
Příklad:em_on:<FONT COLOR="#FF0000"><B>
em_off:</B></FONT>
stat_time, stat_files, stat_files_ok, stat_files_match,
stat_matches, stat_bytes, stat_speed, stat_match_ratio, stat
Tyto parametry slouží k získání statistických informací o proběhlém vyhledávání. Hlavní význam je pro asi spíše pro ladění programu OnSearch, ale lze je využít i pro ladění konfiguračního souboru anebo jako zdroj drobných a nepodstatných informací na stránce.
stat_time
- počet sekund, které trvalo prohledávání
stránek. Tento čas je o něco (málo) menší než celková doba běhu programu.
stat_files
- celkový počet souborů k prohledávání
uvedených v konfiguračním souboru.
stat_files_ok
- počet skutečně prohledávaných souborů.
stat_files_match
- počet souborů ve kterých bylo nalezeno
hledané slovo.
stat_matches
- celkový počet nalezených výskytů slova ve
všech prohledávaných souborech.
stat_bytes
- celková velikost všech prohledávanách souborů
po případném odstranění HTML tagů.
stat_speed
- průměrná rychlost prohledávání v bytech za sekundu.
stat_match_ratio
- poměr mezi celkovou velikostí nalezených
slov a celkovou velikostí textu po případném odstranění HTML tagů. Tento
parametr by měl teoreticky udávat význam hledaného slova v daném textu a
tedy i hodnotu nalezeného dokumentu. Aby tomuto tak ale skutečně bylo, musela
by se přiřadit různá váha podle kontextu, ve kterém bylo slovo nalezeno -
např. záhlaví, klíčová slova a nebo nadpisy. Tak tomu zatím není. V budoucnu
se bude z hodnoty tohoto parametru odvozovat počet "hvězdiček", které
dokument dostane. Zatím je to pouze reálné číslo s malou vypovídací
hodnotou.
Tento parametr je na rozdíl od ostatních statistických parametrů nastavován pro každý soubor zvlášť.
stat
- tento parametr vypisuje parametry
stat_time
, stat_bytes
a stat_speed
.
Příklad:footer:Prohledáno !!! stat_bytes !!! bytů za !!! stat_time !!! sekund, nalezeno !!! stat_matches !!! výskytů</BODY></HTML>
file=jmeno_souboru
Určuje jméno konfiguračního souboru pro vyhledávání ve WWW prostoru daného uživatele. Tento soubor musí existovat a musí být umístěn v adresáři ~/config. Pokud nebyl tento parametr zadán, použije se implicitní jméno search.cfg.
user=IDU
Určuje jméno uživatele, v jehož WWW prostoru se mají stránky prohledávat.
word=regularni_vyraz
Slovo nebo regulární výraz, který se má v dokumentech vyhledávat.
Interpretace závisí na hodnotě parametru regexp
.
case=0
Pokud je tento parametr nastaven na 1, bere se ohled na velikost písmen. Implicitně je 0.
regexp=0
Pokud je tento parametr nastaven na 1, obsah parametru word
se interpretuje jako regulární výraz. To znamená, že .ůl
najde slova kůl, hůl, vůl apod. Pokud je parametr nastaven na 0, interpretuje
se doslovně a najde tedy jenom výskyt řetězce .ůl
(ať už
je to cokoli). Implicitně je 0.
ascii=0
Pokud je tento parametr nastaven na 1, porovnává se bez diakritiky -
to znamená, slovo abč
vyhledá abc, abč, ábc i ábč.
Implicitně je 0.
whole=0
kolo
vyhledá kolo, ale už ne kolotoč
Implicitně je 0.
strip=2
Pokud je tento parametr nastaven na 2, prohledávaný soubor je vždy nejdříve zbaven HTML značek. Pokud je parametr nastaven na 1, soubor je zbaven HTML značek pouze pokud má jeho jméno příponu typu .html, .htm apod. Implicitně je 1.
first=1
Can't open file %s
Soubor není možné otevřít. Důvodem může být neexistující soubor, neexistující adresářconfig
, chybná přístupová
práva apod.
Invalid file name
Jméno souboru, zadané parametremfile
anebo
v konfiguračním souboru, obsahuje nepovolené znaky. Změňte jméno souboru.
Invalid dir name
Jméno adresáře, zadané v konfiguračním souboru, obsahuje nepovolené znaky. Změňte jméno adresáře.Invalid user name
Jméno uživatele (IDU), zadané parametremuser
, obsahuje
nepovolené znaky. Změňte jméno uživatele.
Invalid config file
Konfigurační soubor musí mít jako první řádek uvedeno
jinak nebude rozpoznán. Doplňte tento řádek anebo opravte jméno konfiguračního
souboru.
Nothing to search for
Nebylo zadáno slovo nebo regulární výraz, který se má vyhledávat.File is too big at line
Velikost konfiguračního souboru je omezena, zmíněný řádek už nebylo možno zpracovat.Line %d is too long
Délka řádku v konfiguračním souboru je omezena, zmíněný řádek nebylo možno zpracovat.