LINUXSOFT.cz Přeskoč levou lištu
Uživatel: Heslo:  
   CZUKPL

> 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ý | Články autora | přečteno 11111×

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ší.

Verze pro tisk

pridej.cz

 

DISKUZE

Dobrej clanek 20.8.2004 22:13 Jiří Hnídek




Příspívat do diskuze mohou pouze registrovaní uživatelé.
> Vyhledávání software
> Vyhledávání článků

24.7.2014 7:19 /MaReK Olšavský
Na stránkách OpenSource.com vyšel příjemný příběh o startu malé firmy díky F/L/OSS. Za pozornost stojí i tyto malé příběhy, nejen přechody států a velkých firem na svobodná řešení, či svobodné formáty (jímž je i aktuální přechod Spojeného Království).
Přidat komentář

24.7.2014 7:19 /MaReK Olšavský
Mozilla hodlá soupeřit s Googlem i v segmentu „minipočítačů do HDMI“. soupeř Chromecastu, ale s Firefox OS. Podle informací, jež jsou aktuálně k dispozici, by příchod takového zařízení nemusel trvat dlouho.
Přidat komentář

24.7.2014 7:19 /MaReK Olšavský
Oracle již vydal svůj klon RHEL 7, který však není „pouze rekompilací“ s jinými značkami (jako mnohem populárnější a známější CentOS, či Scientific Linux), ale má i vlastní přidanou hodnotu v Ksplice, nebo vlastním jádře. Pokud uživatel/správce nemá dostatek financí na zaplacení RHELu 7, může být Oracle Linux lepší možností, než CentOS, či Scientific, ale „zaplatí“ minimálně vydáním svých údajů firmě Oracle.
Komentářů: 1

23.7.2014 7:25 /MaReK Olšavský
NVidia opravdu vstoupila na trh tabletů modelem Shield Tablet, za cenu US$ 299 (za ovladač se platí dalších US$ 59). V tabletu je mikroprocesor Tegra K1 (Cortex-A15 jádro, výroba nVidia), FullHD display a 16&bnsp;GB velké úložiště. Nejedná se o zástupce levných tabletů s Androidem, cílovou skupinou kupujících by měli být hráči.
Přidat komentář

23.7.2014 7:25 /MaReK Olšavský
Po odchodu Jono Bacona musel Canonical přestavět strukturu teamu, v němž již není jediný „komunitní manager“. Ubuntu není malou distribucí a pro řízení jejího vývoje je potřeba mnohem více lidí.
Přidat komentář

22.7.2014 6:32 /MaReK Olšavský
PHP 6 mělo být již před několika lety, blížící se PHP 5.6 (aktuálně je v RC2) nabízí snad vše, co mělo obsahovat PHP 6. Vzhledem k aktuálnímu stavu je pravděpodobné, že přístí „velkou“ verzí bude PHP 7, verze 6 se v číselné řadě přeskočí.
Přidat komentář

22.7.2014 6:32 /MaReK Olšavský
Pokud používáte CentOS 6.x a chcete přejít na novou řadu, mohl by vám pomoci krátký návod o několika drobných krocích. Na CentOS 7 mohou přejít jen ti, jež jej provozují na architektuře x86-64, podpora 32 bitového x86 a ARM by měla přijít se zpožděním.
Přidat komentář

21.7.2014 6:46 /MaReK Olšavský
EFF ohlásila Open Wireless Router, (zatím) experimentální firmware pro bezdrátové routery. Firmware umožňuje vytvoření pomalého otevřeného WiFi připojení pro návštěvníky, vedle sítě pro běžné uživatele, to vše při zachování maximální bezpečnosti a soukromí.
Přidat komentář

   Více ...   Přidat zprávičku

> Poslední diskuze

24.7.2014 8:06 / Stanislav David
ksplice

15.7.2014 6:16 / MaReK Olšavský
2017

25.6.2014 19:04 / Petr Ježek
více argumentů

25.6.2014 19:01 / Petr Ježek
nejde o ideologii

25.6.2014 6:41 / DoubleR
Naprogramování ATmega328

Více ...

ISSN 1801-3805 | Provozovatel: Pavel Kysilka, IČ: 72868490 (2003-2014) | mail at linuxsoft dot cz | Design: www.megadesign.cz | Textová verze | zákony online