CHM a LINUX

Tento krátký článeček je o práci se soubory *.chm, neboli hypertextové nápovědy pro Windows. Ukáži Vám několik přístupů k tomu, jak je číst v Linuxu.

20.8.2004 08:00 | MaReK Olšavský | přečteno 16075×

Co je CHM?

Chm jsou compressed html soubory, které jsou známy také jako HTML Help. Jedná se obvykle o jeden soubor, ale není vyloučen link i do souboru jiného, ve kterém jsou zkomprimovány HTML stránky. Zkuste jej otevřít v libovolném editoru (třeba mém oblíbeném jEditu) a hned na začátku uvidíte něco jako výpis stránek, které jsou v něm obsaženy. HTML helpy můžete tvořit i Vy z formátu DocBook, ale to není předmětem tohoto článku.

Se soubory chm se poměrně často setkávám ve Windows. Líbí se mi jejich provázanost (jasně, klasické HTML můžete podotknout), ale i to, že program na jejich prohlížení v nich i vyhledává, kteroužto možnost většinou u lokálně uložených HTML dokumentací nemáte. Teprve nedávno, když jsem stahoval aktální dokumentaci PHP a nejaktuálnější byla právě v chm, jsem začal pořádně hledat, jak je to s podporou v LINUXu.

Pokud se někdo o tuto oblast zajímá trochu více, tak ví, že se vyvíjí i něco podobného na java platformě přímo od SUNu. Zatím je tento systém ale spíše "jenom" na světě a jeho použití jsem neviděl, ale není nad platformní nezávislost. Tento systém je založen na HTML 3.2

Pro čtení těchto souborů v LINUXu existují v současné době 3 různé přístupy. Za prvé je můžeme rozkomprimovat do balíku HTML stránek, za druhé lze použít webový server pomocí arCHMage a třetí přístup je možný pomocí software pro jejich přímé čtení, který se chová podobně, ne-li dokonce stejně, jako HTML help v MS Win. Je to asi ten nejrozumější způsob. Pro všechny tři přístupy budete potřebovat mít nainstalovaný interpret programovacího jazyka Python (o něm bych taky mohl jednou zpracovat nějaký tutorial). V tomto článečku se chci zaměřit na seznámení s existencí těchto produktů, takže se nebudu zabývat podrobnostmi jejich instalace, která je ale velmi dobře popsána, jak je obvyklé u GNU programů, na stránkách, nebo přímo v dokumentaci.

CHMlib

Základní knihovna pro práci s Microsoftími ITSS/CHM soubory (s těmi prvními jsem se nesetkal), kterou budeme potřebovat pro práci všech projektů. Je velmi jednoduchá, psaná v jazyce C, a ze zajímavých vlastností bych vyzdvihl to, že v současné chvíli má už alespoň základní podporu kódování UTF-8.

Její kód je šířen pod LGPL, takže ti z Vás, kteří se vyznají vědí, že ji mohou "beztrestně" použít i v komerčním projektu, aniž jej "nakazí" GPL.

PyCHM

Jedná se o knihovnu, která umožňuje napojení na CHMlib. Obsakuje 4 moduly psané v jazyce Python, které usnadňují použití knihovny CHMlib z jazyka Python a jsou využity v posledním projektu o kterém si něco napíšeme v tomto článku. Pro její zprovoznění budete potřebovat Python alespoň ve verzi 2.2.

arCHMagr

Tak toto je první prográmek, který nám práci s *.chm soubory umožňuje a je to podle mne ten zajímavější, byť ne lepší. Tato věta vám zní asi maximálně absurdně, ale záhy pochopíte. Prográmek je popsán jako rozšiřitelná čtečka (reader, češtější termín jsem nevymyslel) a dekompiler chm souborů. Můžete jej použít 3 způsoby, které hned popíšu.

Tento projekt je podle mého názoru už v současnosti mrtvý, nebo jej autoři považují za hotový, protože poslední verze, kterou jsem na serveru našel je ze srpna 2003. Protože se ale jedná o Open Source, může dál stavět někdo další.

Dekompilace

Nejjednodušší a zároveň nejkrásnější způsob, neříkám, že nejpraktičtější. Chm soubor rozbalíte tím, že jednoduše spustíte archmage [filename] [directory]. Filename je název souboru *.chm a directory je adresář, kam program rozbalí HTML stránky. Ty pak můžete číst běžným webovým prohlížečem. Toť vše k tomuto způsobu.

Hypertext od http serveru

Program umí pracovat jako samostatný http server, nebo jej lze použít jako modul do všemi milovaného Apache serveru (už jste koukali, jak toto jméno vzniklo, je to zajímavé). První způsob se hodí těm, kteří používají některou z desktopových distribucí neobsahující servery (třeba Vector LINUX), případně server nepotřebují, takže jim httpd neběží, druhý spíše pro nás, kteří běžně ladíme webové scripty a máme server nainstalovaný a nastavený.

Program lze spustit přímo jako http-server přímo pro *.chm, který potřebujete číst, pomocí archmage -p [port] [chmfile]. Čtení potom zrealizujete pomocí webového prohlížeče napsáním adresy http://vaspocitac:port. U mě doma konkrétně nastartuji pomocí archmade -p 100 db.chm http://desktop:100, používám port 100, náhodně vybraný, který snad žádná rozšířená služba nepoužívá. Soubor, který tu používám je příručka od Jirky Koska od DocBooku, což je aplikace XML a můžete vygenerovat třeba právě chm soubory.

Zatímco předchozí metodu jsem zkoušel jen jednou, způsob, kdy použijete Apache server je mi mnohem bližší a přirozenější, byť jsem u něj nakonec nezůstal. Přesto, že jsem napsal to, že se nebudu věnovat instalacím, tak zde se trochu pozastavím. Budete potřebovat mít nainstalovaný nejen Python interpretr, ale i mod_python. Zmodifikujete httpd.conf
AddHandler python-program .chm
PythonHandler mod_chm
Zrestartujete apache server. Do adresáře, který máte v httpd.conf zadaný jako document-root, umístíte chm soubor, který potřebujete zobrazit. Nyní zadáte adresu http://vaspocitac/file.chm, nebo http://vaspocitac/file.chm/ . Rozdíl ve verzi s lomítkem a bez něj je v tom, že bez lomítka se Vám zobrazí nezpracovaný chm soubor a s lomítkem prohlížíte soubory tzv. za letu.

xCHM

Toto je první zástupce, který umožňuje se soubory chm pracovat stejným způsobem, jako ve Windows, tj. i s vyhledáváním, interaktivně v okně. Je multiplatformní a to doslova a do písmene, funguje na UN*X like systémech (LINUX, *BSD, Solaris), ale úspěšné zprovoznění se prý podařilo i na MacOS X a v Cygwinu (účelnost tohoto kroku by mě docela zajímala).

xCHM umí zobrazit soubory jako &qout;obsahový strom , tisknout zobrazené stránky, měnit fonty, pracovat se záložkami, umožňuje hledání v záložkách, ale i celém textu. Software využívá knihovnu CHMLIB a skvělý projekt wxGTK, samozřejmostí je instalace jazyka Python.

GnoCHM

Poslední, ale nikoliv nejhorší, ba právě asi naopak, program pro čtení souborů *chm. Vzhledem zapadá do prostředí Gnome. Tento projekt je, IMHO, v současnosti nejaktivnější a nejpropracovanější. O všech potřebných balících a knihovnách se dočtete na domovských stránkách projektu. Zase je to klasicky Python, knihovna PyCHM a potom Gnome knihovny.

Podíváme-li se na vlastnosti, tak v podstatě opíšu jen to nejdůležitější, co je na domovských stránkách projektu: full-textové vyhledávání, záložky, plná integrace do Gnome, i18n, podpora pro http a ms-its linky.

Závěrem

Pokusil jsem se Vás formou článečku poinformovat o způsobech, jak číst HTML help soubory. Pokud to bude jednou aktuální, mohu napsat seriál (to by nebyl jen jeden díl) o vytváření chm pomocí XML formátu DocBooc, stylů a format processoru. Ze zde hrubě popsaných a zmíněných třech projektů mi nejvíce vyhovuje poslední, který je na obsluhu i nejpříjemnější a nejintuitivnější.

Online verze článku: http://www.linuxsoft.cz/article.php?id_article=340