Scott Tiger Tech Blog

Blog technologiczny firmy Scott Tiger S.A.

XMLMind & DocBook

Autor: Piotr Karpiuk o poniedziałek 13. Luty 2012

XMLMind to edytor GUI do XMLa o którym wspomniałem w poprzednim poście na temat DocBooka. Dzisiaj więcej o tym edytorze. Przeczytanie tego artykułu zasadniczo zastępuje lekturę liczącej sobie ok. 200 stron dokumentacji programu, i pozwala zacząć tworzyć dokumenty DocBooka.

XMLMind to program napisany w Javie (z biblioteką okienkową Swing), więc daje się uruchomić zarówno pod Windows, Linuksem jak i Mac OS X. Wersja pełna to koszt ok. 1000 zł na stanowisko, zaś w darmowej wersji Personal mamy pewne ograniczenia – najbardziej bolesne z nich to brak sprawdzania pisowni na bieżąco i brak możliwości generowania dokumentacji bezpośrednio z edytora.

Nowy dokument otwieramy poleceniem File/New i wybierając szablon, np. Docbook v5+/Book.

Edycja dokumentu XML w tym narzędziu robi na mnie spore wrażenie swoim pomysłowym podejściem, które nazwałbym prawie-WYSIWYG. W domyślnym widoku edytujemy dokument który bardzo przypomina wygenerowaną postać dokumentacji – podobnie jak w zwykłym procesorze tekstu możemy kopiować i wstawiać fragmenty tekstu za pomocą schowka, za pomocą przycisków na pasku zadaniowym wstawiać tabelkę, obrazek, listę wypunktowaną czy wyróżniać fragment tekstu. Ale jednocześnie cały czas mamy świadomość XMLa który jest generowany pod spodem i chcąc biegle edytować dokument musimy przynajmniej pobieżnie znać DocBooka (jego znaczniki i atrybuty tych znaczników).

W szczególności wiele operacji edycyjnych jest wykonywanych nie tyle na zaznaczonym fragmencie tekstu (z czym mamy do czynienia w zwykłych edytorach), ile na wskazanym (jawnie lub niejawnie) elemencie XMLa edytowanego dokumentu. Element niejawnie wyselekcjonowany (ang. implicitly selected) to najbardziej zagnieżdżony element, w którym aktualnie znajduje się kursor klawiatury. Możemy jawnie wyselekcjonować dowolny element XMLa klikając go w pasku ścieżki (ang. node path bar) wymieniającym wszystkie elementy XML na drodze od aktualnie niejawnie wyselekcjonowanego do korzenia dokumentu:


Po kliknięciu elementu listitem na pasku ścieżki dokonujemy jawnej selekcji wierzchołka, wizualizowanej czerwoną obwódką:

Możemy łatwo selekcjonować jawnie elementy na ścieżce od niejawnie zaznaczonego elementu do korzenia dokumentu używając kombinacji klawiszy Ctrl+Up/Down. Przykłady operacji na wyselekcjonowanym elemencie to np.:

  • Tab/Shift+Tab: przejście do następnego/poprzedniego elementu w drzewie,
  • Ctrl+E: edycja atrybutów elementu (Tools/Edit Attribute…) – bardzo ważnym atrybutem jest np. xml:id — pozwala nadać dowolnemu elementowi identyfikator, dzięki czemu możemy tworzyć odwołania w tekście,
  • Ctrl+H/J: wstaw element przed/za (Edit/Insert Before…, Edit/Insert After…),
  • Ctrl+I: wstaw element jako dziecko (Edit/Insert…),
  • Ctrl+C/U/W: skopiuj element do schowka, wstaw przed lub za (Edit/Copy, Edit/Paste Before, Edit/Paste After)

Uwaga: DocBook daje nam możliwość rozbicia poszczególnych rozdziałów dokumentacji na osobne pliki (szablon Chapter), warto z tego korzystać. W dokumencie nadrzędnym (szablon Book) możemy wstawić dowiązania do rozdziałów. W Pliku rozdziału zaznaczamy korzeń dokumentu i z menu wybieramy Edit/Reference/Copy as Reference aby skopiować referencję do schowka i wkleić ją w dokumencie nadrzędnym. Później w książce wystarczy wskazać rozdział i z menu wybrać Edit/Referenced document, aby przejść do edycji pliku z rozdziałem.

Edytor zasadniczo pilnuje tego żeby dokument powinien był cały czas poprawny (zgodny z definicją języka DocBook). Oznacza to w szczególności, że często gdy chcemy zastąpić jeden element innym, to nie możemy usunąć niepotrzebnego (bo powstanie dokument niezgodny z definicją DocBooka), ale musimy wykonać operację zastępowania bieżącego elementu innym (Ctrl+R, Edit/Replace…), ewentualnie konwersji – gdy np. chcemy przekonwertować listę wypunktowaną w listę numerowaną (Ctrl+T, Edit/Convert…).

Kilka innych przydatnych skrótów klawiaturowych to m.in.:

  • Ctrl+SPACE: spacja niełamiąca,
  • Ctrl+Enter/Shift+Ctrl+Enter: tworzy kolejny element listy za/przed bieżącym elementem

Uwagi:

  • XMLMind ma strukturę modułową i udostępnia szereg pluginów, instalowanych poleceniem menu Options/Install Add-ons, z których zdecydowanie polecam Polish dictionary (pozwala sprawdzać pisownię dokumentów w języku polskim, o czym dalej), Apache Batik image toolkit plug-in (pozwala wstawiać grafikę wektorową w formacie SVG), oraz ewentualnie MathML support (jeśli chcesz osadzać w dokumencie wzory matematyczne).
  • Do edycji plików grafiki wektorowej SVG świetnie nadaje się opensource’owy Inkscape.
  • Spora część funkcjonalności jest wyłączona w domyślnej konfiguracji – można je włączyć wybierając z menu Options/Preferences… a potem w okienku General/Features. Sam włączam wszystkie z wyjątkiem Include Tool i Document Cache Indicator. Po zmianach warto przerestartować edytor, żeby stały się widoczne.

Ciekawsze możliwości

Menu DocBook zawiera szereg poleceń, m.in. do edycji tabeli (dodaj wiersz/kolumnę) oraz tworzenia odwołań w dokumencie,

Shift+F1 wyświetla dokumentację DocBooka o aktualnie wyselekcjonowanym elemencie.

Menu View/Add… pozwala skonfigurować podgląd dokumentu w różnych postaciach (np. Document Structure aby móc łatwo nawigować po spisie treści, (no style sheet) aby móc edytować wprost dokument XML) i umieścić go w widoku obok/pod domyślnym obszarem edycji dokumentu, jak na obrazku:

Menu Edit/Comment pozwala umieszczać w dokumencie komentarze XML (które nie znajdą się w generowanym dokumencie).

Wyszukiwanie elementu (Search/Find element…) ma również opcję zaawansowaną pozwalającą podać dowolne wyrażenie XPath.

Menu Search/Bookmarks pozwala zarządzać zakładkami w dokumencie.

W Tools/Helper App można zarejestrować własną aplikację zewnętrzną do edycji wybranych elementów/atrybutów (np. edytor graficzny GIMP do edycji obrazków).

Edytor pozwala na tworzenie makr (do 20 poleceń) – menu Tools/Record Macro.

W prawym dolnym panelu edytora mamy szereg zakłądek, m.in. interaktywne sprawdzanie pisowni oraz zestaw palet znaków specjalnych. W zestawie znaków specjalnych klikając prawym klawiszem na dowolnym wybranym znaku możemy wybrać opcję Add to Favorities aby dodać znak do palety o nazwie Favorities, gdzie możemy trzymać najczęściej używane znaki.

Menu File/Folder pozwala otworzyć panel z managerem plików – aby zarządzać plikami bez wychodzenia z edytora.

Share and Enjoy:
  • del.icio.us
  • Facebook
  • Google Bookmarks
  • Śledzik
  • Blip
  • Blogger.com
  • Gadu-Gadu Live
  • LinkedIn
  • MySpace
  • Wykop

Zostaw komentarz

XHTML: Możesz użyć następujących tagów: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>