Na ratunek ! (2000)


Poniższy tekst jest rozwinięciem artykułu opublikowanego na łamach Chipa nr 6/2000

Pliki pomocy CHM stosowane m.in. w Windows 98 pozwalają uzyskać wiele efektów niedostępnych w formacie HLP. Przeciętny użytkownik zapyta zapewne w tym momencie: jak tworzyć takie zbiory? Czy narzędzia są proste w użyciu, czy też potrzebna jest specjalistyczna wiedza?

Na szczęście budowanie plików Pomocy jest łatwiejsze niż kiedyś – dostępnych jest wiele naprawdę wygodnych narzędzi. Bardzo często można również z powodzeniem użyć darmowego programu HTML Help Workshop firmy Microsoft. Niestety, w niektórych przypadkach możliwości tego narzędzia nie są wystarczające. Jeżeli planujemy zapisywać tworzone pliki równocześnie w „klasycznym” formacie HLP oraz nowym - CHM, chyba lepiej skorzystać z komercyjnych programów (np. Help & Manual 2).

Również w sytuacji gdy nasza pomoc została zapisana w postaci zbiorów HLP, zachowały się jej kody źródłowe i chcemy je w miarę „bezboleśnie” przekonwertować do nowego formatu warto poszukać innego oprogramowania. Może się zdarzyć, że wynik działania HTML Help Workshop nie będzie zgodny z naszymi oczekiwaniami.

Jedna z poważniejszych wad tego programu polega na tym, że nadaje on utworzonym plikom nazwy nie mające nic wspólnego z ich zawartością. Dodatkowo trzeba ręcznie zmieniać deklarację strony kodowej w każdym pliku (przy wielu zbiorach może to być uciążliwe). Części użytkowników nie spodoba się na pewno także fakt, iż program nie oferuje rozbudowanego edytora HTML (można co najwyżej wprowadzać w nich pewne drobne poprawki otwierając je w trybie tekstowym). Jednak mimo tych niedogodności HTML Help Workshop oferuje całkiem sprawne funkcje do przygotowywania i kompilowania zbiorów CHM, a w komplecie z pakietem dostajemy narzędzie do tworzenia grafiki - HTML Help Image Editor.

Jeżeli zatem chcemy za pomocą tego narzędzia utworzyć plik w formacie CHM, musimy przygotować oddzielnie zbiory z tematami pomocy zapisane w formacie HTML. Czytelnikom, którzy nigdy przedtem nie tworzyli takich plików, proponujemy zapoznać się z edytorami dołączanymi do Internet Explorera albo Netscape Communicatora – są darmowe i oferują wystarczające możliwości.

Jeśli zamierzamy wykorzystać materiały z jakiejś witryny WWW, najlepiej podzielić zawarte na niej treści na jak najmniejsze części i zapisać je w oddzielnych zbiorach. Potrzebna może się również okazać zmiana ich strony kodowej na Windows-1250 (HTML Help Workshop nie rozpoznaje strony kodowej ISO-8859-2 i w wielu miejscach zamiast polskich liter będzie wyświetlał „krzaczki”). Wygodne może również okazać się przeznaczenie na wszystkie pliki wchodzące w skład projektu oddzielnego katalogu na dysku (nie jest to oczywiście konieczne, ale pozwoli zachować pewien porządek – zbiorów tych może być dużo).

Na początek

Podstawy


Budowa plików CHM

Standard pomocy HTML Help wykorzystuje pliki w nowy formacie - CHM. Są one archiwami podobnymi do ARJ, ZIP, itp. i zawierają w sobie zbiory z ogólnymi opcjami (o rozszerzeniu HHP), spisem treści (rozszerzenie HHC), indeksem (HHK) oraz różne pliki tworzące tematy pomocy (zbiory HTM albo HTML, obrazki GIF, JPG, animacje AVI, skrypty JS, VS, style CSS, itp.).

Do odczytu plików CHM potrzebny jest Internet Explorer w wersji co najmniej 3 (w praktyce jednak wykorzystywana jest tylko wersja 4 lub 5) i Windows 9x/NT/2000. Po otwarciu takiego pliku wyświetlane jest okno, w którym można wyróżnić trzy obszary:

  1. Przyciski w górnej części okna, pozwalające na różne czynności (np. drukowanie, przechodzenie do poprzedniego lub następnego tematu).
  2. Część z zakładkami Spis treści, Indeks, Wyszukaj.
  3. Obszar z tematami pomocy (wyświetlanymi przy użyciu obiektu Internet Explorera).

Angielskojęzyczna wersja Windows

Po zainstalowaniu bibliotek HTML Help w wersji 1.3 (np. wraz z HTML Help Workshop w tej wersji) w oknach ze zbiorami CHM wszystkie teksty w zakładkach po lewej ich stronie oraz na przyciskach na górze są pokazywane w języku wybranym podczas instalacji Windows. Jeżeli więc mamy angielskie okienka z wybranym językiem polskim, napisy te będą wyświetlane w tym języku. Reszta komunikatów jest jednak podawana po angielsku. Aby wszystkie komunikaty były wypisywane na ekran w języku angielskim należy wejść do podkatalogu System/Mui w katalogu Windows, a następnie przekopiować plik HHCTRLUI.DLL z podkatalogu 0409 do 0415 (w każdej z kartotek jest wersja odpowiednia dla danego języka - my zamieniamy po prostu polską na angielską).

Na początek

Tworzymy własny system pomocy


Po przygotowaniu plików HTML z tematami możemy utworzyć nowy projekt: z menu File wybieramy polecenie New (ewentualnie klikamy ikonkę ), w otwartym oknie wybieramy z listy pozycję Project i naciskamy przycisk OK. W otwartym w ten sposób oknie kreatora zostaniemy zapytani, czy chcemy wykorzystać projekt pliku HLP (opcja Convert WinHelp Project – nie zaznaczamy jej). Następnie musimy podać nazwę, jaką chcemy nadać głównemu plikowi projektu.

W kolejnym oknie zaznaczamy, czy chcemy włączyć do tworzonego projektu przygotowane wcześniej pliki ze spisem treści (opcja HTML HELP table of contents), indeksem (HTML HELP index) albo pliki HTML z samymi tematami (HTML files). Zaznaczamy ostatnią opcję. Programy zapyta o lokalizację plików, które mają być dodane do projektu (naciskamy przycisk Add i kolejno wybieramy zbiory).

Gdy teraz klikniemy przycisk przycisk Finish okno główne programu zostanie podzielone na dwie części. Po jego lewej stronie znajdują się trzy zakładki (Project, Contents i Index). Prowadzą one do opcji projektu (Project), spisu treści (Contents) i indeksu (Index).

Na początek

Nowe okna


Teraz powinniśmy określić wygląd okna w jakim ma być wyświetlana nasza pomoc (standardowe nie zawiera m.in. zakładek Ulubione czy Szukaj, a warto dodać te elementy). Wybieramy przycisk z paska narzędzi po lewej stronie zakładki Project. Program spyta o nazwę okna, które chcemy zdefiniować (należy ją wpisać w polu Create a window type named), a następnie pokaże możliwe do ustawienia parametry.

Z opcji tych najważniejsze dla nas są nazwa okna wyświetlana w jego nagłówku (pole Title bar text w zakładce General) oraz wspomniane wcześniej zakładki umożliwiające wstawianie ulubionych odnośników i przeszukiwanie. W zakładce Navigation Pane klikamy pole wyboru Windows with navigation pane, topic pane, and button a następnie zaznaczamy opcje Search tab i Favorites tab. W przypadku, gdy chcemy pozwolić użytkownikowi na przeszukiwanie pomocy z użyciem warunków logicznych, należy zaznaczyć opcję Advanced przy polu Search tab. Możliwe jest także ustawienie, która z zakładek ma być widoczna po otwarciu naszego pliku pomocy (pole wyboru Default tab).

Po otwarciu zbioru CHM część z zakładkami może być w ogóle schowana (opcja Open with navigation pane closed) albo usunięta (odznaczamy pole Window with navigation pane, topic pane, and button - wtedy jednak znikną również przyciski w górnej części okna z plikiem CHM).

Przyciski, które mają być wyświetlane wybieramy z kolei w zakładce Buttons. Ciekawe efekty można uzyskać używając przycisków Home, Jump 1 i Jump 2. Po ich naciśnięciu zostaną wyświetlone dokumenty wybrane przez nas za pośrednictwem zakładki Files.

Możliwe jest także uzyskanie różnych dodatkowych efektów graficznych związanych z wyglądem i zachowaniem się okna (np. zmiany rodzaju ramki czy wyglądu pasku tytułowego). Odpowiednie ustawienia znajdziemy w zakładkach Styles i Extended styles. Należy pamiętać, że działanie niektórych z nich może zależeć od tego, czy zostały zaznaczone inne oraz że w przypadku głównego okna niektórych parametrów nie można zmienić (będą takie same niezależnie od ustawienia związanych z nich opcji).

Na początek

Opcje projektu


Po ustaleniu parametrów okna, w którym będzie wyświetlana nasza pomoc, powróćmy do zakładki Project (wystarczy kliknąć przycisk OK). Zawiera ona po lewej stronie pasek narzędzi z przyciskami wywołującymi funkcje edycyjne, natomiast po prawej pole z danymi do edycji. Znajdują się w nim kolejne linijki głównego pliku projektu (o rozszerzeniu HHP). Jak można od razu zauważyć, ma on podobną postać jak zbiory INI i składa się z sekcji i wartości (po kliknięciu którejś z wartości program otworzy okienko, w którym można ją zmienić).

Gdy naciśniemy przycisk zostanie otwarte okno z opcjami projektu. Określamy tu język pomocy (opcja Language w zakładce General), nazwę pliku, który będzie początkowo wyświetlany w jej głównym oknie (pole File) oraz okno, w którym będzie pokazywana (Default window). Możliwe jest także podanie czcionki, która będzie używana we wszystkich zakładkach okna po lewej jego stronie (dla Index i Contents można ją także określić w oddzielnych oknach, w przypadku kart Favorites i Search jest to możliwe tylko tutaj).

Jeżeli wcześniej w definicji okna używanego do wyświetlania naszej pomocy wstawiliśmy zakładkę Search, powinniśmy jeszcze zaznaczyć opcję Compile full-text search information w zakładce Compiler (w przeciwnym razie zakładka Search będzie pusta).

Możemy jeszcze określić, czy nasz plik będzie mógł odczytywany przez biblioteki HTML Help w wersji 1.0 (dołączane do Internet Explorera 4) czy też wymagana będzie co najmniej wersja 1.1 (pole Compatibility w tej samej zakładce).

Konieczna jest również decyzja, w jaki sposób ma być zapisany indeks w naszym pliku CHM – dokładne różnice i ograniczenia przy używaniu każdego z formatów są opisane w pomocy HTML Help Workshop (w naszym przypadku wystarczy wiedzieć, iż należy zaznaczyć opcję Create a binary index).

Spis treści także może zostać zapisany w jednym z dwóch formatów w zbiorze CHM – o tym decyduje opcja Create a binary TOC (zostawiamy ją niezaznaczoną).

Na początek

Dodawanie plików z tematami


Jeżeli chcielibyśmy dodawać lub usuwać do naszego projektu kolejne pliki HTML z tematami, możemy zrobić to klikając przycisk w zakładce Project. Nie jest to konieczne, ale na pewno wygodniejsze – w niektórych oknach dialogowych HTML Help Workshop będzie mogli wygodnie wybierać zbiory z listy, a nie poszukiwać ich za każdym razem na dysku.

Na początek

Tworzymy spis treści


Pora teraz na dodanie do naszego projektu spisu treści. Należy w tym celu kliknąć zakładkę Contents. Ponieważ wcześniej nie poleciliśmy włączyć programowi HTML Help Workshop żadnego przygotowanego wcześniej pliku ze spisem, spyta on nas, czy chcemy to teraz zrobić (opcja Open an existing contents file) czy też utworzyć nowy plik (Create a new contents file). Po naciśnięciu przycisku OK pozostaje jeszcze podać nazwę tego pliku i już możemy przystąpić do jego edycji.

Zakładka Contents jest zbudowana podobnie jak zakładka Project - po lewej stronie są w niej umieszczone przyciski służące do edycji, a po prawej znajduje się pole edycji (na razie jest puste – później zawierać będzie podgląd tworzonego spisu treści).

Budowa spisu jest bardzo prosta – ma on hierarchiczną strukturę drzewiastą (po kliknięciu na nazwę gałęzi pojawiają się znajdujące w niej podgałęzie i pozycje). Oczywiście, jest kilka różnic – przykładowo, do kolejnych nazw możemy przypisywać dowolnie ikony (zostanie to omówione dokładnie w kolejnym CHIP-ie w artykule opisującym uzyskiwanie bardziej zaawansowanych efektów HTML Help) oraz tematy pomocy, które będą wyświetlane po kliknięciu nazwy gałęzi lub pozycji.

Zaczynamy od ustawień dotyczących wyświetlania naszego spisu – kliknijmy przycisk . Na początku wybieramy rodzaj czcionki używanej do jego wyświetlania (możemy ją wpisać w polu Font w zakładce General albo zmienić za pomocą przycisku Change). Możemy jednak tego nie robić – wtedy zostanie użyta czcionka zaznaczona w opcjach projektu albo standardowa systemowa o wielkości 8 punktów (o ile w opcjach projektu nie wybraliśmy innej).

W zakładce Styles możliwe jest wybranie koloru czcionki (Foreground color) i tła (Background color) – przy czym od razu można zauważyć, że kolory w podglądzie często nie odpowiadają rzeczywiście ustawionym wartościom (jest to wada programu HTML Help Workshop). Lista Window Styles zawiera nazwy różnych efektów graficznych, które mogą być zastosowane przy wyświetlaniu spisu treści. Dodajemy je przyciskiem Add, usuwamy Remove (program jest w miarę inteligentny i po wykasowaniu niektórych z nich wstawia je z powrotem, jeżeli są niezbędne – np. styl Border). Z ciekawszych efektów warto wziąć pod uwagę:

  1. możliwość rysowania linii pomiędzy kolejnymi pozycjami (Draw lines between items). Jeżeli mają być one widoczne od „korzenia” trzeba dodatkowo wybrać Start line from the root,
  2. pokazywanie kwadracików ze znakami „+” lub „-„ przed gałęziami. Symbole te oznaczają, że gałęzie są zwinięte lub rozwinięte (opcja Plus/Minus squares). Jeżeli mają być one rysowane od katalogu nadrzędnego, należy wybrać również opcję Start line from the root,
  3. automatyczne zwijanie gałęzi, w których nie znajduje się aktualnie wybrana w spisie pozycja – funkcja Only expand a single heading,
  4. zmianę wyglądu spisu – po wybraniu opcji Dialog Frame spis jest umieszczany w dodatkowym okienku, które można przesuwać w obrębie zakładek,
  5. automatyczne pokazywanie pozycji, do której jest przypisany aktualnie oglądany temat (a właściwie plik z nim). Jest to możliwe dzięki opcji Show selection when the focus lost,
  6. podkreślanie tej pozycji, nad którą aktualnie znajduje się kursor myszy – funkcja Automatically track selection,
  7. podświetlanie zaznaczanej pozycji pojawia się w całej szerokości spisu treści – opcja Select entire row,
Fragment spisu treści pomocy systemu Windows 98. W jego opcjach wybrano efekt graficzny Automatically track selection (dzięki temu pozycja, nad którą znalazł się kursor myszy, została podświetlona na niebiesko i kursor myszy zmienił się w "rączkę")
Ten sam spis treści. Tym razem w opcjach wybrano Plus/Minus squares (widoczne są kwadraty "+" i "-" przed gałęziami), Start line from the root (kwadraty są rysowane również przed głównymi gałęziami) oraz Select entire row (zaznaczona pozycja jest podświetlana na całej szerokości).
Tym razem użyto efektów graficznych Plus/Minus squares oraz Draw lines between items (rysowane są linie pomiędzy kolejnymi pozycjami). Ponieważ nie wybrano Start line from the root, kwadratów i linii nie ma przed głównymi gałęziami.

 
Pozostała jeszcze zakładka Information Types. Tutaj możemy zdefiniować grupy, do których będzie można przypisać kolejne pozycje w spisie. Pozwoli to nam np. na przygotowanie pomocy, w której część tematów będzie przeznaczona jedynie dla nowicjuszy, część dla osób bardziej zaawansowanych, a część dla ekspertów. Użytkownik, który otworzy tak plik pomocy, będzie mógł kliknąć prawym klawiszem myszy jego spis treści, wybrać pozycję Dostosuj i zdecydować, które tematy mają być dla niego widoczne.

Jeżeli do kolejnych tematów w spisie treści przypisujemy te same grupy, wygodne może się okazać połączenie ich w jedną kategorię. Takie przyporządkowanie pozwoli bowiem, aby po jej zaznaczeniu temat był automatycznie przypisywany do wszystkich znajdujących się w niej grup. Jak zatem uzyskać taki efekt?

Na początku klikamy przycisk Add. W otwartym okienku należy podać nazwę kategorii (pole Category name), jej opis (Description poniżej Category name) oraz nazwę grupy (pole Information type name) z jej opisem (Description poniżej Information type name).

Do wyjaśnienia pozostało jedynie zaznaczenie opcji Inclusive type i Exclusive type. Jeżeli zaznaczamy pierwszą z nich, użytkownik przy wyświetlaniu pliku CHM może wybierać jedną lub więcej grup z tym atrybutem z każdej zdefiniowanej kategorii. Przykładowo: jeżeli w powyższym przypadku (tematy dla nowicjuszy/osób średnio zaawansowanych i ekspertów) wszystkie z tych grup zostaną przypisane do jednej kategorii i będa miały zaznaczone pole Inclusive type, osoba przeglądająca plik pomocy będzie mogła wybrać co najmniej jedną z nich (np. tematy dla nowicjuszy i ekspertów). W przypadku, gdyby z kolej te grupy miałyby zaznaczona opcja Exclusive type, możliwe byłoby wybranie wyłącznie jednej z nich.

Po naciśnięciu przycisku OK powrócimy do poprzedniego okienka. Wpisane przez nas grupy znajdują się po prawej jego stronie (ich opisy poniżej), natomiast wszelkie kategorie mogą być wybrane w polu Category. Można zauważyć, iż po wybraniu kategorii można od razu dodawać/usuwać przypisane do niej grupy (wystarczy zaznaczyć/odznaczyć je w polu Information types).

Przyciski Remove Category i Remove Type pozwalają usunąć wybraną kategorię/grupę, natomiast polecenie Edit służy do modyfikacji parametrów zaznaczonej grupy.

Na początek

Edycja spisu treści


Teraz musimy dodać kolejno pozycje do naszego spisu treści. Na początku utworzymy gałąź, w której będziemy umieszczać pozycje kierujące do kolejnych tematów. W tym celu trzeba kliknąć drugą ikonę od góry (standardowo wygląda ona ).

W otwartym oknie podajemy przede wszystkim nazwę, pod jaką będzie widoczna w spisie (pole Entry Title w zakładce General).

Dodana pozycja może być także odnośnikiem do jakiegoś pliku (zawierającego np. wprowadzenie do tej grupy tematów). W tym wypadku naciskamy przycisk Add i w polu File or URL podajemy nazwę odpowiedniego zbioru. Jeżeli nie będzie zawierać ona pełnej ścieżki dostępu zostanie przyjęte, iż została podana względem katalogu z plikiem głównym projektu. Po naciśnięciu przycisku OK powrócimy do okna z opcjami folderu - adres znajduje się teraz w polu Files/URLs and their information types.

Możliwe będzie w tym momencie wybranie kategorii przypisanych do tego adresu (pole Available information types) – wystarczy zaznaczyć którąś ze zdefiniowanych wcześniej kategorii albo grup. Jeżeli nie zaznaczymy żadnej z nich, pozycja, której atrybuty teraz zmieniamy, będzie zawsze wyświetlana w spisie treści.

Następnie kolej na zakładkę Advanced – możemy w niej m.in. wybrać wyświetlaną przy temacie ikonę (pole Image index). Ciekawe są również dwa pola znajdujące się obok, umożliwiające ustawianie i definiowanie własnych ikon w spisie treści (ich użycie zostanie opisane bardziej szczegółowo w artykule o bardziej zaawansowanych możliwościach programu HTML Help Workshop).

Jeżeli chcemy dodawać kolejne pozycje z tematami, należy wybierać trzeci przycisk od góry (standardowo ), a otworzy się okno bardzo podobne do opisanego wyżej, w którym można zdefiniować parametry nowych tematów pomocy.

Po zaznaczeniu w głównym oknie jakiejś pozycji, możemy zmienić jej ustawienia za pomocą przycisku .

Pozostały jeszcze przyciski , służące do ustalania miejsca, w którym będą się znajdować poszczególne pozycje w naszym spisie treści (program nie pozwala robić tego myszką – należy zaznaczać wpisy ręcznie i przesuwać je za pomocą wspomnianych przycisków).

Na początek

Dodanie indeksu


Jeżeli spis treści jest już gotowy, kolej na indeks. Postępowanie jest tutaj podobne jak w przypadku spisu – w oknie głównym należy wybrać zakładkę Index. HTML Help Workshop spyta w tym momencie, czy chcielibyśmy dodać do projektu wcześniej opracowany plik z indeksem (opcja Open an existing contents file) czy też utworzyć nowy (Create a new contents file). Wybieramy drugie rozwiązanie a następnie podajemy nazwę nowego zbioru i klikamy przycisk OK.

Na początek

Edycja indeksu


Na początku - podobnie jak wcześniej - zajmiemy się najważniejszymi opcjami. Klikamy ikonę , aby zostało otwarte okno umożliwiające ustalenie parametrów zbioru z indeksem. Możemy więc wybrać czcionkę (pole Font w zakładce General) oraz zdefiniować kategorie przypisane do kolejnych pozycji indeksu (robi się to identycznie jak w przypadku definiowania kategorii dla spisu treści).

Po określeniu tych parametrów kolej na dodawanie kolejnych pozycji do indeksu – służy do tego ikonka . Otwarte w wyniku jej kliknięcia okno jest niemal takie samo jak to służące do wstawiania nowych pozycji spisu treści. Różnice biorą się tylko z trochę innego działania indeksu niż spisu treści:

  • jeżeli do danej pozycji przypisanie zostanie kilka adresów, system po jej wybraniu wyświetli okienko dialogowe, w którym będzie można wybrać jeden z adresów (oprócz podawania adresów plików warto również wpisywać ich nazwy – będą one wyświetlane w tym oknie)
  • jeżeli w miejscu adresu wpiszemy nazwę jakiejś pozycji w indeksie i zaznaczymy pole Target is another keyword w zakładce Advanced, po kliknięciu pozycji, której dane aktualnie zmieniamy, system przeniesie nas do tej pierwszej. Warto zauważyć, że można oczywiście podać nazwę pozycji, której dane zmieniany, i wtedy (z punktu widzenia użytkownika) klikanie na nią nie będzie wywoływać żadnego efektu...

W indeksie nie ma oczywiście opcji służących m.in. do definiowania ikon.

Na początek

Kompilacja i wyświetlenie gotowego pliku CHM


Jeżeli wszystko zostało już przygotowane, pora na skompilowanie całości w jeden plik CHM.

W tym celu klikamy przycisk albo wybieramy pozycję Compile z menu File. W otwartym oknie musimy podać nazwę, pod jaką ma być utworzony skompilowany zbiór CHM. Uwaga: jeśli plik o takiej nazwie już istnieje, zostanie zastąpiony bez ostrzeżenia. Później już tylko pozostaje obserwować komunikaty kompilatora – podaje on dokładne informacje o błędach i różne ostrzeżenia (na ich podstawie można się dowiedzieć, jakie nieprawidłowości mogą się znajdować w stworzonych przez nas zbiorach) oraz liczbę plików, które składają się na naszą pomoc.

Możemy teraz obejrzeć nasze gotowe dzieło. Wystarczy np. uruchomić je przez kliknięcie na nazwie pliku w Eksploratorze albo wybrać ikonę w HTML Help Workshop.

Na początek

Internet


Na początek