PolyglotMan(1) | General Commands Manual | PolyglotMan(1) |
PolyglotMan, rman - odwrotna kompilacja stron podręcznika z postaci sformatowanej do różnych formatów źródłowych: ASCII, roff, TkMan, Tk, Sections, HTML, SGML, MIME, LaTeX, LaTeX2e, RTF, POD.
rman [ opcje ] [ plik ]
Najbardziej aktualną dokumentację można znaleźć pod adresem http://polyglotman.sourceforge.net/rman.html
PolyglotMan przyjmuje strony man podręcznika systemowego z większości popularnych odmian Uniksa i przekształca je na jeden z wielu formatów tekstu źródłowego. PolyglotMan był wcześniej znany pod nazwą RosettaMan. Program wykonywalny jest wciąż nazywa się rman z powodu skryptów, które mogą zależeć od tej nazwy; można przyjąć, że nazwa ta oznacza "reverse man" ("odwrotny man"). Poprzednio PolyglotMan wymagał, by strony przed przetwarzaniem zostały sformatowane przez nroff. Od wersji 3.0 woli źródła [tn]roff i zwykle daje wyniki, które są jeszcze lepsze. Przetwarzanie źródłowej postaci stron podręcznika jest jedyną metodą tłumaczenia tabel. Jednakże przetwarzanie źródeł nie jest tak dojrzałe jak przetwarzanie stron sformatowanych, dlatego pomocniczo zawsze można spróbować przetwarzania stron sformatowanych.
W analizie źródeł [tn]roff powinno się zaimplementować dowolnie duży podzbiór [tn]roff, czego nie zrobiłem i nie zrobię, zatem wyniki mogą być czasem niepoprawne. Zaimplementowałem jednak znaczący podzbiór poleceń [tr]roff używanych w stronach man, łącznie z tbl (ale nie eqn), testami if oraz definicjami makr ogólnych. Wyniki zatem zwykle wyglądają doskonale. Jeśli nie, należy sformatować stronę przy pomocy nroff przed przesłaniem jej do PolyglotMan. Jeśli jednak PolyglotMan nie rozpoznaje ważnego makra używanego przez liczną klasę stron man, to proszę o wysłanie mi e-maila ze źródłem i stroną sformatowaną nroff-em, a zobaczę, co da się zrobić. Uruchamiając PolyglotMan ze źródłem strony zawierającym makro .so (włączanie innych stron albo przekierowanie do innego źródła [tn]roff), powinno się być w katalogu nadrzędnym danej strony, gdyż strony są zapisywane przy takim właśnie założeniu. Na przykład przed przekształceniem /usr/share/man/man1/ls.1 należy zmienić katalog na /usr/share/man.
PolyglotMan przyjmuje strony podręczników z systemów: SunOS, Sun Solaris, Hewlett-Packard HP-UX, AT&T System V, OSF/1 aka Digital UNIX, DEC Ultrix, SGI IRIX, Linux, FreeBSD, SCO. Przetwarzanie postaci źródłowej działa dla: SunOS, Sun Solaris, Hewlett-Packard HP-UX, AT&T System V, OSF/1 aka Digital UNIX, DEC Ultrix. Potrafi tworzyć strony w formatach: "tylko drukowalne ASCII" (usunięte znaki sterujące), "tylko nagłówki sekcji", Tk, TkMan, [tn]roff (tradycyjne źródła stron man), XML, HTML, MIME, LaTeX, LaTeX2e, RTF, Perl 5 POD. Modularna budowa umożliwia łatwe dodawanie dodatkowych formatów wyjściowych.
Najnowsza wersja PolyglotMan dostępna jest zawsze pod adresem http://polyglotman.sourceforge.net/.
Poniższe dwie opcje nie powinny być używane z innymi. Powodują zakończenie pracy przez PolyglotMan bez przetwarzania wejścia.
Filtr powinno się zawsze podawać jako pierwszy parametr, gdyż ustawia on różne inne parametry. Pozostałe opcje należy podać po nim.
Poniższe opcje mają zastosowanie tylko wtedy, gdy jako wejście podano strony sformatowane. Nie mają zastosowania lub nie zawsze są obsługiwane poprawnie dla stron w postaci źródłowej.
W niektórych odmianach Uniksa strony podręczników dostarczane są bez źródeł [tn]roff, czyniąc z Twojej drukarki laserowej niewiele więcej niż laserowo napędzaną drukarkę rozetkową. Ten filtr próbuje odtworzyć pierwotne dyrektywy [tn]roff, które następnie mogą być skompilowane przez [tn]roff.
TkMan(1), hipertekstowa przeglądarka stron podręcznika, posługuje się programem PolyglotMan do pokazywania stron podręcznika bez — zwykle zbędnych — nagłówków i stopek na każdej stronie. Zbiera również nagłówki rozdziałów (i opcjonalnie podrozdziałów), by z rozwijalnego menu zapewnić bezpośredni dostęp do odpowiednich części strony. TkMan oraz Tcl/Tk, narzędzie, w którym jest on napisany, dostępne są przez anonimowe ftp z ftp://ftp.smli.com/pub/tcl/.
Opcja ta generuje tekst w postaci serii list Tcl składających się z par "tekst-znaczniki", gdzie nazwy znaczników z grubsza odpowiadają tym używanym w HTML-u. Wynik taki może być wstawiony do tekstowego widgetu Tk przez wykonanie eval <textwidget> insert end <text>. Format ten powinien być stosunkowo łatwy do analizowania przez inne programy, które potrzebują zarówno tekstu, jak i znaczników. Zobacz też ASCII.
Przy wydruku na drukarce wierszowej strony man usiłują uzyskać specjalne efekty tekstu przez nadpisywanie znaków ponownie tymi samymi znakami (by otrzymać pogrubienie) czy znakami podkreślenia "_" (by otrzymać pokreślenie znaku). Inne oprogramowanie przetwarzające teksty, jak edytory, wyszukiwarki czy programy indeksujące musi temu przeciwdziałać. Filtr ASCII pozbywa się dodatków z opisanego sposobu formatowania. Przepuszczenie przez potok wyjścia z nroff do col -b również je usuwa. Zobacz także filtr Tk.
Zrzuca tytuły rozdziałów i (opcjonalnie) podrozdziałów stron podręcznika. Może być przydatne dla innego programu przetwarzającego strony man.
Przy prostym rozszerzeniu serwera HTTP dla Mosaic(1) czy innej przeglądarki WWW, PolyglotMan może w locie tworzyć wysokiej jakości kod HTML. Kilka takich rozszerzeń wraz z odnośnikami do innych rozszerzeń dołączonych jest w katalogu contrib w źródłach programu PolyglotMan.
Ten filtr jest bliski obsługiwania Docbook DTD, ale mam nadzieję, że ktoś faktycznie zainteresowany tą opcją wygładzi tworzone znaczniki. Spróbuj, a zobaczysz, jak blisko są one obecnie.
MIME (Multipurpose Internet Mail Extensions), jak zdefiniowano w RFC 1563, odpowiednie do użycia przez programy pocztowe obsługujące MIME albo jako wzbogacone dokumenty Emacsa (>=19.26).
Czemu nie?
Używa wyniku na Mac-u, NeXT lub czymkolwiek. Może wziąć losowe strony man i lepiej połączyć je z systemem dokumentacji NeXTa. Może NeXT ma swoje własne makra stron man, które to robią.
W celu uzyskania PostScriptu należy użyć groff lub psroff. By utworzyć MIF dla FrameMakera, trzeba posłużyć się jego wbudowanym filtrem. W obu przypadkach potrzebne będą źródła [tn]roff, więc jeśli dysponuje się wyłącznie sformatowaną wersją strony podręcznika, należy użyć najpierw filtru roff z PolyglotMan.
Konwersja sformatowanej strony podręcznika man o nazwie ls.1 na powrót do postaci źródłowej [tn]roff:
rman -f roff /usr/local/man/cat1/ls.1 >
/usr/local/man/man1/ls.1
W celu zaoszczędzenia miejsca długie strony man
są często kompresowane (kompresja jest szczególnie
efektywna dla stron sformatowanych, które zawierają wiele
spacji. Ponieważ jest to długa strona, prawdopodobnie zawiera
podrozdziały, które próbujemy wydzielić
(niektóre zestawy makr nie wyróżniają
podrozdziałów w taki sposób, by PolyglotMan
mógł je wykryć). Skonwertujmy to na format LaTeX:
pcat /usr/catman/a_man/cat1/automount.z | rman -b -n automount
-s 1 -f latex > automount.man
Albo: man 1 automount | rman -b -n automount -s 1 -f latex >
automount.man
Dla użytkowników HTML/Mosaic [czy Netscape]
PolyglotMan może, bez zmiany kodu
źródłowego, utworzyć odnośniki HTML do
innych stron podręcznika w formacie HTML albo utworzonych
wcześniej, albo tworzonych w locie. Załóżmy
najpierw, że wstępnie stworzone wersje HTML strony
podręcznika będą znajdować się w
/usr/share/man/html. Utwórzmy je jedna po drugiej w
następujący sposób:
rman -f html -r 'http:/usr/share/man/html/%s.%s.html'
/usr/share/man/cat1/ls.1 > /usr/share/man/html/ls.1.html
Jeżeli rozszerzyłeś swego klienta HTML tak,
by tworzył kod HTML w locie, to powinieneś
posłużyć się czymś takim:
rman -f html -r 'http:~/bin/man2html?%s:%s' /usr/share/man/cat1/ls.1
podczas generowania HTML-a.
PolyglotMan nie we wszystkich przypadkach jest doskonały, ale zwykle działa dobrze i redukuje problem konwertowania stron podręcznika ekranowego do niewielkich poprawek edycyjnych.
Tabele w sformatowanych stronach, szczególnie H-P, nie są obsługiwane najlepiej. Należy się upewnić, że jako parametr przekazywany jest plik źródłowy strony, co umożliwi rozpoznanie tabel.
Przeglądarka stron man o nazwie woman(1) wykorzystuje swoją własną koncepcję formatowania stron podręcznika systemowego. Rozwiązanie to może być mylące dla PolyglotMan. Można ominąć ten problem, przesyłając sformatowany tekst strony podręcznika wprost do PolyglotMan.
Format wynikowy [tn]roff posługuje się "\fB" do włączania pogrubienia (bold). Jeżeli Twój zestaw makr wymaga ".B", to będziesz musiał przetworzyć wynik z PolyglotMan.
tkman(1), xman(1), man(1), man(7) lub man(5) w zależności od odmiany Uniksa.
PolyglotMan
Thomas A. Phelps ( phelps@ACM.org )
rozwijane w
University of California, Berkeley
Computer Science Division
Ostatnia aktualizacja tej strony: $Date: 1998/07/13 09:47:28 $
Autorami polskiego tłumaczenia niniejszej strony podręcznika są: Wojtek Kotwica <wkotwica@post.pl> i Robert Luberda <robert@debian.org>
Niniejsze tłumaczenie jest wolną dokumentacją. Bliższe informacje o warunkach licencji można uzyskać zapoznając się z GNU General Public License w wersji 3 lub nowszej. Nie przyjmuje się ŻADNEJ ODPOWIEDZIALNOŚCI.
Błędy w tłumaczeniu strony podręcznika prosimy zgłaszać na adres listy dyskusyjnej manpages-pl-list@lists.sourceforge.net.